2012-06-07 21 views
8

W moim bieżącym projekcie Ruby on Rails korzystam z serwera Webrick (domyślny) do programowania. Mam oddzielny serwer do testowania aplikacji i chcę ustawić środowisko na Produktach. Użyłem następującej linii, aby uruchomić serwer w trybie produkcyjnym.Uruchamianie szyn w trybie produkcji na serwerze Webrick

rails s -e production 

Problem jest, to działa doskonale, jeśli jej w trybie rozwoju, ale w trybie serwera Dostaję następujący błąd:

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

używam Jammit i POpen4 i moje szyny wersja : 3.0.9. Wersja Ruby 1.8.7. Nie mogę obecnie uaktualnić wersji, ponieważ kilku innych programistów jest zaangażowanych w projekt. Czy ktoś może mi na to poradzić?

Dzięki

+2

Pierwsza sprawa: przy użyciu serwer WEBrick w produkcji jest to zły pomysł. Nie zostało to zaprojektowane i ma bardzo słabe wyniki. Użyj 'thin',' unicorn', ... Druga sprawa: wygląda na to, że gem POpen4 nie jest obecny w twoim pakiecie. Czy umieścisz klej POpen4 w grupie ': development' tylko w swoim pliku gem? Lub uruchomiłeś 'bundle install' z wyłączeniem gemów produkcyjnych z opcją' --without'? –

+0

Właściwie nic nie wspomniałem o POpen4 w Gemfile również tak przy użyciu Webrick do produkcji nie jest dobrym pomysłem, ale używam go na serwerze testowym, aby upewnić się, że działa idealnie – Mujahid

Odpowiedz

1

Wielkie dzięki dla wszystkich, którzy próbowali mi pomóc w rozwiązaniu tego problemu. Zainstalowałem CentOS i wszystko zostało poprawione i działa płynnie.

To może być jakiś problem z serwerem Windows 2008, który używałem wcześniej

dzięki dużo

0

Najlepszym rozwiązaniem jest, aby określić zależności w swojej Gemfile.

Gemfile:

... 
gem 'popen4' 
... 

a następnie uruchomić bundle install stworzyć specyficzną wiązkę klejnoty dla swojej aplikacji.

W przeciwnym razie aplikacja jest zależna od tego, co zainstalowałeś lokalnie na swoim komputerze (prawdopodobnie przez gem install popen4).

Tutaj maszyna produkcyjna nie ma zainstalowanego na nim klej POpen4 ... Zatem innym szybkim (ale nie zalecanym) rozwiązaniem jest ręczne zainstalowanie klejnotu na maszynie produkcyjnej za pomocą gem install popen4.

+0

Dodałem go i wciąż nie ma na to szczęścia :(Przyjmuję, że problem pochodzi z kompresora Jammit, ponieważ używa kompresora yui, będzie tam problem. – Mujahid

+0

@Mujahid hum ok Właśnie zrozumiałem, że popen4 nie jest jedną z twoich zależności, ale zależnością jammit> yui-compressor ... Powinieneś zmienić nazwę swojego pytania, to wcale nie jest kwestia Webrick;) Jednak twój pakiet nie zawiera POpen4 ... możesz spróbować usunąć plik 'Gemfile.lock' i uruchomić' bundle install' na Przelicz zależności ... –

+0

@ Mudżahid, kiedy mówię, abyś "uruchomić pakiet instalacyjny' ==> na maszynie produkcyjnej, a nie na swoim lokalnym dev. –

Powiązane problemy