Ошибка getpwnam («www») в /etc/nginx/nginx.conf

24

Я скопировал пример nginx.conf на свою коробку ubuntu 12.04 (я не знаю, куда поместить другие файлы conf. Я noob nginx). Когда я пытаюсь запустить nginx, я получаю следующую ошибку:

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

Что означает эта ошибка? Как я могу это исправить? Я нашел это сообщение, но мой пользователь уже настроен на www www (если вы видите в связанном файле) Как мне изменить пользователя NGINX?

bernie2436
источник
Ссылка на nginx.config не работает
Josh Noe

Ответы:

33

Пользователь, указанный вами в вашей конфигурации, wwwне существует. Либо создайте пользователя, либо выберите пользователя, который существует.

Майкл Хэмптон
источник
3
синтаксис: useradd www
Jonesome Reinstate Monica
8

Другой вариант (если вы не хотите создавать нового пользователя) - заменить поле пользователя в nginx.conf на:

user nobody;
Aaron_H
источник
3

Создайте wwwпользователя. В Ubuntu это должно быть сделано с помощью следующей команды и флагов:

sudo adduser --system --no-create-home --shell /bin/false --group --disabled-login www
Джастин
источник
0

Хотя Майкл Хэмптонс ответил правильно, это только часть ответа. Более полная версия будет:

  1. Проверьте, существует ли пользователь
  2. Также проверьте, какой пользователь используется для запуска контейнера Docker.

Если вы делаете:

docker -u 0 ....

то же сообщение появится, даже если пользователь существует в хост-системе. Изменение значения позади -u на id пользователя nginx решает эту проблему.

user637338
источник
0

Версия nginx: nginx / 1.13.9, собранный gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1 ~ 16.04.9), собранный с OpenSSL 1.1.0g 2 ноября 2017

просто используйте

user  nobody nogroup;
Рочмад Сапутра
источник
0

Это команда, которая работает для меня "Scientific Linux"

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

или имя пользователя, www-dataесли вы используете его вместо

adduser  --no-create-home  --system  --user-group --shell /bin/false   www-data  
Салем Ф
источник
-1

У меня была такая же проблема ... Я выбрал пользователя "nginx", и его не было. Я решил переконфигурировать и перекомпилировать NGINX, выбрав существующий.

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

Уже все хорошо...

Хорхе Луис Гуакаран
источник
Параметры компиляции - это способ установить значения по умолчанию для некоторых директив. Конечно, нет необходимости снова компилировать nginx, чтобы изменить их: эти значения по умолчанию перегружены файлами конфигурации.
Ксавье Лукас
Конечно, но мы говорим о первой конфигурации / компиляции в первый раз ...
Хорхе Луис Гуакаран
Где вы это прочитали? Первая конфигурация не имеет ничего общего с компиляцией между прочим.
Ксавье Лукас