一些導遊(example)推薦給啓動一個的Web服務器`軌服務器puma`與`puma`
bundle exec rails server puma
但我總是剛開始的服務器puma
直接
bundle exec puma
當通過rails server
啓動puma(或任何其他服務器)時會發生什麼特殊情況?
一些導遊(example)推薦給啓動一個的Web服務器`軌服務器puma`與`puma`
bundle exec rails server puma
但我總是剛開始的服務器puma
直接
bundle exec puma
當通過rails server
啓動puma(或任何其他服務器)時會發生什麼特殊情況?
當您使用rails s <server>
時,服務器從Rails命令啓動,並且知道Rails環境。
這使得例如可以使用由rails server command
提供的任何特徵和標誌。
rails s --help
Usage: rails server [mongrel, thin, etc] [options]
-p, --port=port Runs Rails on the specified port.
Default: 3000
-b, --binding=ip Binds Rails to the specified ip.
Default: 0.0.0.0
-c, --config=file Use custom rackup configuration file
-d, --daemon Make server run as a Daemon.
-u, --debugger Enable ruby-debugging for the server.
-e, --environment=name Specifies the environment to run this server under (test/development/production).
Default: development
-P, --pid=pid Specifies the PID file.
Default: tmp/pids/server.pid
-h, --help Show this help message.
例如,您可以調試器附着在經過--debugger
會話或守護進程的服務器。
第二個好處是,您可以版本Puma
實例,因爲您必須列出Gemfile
中的寶石。如果你像bundle exec
那樣開始它,這已經是事實。相反,當您只需運行$ puma
(或$ bundle exec puma
)時,您不會通過Rails系統。 Puma
將試圖找到一個機架的啓動文件,將使用它(它的工作原理,因爲Rails提供在應用程序根config.ru
腳本。
一般來說,有是,如果你並不需要傳遞給特定的選項沒有真正的區別服務器。我喜歡彪馬,我傾向於在某些項目中使用它,即使在生產我們用麒麟,從而運行$ puma
作爲一個獨立的命令很簡單,因爲我並不需要把它添加到Gemfile
。
然而,如果我的整個堆棧使用Puma
,我可能會用$ rails s puma
。這也是command suggested in the documentation。
當運行rails s puma配置文件,你有沒有得到加載......這是缺點。這是一個使用配置文件(config/puma.rb)啓動服務器的快捷別名。 JUST COPY PASTE 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