昨日、私はこのherokuコマンドを使用しようとしました:
heroku run db:migrate
そして、しばらく待ってから、タイムアウトになったと言いました
何度も試してみましたが、他のコマンドでも同じ応答が返されたため、私のPC(またはネット?)がポート5000を開いていないことが問題でした。
これを開けてもいいですか? Ubuntuではどうですか?
それが私の提供に関連している場合、私はおそらくこのポートをホワイトリストに登録できることをどこかで読んだ:Ubuntuからこれを行うことはできますか?どうやって?
プログラムでポートを開きます。オペレーティングシステムは、そのためのプリミティブを提供します。これは通常、OSレベルで行われ、ポートが接続を受け入れることを許可します。このため、インストールに応じて、ファイアウォールまたはSELinuxを構成する必要があります(これらのいずれかをもたらすUbuntuの標準インストールを見ていませんが)。 @アンドレアは、ポートを開きたい場合、プログラムへの特別な許可は必要ないと指摘しました。繰り返しますが、これはポートでリッスンするプログラム、サーバーです。接続指向のプロトコル(TCP/IPなど)を使用するネットワーク通信には、リスニングサーバーポートと接続クライアントが必要です。 Herokuはわかりませんが、投稿したコマンドの外観から、データベースをある場所から別の場所に移行しようとしていると思います。これは、データを抽出するための接続と書き込むための接続の2つの接続を開くかどうかによって異なります。インターネットから接続を受信する場合は、パブリックIPのポートが必要です。これは、サーバーマシンのポート5000に到達します。正しくインストールされていると思われる場合は、次のコマンドを試してください。
Sudo netstat -tnlp
次のような出力が得られるはずです。
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
これは、ポート22でリッスンするSSHサーバーの場合です。5000ポートでも同様のことが必要です。その場合は、内部ネットワークからサーバーのIPに接続して、それをインターネットに開く方法を見つけてください。これを行うには、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.
「Connected」という単語が表示されたら、ポートは有効でキックしています:)これはリッスンしているSSHサーバーのサンプルです。herokuの出力は異なるはずです。