Seguí este proceso para instalar nginx en mi Ubuntu 10.04 Lucid Server http://library.linode.com/web-servers/nginx/installation/ubuntu-10.04-lucid
Me perdí después de crear un script de inicio para iniciar nginx, y luego llamar a /etc/init.d/nginx start. Cuando hice eso, recibí el siguiente error:
Starting nginx_main: Starting /opt/nginx/sbin/nginx...
nginx: [alert] could not open error log file: open() "/opt/nginx/logs/error.log" failed (13: Permission denied)
2012/03/16 18:17:27 [emerg] 859#0: open() "/opt/nginx/logs/access.log" failed (13: Permission denied)
La única forma en que puedo ejecutarlo es si lo uso sudo
y ejecuta el proceso como root
, que es lo que no quiero.
Tenía chown
todo el directorio ( chown -R nginx:nginx /opt/nginx
) y también chmod -R 755
el directorio.
Agregar la user
directiva como lo sugiere CS3 también me da este error, pero con una línea adicional.
Starting nginx_main: Starting /opt/nginx/sbin/nginx...
nginx: [alert] could not open error log file: open() "/opt/nginx/logs/error.log" failed (13: Permission denied)
2012/03/16 18:48:34 [warn] 1606#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /opt/nginx/conf/nginx.conf:2
2012/03/16 18:48:34 [emerg] 1606#0: open() "/opt/nginx/logs/access.log" failed (13: Permission denied)
¿Algunas ideas?
and I've also chmod -R 755 the directory as well
Sigue haciendo esto y eventualmente pagarás un precio por ello. Da miedo presenciar cuántas personas hay en Internet sugiriendo esto como un primer puerto de escala para "solucionar" cualquier problema. Unix no dará comentarios amistosos si haces algo imbécil.Respuestas:
En primer lugar, se supone que los scripts de inicio deben ejecutarse
cuando no ha iniciado sesión como root (cuando el usuario conectado está habilitado para sudo)
En segundo lugar, cuando ejecuta sudo /etc/init.d/nginx start ==> dispara el proceso maestro nginx como procesos raíz y de trabajo como el usuario que especificó en su directiva de usuario nginx.conf (por ejemplo, www-data)
¿Puede confirmar si todo su proceso en nginx está siendo ejecutado por root al emitir sudo /etc/init.d/nginx start?
con
p.ej.
Sugerencia: Ubuntu 10.04 LTS tiene una excelente compatibilidad con paquetes ubuntu del equipo nginx. Entonces, ¿por qué molestarse en instalar desde la fuente si no tiene requisitos para un módulo personalizado dentro de nginx?
Consulta aquí
El paquete binario ya viene con los módulos más necesarios.
fuente
Agregue la directiva de usuario dentro de nginx.conf
fuente
Mis 5 kopek con respecto a esto
nginx -V 2>&1 | sed 's/ --/\n--/g' | grep path
.. obtendrá todos los otros parches, que debe anular en la configuración personalizada proporcionada o con la opción "-g".
fuente
nginx -V 2>&1 | sed 's/ --/\n--/g' | egrep --color '.*path.*|$'
En mi caso, faltaba una referencia de archivo en mi nginx.conf:
error_log /var/log/nginx/error.log warn;
Se convirtió en: error_log warn;
Así que accidentalmente eliminé /var/log/nginx/error.log referencia que causó un mensaje de error de permiso denegado.
fuente