How do I get 'puma' to start, automatically, when I run `rails server` (like Thin does)

落爺英雄遲暮 提交于 2019-12-20 10:19:37

问题


Normally, when you run rails server it starts Webrick. If you install the 'thin' gem, then 'thin' starts instead. I would like to do the same thing with the 'puma' server.

I see that the start command within railties (lib/rails/commands) calls super, but I can't find what the various options for 'super' are. I have also reviewed many references to Rails within 'thin'.

I found a Changelog entry entitled "Added Thin support to script/server. #488 [Bob Klosinski]" from Oct. of 2008, but that code area has changed significantly since that commit (a93ea88c0623b4f65af98c0eb55924c335bb3ac1).

If someone could direct me to the right section of code, that would be very helpful.


回答1:


After some digging, I've found this answer: https://stackoverflow.com/a/14911994/604526

To make Puma the default, paste this code into script/rails above require 'rails/commands':

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

Puma is the default server now if you use 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

With Rails 4 you simply have to add the puma-gem to the Gemfile. (Tested with Rails 4.0.2 and Puma 2.6.0)




回答2:


At least in Rails 4, you just need to add the following to your Gemfile

gem 'puma'

then run 'bundle', and then when you run 'rails server' and Puma will be used.




回答3:


This works for me. Ruby 2.0.0 Rails 3.2.13 Puma 1.6.3

rails s puma



回答4:


Puma documentation suggests that you prepend #\ -s puma to your config.ru.



来源:https://stackoverflow.com/questions/13365940/how-do-i-get-puma-to-start-automatically-when-i-run-rails-server-like-thi

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!