如何让凤凰城收听4000端口?
问题描述:
我试图让我的凤凰应用在端口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"
答
的问题是在这里:
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"}],
我修改了配置文件使用的系统变量,但我仍然无法访问现场。 –
我编辑了我的帖子以反映更新的更改。 –
我已经更新了一个答案:'load_from_system_env:true'很重要。 – mudasobwa