如何让凤凰城听4000端口?

时间:2017-10-18 16:49:32

标签: elixir phoenix-framework

我正在尝试让我的凤凰应用程序在端口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"

1 个答案:

答案 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"}],