2017-10-18 11 views
0

Phoenixアプリケーションをポート4000で受信しようとしていますが、動作していません。まず、私はMIX_ENV=prod mix release --env=prodと私の生産アプリを生成します。次に、_buildディレクトリを自分のサーバーとrsyncします。それから私はPORT=4000 ./_build/prod/rel/rumbl/bin/rumbl startを実行します。その後、私がcurl localhost:4000になったとき、私は何の反応も得ません。ここでフェニックスをポート4000でリッスンするにはどうすればよいですか?

は私のconfig/prod.exsです:

use Mix.Config 

config :rumbl, Rumbl.Endpoint, 
    http: [port: {:system, "PORT"}], 
    url: [host: "localhost", port: {:system, "PORT"}], 
    cache_static_manifest: "priv/static/manifest.json" 

config :logger, level: :info 
import_config "prod.secret.exs" 

答えて

1

問題はここにある:

http: [port: {:system, "PORT"}], 

をし、システム環境変数PORTを設定し、エクスポートする必要があります。

http: [port: {:system, "4000"}], 

それはのように読んでください:

export PORT=4000 

あなたのシェルプロファイルで。また、

load_from_system_env: true, 
server: true, 
root: ".", 

行を設定に追加する必要があります。

あなたがそれを設定したくない場合は、単に実行します。

http: [port: "4000"], 

{:system, "4000"}は、基本的には、ENV変数4000を読み込むしようとしています。


追記:それはまさに、この設定に対応するために、次の行を作成すると良いでしょう:

url: [host: "localhost", port: {:system, "PORT"}], 
+0

私は、システム変数を使用するために私の設定ファイルを変更し、私はまだアクセスすることはできませんよサイト。 –

+0

更新された変更を反映するために投稿を編集しました。 –

+0

私は答えを更新しました: 'load_from_system_env:true'は重要です。 – mudasobwa

関連する問題