我正在尝试让我的凤凰应用程序在端口4000上侦听,但它无法正常工作。首先,我使用MIX_ENV=prod mix release --env=prod
生成我的制作应用。然后,我将_build
目录rsync到我的服务器。然后我运行PORT=4000 ./_build/prod/rel/rumbl/bin/rumbl start
。然后当我curl localhost: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"
答案 0 :(得分:1)
问题在于:
http: [port: {:system, "4000"}],
它应该读作:
http: [port: {:system, "PORT"}],
并且应该设置和导出系统环境变量PORT
:
export PORT=4000
e.g。在你的shell配置文件中。您还需要添加
load_from_system_env: true,
server: true,
root: ".",
到你的配置行。
如果您不想配置它,只需执行:
http: [port: "4000"],
{:system, "4000"}
基本上是尝试读取env变量4000
。
旁注:最好让下一行与此设置完全一致:
url: [host: "localhost", port: {:system, "PORT"}],