2012-02-24 12 views
24

Ho eseguito l'installazione di Phusion Passenger su Ubuntu 10.04, con Apache2. Ogni volta che riavvio il server Apache ho ricevuto il seguente messaggio di errore e l'applicazione Rails non è in esecuzione.Impossibile avviare il watchdog di 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

Ho appena avuto lo stesso problema con apache 2.4, passeggero 4.0.58. Dopo un po 'di ricerche, si è scoperto che la mia micro-istanza EC2 non aveva abbastanza memoria per compilare il modulo passeggero di apache: non funzionava con un errore di memoria insufficiente. L'aggiornamento alla prossima dimensione dell'istanza ha risolto il problema. –

+0

Solo per espandere il problema di Shyam. La compilazione del mio passeggero fallì una volta, riuscì nelle corse successive, ma l'installazione passeggeri fu lasciata in cattivo stato (le successive esecuzioni riuscite non tornarono e correggevano la cattiva compilazione originale_). Ho preso una strada diversa ... ho creato una nuova istanza micro, aggiunto un po 'di swap e visto il Passenger compilare e accendere con successo. –

risposta

60

Mi sono imbattuto nello stesso problema durante la compilazione dal sorgente, ma era intermittente, il che era davvero frustrante (penso che sia necessario per gli ambienti Rails). Non è stato possibile utilizzare gli script del modulo passeggero-install-apache2-module/passenger-install-nginx, perché avevamo bisogno di un'installazione personalizzata di nginx.

Ho finalmente risolto il problema andando a qualunque sia lo passenger-config --root, quindi in esecuzione: rake nginx.

Aggiornamento febbraio 2016 (per autore passeggeri):

Il metodo ufficialmente supportato per compilare PassengerAgent (anche senza la compilazione Nginx, come passeggero-install-nginx-modulo fa) è con questo comando:

passenger-config compile-agent 

Passeggero 5.0.26 e versioni successive rileveranno automaticamente l'errore descritto in questa domanda StackOverflow e suggeriranno automaticamente di eseguire il comando precedente.

+7

Sto usando RVM e ho usato 'rvmsudo rake nginx', e funziona. –

+0

Potrebbe essere necessario passare all'account utente "root" o qualsiasi account utilizzato durante l'installazione di passeggero-install-nginx-module. – s2t2

+1

"passenger-config --root" indica la versione della gemma del passeggero specificata da Gemfile.lock del progetto corrente. Questo potrebbe spiegare perché è stato intermittente per te in quanto diversi progetti di Rails possono utilizzare versioni diverse di Passenger. – Sv1

6

Provare a installare il modulo passeggero eseguendo il modulo script passeggero-install-apache2. Ho avuto lo stesso problema ma su nginx; Ho installato il passeggero tramite gem e poi ricompilato nginx manualmente con il modulo passeggero - questo ha causato un errore da te descritto. Dopo aver eseguito il modulo passeggero-install-nginx tale errore è scomparso.

+1

passeggero-install-nginx-module ha funzionato per me! – AnkitG

9

Ho appena colpito questo errore e ho faticato a trovare una buona risposta, quindi ecco la mia recensione. Nel mio setup ho intenzione di Ubuntu, Apache2, l'ultimo Passenger and Rails 2.3.

  1. installare Ruby e Rubygems NB: fare (molto) che il gem -v è corretto, se è sbagliato farete tutto questo due volte
  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. Aggiungi export PATH=/var/lib/gems/1.8/bin:$PATH a ~/.bashrc
  9. ln -s /usr/lib/passenger-3.0.12 /usr/share/phusion-passenger # => questo risolve un mondo di ferite da fare con PassengerWatchdog. NB: PassengerWatchdog non scende con apt-get ed è per questo che abbiamo preso i binari.
  10. ln -s /usr/lib/passenger-3.0.12 /usr/lib/phusion-passenger # => problemi simili.

Questo viene dalla memoria dopo averlo attraversato per l'ultimo giorno e mezzo, mi metterò in ordine quando dovrò rivederlo.

0

Era da un po 'che avevo riavviato nginx e nel frattempo il percorso per il passeggero era cambiato.Ho guardato nel nginx.conf per vedere ciò che il passenger_root è stato fissato a e si rese conto che era il vecchio valore:

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

ci sono spesso due posti per cambiare:

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

ho riavviato nginx e l'errore era andata.

-2

Ho avuto lo stesso problema sul mio server Nginx.
Nel mio caso, la directory passenger_root non era corretta, a causa dell'aggiornamento delle gemme.

[1] Su Linux, ho cercato il Direttorio del passeggero con il seguente comando:

find/-name PassengerWatchdog 

[2] Ora ho cambiato il mio valore 'passenger_root' a questa lista.
[3] E riavviare il server.

suvankar, Forse dovresti cambiare anche la tua Passeggiata.

Problemi correlati