El registro de errores de nginx era enorme, así que eliminé y creé uno nuevo, ahora nginx no se iniciará


11

He eliminado el /var/log/nginx/error.log archivo, y luego creó uno nuevo utilizando:

sudo nano error.log

Hacerlo ls -lamuestra que error.log y access.log tienen los mismos permisos.

Cuando intento iniciar nginx me sale el error:

alerta: no se pudo abrir el archivo de registro de errores: open () "/var/log/nginx/error.log" falló el permiso denegado.

Actualizar

Al intentar iniciar nginx, también veo:

emerg: /var/run/nginx.pid falló 13: permiso denegado.

Respuestas:


25

Esto no resuelve su problema, pero en el futuro, si lo hace

cat / dev / null> / file / you / want / to / wipe-out

copiará el contenido del archivo sin nada y mantendrá todos los permisos intactos.

No es nginx-speicific, pero además, asegúrese de ejecutar la aplicación como el usuario que se supone que debe ejecutar. Si alguna vez lo ejecutó como root, todos los permisos serán propiedad de root, por lo que otros usuarios no podrán ejecutarlo.


¿Cómo es diferente de usar echo "" > /file/to/empty? ¿Son los dos iguales?
Gowtham Gopalakrishnan

Eso debería ser lo mismo. Además, puede omitir todas las cosas al principio y simplemente hacerlo> /file/to/empty
Alex

5

La forma habitual de rotar los registros con NginX es cambiar el nombre del archivo y luego /etc/init.d/nginx reload. El servidor inicia un nuevo archivo y puede hacer lo que desee con el anterior.

También puede resultarle útil editar la configuración para que no se registre tanto ...


2

eche un vistazo a la configuración de nginx, compruebe quién ejecuta el servidor, ya que supongo que el usuario será nginx

entonces :

chown nginx: /var/run/nginx.pid chown -R nginx: /var/log/nginx

Debería hacer el truco.


pero ¿por qué estaba funcionando antes?
Blankman

1
Sospecho que intentaste ejecutarlo como root y luego intentaste iniciarlo con su script de inicio.
Geraint Jones

bueno, siempre empiezo así, hmm ...
Blankman

nginx.conf dice: "usuario www-data"
Blankman

1

Elimine el archivo error.log y nginx lo creará por sí mismo.


lo eliminé, luego, cuando intento iniciar nginx, me da el mismo error de permiso denegado en el archivo /var/log/nginx/error.log
Blankman,

Elimine el registro y reinicie Nginx. Creará automáticamente el registro.
WhiteHorse

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.