getpwnam ("www") не вдалося в /etc/nginx/nginx.conf


24

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


Посилання на nginx.config порушено
Josh Noe

Відповіді:



8

Інший варіант (якщо ви не хочете створити нового користувача) - замінити поле користувача в nginx.conf на:

user nobody;

3

Створіть wwwкористувача. Для Ubuntu це слід зробити за допомогою наступної команди та прапорів:

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

0

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

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

Якщо ти зробиш:

docker -u 0 ....

тоді те саме повідомлення з’явиться, навіть якщо користувач існує в хост-системі. Зміна значення поза -u на ідентифікатор користувача nginx вирішує цю проблему.


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

Це команда, яка працює для мене "Науковий 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, щоб змінити це: ці значення за замовчуванням перевантажуються файлами конфігурації.
Ксав'є Лукас

Звичайно, але ми говоримо про першу конфігурацію / компіляцію ...
Хорхе Луїс Гуакаран

Де ви це точно читали? Перша конфігурація не має нічого спільного з компіляцією btw.
Ксав'є Лукас
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.