【问题标题】:How to get Phoenix to listen on port 4000?如何让 Phoenix 监听 4000 端口?
【发布时间】:2017-10-18 16:49:32
【问题描述】:

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

【问题讨论】:

    标签: elixir phoenix-framework


    【解决方案1】:

    问题出在这里:

    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"} 基本上是在尝试读取环境变量4000


    旁注:最好让下一行与此设置完全对应:

    url: [host: "localhost", port: {:system, "PORT"}],
    

    【讨论】:

    • 我修改了我的配置文件以使用系统变量,但我仍然无法访问该站点。
    • 我已经更新了一个答案:load_from_system_env: true 很重要。
    猜你喜欢
    • 1970-01-01
    • 2018-10-29
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    相关资源
    最近更新 更多