2013-04-07 13 views
48

Gemfile Un nuovo progetto rotaie mostra:Come posso usare unicorno come "rotaie s"?

# Use unicorn as the app server 
gem 'unicorn' 

rotaie s spettacoli --help:

Usage: rails server [mongrel, thin, etc] [options] 

Eppure, facendo:

rails s unicorn 

ottengo:

/Users/patrick/.rvm/gems/[email protected]/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/[email protected]/gems/rack-1.4.5/lib/rack/handler.rb:63:in `try_require' 
from /Users/patrick/.rvm/gems/[email protected]/gems/rack-1.4.5/lib/rack/handler.rb:16:in `get' 
from /Users/patrick/.rvm/gems/[email protected]/gems/rack-1.4.5/lib/rack/server.rb:272:in `server' 
from /Users/patrick/.rvm/gems/[email protected]/gems/railties-3.2.13/lib/rails/commands/server.rb:59:in `start' 
from /Users/patrick/.rvm/gems/[email protected]/gems/railties-3.2.13/lib/rails/commands.rb:55:in `block in <top (required)>' 
from /Users/patrick/.rvm/gems/[email protected]/gems/railties-3.2.13/lib/rails/commands.rb:50:in `tap' 
from /Users/patrick/.rvm/gems/[email protected]/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>' 

I'v E usato unicorno in passato su altri progetti, ma dovevo sempre eseguire il comando unicorno e specificare un file di configurazione che è un po 'un dolore. Mi chiedo come posso semplicemente farlo funzionare usando "rails s" ... È possibile?

+0

Non credo 'unicorn' può essere chiamato da 'rails server' direttamente. Controlla questo - https://github.com/samuelkadolph/unicorn-rails – Dogbert

+2

Basta digitare 'unicorno' funziona per me, stessa quantità di tasti come' rails s' –

risposta

57

Sembra che la gemma unicorn-rails menzionata da @Dogbert possa effettivamente essere utilizzata per rendere Unicorn il gestore rails server.

Semplicemente includono gem "unicorn-rails" (e per Rails 4.2.4, gem "rack-handlers") nel Gemfile, eseguire bundle install installare la gemma, allora è possibile eseguire:

$ rails server unicorn 

Anche se una volta è installato unicorn-rails, Unicorn dovrebbe essere il app server predefinito in modo da poter eseguire anche rails server e utilizzare Unicorn (supponendo che non sia anche Thin o Mongrel nel tuo Gemfile, nel qual caso potrebbero entrare in conflitto e potresti voler rimuovere quelli che non stai utilizzando) .

+5

Trovo molto interessante che il file gemma abbia un 'unicorno' piuttosto di 'unicorn_rails' come suggerimento. Trovo anche interessante il fatto che questa pagina web dice: "unicorn_rails è stato realizzato per essere una transizione più semplice per gli utenti delle versioni pre-rack di Rails. La manpage incoraggia invece gli utenti di Rails 3 a utilizzare un unicorno semplice". http://blog.engineyard.com/2010/everything-you-need-to-know-about-unicorn – patrick

+1

In quale Gemfile vedi 'unicorno'? Ho suggerito di aggiungere la gemma 'unicorn-rails 'al tuo Gemfile. –

+4

Può essere contrassegnato come accettato o hai ulteriori dubbi? –

24

Un'opzione migliore potrebbe essere semplicemente eseguire direttamente il server unicorno.

bundle exec unicorn -p 3000 # default port is 8080 
+0

Come posso aumentare i lavoratori? –

16
gem 'rack-handlers' 

rails server unicorn 
+0

L'altra bellezza dell'uso di gestori di rack è che carica automaticamente il file config/unicorn.rb. –

+0

questo ha risolto il mio problema. grazie mille –

+1

Grazie per questo. – Elvn

0

Tuttavia la risposta Steven è il modo più semplice per farlo.

corro unicorn su ambiente di sviluppo tramite un task rake:

lib/task/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 

run:

rake s

Riferimento http://jing.io

1

Non credo sia possibile utilizzare unicorno come "rotaie". Usa questo -

Aggiungi gem unicorn al file gem ed esegui l'installazione del pacchetto.

e quindi eseguire uno dei seguenti comandi -

$ unicorno -p 3000

o

$ unicorn_rails -p 3000

+0

Non è chiaro come questo risponda alla domanda qui? –

+0

Ho modificato la mia risposta, penso che questo aiuterà. – prashant

Problemi correlati