2010-11-20 10 views
5

Estoy intentando que la aplicación Rails se implemente bajo Apache, Passenger 3.0.0 y Rails 3.0.3. Estoy recibiendo todo tipo de errores extraños. principalmente gira en torno a lo que creo que está relacionado con bundler o RAILS_ENV.¿Qué usuario está ejecutando mi aplicación Rails?

Lo único no predeterminado de la aplicación es que los entornos de prueba de desarrollo & usan SQLite3 y la producción usa MySQL.

Al presionar la aplicación desde el navegador web Passenger está lanzando errores con respecto a las gemas (sqlite3) que son específicamente (en el Gemfile Y en el database.yml) declaradas como NO parte del entorno de producción.

¿Cómo puedo saber a qué usuario el servidor intenta ejecutar mi aplicación Rails como? Me gustaría asegurarme de que RAILS_ENV esté configurado correctamente para ese usuario, ya que creo que Passenger está intentando ejecutar esta aplicación en modo de desarrollo por algún motivo.

Editar: añadieron resultados de 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 

y 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

¿Puede mostrarnos algunos de los errores? –

Respuesta

9

Por defecto, el pasajero se ejecutará su aplicación como el usuario que posee el archivo config/environment.rb o config.ru, ver http://www.modrails.com/documentation/Users%20guide%20Apache.html#user_switching

pasajeros se ejecutará en el entorno production por defecto a menos que usted le indique otra cosa con el RailsEnv, ver http://www.modrails.com/documentation/Users%20guide%20Apache.html#rails_env

+0

OK. solo lea el enlace user_switching. tratando de hacer que esto funcione ... cualquier idea de lo que el propietario/permiso "debería" ser en 'config/environment.rb'? lo mismo que en el directorio del sitio web en sí? tengo un sitio servido por apache y un enlace simbólico desde w/en esa vista 'estática' principal llamada 'rails' que apunta al directorio de mi aplicación Rails donde está la aplicación. – Meltemi

+1

Creo que el usuario que ejecuta la aplicación es probablemente una pista falsa en su caso. Es más probable que sea un problema de configuración de rieles. ¿Puedes ejecutar './script/console production' desde el directorio de la aplicación en el servidor? Si eso arroja el mismo error sería más fácil de depurar. – malclocke

+0

El propietario de su config.ru/environment.rb debe ser el usuario con el que haya ejecutado 'bundle install'. 'bundle install' se instala en $ HOME/.bundle o ./help dependiendo de la configuración de su Bundler; en el caso de los primeros, $ HOME depende del usuario que invocó 'paquete de instalación'. Por lo tanto, si ejecutó 'paquete de instalación' como 'foobar', también debe asegurarse de que su aplicación Rails se ejecute como 'foobar', de lo contrario no podrá acceder a las gemas que Bundler ha instalado debido a problemas de permisos. – Hongli

3

Usted podría funcionar ps aux | grep httpd para ver lo que el usuario está ejecutando el proceso de apache.

+0

resultados agregados de 'ps aux | grep httpd' arriba. entre las preguntas anteriores ... ¿por qué habría dos usuarios diferentes ejecutando procesos httpd?!? – Meltemi

+0

No estoy seguro. Esto está en tu caja de producción, ¿verdad? – jergason

+0

yup. producción. tenía una aplicación Rails 2.3.5 ejecutándose antes. Tratando de ejecutar 3.0.3 y todo el infierno se está desatando. – Meltemi

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

echo "Detected rails user: $RAILS_USER" 
Cuestiones relacionadas