【发布时间】:2015-08-12 23:06:24
【问题描述】:
是否可以使用诸如mix phoenix.server --port=4001 之类的命令从控制台的不同端口上本地启动几个 Phoenix 应用程序?这个当然行不通,但是,也许有类似的方法。
【问题讨论】:
是否可以使用诸如mix phoenix.server --port=4001 之类的命令从控制台的不同端口上本地启动几个 Phoenix 应用程序?这个当然行不通,但是,也许有类似的方法。
【问题讨论】:
是的!确保将混合配置设置为引用 env 端口,即
config :my_app, MyApp.Endpoint,
http: [port: {:system, "PORT"}],
然后从终端:
$ PORT=4001 mix phoenix.server
$ PORT=4002 mix phoenix.server
$ PORT=4003 mix phoenix.server
【讨论】:
config.exs 中这样做是行不通的,我猜的原因是dev.exs 覆盖了配置。因此把它放在dev.exs。有关更多信息,请参阅 phoenix github.com/phoenixframework/phoenix/issues/962 上的此问题
编辑您的 config/dev.exs 并更改 Endpoint http 端口,如下所示:
config :my_app, MyApp.Endpoint,
http: [port: System.get_env("PORT") || 4000],
这允许设置端口,或者保留为默认4000:
PORT=4002 mix phoenix.server # to run on port 4002
mix phoenix.server # to run on port 4000
@chris-mccord on github 描述了这个答案。
【讨论】:
mix phx.server
这是我需要的解决方案,因为我的问题是我需要让C9.io 指定端口,对我来说,将此代码添加到dev.exs 文件解决了问题:
config :my_app, MyApp.Endpoint,
http: [port: {:system, "PORT"}],
然后在终端中,我只需要正常运行服务器:
mix phoenix.server
【讨论】: