2012-11-13 82 views
26

通常,當您運行rails server時,它會啓動Webrick。如果你安裝了'薄'寶石,那麼'瘦'開始。我想用'puma'服務器做同樣的事情。當我運行rails服務器時,如何自動啓動'puma'(如Thin)

我看到在railties(lib/rails/commands)中的start命令調用超級,但我找不到'超級'的各種選項。我還在「瘦」中回顧了許多對Rails的引用。

我發現有權從2008年的十月「腳本/服務器加入了自動精簡支持。#488 [鮑勃Klosinski]」一Changlog段,但由於該犯的代碼地區的顯著改變(a93ea88c0623b4f65af98c0eb55924c335bb3ac1)。

如果有人能指引我到代碼的正確部分,那將非常有幫助。

回答

52

一些挖後,我發現這個答案:https://stackoverflow.com/a/14911994/604526

爲了使彪馬默認情況下,將此代碼粘貼到腳本/上述軌道要求的導軌上/命令「:

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

彪馬默認的服務器現在,如果你使用rails s

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,你只需要彪馬,寶石添加到Gemfile中。 (使用Rails 4.0.2和Puma 2.6.0測試)

+2

這應該是公認的答案 –

+0

這不適用於我。但我認爲這是因爲我的應用程序正在使用瘦。 – betomoretti

+0

我該如何做相反的事?我不希望美洲獅在開發中默認加載。 – abhishek77in

2

Puma documentation建議您在config.ru之前加上#\ -s puma

+0

謝謝。試過了。沒有運氣。仍然得到「引導WEBrick」或「引導薄」。我不知道這是否是一個Rails錯誤? –

+0

@MattScilipoti它必須是Rack的東西。但我不認爲這是一個錯誤,而只是錯過了一些設置。 – RocketR

+0

感謝您的'config.ru' :) – Sairam

9

這對我有用。紅寶石2.0.0的Rails 3.2.13彪馬1.6.3

rails s puma 
+0

這讓我有點擔心,因爲ARGV [0]不是空的。 reload_libs加載lib/tasks/*,我假設如果設置了ARGV [0],我想將它作爲命令執行。 – pedz

16

至少在軌道4,5,你只需要以下添加到您的Gemfile

gem 'puma' 

然後運行 ​​'捆綁',然後當你運行'軌道服務器'和彪馬將被使用。

+1

這起作用。現在,如果我只能弄清楚如何在運行'rails server'時自動加載config/puma.rb ... – odigity

+1

根據這個,你不能:https://github.com/puma/puma/issues/512 – odigity

+2

echo'alias start_puma =「bundle exec puma -p 3000 -S〜/ puma -C config/puma.rb」'>>〜/ .bash_profile && source〜/ .bash_profile THEN USE start_puma – blnc

相關問題