Is it possible to start locally a few Phoenix apps on different ports from the console using some command like mix phoenix.server --port=4001
? This one does not work, of course, but, maybe, there is similar way.
Start Phoenix app with cowboy server on different port
Asked Answered
Yep! Make sure you set the mix config to reference the env port, i.e.
config :my_app, MyApp.Endpoint,
http: [port: {:system, "PORT"}],
Then from the terminal:
$ PORT=4001 mix phoenix.server
$ PORT=4002 mix phoenix.server
$ PORT=4003 mix phoenix.server
Note 2: You shouldn't add the lines to your config files but edit the existing lines. I got a cryptic error by just adding the lines for my app. –
Unreflective
Edit your config/dev.exs
and change the Endpoint http port like the following:
config :my_app, MyApp.Endpoint,
http: [port: System.get_env("PORT") || 4000],
This allows the port to be set, or left as the default 4000
:
PORT=4002 mix phoenix.server # to run on port 4002
mix phoenix.server # to run on port 4000
This answer was described by @chris-mccord on github.
This worked. The command to start Phoenix is now
mix phx.server
–
Herringbone This was needed for me as a solution since my issue was that I needed to let C9.io dictate the port, for me, adding this code to the dev.exs
file solved the problem:
config :my_app, MyApp.Endpoint,
http: [port: {:system, "PORT"}],
and then in the Terminal, I just needed to run the server as normal:
mix phoenix.server
© 2022 - 2024 — McMap. All rights reserved.
config.exs
does not work, the reason I guess is thedev.exs
overrides the config. Hence put this indev.exs
. For more info see this issue on phoenix github.com/phoenixframework/phoenix/issues/962 – Dickman