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

kov*_*ack 28 cowboy phoenix-framework

是否可以使用某些命令在控制台的不同端口上本地启动一些Phoenix应用程序mix phoenix.server --port=4001?当然,这个不起作用,但也许有类似的方法.

Chr*_*ord 42

是的!确保将mix配置设置为引用env端口,即

config :my_app, MyApp.Endpoint,
  http: [port: {:system, "PORT"}],
Run Code Online (Sandbox Code Playgroud)

然后从终端:

$ PORT=4001 mix phoenix.server
$ PORT=4002 mix phoenix.server
$ PORT=4003 mix phoenix.server
Run Code Online (Sandbox Code Playgroud)

  • 注意:在`config.exs`中执行此操作不起作用,我猜的原因是`dev.exs`会覆盖配置.因此把它放在`dev.exs`中.有关更多信息,请参阅phoenix https://github.com/phoenixframework/phoenix/issues/962上的此问题 (7认同)

ste*_*ore 33

编辑config/dev.exs并更改Endpoint http端口,如下所示:

config :my_app, MyApp.Endpoint,
  http: [port: System.get_env("PORT") || 4000],
Run Code Online (Sandbox Code Playgroud)

这允许设置端口,或保留默认端口4000:

PORT=4002 mix phoenix.server # to run on port 4002
mix phoenix.server # to run on port 4000
Run Code Online (Sandbox Code Playgroud)

这个答案由@ chris-mccord 在github上描述.