【问题标题】:Start Phoenix app with cowboy server on different port使用不同端口上的牛仔服务器启动 Phoenix 应用程序
【发布时间】:2015-08-12 23:06:24
【问题描述】:

是否可以使用诸如mix phoenix.server --port=4001 之类的命令从控制台的不同端口上本地启动几个 Phoenix 应用程序?这个当然行不通,但是,也许有类似的方法。

【问题讨论】:

    标签: cowboy phoenix-framework


    【解决方案1】:

    是的!确保将混合配置设置为引用 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 上的此问题
    • 注意 2:您不应将这些行添加到配置文件中,而应编辑现有的行。只需为我的应用添加行,我就遇到了一个神秘的错误。
    【解决方案2】:

    编辑您的 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 描述了这个答案。

    【讨论】:

    • 这行得通。启动 Phoenix 的命令现在是 mix phx.server
    【解决方案3】:

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

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

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

    mix phoenix.server
    

    【讨论】:

      猜你喜欢
      • 2016-03-07
      • 2017-06-09
      • 2020-08-22
      • 1970-01-01
      • 2017-12-04
      • 2017-11-28
      • 1970-01-01
      • 2012-07-18
      • 1970-01-01
      相关资源
      最近更新 更多