我正在尝试让我的 Phoenix 应用程序侦听端口 4000,但它不起作用。 首先,我使用 MIX_ENV=prod mix release --env=prod
生成我的生产应用程序。 然后,我将_build
目录重新同步到我的服务器。 然后我跑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"
问题就在这里:
http: [port: {:system, "4000"}],
其内容应为:
http: [port: {:system, "PORT"}],
并且应设置并导出系统环境变量PORT
:
export PORT=4000
例如,在您的壳牌配置文件中。您还需要添加
load_from_system_env: true,
server: true,
root: ".",
行到您的配置中。
如果您不想配置它,只需执行以下操作:
http: [port: "4000"],
{:system, "4000"}
基本上是尝试读取 env 变量4000
。
旁注:最好使下一行完全对应于此设置:
url: [host: "localhost", port: {:system, "PORT"}],