2010-11-20 16 views
5

Sto cercando di ottenere un'app Rails distribuita con Apache, Passenger 3.0.0 e Rails 3.0.3. Sto ricevendo tutti i tipi di strani errori. principalmente ruotando attorno a ciò che penso sia legato a bundler o RAILS_ENV.Quale utente sta eseguendo la mia app Rails?

Solo l'aspetto non predefinito dell'applicazione è che gli ambienti di sviluppo & utilizzano SQLite3 e la produzione utilizza MySQL.

Quando si colpisce l'app dal browser Web Passenger genera errori relativi a gems (sqlite3) che sono specificatamente (nel Gemfile AND nel database.yml) dichiarati come NON parte dell'ambiente di produzione.

Come posso sapere a quale utente il server sta tentando di eseguire la mia app Rails come? Mi piacerebbe assicurarmi che RAILS_ENV sia impostato correttamente per quell'utente poiché penso che Passenger stia cercando di eseguire questa app in modalità sviluppo per qualche motivo.

Edit: aggiunto risultati di ps aux | grep httpd

myserver:current elvis$ ps aux | grep httpd 
elvis  4424 0.4 0.0 66152 192 s000 S+ 11:03AM 0:00.00 grep httpd 
_www  1950 0.0 0.2 93024 2544 ?? S 11:40PM 0:01.23 /usr/sbin/httpd -D FOREGROUND 
root  1918 0.0 1.0 93024 10244 ?? Ss 11:39PM 0:02.75 /usr/sbin/httpd -D FOREGROUND 
_www  4084 0.0 0.2 93024 2536 ?? S  9:41AM 0:00.15 /usr/sbin/httpd -D FOREGROUND 

e ls -l ...

myserver:current elvis$ ls -l config 
total 48 
-rw-rw-r-- 1 aaron admin 1923 Nov 19 21:40 application.rb 
-rw-rw-r-- 1 aaron admin 326 Nov 19 21:40 boot.rb 
-rw-rw-r-- 1 aaron admin 741 Nov 19 21:40 database.yml 
-rw-rw-r-- 1 aaron admin 1257 Nov 19 21:40 deploy.rb 
-rw-rw-r-- 1 aaron admin 149 Nov 19 21:40 environment.rb 
drwxrwxr-x 5 aaron admin 170 Nov 19 21:40 environments 
drwxrwxr-x 7 aaron admin 238 Nov 19 21:40 initializers 
drwxrwxr-x 3 aaron admin 102 Nov 19 21:40 locales 
-rw-rw-r-- 1 aaron admin 1808 Nov 19 21:40 routes.rb 
+0

Puoi mostrarci alcuni degli errori? –

risposta

9

Per impostazione predefinita, il passeggero verrà eseguito la vostra applicazione come l'utente che possiede il file config/environment.rb o config.ru, vedere http://www.modrails.com/documentation/Users%20guide%20Apache.html#user_switching

passeggeri verrà eseguito in ambiente production di default a meno che non gli si dice contrario alla RailsEnv, vedere http://www.modrails.com/documentation/Users%20guide%20Apache.html#rails_env

+0

OK. leggi il link user_switching. cercando di far funzionare tutto questo ... qualche idea su cosa il proprietario/permesso "dovrebbe" essere su 'config/environment.rb'? come nella stessa directory del sito web? Ho un sito servito da apache e un link simbolico da w/in quella vista 'statica' principale chiamata 'rails' che punta alla mia directory dell'app Rails in cui si trova l'app. – Meltemi

+1

Penso che l'utente che sta eseguendo l'app sia probabilmente una falsa pista nel tuo caso. È più probabile che si tratti di un problema di configurazione dei binari. Puoi eseguire './script/console production' dalla directory app sul server? Se ciò genera lo stesso errore, sarebbe più facile eseguire il debug. – malclocke

+0

Il proprietario di config.ru/environment.rb dovrebbe essere l'utente con cui è stato eseguito il "pacchetto di installazione" con. 'bundle install' installa su $ HOME/.bundle o su ./help a seconda delle impostazioni di Bundler; in caso del primo, $ HOME dipende dall'utente che ha invocato 'bundle install'. Quindi, se esegui "bundle install" come "foobar", devi anche assicurarti che l'app Rails sia in esecuzione come "foobar", altrimenti non può accedere alle gemme installate da Bundler a causa di problemi di autorizzazione. – Hongli

3

È possibile eseguire ps aux | grep httpd per vedere ciò che l'utente è in esecuzione il processo apache.

+0

ha aggiunto i risultati di 'ps aux | grep httpd' sopra. tra le domande precedenti ... perché due utenti diversi eseguivano i processi httpd?!? – Meltemi

+0

Non sono sicuro. Questo è nella tua scatola di produzione, giusto? – jergason

+0

sì. produzione. aveva in precedenza un'applicazione Rails 2.3.5 in esecuzione. Cercando di ottenere 3.0.3 in esecuzione e tutto l'inferno si sta scatenando. – Meltemi

0
RAILS_USER=$(stat -c '%U' /YOUR_PATH/environment.rb) 

echo "Detected rails user: $RAILS_USER" 
Problemi correlati