2015-08-23 17 views
6

UPDATE: Quando si entra in 'passeggeri-memory-stats' sto mostrando:Phusion passeggero non funziona su Apache

---Passenger processes--- 
Processes: 0 

Come risolve questo? Perché il passeggero non dovrebbe partire anche se l'ho aggiunto in httpd.conf e riavviato apache?

Ho problemi a trovare Phusion Passenger per eseguire Ruby on Rails su un server. Ho seguito tutte le istruzioni sul sito web di Phusion e installato passeggero e modificato e creato Apache VirtualHost per puntare alla nuova directory e verificato che tutti i file .conf siano stati caricati correttamente. Anche httpd -M passeggero_modulo è caricato. Ho anche eseguito con successo il server Webrick di Passenger Standalone e Rails su localhost ed è stato in grado di verificare che funzioni con il ricciolo.

Ma quando provo a eseguire il mio dominio dal browser, ottengo solo un 404 non trovato o un file indice vuoto che creo in quella cartella specificata da DocumentRoot sotto VirtualHost (quindi so che sta caricando .conf e andando nella directory giusta) ma non sta caricando l'applicazione Rails .... Qualcuno può indicare cosa sto facendo male? Qui sono le mie impostazioni e configurazione:

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> 

passeggero-config circa ruby-comando:

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

passeggero-con fig convalidare-installazione:

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

Potrebbe anche aggiungere l'output di 'apachectl configtest' se ci sono errori? –

+0

httpd configtest: Sintassi OK – Walter

+0

Trova i file di registro e guarda all'interno di essi. – Meier

risposta

2

Va bene così, dopo un paio di settimane di frustrazione/fascino che cercano di lavorare su questo, ho la soluzione e spero davvero che aiuta qualcuno fuori ci sto lottando con questo!

IL PROBLEMA: Avevo installato sia Apache che Litespeed sul mio server e quello era l'unico colpevole! Ho completamente disabilitato litespeed e passato ad apache (puoi passare facilmente tra i due usando il pannello di controllo WHM) e ho ripreso le statistiche di memoria del passeggero, e tutto ha iniziato a funzionare! L'auto del passeggero si è mostrata magicamente nei processi e poi l'app si è mostrata nelle statistiche della memoria anche quando ho caricato l'app!

2

Sembra che non trovi il tuo direttiva PassengerAppRoot.

Sto eseguendo correttamente il passeggero sulle mie macchine Ubuntu 14.04. Ho alcune altre direttive nel mio file /etc/apache2/sites-enabled/app.example.com.conf. Non so se sono necessari per CentOS, ma erano necessari per far funzionare le cose su Ubuntu.

Inoltre, sto usando rbenv anziché rvm e sto distribuendo via Capistrano come deployer sul server.

Ecco le parti rilevanti della mia app.example.com.conf di file:

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, si hanno processi passeggero che mostrano quando si esegue un comando passeggero-memoria-stats anche se nessuna delle app è in esecuzione? O devi effettivamente caricare l'app dal browser per avviare il passeggero? Sto cercando di capire se dovrebbe essere caricato automaticamente dal modulo apache o deve essere avviato in qualche altro modo ... Ho provato ad aggiungere la riga PassengerAppRoot e riavviare Apache ma non ha fatto nulla – Walter