2012-06-07 12 views
8

Nel mio progetto Ruby on Rails, sto utilizzando il server webrick (predefinito) per lo sviluppo. Ho un server separato per testare l'applicazione e voglio impostare l'ambiente per i prodotti in esso contenuti. Ho usato la seguente riga per eseguire il server in modalità produzione.Esecuzione di binari su una modalità di produzione nel server Webrick

rails s -e production 

Il problema è, funziona perfettamente se in modalità di sviluppo, ma in modalità server che sto ricevendo seguente errore:

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): 

Sto usando Jammit e Popen4 e le mie rotaie versioni : 3.0.9. Ruby versione 1.8.7. Attualmente non posso aggiornare la versione poiché molti altri sviluppatori sono coinvolti nel progetto. Qualcuno può darmi una soluzione per questo.

Grazie

+2

Prima cosa: utilizzando webrick nella produzione è una cattiva idea. Non è stato progettato per questo e ha prestazioni molto povere. Usa 'thin',' unicorn', ... Seconda cosa: sembra che la gemma POpen4 non sia presente nel tuo bundle. Hai inserito la tua gemma POpen4 in un gruppo ': development' solo nel tuo file gem? Oppure hai eseguito 'bundle install' escludendo la gemma di produzione con l'opzione' --without'? –

+0

In realtà non ho menzionato nulla per POpen4 in Gemfile anche sì usando webrick per la produzione non è una buona idea, ma sto usando qui su un server di test per assicurarmi che funzioni perfettamente – Mujahid

risposta

1

Grazie mille per tutti coloro che hanno cercato di aiutarmi in merito a questo problema. Ho installato CentOS e tutto è stato risolto e funzionante senza intoppi.

che potrebbe essere qualche problema con il server di Windows 2008 che usavo in precedenza

Grazie mille

0

La pratica migliore è quella di specificare le dipendenze nella tua Gemfile.

Gemfile:

... 
gem 'popen4' 
... 

e quindi eseguire bundle install per creare un pacchetto specifico di gemme per la vostra applicazione.

Altrimenti la tua app si affida a ciò che hai installato localmente sul tuo computer (suppongo tramite gem install popen4).

Qui la macchina di produzione non ha la gemma POpen4 installata su di essa ... Quindi l'altra soluzione rapida (ma non consigliata) è installare la gemma manualmente sulla macchina di produzione con gem install popen4.

+0

L'ho aggiunto e ancora senza fortuna per quello :(Presumo che il problema sia dovuto al compressore Jammit poiché usa yui-compressor ci sarà un problema lì dentro – Mujahid

+0

@Mujahid hum ok Ho appena capito che popen4 non è una delle tue dipendenze ma una dipendenza da jammit> yui-compressor ... Quindi dovresti rinominare la tua domanda, non è affatto un problema di Webrick;) Tuttavia, il tuo bundle non contiene POpen4 ... puoi provare a rimuovere il tuo file 'Gemfile.lock' ed eseguire' bundle install' a ricalcola le dipendenze ... –

+0

@Mujahid quando ti dico di eseguire 'bundle install' ==> sulla tua macchina di produzione, non sul tuo dev locale. –

Problemi correlati