使用不同端口上的牛仔服务器启动 Phoenix 应用程序

Start Phoenix app with cowboy server on different port

是否可以使用 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

我需要这个作为解决方案,因为我的问题是我需要让 C9.io 指定端口,对我来说,将此代码添加到 dev.exs 文件解决了问题:

config :my_app, MyApp.Endpoint,
  http: [port: {:system, "PORT"}],

然后在终端中,我只需要正常 运行 服务器:

mix phoenix.server

编辑您的 config/dev.exs 并更改端点 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描述了这个答案。