无法启动Phusion Passenger看门狗?

我在Ubuntu 10.04上使用Apache2完成了Phusion Passenger设置。 每当我重新启动Apache服务器时,我收到以下错误消息,并且Rails应用程序未运行。

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

我从源代码编译时遇到了同样的问题,但它是间歇性的,这真的令人沮丧(我认为它必须w / Rails环境)。 我们无法使用passenger-install-apache2-module / passenger-install-nginx-module脚本,因为我们需要一个自定义的nginx安装。

我终于解决了这个问题,去了passenger-config --root是什么,然后运行: rake nginx

2016年2月更新(乘客作者):

官方支持的编译PassengerAgent的方法(没有编译Nginx,就像passenger-install-nginx-module那样)是用这个命令:

 passenger-config compile-agent 

Passenger 5.0.26及更高版本将自动检测此StackOverflow问题中描述的错误,并将自动建议运行上述命令。

我自己刚刚遇到这个错误并且很难找到一个好的答案,所以这是我的写作。 在我的设置中,我将使用Ubuntu,Apache2,最新的Passenger和Rails 2.3。

  1. 安装Ruby和Rubygems注意:make(非常)确定你的gem -v是正确的,如果它错了你会做两次这两次
  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. export PATH=/var/lib/gems/1.8/bin:$PATH到〜/ .bashrc
  9. ln -s /usr/lib/passenger-3.0.12 /usr/share/phusion-passenger #=>这解决了与PassengerWatchdog有关的伤害世界。 注意:PassengerWatchdog没有使用apt-get,这就是我们抓住二进制文件的原因。
  10. ln -s /usr/lib/passenger-3.0.12 /usr/lib/phusion-passenger #=>类似的问题。

这是在最后一天半的时间里通过记忆而来的记忆,当我必须再次通过它时,我会整理一下。

尝试通过运行脚本passenger-install-apache2-module安装乘客模块。 我有同样的问题,但在nginx; 我通过gem安装了乘客,然后用乘客模块手动重新编译了nginx – 这导致了您所描述的错误。 在运行passenger-install-nginx-module之后,这样的错误就消失了。

自从我重新启动nginx以来已经有一段时间了,与此同时,乘客的路径发生了变化。 我查看了nginx.conf以查看passenger_root设置,并意识到它是旧的值:

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

通常有两个地方需要改变:

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

我重新启动了nginx,错误消失了。

我在Nginx-Server上遇到了同样的问题。
就我而言,由于gem更新, passenger_root目录不正确。

[1]在Linux上,我使用以下命令搜索了乘客目录:

 find / -name PassengerWatchdog 

[2]现在我将’passenger_root’值更改为此目录。
[3]然后重启服务器。

suvankar,也许你应该改变你的乘客路径。