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?

bernie2436
quelle
Link zu nginx.config ist kaputt
Josh Noe

Antworten:

33

Der in Ihrer Konfiguration angegebene Benutzer wwwexistiert nicht. Erstellen Sie den Benutzer, oder wählen Sie einen vorhandenen Benutzer aus.

Michael Hampton
quelle
3
Die Syntax lautet: useradd www
Jonesome Reinstate Monica
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;
Aaron_H
quelle
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
Justin
quelle
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.

user637338
quelle
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;
Rochmad Saputra
quelle
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  
Salem F
quelle
-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...

Jorge Luis Guacarán
quelle
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