2012-05-30 12 views
7

Después de haber desplegado un sitio de prueba Rails 3.2.3 muy básico a un servidor de "producción" (no realmente en producción, afortunadamente!) Con RVM Ruby 1.9.3-p194, encuentro lo siguiente para ser verdad, de los comandos enumeran aquí:Rails consola vs servidor diferencias en el servidor de producción

╔══════════════════════════════════════╤═══╗ 
║ command issued      │OK?║ 
╟──────────────────────────────────────┼───╢ 
║ bundle exec rails console   │ N ║ 
║ bundle exec rails console production │ Y ║ 
║ bundle exec rails server    │ Y ║ 
║ bundle exec rails server production │ N ║ 
╚══════════════════════════════════════╧═══╝ 

Mi primera pregunta: ¿se esperaba esto? (yo habría pensado que el patrón en la columna de la derecha debe ser N-Y-N-Y.)

Más información: bundle exec rails console falla por la razón comprensible que la gema sqlite3 no está instalado en el servidor. Sin embargo, bundle exec rails server production falla con una huella mucho menos comprensible:

$ bundle exec rails server production 
Exiting 
/home/spkspike/www/spike.sampablokuper.com/releases/20120530134819/vendor/ruby/1.9.1/gems/rack-1.4.1/lib/rack/handler.rb:63:in `require': cannot load such file -- rack/handler/production (LoadError) 
from /home/spkspike/www/spike.sampablokuper.com/releases/20120530134819/vendor/ruby/1.9.1/gems/rack-1.4.1/lib/rack/handler.rb:63:in `try_require' 
from /home/spkspike/www/spike.sampablokuper.com/releases/20120530134819/vendor/ruby/1.9.1/gems/rack-1.4.1/lib/rack/handler.rb:16:in `get' 
from /home/spkspike/www/spike.sampablokuper.com/releases/20120530134819/vendor/ruby/1.9.1/gems/rack-1.4.1/lib/rack/server.rb:269:in `server' 
from /home/spkspike/www/spike.sampablokuper.com/releases/20120530134819/vendor/ruby/1.9.1/gems/railties-3.2.3/lib/rails/commands/server.rb:59:in `start' 
from /home/spkspike/www/spike.sampablokuper.com/releases/20120530134819/vendor/ruby/1.9.1/gems/railties-3.2.3/lib/rails/commands.rb:55:in `block in <top (required)>' 
from /home/spkspike/www/spike.sampablokuper.com/releases/20120530134819/vendor/ruby/1.9.1/gems/railties-3.2.3/lib/rails/commands.rb:50:in `tap' 
from /home/spkspike/www/spike.sampablokuper.com/releases/20120530134819/vendor/ruby/1.9.1/gems/railties-3.2.3/lib/rails/commands.rb:50:in `<top (required)>' 
from script/rails:6:in `require' 
from script/rails:6:in `<main>' 

Mi segunda pregunta: la mejor manera de solucionar este error?

Respuesta

18

¿No quieres que se inicia el servidor en el modo de producción que utiliza el entorno de producción?

rails server -e production 

La diferencia entre el medio ambiente sintaxis rieles consola y raíles del servidor ambiente -e es un poco de un PITA

+0

Para servidor delgado esto es correcto .... También para WEBrick tendrá que ejecutar RAILS_ENV = Producción rieles –

3

En el caso de la producción de la consola se especifica el entorno y en el caso del servidor se especifica algo más (probablemente qué servidor usar webrick/...).

lo tanto, si desea especificar el medio ambiente hacen:

ENV=production rails server 
Cuestiones relacionadas