Unable to start the Phusion Passenger watchdog?

2019-01-21 09:25发布

问题:

I have done a Phusion Passenger setup on Ubuntu 10.04, with Apache2. Whenever I restart the Apache server I got the following error message, and the Rails application is not running.

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

回答1:

I ran into the same problem when compiling from source, but it was intermittent, which was really frustrating (I think it has to w/ Rails environments). We couldn't use the passenger-install-apache2-module/passenger-install-nginx-module scripts, because we needed a customized nginx installation.

I finally fixed the problem by going to whatever the passenger-config --root is, then running: rake nginx.

Update February 2016 (by Passenger author):

The officially supported method to compile PassengerAgent (without also compiling Nginx, as passenger-install-nginx-module does) is with this command:

passenger-config compile-agent

Passenger 5.0.26 and later will automatically detect the error described in this StackOverflow question, and will automatically suggest running the above command.



回答2:

I've just hit this error myself and struggled to find a good answer, so here's my writeup. In my setup I'm going for Ubuntu, Apache2, the latest Passenger and Rails 2.3.

  1. Install Ruby and Rubygems NB: make (very) sure your gem -v is correct, if it's wrong you'll do all this twice
  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. Add export PATH=/var/lib/gems/1.8/bin:$PATH to ~/.bashrc
  9. ln -s /usr/lib/passenger-3.0.12 /usr/share/phusion-passenger # => this fixes a world of hurt to do with PassengerWatchdog. NB: PassengerWatchdog doesn't come down with apt-get which is why we grabbed the binaries.
  10. ln -s /usr/lib/passenger-3.0.12 /usr/lib/phusion-passenger # => similar issues.

This is from memory following thrashing it through for the last day and a half, I'll tidy up when I have to go through it again.



回答3:

Try to install passenger module by running script passenger-install-apache2-module . I had same problem but on nginx; I installed passenger via gem and then recompiled nginx manually with passenger module - this caused error described by you. After running passenger-install-nginx-module such error disappeared.



回答4:

It had been a while since I had restarted nginx and in the meantime the path to passenger had changed. I looked in the nginx.conf to see what the passenger_root was set to and realized that it was the old value:

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

There are often two places to change:

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

I restarted nginx and the error was gone.



回答5:

I had the same issue on my Nginx-Server.
In my case, the passenger_root directory was not correct, because of gem update.

[1] On Linux, i searched the passenger Directory with the following Command:

find / -name PassengerWatchdog

[2] Now i changed my 'passenger_root' Value to this Directory.
[3] And restart the Server.

suvankar, Maybe you should change your Passenger Path too.