Назад | Перейти на главную страницу

getpwnam («www») не удалось в /etc/nginx/nginx.conf

Я скопировал nginx.conf образец на мой ящик ubuntu 12.04 (я не знаю, куда поместить другие файлы conf. Я nginx noob). Когда я пытаюсь запустить 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?

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

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

user nobody;

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

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

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

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

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

docker -u 0 ....

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

Версия 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;

Это команда, которая работает для меня "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  

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

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

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