Я скопировал 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
Хотя ответ Майкла Хэмптона правильный, это только часть ответа. Более полная версия была бы:
Если вы это сделаете:
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
Уже все хорошо...