web-dev-qa-db-fra.com

Impossible de démarrer le chien de garde Phusion Passenger?

J'ai effectué une configuration Phusion Passenger sur Ubuntu 10.04, avec Apache2. À chaque fois que je redémarre le serveur Apache, le message d'erreur suivant s'affiche et l'application Rails n'est pas en cours d'exécution.

[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.
26
suvankar

J'ai rencontré le même problème lors de la compilation à partir des sources, mais c'était intermittent, ce qui était vraiment frustrant (je pense que cela doit être avec les environnements Rails). Nous ne pouvions pas utiliser les scripts passagers-install-Apache2-module/passagers-install-nginx-module, car nous avions besoin d'une installation nginx personnalisée.

J'ai finalement résolu le problème en accédant à la méthode passenger-config --root, puis en exécutant: rake nginx.

Mise à jour de février 2016 (par l'auteur du passager):

La méthode officiellement prise en charge pour compiler PassengerAgent (sans également compiler Nginx, comme le fait passager-install-nginx-module) consiste à utiliser cette commande:

passenger-config compile-agent

Passenger 5.0.26 et versions ultérieures détecteront automatiquement l'erreur décrite dans cette question de StackOverflow et suggéreront automatiquement l'exécution de la commande ci-dessus.

61
dylst

Je viens juste de frapper moi-même cette erreur et j'ai du mal à trouver une bonne réponse, alors voici ma description… .. Dans ma configuration, je choisis Ubuntu, Apache2, le dernier Passenger and Rails 2.3.

  1. Installez Ruby et Rubygems NB: assurez-vous que votre gem -v est correct, sinon vous ferez tout cela deux fois
  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. Ajoutez export PATH=/var/lib/gems/1.8/bin:$PATH à ~/.bashrc
  9. ln -s /usr/lib/passenger-3.0.12 /usr/share/phusion-passenger # => Cela corrige un monde de blessures à faire avec PassengerWatchdog. NB: PassengerWatchdog ne fournit pas apt-get, raison pour laquelle nous avons récupéré les fichiers binaires.
  10. ln -s /usr/lib/passenger-3.0.12 /usr/lib/phusion-passenger # => problèmes similaires.

Cela vient de mémoire après l'avoir battu pendant le dernier jour et demi, je vais ranger quand je dois le refaire.

9
TomDunning

Essayez d’installer le module passagers en exécutant le script passagers-install-Apache2-module .J'ai eu le même problème mais sous nginx; J'ai installé passager via gem, puis j'ai recompilé manuellement nginx avec le module passager, ce qui a provoqué l'erreur décrite par vous. Après avoir exécuté_pilot-install-nginx-module, cette erreur a disparu.

7
Piotr

Cela faisait longtemps que je n'avais pas redémarré nginx et, entre-temps, le chemin des passagers avait changé. J'ai regardé dans le nginx.conf pour voir ce que le passenger_root était défini et me suis rendu compte que c'était l'ancienne valeur:

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

Il y a souvent deux endroits à changer:

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

J'ai redémarré nginx et l'erreur a disparu.

0
Kevin Trotter