Hier, j'ai essayé d'utiliser cette commande heroku:
heroku run db:migrate
et après une longue attente, il a dit qu'il était en timeout
Après plusieurs essais, j'ai cherché sur Google à ce sujet et découvert que, puisque d'autres commandes avaient donné la même réponse, le problème était que mon ordinateur (ou mon réseau?) N'a pas ouvert le port 5000.
Puis-je l'ouvrir? Comment dans Ubuntu?
Si elle est reliée à mon fournisseur, je lis quelque part que je peux probablement ajouter ce port à la liste blanche: puis-je le faire à partir d’Ubuntu? Comment?
Vous ouvrez un port avec un programme. Le système d'exploitation fournit des primitives pour vous permettre de le faire, ce qui est généralement effectué au niveau du système d'exploitation pour permettre au port d'accepter les connexions. Pour cela, vous devrez peut-être configurer le pare-feu ou même SELinux, en fonction de votre installation (même si l'installation standard d'Ubuntu ne comportait aucune de ces configurations). @ Andrea a souligné que vous n'avez pas besoin d'une autorisation spéciale pour le programme s'il veut ouvrir le port. Encore une fois, il s’agit d’un programme, d’un serveur, qui écoutera sur un port. Toute communication réseau, utilisant un protocole orienté connexion (tel que TCP/IP), nécessite un port de serveur d'écoute et un client de connexion. Je ne connais pas Heroku, mais à en juger par la commande que vous avez publiée, vous essayez de migrer une base de données d’un endroit à un autre. Cela dépend si vous ouvrez deux connexions, l’une pour extraire les données et l’autre pour l’écriture. Si vous avez l'intention de recevoir des connexions depuis Internet, vous avez besoin d'un port sur une adresse IP publique, qui arrive au port 5000 de votre ordinateur serveur. Si vous pensez avoir une installation correcte, essayez cette commande:
Sudo netstat -tnlp
Cela devrait vous donner quelque chose comme cette sortie:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 940/sshd
C'est le cas, pour un serveur SSH, en écoute sur le port 22. Vous devriez avoir quelque chose de similaire, pour le port 5000. Si c'est le cas, essayez de vous connecter depuis votre réseau interne à l'adresse IP du serveur, puis découvrez comment l'ouvrir à Internet. Vous pouvez le faire avec la commande telnet:
$ telnet 192.168.1.1 22
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.8p1 Debian-7ubuntu1
^\
Connection closed by foreign Host.
Si vous avez le mot "Connecté", votre port est toujours vivant :) Ceci est un exemple pour un serveur SSH en écoute, la sortie de votre heroku devrait être différente.