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.

Blankman
fuente

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.

Alex
fuente
¿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 ...

Alister Bulman
fuente
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.

Geraint Jones
fuente
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.

Martin Fjordvald
fuente
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