web-dev-qa-db-ja.com

(Thailのように)「Railsサーバー」を実行したときに「プーマ」を自動的に起動するにはどうすればよいですか?

通常、Rails serverを実行すると、Webrickが起動します。 「thin」gemをインストールすると、代わりに「thin」が起動します。 「プーマ」サーバーでも同じことをしたいと思います。

Railties(lib/Rails/commands)内のstartコマンドがsuperを呼び出しているようですが、「super」のさまざまなオプションが見つかりません。また、Rails「thin」内への多くの参照を確認しました。

2008年10月に「Added Thin support to script/server。#488 [Bob Klosinski]」というタイトルの変更ログエントリを見つけましたが、そのコード領域はコミット以降大幅に変更されました(a93ea88c0623b4f65af98c0eb55924c335bb3ac1)。

誰かがコードの正しいセクションに私を導くことができれば、それは非常に役に立ちます。

29
Matt Scilipoti

掘り下げた後、私はこの答えを見つけました: https://stackoverflow.com/a/14911994/604526

Pumaをデフォルトにするには、このコードを上のスクリプト/ Railsに貼り付けて、 'R​​ails/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

Rails 4

Rails 4を使用すると、単にPuma-gemをGemfileに追加する必要があります。(Rails 4.0.2およびPuma 2.6.0でテスト済み)

58
Simon Woker

少なくともRails 4では、次の内容をGemfileに追加するだけです

gem 'puma'

次に「バンドル」を実行し、「Railsサーバー」を実行するとPumaが使用されます。

18
Ryan Sandridge

これは私にとってはうまくいきます。 Ruby 2.0.0 Rails 3.2.13 Puma 1.6.3

Rails s puma
10
user2110836

Pumaのドキュメント は、先頭に#\ -s pumaからconfig.ru

2
RocketR