2015-08-23 10 views
6

UPDATE: Wenn 'Passagier-Speicher-Statistik' Eingabe Ich zeige:Phusion Passagier funktioniert nicht auf Apache

---Passenger processes--- 
Processes: 0 

Wie das ich beheben? Warum sollte der Passagier nicht gestartet werden, obwohl ich ihn in httpd.conf hinzugefügt und den Apache neu gestartet habe?

Ich habe Probleme, Phusion Passenger Ruby on Rails auf einem Server zu starten. Ich habe alle Anweisungen auf der Phusion-Website befolgt und Passage installiert und Apache VirtualHost geändert und erstellt, um auf das neue Verzeichnis zu verweisen und verifiziert, dass alle .conf-Dateien erfolgreich geladen wurden. Auch httpd -M passagier_modul ist geladen. Ich habe auch erfolgreich Passenger Standalone und Rails Server webrick auf localhost ausgeführt und konnte bestätigen, dass es mit curl funktioniert.

Aber wenn ich versuche, meine Domain aus dem Browser auszuführen, bekomme ich nur eine 404 nicht gefunden oder eine leere Indexdatei, die ich in dem Ordner erstellen, der von der DocumentRoot unter VirtualHost angegeben wird (also weiß ich, dass es geladen wird in das richtige Verzeichnis), aber es lädt nicht Rails Application .... Kann jemand bitte darauf hinweisen, was ich falsch mache? Hier sind meine Einstellungen und config:

ruby -v: 
ruby 2.1.2p95 

rails -v: 
Rails 4.2.3 

passenger -v: 
Phusion Passenger version 5.0.15 

httpd -v: 
Apache/2.2.27 (Unix) 

opearting system: 
CentOS 

uname -i: 
x86_64 

httpd.conf:

Include "/usr/local/apache/conf/includes/mydomain.conf" 
LoadModule passenger_module /usr/local/rvm/gems/ruby-2.1.2/gems/passenger-5.0.15/buildout/apache2/mod_passenger.so 
<IfModule mod_passenger.c> 
PassengerRoot /usr/local/rvm/gems/ruby-2.1.2/gems/passenger-5.0.15 
PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.1.2/wrappers/ruby 
</IfModule> 

/usr/local/apache/conf/includes/mydomain.conf:

<VirtualHost 208.79.235.241:80> 
ServerName mydomain.com 
DocumentRoot /home/clevert/public_html/rails_apps/mydomain.com/public 
PassengerRuby /usr/local/rvm/gems/ruby-2.1.2/wrappers/ruby 
<Directory /home/clevert/public_html/rails_apps/mydomain.com/public> 
Allow from all 
Options -MultiViews 
</Directory> 
</VirtualHost> 

Passagier-config über ruby-command:

Command: /usr/local/rvm/gems/ruby-2.1.2/wrappers/ruby 

fahrgast-con Abb validieren installieren:

Checking whether this Passenger install is in PATH... ✓ 
Checking whether there are no other Passenger installations... ✓ 
Checking whether Apache is installed... ✓ 
Checking whether the Passenger module is correctly configured in Apache... ✓ 
Everything looks good. :-) 
+0

Könnten Sie bitte auch die Ausgabe von 'apachectl configtest' hinzufügen, wenn es Fehler gibt? –

+0

httpd configtest: Syntax OK – Walter

+0

Suchen Sie die Protokolldateien und schauen Sie in sie hinein. – Meier

Antwort

2

Okay, so nach ein paar Wochen der Frustration/Faszination versuchen, dies zu trainieren, ich die Lösung haben, und ich hoffe wirklich, hilft es jemand aus da kämpft man damit!

DAS PROBLEM: Ich hatte sowohl Apache und Litespeed auf meinem Server installiert und das war der einzige Schuldige! Ich habe Litespeed komplett deaktiviert und auf Apache umgeschaltet (du kannst einfach zwischen den beiden wechseln, indem du das WHM-Kontrollfeld benutzt) und die Passagierspeicher-Statistik erneut laufen lassen und alles hat angefangen zu arbeiten! Passenger Auto erschien magisch in den Prozessen und dann die App zeigte sich in den Speicher-Statistiken auch, als ich die App geladen!

2

Es sieht aus wie Sie Ihre PassengerAppRoot Richtlinie fehlen.

Ich führe Passagier erfolgreich auf meinen Ubuntu 14.04 Maschinen. Ich habe ein paar mehr Anweisungen in meiner /etc/apache2/sites-enabled/app.example.com.conf Datei. Ich weiß nicht, ob es für CentOS benötigt wird, aber sie wurden benötigt, um Dinge unter Ubuntu laufen zu lassen.

Außerdem verwende ich rbenv anstelle von rvm und ich bin über Capistrano als deployer auf dem Server bereitstellen.

Hier sind die relevanten Teile meiner app.example.com.conf Datei:

DocumentRoot /srv/http/app.example.com/current/public 
    <Directory /srv/http/app.example.com/current/public> 
    Order allow,deny 
    Allow from all 
    Require all granted 
    </Directory> 

    PassengerRuby /home/deployer/.rbenv/shims/ruby 
    PassengerAppType rack 
    PassengerAppRoot /srv/http/app.example.com/current 
    PassengerStartupFile config.ru 
    PassengerRestartDir /srv/http/app.example.com/current/tmp 
    PassengerDebugLogFile /srv/http/app.example.com/shared/log/passenger.log 
    # 0 = warn; 1 to 3, increasing levels of debugging information 
    PassengerLogLevel 1 
+0

Karl, haben Sie Passagier Prozesse zeigen, wenn Sie einen Passagier-Memory-Stats Befehl ausführen, auch wenn Keine der Apps läuft? Oder müssen Sie die App tatsächlich aus dem Browser laden, um den Passagier zu starten? Ich versuche herauszufinden, ob es automatisch aus dem Apache-Modul geladen werden soll oder auf andere Weise gestartet werden muss ... Ich habe versucht, die Zeile PassengerAppRoot hinzuzufügen und Apache neu zu starten, aber es hat nichts getan – Walter