2017-10-18 95 views
0

我试图让我的凤凰应用在端口4000上听,但它不工作。首先,我使用MIX_ENV=prod mix release --env=prod生成我的制作应用程序。然后,我rsync _build目录到我的服务器。然后我运行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, "4000"}], 

它应该阅读:

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

与系统的环境变量PORT应设置并出口:

export PORT=4000 

例如在你的shell配置文件中。您还需要添加

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

行到您的配置。

如果你不想配置它,只是做:

http: [port: "4000"], 

{:system, "4000"}基本上是试图读取环境变量4000


旁注:这是更好地使下一行完全对应此设置:

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

我修改了配置文件使用的系统变量,但我仍然无法访问现场。 –

+0

我编辑了我的帖子以反映更新的更改。 –

+0

我已经更新了一个答案:'load_from_system_env:true'很重要。 – mudasobwa