【问题标题】:How do I get 'puma' to start, automatically, when I run `rails server` (like Thin does)当我运行“rails server”时,如何让“puma”自动启动(就像 Thin 一样)
【发布时间】:2012-11-02 04:31:42
【问题描述】:

通常,当您运行 rails server 时,它会启动 Webrick。如果您安装 'thin' gem,则会启动 'thin'。我想对'puma'服务器做同样的事情。

我看到 railties (lib/rails/commands) 中的 start 命令调用 super,但我找不到“super”的各种选项。我还查看了许多在“瘦”中对 Rails 的引用。

我从 2008 年 10 月发现了一个名为“Added Thin support to script/server.#488 [Bob Klosinski]”的变更日志条目,但自那次提交 (a93ea88c0623b4f65af98c0eb55924c335bb3ac1) 以来,该代码区域发生了显着变化。

如果有人可以将我引导到正确的代码部分,那将非常有帮助。

【问题讨论】:

    标签: ruby-on-rails puma


    【解决方案1】:

    Puma documentation 建议您将 #\ -s puma 添加到您的 config.ru

    【讨论】:

    • 谢谢。试过了。没有运气。仍然得到“Booting WEBrick”或“Booting Thin”。我想知道这是否是 Rails 错误?
    • @MattScilipoti 一定是 Rack 的问题。但我不认为这是一个错误,而是你只是缺少一些设置。
    【解决方案2】:

    经过一番挖掘,我找到了这个答案:https://stackoverflow.com/a/14911994/604526

    要使 Puma 成为默认值,请将此代码粘贴到上面的 script/rails 中 require 'rails/commands':

    require 'rack/handler'
    Rack::Handler::WEBrick = Rack::Handler.get(:puma)
    

    如果你使用rails s,Puma 现在是默认服务器

    rails s
    => Booting Puma
    => Rails 3.2.12 application starting in development on http://0.0.0.0:3000
    => Call with -d to detach
    => Ctrl-C to shutdown server
    Connecting to database specified by database.yml
    Puma 1.6.3 starting...
    * Min threads: 0, max threads: 16
    * Environment: development
    * Listening on tcp://0.0.0.0:3000
    

    导轨 4

    使用 Rails 4,您只需将 puma-gem 添加到 Gemfile。 (使用 Rails 4.0.2 和 Puma 2.6.0 测试)

    【讨论】:

    • 这对我不起作用。但我认为那是因为我的应用正在使用瘦。
    • 我该如何做相反的事情?我不希望 puma 在开发中默认加载。
    【解决方案3】:

    这对我有用。 Ruby 2.0.0 Rails 3.2.13 Puma 1.6.3

    rails s puma
    

    【讨论】:

    • 这让我很生气,因为 ARGV[0] 不为空。 reload_libs 加载 lib/tasks/* 并且我假设如果设置了 ARGV[0],我想将其作为命令执行。
    【解决方案4】:

    至少在 Rails 4 中,您只需将以下内容添加到您的 Gemfile 中

    gem 'puma'
    

    然后运行'bundle',然后当你运行'rails server'时,就会使用Puma。

    【讨论】:

    • 这行得通。现在如果我能弄清楚如何让它在运行rails server时自动加载config/puma.rb...
    • echo 'alias start_puma="bundle exec puma -p 3000 -S ~/puma -C config/puma.rb"' >> ~/.bash_profile && source ~/.bash_profile THEN USE start_puma
    • 刚刚在 Rails 4.2 上测试并运行 bundle exec rails s 将启动 puma 并自动从 config/puma.rb 加载配置设置。
    猜你喜欢
    • 2022-06-14
    • 1970-01-01
    • 1970-01-01
    • 2018-10-01
    • 2013-09-07
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多