Das Nginx-Fehlerprotokoll war riesig, daher habe ich ein neues gelöscht und erstellt. Jetzt wird Nginx nicht mehr gestartet


11

Ich habe die Datei /var/log/nginx/error.log gelöscht und dann eine neue erstellt mit:

sudo nano error.log

Dies ls -lazeigt, dass error.log und access.log dieselben Berechtigungen haben.

Wenn ich versuche, nginx zu starten, wird folgende Fehlermeldung angezeigt:

alert: Fehlerprotokolldatei konnte nicht geöffnet werden: open () "/var/log/nginx/error.log" fehlgeschlagene Berechtigung verweigert.

Aktualisieren

Beim Versuch, Nginx zu starten, sehe ich auch:

emerg: /var/run/nginx.pid fehlgeschlagen 13: Berechtigung verweigert.

Antworten:


25

Dies löst Ihr Problem nicht, aber in Zukunft, wenn Sie dies tun

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

Sie kopieren den Inhalt der Datei mit nichts und behalten alle Berechtigungen im Auge.

Nicht nginx-spezifisch, aber stellen Sie außerdem sicher, dass Sie die Anwendung als den Benutzer ausführen, unter dem sie ausgeführt werden soll. Wenn Sie es jemals als root ausgeführt haben, sind alle Berechtigungen Eigentum von root, sodass andere Benutzer es nicht ausführen können.


Wie unterscheidet es sich von der Verwendung echo "" > /file/to/empty? Sind sie beide gleich?
Gowtham Gopalakrishnan

Das sollte genauso sein. Außerdem können Sie alles am Anfang > /file/to/empty
Alex

5

Die übliche Methode zum Drehen der Protokolle mit NginX besteht darin, die Datei umzubenennen und dann /etc/init.d/nginx reload. Der Server startet eine neue Datei und Sie können mit der alten Datei tun, was Sie möchten.

Möglicherweise ist es auch hilfreich, die Konfiguration so zu bearbeiten, dass nicht so viele Protokolle erstellt werden.


2

Schauen Sie sich die Nginx-Konfiguration an und überprüfen Sie, als wen der Server ausgeführt wird. Vermutlich ist der Benutzer Nginx

so :

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

Sollte den Trick machen.


aber warum hat es vorher funktioniert?
Blankman

1
Ich vermute, weil Sie versucht haben, es als root auszuführen, und dann versucht haben, es mit seinem Init-Skript zu starten.
Geraint Jones


nginx.conf sagt: "Benutzer www-Daten"
Blankman

1

Löschen Sie die Datei error.log und nginx erstellt sie selbst.


Ich habe es gelöscht, dann, wenn ich versuche, nginx zu starten, gibt mir die gleiche Berechtigung verweigert Fehler in der Datei /var/log/nginx/error.log
Blankman

Löschen Sie das Protokoll und starten Sie Nginx neu. Das Protokoll wird automatisch erstellt.
WhiteHorse

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.