Ich verwende node.js
Nginx als Webserver, der auf Slackware 14.1 läuft.
Ich habe eine Seite erstellt, die eine Datei hochlädt. Auf meinem Entwicklungsrechner (wie Debian) funktioniert es einwandfrei, aber in der Produktion (Slackware-Server) erhalte ich diesen Fehler /var/log/nginx/error.log
:
2015/10/09 15:08:44 [crit] 1231#0: *5 open() "/var/lib/nginx/client_body/0000000003" failed (13: Permission denied), client: 10.0.0.22, server: localhost, request: "POST /home/perfil_usuario/upload HTTP/1.1", host: "aluno.fio.edu.br", referrer: "http://aluno.fio.edu.br/home/perfil_usuario/upload"
Und Nginx gibt ein zurück 500 Internal Server Error
.
Ich habe in vielen Posts nach Korrekturen gesucht und diese ausprobiert, aber der Fehler besteht weiterhin.
Antwort1
Wie die Fehlermeldung besagt, handelt es sich um eineBerechtigungenAusgabe.
Die Ursache hierfür liegt normalerweise darin, dass der Nginx-Prozessbenutzer www-data
beispielsweise keinen Lese-/Ausführungszugriff auf eines der übergeordneten Verzeichnisse hat.
Überprüfen Sie alles /var/lib/nginx/client_body/
und stellen Sie sicher, dass die Berechtigung auf jeder Verzeichnisebene korrekt ist, um das Problem zu lösen.
Antwort2
In meinem Fall war das Problem, dass der Besitz von /var/lib/nginx falsch war. Alle anderen Verzeichnisse, in die nginx schreibt, gehörten www-data, während das nginx-Verzeichnis root gehörte. In diesem Fall ist die beste Lösung, den Verzeichnisbesitz so zu ändern, dass er mit dem der anderen Verzeichnisse übereinstimmt, in die nginx schreibt.
Antwort3
In meinem Fall wurde der Besitz von /var/lib/nginx auf www-data:adm und die Berechtigung auf 770 gesetzt.
Änderungen haben mir geholfen, war
- chown-Wurzel:Wurzel /var/lib/nginx/
- chmod 0755 /var/lib/nginx
Auch /var/lib/nginx/tmp war anders. Der Besitz und die Berechtigung wurden gemäß Punkt 1 und Punkt 2 aktualisiert.
und der Inhalt in /var/lib/nginx/tmp wurde erwähnt
drwx------. 2 www-data root 6 Sep 29 23:37 uwsgi
drwx------. 2 www-data root 6 Sep 29 23:37 scgi
drwx------. 2 www-data root 6 Sep 29 23:37 fastcgi
drwx------. 10 www-data root 78 Okt 20 12:17 Proxy
drwx------. 2 www-data root 6 Okt 20 12:20 client_body
Nachdem Sie diese Berechtigungen und Eigentümer festgelegt haben, starten Sie Nginx neu. Sie werden dann keine Berechtigungsverweigerungsfehler mehr sehen und Nginx gibt keinen internen Serverfehler 500 mehr aus und ich habe das erwartete Ergebnis gesehen. Danke