如何让凤凰侦听端口 4000



我正在尝试让我的 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"}],

最新更新