私は、Apache2を使用して、Ubuntu 10.04で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.
ソースからコンパイルするときに同じ問題に遭遇しましたが、それは断続的であり、それは本当にイライラしました(// Rails環境でなければならない)と思います)。 -Apache2-module/passenger-install-nginx-moduleスクリプト。カスタマイズしたnginxインストールが必要だったためです。
passenger-config --root
が何であるかを調べ、次にrake nginx
を実行することで、最終的に問題を修正しました。
2016年2月更新(旅客著者による):
PassengerAgentをコンパイルするために公式にサポートされている方法(passenger-install-nginx-moduleのようにNginxもコンパイルしない)は、次のコマンドを使用します。
passenger-config compile-agent
Passenger 5.0.26以降では、このStackOverflowの質問で説明されているエラーが自動的に検出され、上記のコマンドの実行が自動的に提案されます。
私はこのエラーに自分でぶつかっただけで、良い答えを見つけるのに苦労したので、ここに私の要約を示します。私のセットアップでは、Ubuntu、Apache2、最新の乗客、およびRails 2.3。
gem -v
は正しいです。間違っている場合は、このすべてを2回行いますSudo gem install passenger
cd /usr/lib
wget http://rubyforge.org/frs/download.php/76005/passenger-3.0.12.tar.gz
tar zxvf passenger-3.0.12.tar.gz
cd passenger-3.0.12
./bin/passenger-install-Apache2-module
export PATH=/var/lib/gems/1.8/bin:$PATH
to〜/ .bashrcln -s /usr/lib/passenger-3.0.12 /usr/share/phusion-passenger
#=>これにより、PassengerWatchdogに関連する害のある世界が修正されます。注意:PassengerWatchdogにはapt-getがありません。これが、バイナリを取得した理由です。ln -s /usr/lib/passenger-3.0.12 /usr/lib/phusion-passenger
#=>同様の問題。これは、最後の1日半の間それをスラッシングした後の記憶からです、私はそれをもう一度通過しなければならないときは片付けます。
スクリプト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;
多くの場合、変更する場所は2つあります。
server {
listen 8888;
root /home/nginx/Rails_app/myapp/current/public;
Nginxを再起動したところ、エラーは発生しませんでした。