2

我正在使用 edeliver 在 aws 上进行部署。部署运行良好,但是当我尝试在控制台中使用 访问该站点时curl localhost:8888,出现connection refused错误。

如果我尝试使用 启动应用程序./rel/bin/app_name console,我会得到一个(RuntimeError) expected the PORT environment variable to be set. 然而我的config/prod.exs样子是这样的。

use Mix.Config

config :elixir_deploy, ElixirDeployWeb.Endpoint,
  load_from_system_env: true,
  http: [port: 8888],
  ssl: false,
  url: [host: "example.com", port: 80],
  cache_static_manifest: "priv/static/cache_manifest.json"

config :logger, level: :info

import_config "prod.secret.exs"

我在这里想念什么?如果我PORT=8888在手动启动之前设置 a 就可以了,但我宁愿用 edeliver 自动启动

4

1 回答 1

5

您需要设置load_from_system_envfalse(或仅删除该行)。为 时true,Phoenix 默认生成的endpoint.ex会使用PORT环境变量的值,如果没有找到,会报错。

if config[:load_from_system_env] do
  port = System.get_env("PORT") || raise "expected the PORT environment variable to be set"
  {:ok, Keyword.put(config, :http, [:inet6, port: port])}
else
  {:ok, config}
end

资源

于 2017-11-02T09:44:16.330 回答