2012-06-07 6 views
8

En mi proyecto actual Ruby on Rails, estoy usando el servidor webrick (predeterminado) para el desarrollo. Tengo un servidor separado para probar la aplicación y quiero configurar el entorno para los productos que contiene. Usé la siguiente línea para ejecutar el servidor en modo de producción.Rieles en ejecución en un modo de producción en el servidor de webrick

rails s -e production 

La cuestión es, funciona perfectamente si está en el modo de desarrollo, pero en modo servidor Estoy consiguiendo error siguiente:

Started GET "/" for 172.20.7.94 at Thu Jun 07 10:35:45 +0530 2012 
    Processing by FrontendController#dashboard as HTML 
Rendered frontend/dashboard.html.erb within layouts/frontend (3.0ms) 
Completed 200 OK in 50ms (Views: 22.0ms | ActiveRecord: 0.0ms) 


Started GET "/assets/frontend-datauri.css" for 172.20.7.94 at Thu Jun 07 10:35:4 
6 +0530 2012 
    Processing by Jammit::Controller#package as HTML 
    Parameters: {"extension"=>"css", "package"=>"frontend-datauri"} 
Completed 500 Internal Server Error in 190ms 

NameError (uninitialized constant POpen4::Open4): 


Started GET "/assets/frontend.js" for 172.20.7.94 at Thu Jun 07 10:35:46 +0530 2 
012 
    Processing by Jammit::Controller#package as 
    Parameters: {"extension"=>"js", "package"=>"frontend"} 
Completed 500 Internal Server Error in 105ms 

NameError (uninitialized constant POpen4::Open4): 

estoy usando Jammit y POpen4 y mis rieles versiones : 3.0.9. Ruby versión 1.8.7. Actualmente no puedo actualizar la versión ya que varios otros desarrolladores están involucrados en el proyecto. ¿Alguien puede darme una solución para esto?

Gracias

+2

Lo primero: el uso de WEBrick en la producción es una mala idea. No ha sido diseñado para eso y tiene muy malas actuaciones. Use 'thin',' unicorn', ... Segundo: parece que la gema POpen4 no está presente en su paquete. ¿Has puesto tu gema POpen4 en un grupo ': development' solo en tu archivo gem? ¿O ha ejecutado 'bundle install' excluyendo producción gema con una opción' --without'? –

+0

En realidad, no he mencionado nada para POpen4 en Gemfile, también sí, usar webrick para producción no es una buena idea, pero lo estoy usando aquí en un servidor de prueba para asegurarme de que funciona perfectamente – Mujahid

Respuesta

1

Muchas gracias a todos los que han tratado de ayudarme con respecto a este problema. Instalé CentOS y todo ha sido arreglado y funcionando sin problemas.

que pudiera haber algún problema con el servidor de Windows 2008, que yo estaba utilizando anteriormente

Muchas gracias

0

La mejor práctica es especificar sus dependencias en su Gemfile.

Gemfile:

... 
gem 'popen4' 
... 

y ejecute bundle install para crear un paquete específico de las gemas para su aplicación.

De lo contrario, su aplicación depende de lo que haya instalado localmente en su máquina (supongo que a través de gem install popen4).

Aquí su máquina de producción no tiene instalada la joya POpen4 ... Por lo tanto, la otra solución rápida (pero no recomendada) es instalar la gema manualmente en su máquina de producción con gem install popen4.

+0

Lo agregué y todavía no tuve suerte. :(Supongo que el problema es del compresor Jammit, ya que usa yui-compressor habrá un problema allí – Mujahid

+0

@Mujahid hum ok Acabo de entender que popen4 no es una de sus dependencias sino una dependencia de jammit> yui-compressor ... Así que debe cambiar el nombre de su pregunta, no es en absoluto un problema de Webrick;) Aún así, su paquete no contiene POpen4 ... puede intentar eliminar su archivo 'Gemfile.lock' y ejecutar' bundle install' para vuelva a calcular las dependencias ... –

+0

@Mujahid cuando le digo 'ejecutar bundle install' ==> en su máquina de producción, no en su dev local. –

Cuestiones relacionadas