2012-02-24 13 views
24

Zrobiłem instalację Phusion Passenger na Ubuntu 10.04, z Apache2. Ilekroć restartuję serwer Apache, otrzymałem następujący komunikat o błędzie, a aplikacja Railsowa nie działa.Nie można uruchomić organu nadzoru Phusion Passenger?

[error] *** Passenger could not be initialized because of this error: Unable to start the Phusion Passenger watchdog because its executable (/usr/lib/phusion-passenger/agents/PassengerWatchdog) does not exist. This probably means that your Phusion Passenger installation is broken or incomplete, or that your 'PassengerRoot' directive is set to the wrong value. Please reinstall Phusion Passenger or fix your 'PassengerRoot' directive, whichever is applicable. 
+2

Po prostu miałem ten sam problem z Apache 2.4, pasażer 4.0.58. Po kilku kopaniu okazało się, że moja instancja EC2 micro po prostu nie ma wystarczającej ilości pamięci, aby skompilować moduł pasażera Apache - wystąpił błąd braku pamięci. Aktualizacja do rozmiaru następnej instancji rozwiązała problem. –

+0

Tylko po to, żeby rozwinąć sprawę Shyama. Moja kompilacja pasażera raz się nie powiodła, odniosła sukces w kolejnych biegach, ale instalacja pasażera pozostała w złym stanie (kolejne udane biegi nie powróciły i nie poprawiły oryginalnej złej kompilacji). Poszedłem inną drogą ... stworzyłem nową mikro instancję, dodałem kilka zamian i zobaczyłem, że Pasażer kompiluje się i uruchamia się z powodzeniem. –

Odpowiedz

60

Wpadłem na ten sam problem podczas kompilacji ze źródła, ale było to przerywane, co było naprawdę frustrujące (myślę, że musi działać w środowiskach Railsowych). Nie mogliśmy użyć skryptów typu "zainstaluj pasażera-zainstaluj-apache2-moduł/pasażera-zainstaluj-nginx-moduł", ponieważ potrzebowaliśmy dostosowanej instalacji nginx.

Ostatecznie naprawiłem problem, przechodząc do tego, co jest passenger-config --root, a następnie działając: rake nginx.

Aktualizacja luty 2016 (autor pasażera):

oficjalnie obsługiwana metoda kompilacji PassengerAgent (bez również kompilacji Nginx jako pasażer-install-nginx-moduł robi) jest z tym poleceniem:

passenger-config compile-agent 

Pasażer 5.0.26 i późniejszy automatycznie wykryją błąd opisany w tym pytaniu StackOverflow i automatycznie zasugeruje uruchomienie powyższego polecenia.

+7

Używam RVM i użyłem 'rvmsudo rake nginx', i to działa. –

+0

Może zajść konieczność przełączenia się na konto użytkownika "root" lub dowolne konto używane podczas konfigurowania modułu-pasażera-install-nginx. – s2t2

+1

"Passenger-config --root" wskazuje na wersję klejnotu pasażerskiego, którą określił Gemfile.lock bieżącego projektu. To może wyjaśniać, dlaczego było to dla ciebie sporadyczne, ponieważ różne projekty Railsów mogą korzystać z różnych wersji Pasażera. – Sv1

6

Spróbuj zainstalować moduł pasażera, uruchamiając skrypt-instaluje-moduł-apache2. Miałem ten sam problem, ale na Nginx; Zainstalowałem pasażera za pośrednictwem klejnotu, a następnie zrekompilowałem nginx ręcznie z modułem pasażera - spowodowało to błąd opisany przez Ciebie. Po uruchomieniu modułu-instalacji-nginx-u-pasażera taki błąd zniknął.

+1

Moduł pasażera-instalacja-nginx pracował dla mnie! – AnkitG

9

Właśnie trafiłem ten błąd i starałem się znaleźć dobrą odpowiedź, więc oto moje zapiski. W moim setupie wybieram Ubuntu, Apache2, najnowszy Passenger i Rails 2.3.

  1. zainstalować Ruby i rubygems NB: make (bardzo), że Twój gem -v jest poprawny, czy to źle zrobisz to wszystko dwa razy
  2. sudo gem install passenger
  3. cd /usr/lib
  4. wget http://rubyforge.org/frs/download.php/76005/passenger-3.0.12.tar.gz
  5. tar zxvf passenger-3.0.12.tar.gz
  6. cd passenger-3.0.12
  7. ./bin/passenger-install-apache2-module
  8. Dodaj export PATH=/var/lib/gems/1.8/bin:$PATH do ~/.bashrc
  9. ln -s /usr/lib/passenger-3.0.12 /usr/share/phusion-passenger # => to naprawia świat boli związany z PassengerWatchdog. Uwaga: PassengerWatchdog nie jest kompatybilny z apt-get, dlatego pobraliśmy pliki binarne.
  10. ln -s /usr/lib/passenger-3.0.12 /usr/lib/phusion-passenger # => podobne problemy.

To jest z pamięci, po jej przebiciu przez ostatnie półtora dnia, posprzątam, kiedy będę musiał to jeszcze raz przejrzeć.

0

Minęło trochę czasu, odkąd zrestartowałem nginx, aw międzyczasie zmieniła się ścieżka do pasażera.Spojrzałem w nginx.conf zobaczyć co passenger_root została ustawiona i zrozumiał, że to była stara wartość:

http { 
    passenger_root /home/nginx/rails_app/myapp/shared/bundle/ruby/1.9.1/gems/passenger-enterprise-server-3.0.17; 

Są to często dwa miejsca zmienić:

server { 
    listen 8888; 
    root /home/nginx/rails_app/myapp/current/public; 

I rozpoczęta nginx i błąd zniknął.

-2

Miałem ten sam problem na moim serwerze Nginx.
W moim przypadku katalog passenger_root nie był poprawny z powodu aktualizacji klejnotu.

[1] W systemie Linux, szukałem Directory pasażera za pomocą następującego polecenia:

find/-name PassengerWatchdog 

[2] Teraz zmieniłem 'passenger_root' wartość do tego katalogu.
[3] I ponownie uruchom serwer.

suvankar, Może powinieneś także zmienić swoją Pasażerską Drogę.

Powiązane problemy