La variable Gemfile
d'un nouveau projet Rails indique:
# Use Unicorn as the app server
gem 'Unicorn'
Rails s --help
montre:
Usage: Rails server [mongrel, thin, etc] [options]
Pourtant, en faisant:
Rails s Unicorn
Je reçois:
/Users/patrick/.rvm/gems/Ruby-1.9.3-head@keynote/gems/rack-1.4.5/lib/rack/handler.rb:63:in `require': cannot load such file -- rack/handler/Unicorn (LoadError)
from /Users/patrick/.rvm/gems/Ruby-1.9.3-head@keynote/gems/rack-1.4.5/lib/rack/handler.rb:63:in `try_require'
from /Users/patrick/.rvm/gems/Ruby-1.9.3-head@keynote/gems/rack-1.4.5/lib/rack/handler.rb:16:in `get'
from /Users/patrick/.rvm/gems/Ruby-1.9.3-head@keynote/gems/rack-1.4.5/lib/rack/server.rb:272:in `server'
from /Users/patrick/.rvm/gems/Ruby-1.9.3-head@keynote/gems/railties-3.2.13/lib/Rails/commands/server.rb:59:in `start'
from /Users/patrick/.rvm/gems/Ruby-1.9.3-head@keynote/gems/railties-3.2.13/lib/Rails/commands.rb:55:in `block in <top (required)>'
from /Users/patrick/.rvm/gems/Ruby-1.9.3-head@keynote/gems/railties-3.2.13/lib/Rails/commands.rb:50:in `tap'
from /Users/patrick/.rvm/gems/Ruby-1.9.3-head@keynote/gems/railties-3.2.13/lib/Rails/commands.rb:50:in `<top (required)>'
from script/Rails:6:in `require'
from script/Rails:6:in `<main>'
J'ai déjà utilisé Unicorn dans d'autres projets, mais je devais toujours exécuter la commande Unicorn
et spécifier un fichier de configuration, ce qui est un peu pénible. Je me demande comment je peux simplement le faire fonctionner en utilisant Rails s...
Est-ce possible?
Il semble que le Unicorn-Rails
gem mentionné par @Dogbert puisse réellement être utilisé pour faire de Unicorn le gestionnaire Rails server
.
Incluez simplement gem "Unicorn-Rails"
(et pour Rails 4.2.4, gem "rack-handlers"
) dans votre Gemfile
, exécutez bundle install
pour installer la gem, puis vous pouvez exécuter:
$ Rails server Unicorn
Bien qu'une fois que Unicorn-Rails
soit installé, Unicorn devrait être le serveur d'applications par défaut, vous pouvez donc simplement exécuter Rails server
et utiliser Unicorn (en supposant que Thin ou Mongrel ne soient pas également présents dans Gemfile
, auquel cas ils pourraient supprimer ceux que vous n'utilisez pas).
Une meilleure option pourrait simplement consister à exécuter directement le serveur Unicorn.
bundle exec Unicorn -p 3000 # default port is 8080
gem 'rack-handlers'
Rails server Unicorn
Je ne pense pas qu'il soit possible d'utiliser Unicorn comme "Rails s". Utilisez ceci -
Ajoutez la gemme 'Unicorn' au fichier gem et lancez l'installation en groupe.
puis lancez l’une des commandes suivantes -
Licorne $ -p 3000
ou
$ Unicorn_Rails -p 3000
Cependant, la réponse de Steven
est la manière la plus simple de le faire.
Je lance Unicorn
sur l'environnement de développement via une tâche rake:
lib/tasks/dev_Unicorn.rake:
task :server do
# optional port parameter
port = ENV['PORT'] ? ENV['PORT'] : '3000'
puts 'start Unicorn development'
# execute Unicorn command specifically in development
# port at 3000 if unspecified
sh "cd #{Rails.root} && Rails_ENV=development Unicorn -p #{port}"
end
# an alias task
task :s => :server
courir:
rake s
Référence http://jing.io