getpwnam ("www") ist in /etc/nginx/nginx.conf fehlgeschlagen


24

Ich habe das nginx.conf- Beispiel auf meine Ubuntu 12.04-Box kopiert (ich weiß nicht, wo ich die anderen conf-Dateien ablegen soll. Ich bin ein Nginx Noob). Wenn ich versuche, nginx zu starten, wird folgende Fehlermeldung angezeigt:

abe-lens-laptop@abe:/etc$ sudo service nginx start
Starting nginx: nginx: [emerg] getpwnam("www") failed in /etc/nginx/nginx.conf:1
nginx: configuration file /etc/nginx/nginx.conf test failed

Was bedeutet dieser Fehler? Wie kann ich es reparieren? Ich habe diesen Beitrag gefunden, aber mein Benutzer ist bereits auf www www eingestellt (wenn Sie in der verknüpften Datei sehen). Wie ändere ich den NGINX-Benutzer?


Link zu nginx.config ist kaputt
Josh Noe

Antworten:



8

Die andere Möglichkeit (wenn Sie keinen neuen Benutzer erstellen möchten) besteht darin, das Benutzerfeld in der Datei nginx.conf durch Folgendes zu ersetzen:

user nobody;

3

Erstellen Sie den wwwBenutzer. Unter Ubuntu sollte dies mit dem folgenden Befehl und den folgenden Flags erfolgen:

sudo adduser --system --no-create-home --shell /bin/false --group --disabled-login www

0

Während Michael Hamptons Antwort richtig ist, ist sie nur ein Teil der Antwort. Eine vollständigere Version wäre:

  1. Überprüfen Sie, ob der Benutzer vorhanden ist
  2. Überprüfen Sie auch, welchen Benutzer Sie zum Starten des Docker-Containers verwenden

Wenn Sie tun:

docker -u 0 ....

Dann wird dieselbe Meldung angezeigt, auch wenn der Benutzer auf dem Host-System vorhanden ist. Durch Ändern des Werts hinter -u in die ID des Benutzers nginx wird dieses Problem behoben.


0

nginx-Version: nginx / 1.13.9 erstellt von gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1 ~ 16.04.9) erstellt mit OpenSSL 1.1.0g 2. November 2017

benutz einfach

user  nobody nogroup;

0

Dies ist der Befehl, der für mich "Scientific Linux" funktioniert

adduser  --no-create-home  --system  --user-group --shell /bin/false   www

oder den Benutzernamen, www-datawenn Sie ihn stattdessen verwenden

adduser  --no-create-home  --system  --user-group --shell /bin/false   www-data  

-1

Ich hatte das gleiche Problem ... Ich wählte "Nginx" Benutzer und es existierte nicht. Ich habe es gelöst, indem ich NGINX neu konfiguriert und kompiliert habe, indem ich ein vorhandenes ausgewählt habe.

./configure --prefix = / opt / nginx --user = myUser --group = myUsergroup

Alles ist jetzt ok...


Mit Kompilierungsoptionen können Sie Standardwerte für einige Anweisungen festlegen. Es ist natürlich nicht notwendig, nginx erneut zu kompilieren, um diese zu ändern: Diese Standardwerte sind durch Konfigurationsdateien überladen.
Xavier Lucas

Natürlich, aber es handelt sich um die erstmalige Konfiguration / Zusammenstellung ...
Jorge Luis Guacarán

Wo hast du das genau gelesen? Die erste Konfiguration hat übrigens nichts mit der Kompilierung zu tun.
Xavier Lucas
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.