2012-05-30 19 views
5

Configuré un servidor web OSX para una aplicación de rieles que se ejecuta en nginx. Cuando comienzo manualmente el servidor, la aplicación rieles funciona bien, pero cuando reinicio el servidor siempre me dan el mensaje de error de pasajerosnginx, pasajero, rieles: no se carga ese archivo --bundler

No existe el fichero a cargar --bundler

supongo que tiene que hacer algo con el lanzamiento Daemon configuro manualmente:

# /Library/LaunchDaemons/org.nginx.ngnx.plist 

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>Label</key> 
    <string>nginx</string> 
    <key>UserName</key> 
    <string>MyUser</string> 
    <key>ProgramArguments</key> 
    <array> 
     <string>/usr/local/Cellar/nginx/1.0.11/sbin/nginx</string> 
     <string>-g</string> 
     <string>daemon off;</string> 
    </array> 
    <key>KeepAlive</key> 
    <true/> 
    <key>NetworkState</key> 
    <true/> 
    <key>LaunchOnlyOnce</key> 
    <true/> 
</dict> 
</plist> 

como se ve, yo uso MyUser como nombre de usuario en el plist. El servidor nginx se inicia después del arranque y se ejecuta como MiUsuario, pero aparece este mensaje de error.

Cuando lo reinicio en la línea de comandos usando sudo nginx -s stop && nginx todo funciona bien.

¿Alguna idea de por qué?

edición

mi nginx.conf se parece a esto:

env GEM_HOME=/usr/local/rvm/gems/[email protected]/gems; 
worker_processes 1; 

events { 
    worker_connections 1024; 
} 

http { 
    include mime.types; 
    default_type application/octet-stream; 
    sendfile on; 
    keepalive_timeout  60 60; 
    send_timeout   120; 

    recursive_error_pages on; 

    error_log /var/log/nginx/error.log; 
    access_log /var/log/nginx/access.log; 

    gzip on; 
    gzip_http_version 1.1; 
    gzip_comp_level 4; 
    gzip_proxied any; 
    gzip_vary on; 
    gzip_min_length 1100; 
    gzip_buffers 32 16k; 

    #server_tokens off; 
    tcp_nopush on; 
    tcp_nodelay on; 
    keepalive_requests 0; 

    passenger_default_user eveadmin; 
    passenger_default_group staff; 
    passenger_root /usr/local/rvm/gems/[email protected]/gems/passenger-3.0.12; 
    passenger_ruby /usr/local/rvm/rubies/ruby-1.9.2-p290/bin/ruby; 


    server { 
    listen 8444; 
    #server_name intranet.local; 
    root /Users/eveadmin/rails/intranet/public; 
    passenger_enabled on; 
    rails_env development; 
    } 
} 

error i get

+0

¿Está el bundler realmente instalado? ¿Cómo está Ruby instalado? –

+0

todo funciona cuando inicio manualmente nginx, el problema es que nginx no se inicia correctamente cuando la máquina arranca. así que sí, el paquete está instalado. ruby instalado usando homebrew/rvm. – tmaximini

+0

Parece un problema de entorno. ¿Cómo se ve tu nginx.conf? –

Respuesta

0

Mis 2 centavos: Pruebe a establecer la variable de entorno GEM_HOME en su configuración de nginx.

+0

lamentablemente esto no ayuda – tmaximini

0

Intenta configurar passenger_default_user y passenger_default_group en tu nginx.conf.

El valor predeterminado es nobody, que puede haber causado sus problemas.

Consulte Phusion Passenger users guide para obtener más información.

+0

gracias, pero no ayudó, actualicé mi nginx conf en la publicación original – tmaximini

+0

en realidad creo que el nginx.conf está bien porque si comienzo manualmente, funciona. Creo que el problema se debe a que /Library/LaunchDaemons/org.nginx.ngnx.plist – tmaximini

0

¿Usó sudo cuando instaló rubygems o bundler? Si es así, intente reinstalarlos localmente.

+0

están instalados localmente ... – tmaximini

0

He experimentado este problema también con el paquete. En ciertos entornos, si ejecuto bundle w/sudo obtendré el error que está viendo y si lo ejecuto sin sudo, funciona bien.

Creo que puede ser porque sus variables $PATH y $GEM_HOME no se configuran porque el entorno del shell de su usuario (probablemente bash) no está cargado. Tal vez debería cambiar su mando a algo como esto:

/bin/bash -l -c '/usr/local/Cellar/nginx/1.0.11/sbin/nginx' 

Si eso no funciona, ¿ha intentado sacar la llave Nombre de usuario fuera de su demonio de lanzamiento y ver lo que sucede?

+0

gracias, lo intentaré mañana ... – tmaximini

+0

hmm ahora nginx ya no se inicia cuando reinicio servidor ... – tmaximini

+0

puede intentar agregar un daemon que hace/bin/bash -l -c 'echo $ PATH >> somelogfile.log' y verificar el contenido del archivo de registro –

Cuestiones relacionadas