Ich habe mit Ubuntu 10.04 ein Phusion Passenger-Setup mit Apache2 durchgeführt. Bei jedem Neustart des Apache-Servers wurde die folgende Fehlermeldung angezeigt, und die Rails-Anwendung wird nicht ausgeführt.
[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.
Beim Kompilieren aus dem Quellcode bin ich auf das gleiche Problem gestoßen, aber es war zeitweilig, was wirklich frustrierend war (ich denke, es hat mit Rails-Umgebungen zu tun). Wir konnten die Skripts für das Passagier-Installations-Apache2-Modul/Passagier-Installations-Nginx-Modul nicht verwenden, da wir eine angepasste Nginx-Installation benötigten.
Ich behebte schließlich das Problem, indem ich zu dem passenger-config --root
ging und dann lief: rake nginx
.
Update Februar 2016 (von Passagierautor):
Die offiziell unterstützte Methode zum Kompilieren von PassengerAgent (ohne auch Nginx zu kompilieren, wie das Passenger-Install-Nginx-Modul dies tut) ist mit diesem Befehl:
passenger-config compile-agent
Passagier 5.0.26 und höher erkennt automatisch den in dieser StackOverflow-Frage beschriebenen Fehler und schlägt automatisch vor, den obigen Befehl auszuführen.
Ich bin gerade auf diesen Fehler gestoßen und habe mich bemüht, eine gute Antwort zu finden, also hier mein Bericht ... In meinem Setup werde ich Ubuntu, Apache2, den neuesten Passenger und Rails 2.3.
gem -v
korrekt ist. Wenn dies nicht der Fall ist, werden Sie dies alles zweimal tunSudo 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
zu ~/.bashrc hinzuln -s /usr/lib/passenger-3.0.12 /usr/share/phusion-passenger
# => Dies behebt eine mit PassengerWatchdog verbundene Verletzungswelt. NB: PassengerWatchdog kommt mit apt-get nicht aus dem Grund, weshalb wir die Binaries packten.ln -s /usr/lib/passenger-3.0.12 /usr/lib/phusion-passenger
# => ähnliche Probleme.Dies ist aus der Erinnerung, nachdem ich die letzten anderthalb Tage durchgeprügelt hatte. Ich werde aufräumen, wenn ich es noch einmal durchgehen muss.
Versuchen Sie, das Beifahrermodul zu installieren, indem Sie das Skript Passenger-Install-Apache2-Modul ausführen Ich hatte das gleiche Problem, aber auf nginx. Ich habe Beifahrer via gem installiert und dann nginx manuell mit Beifahrer-Modul neu kompiliert - dies hat den von Ihnen beschriebenen Fehler verursacht. Nach dem Ausführen des Passenger-Install-Nginx-Moduls verschwand dieser Fehler.
Es war schon eine Weile her, seit ich Nginx neu gestartet hatte, und in der Zwischenzeit hatte sich der Weg zum Passagier geändert. Ich schaute in nginx.conf
, um zu sehen, worauf der passenger_root
eingestellt war und erkannte, dass es der alte Wert war:
http {
passenger_root /home/nginx/Rails_app/myapp/shared/bundle/Ruby/1.9.1/gems/passenger-enterprise-server-3.0.17;
Es gibt oft zwei Orte, an denen man sich ändern kann:
server {
listen 8888;
root /home/nginx/Rails_app/myapp/current/public;
Ich habe Nginx neu gestartet und der Fehler war weg.