getpwnam („www”) nie powiodło się w /etc/nginx/nginx.conf

24

Skopiowałem próbkę nginx.conf na moje urządzenie Ubuntu 12.04 (nie wiem, gdzie umieścić inne pliki conf. Jestem nginx noob). Kiedy próbuję uruchomić nginx, pojawia się następujący błąd:

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

Co oznacza ten błąd? Jak mogę to naprawić? Znalazłem ten post, ale mój użytkownik jest już ustawiony na www www (jeśli widzisz w połączonym pliku) Jak zmienić użytkownika NGINX?

bernie2436
źródło
Link do strony nginx.config jest zepsuty
Josh Noe

Odpowiedzi:

33

Użytkownik określony w konfiguracji wwwnie istnieje. Utwórz użytkownika lub wybierz istniejącego użytkownika.

Michael Hampton
źródło
3
składnia jest następująca: useradd www
Jonesome Reinstate Monica
8

Inną opcją (jeśli nie chcesz tworzyć nowego użytkownika) jest zastąpienie pola użytkownika w nginx.conf przez:

user nobody;
Aaron_H
źródło
3

Utwórz wwwużytkownika. W systemie Ubuntu należy to zrobić za pomocą następującego polecenia i flag:

sudo adduser --system --no-create-home --shell /bin/false --group --disabled-login www
Justin
źródło
0

Chociaż odpowiedź Michaela Hamptonsa jest poprawna, to tylko część odpowiedzi. Bardziej kompletna wersja to:

  1. Sprawdź, czy użytkownik istnieje
  2. Sprawdź także, którego użytkownika używasz do uruchamiania kontenera dokowanego

Jeśli zrobisz:

docker -u 0 ....

wtedy ten sam komunikat pojawi się, nawet jeśli użytkownik istnieje w systemie hosta. Zmiana wartości za -u na identyfikator użytkownika nginx rozwiązuje ten problem.

użytkownik637338
źródło
0

Wersja nginx: nginx / 1.13.9 zbudowany przez gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1 ~ 16.04.9) zbudowany z OpenSSL 1.1.0g 2 listopada 2017

po prostu użyj

user  nobody nogroup;
Rochmad Saputra
źródło
0

To polecenie, które działa dla mnie „Scientific Linux”

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

lub nazwę użytkownika, www-datajeśli go użyjesz

adduser  --no-create-home  --system  --user-group --shell /bin/false   www-data  
Salem F.
źródło
-1

Miałem ten sam problem ... Wybrałem użytkownika „nginx” i nie istniał. Rozwiązałem to, zmieniając i ponownie kompilując NGINX wybierając istniejący.

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

Już wszystko dobrze...

Jorge Luis Guacarán
źródło
Opcje kompilacji są sposobem na ustawienie wartości domyślnych dla niektórych dyrektyw. Oczywiście nie trzeba ponownie kompilować nginx, aby je zmienić: te wartości domyślne są przeciążone plikami konfiguracyjnymi.
Xavier Lucas
Oczywiście, ale mówimy o pierwszej konfiguracji / kompilacji ...
Jorge Luis Guacarán
Gdzie dokładnie to przeczytałeś? Pierwsza konfiguracja nie ma nic wspólnego z kompilacją btw.
Xavier Lucas