38

I copied the nginx.conf sample onto my ubuntu 12.04 box (I don't know where to put the other conf files. I'm an nginx noob). When I try to start nginx I get the following error:

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

What does this error mean? How can I fix it? I found this post but my user is already set to www www (if you see in the linked file) How do I change the NGINX user?

bernie2436
  • 641
  • 2
  • 7
  • 9

8 Answers8

53

The user you specified in your configuration, www, doesn't exist. Either create the user, or choose a user that does exist.

Michael Hampton
  • 252,907
13

Your other option (if you don't want to create a new user) is to replace the user field in nginx.conf with:

user nobody;
Aaron_H
  • 249
7

Create the www user. On Ubuntu this should be done using the following command and flags:

sudo adduser --system --no-create-home --shell /bin/false --group --disabled-login www
Justin
  • 5,668
4

nginx version: nginx/1.13.9 built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.9) built with OpenSSL 1.1.0g 2 Nov 2017

just use

user  nobody nogroup;
0

you can also check the list of current users by cat '/etc/passwd' and find is there nginx, www-data, www, or other likely server users available and choose one to add to you nginx.conf file next to user line, if you don't want to create new users

0

While Michael Hamptons answer is correct, it is only part of the answer. A more complete version would be:

  1. Check if the user exists
  2. Also check which user you use to start the docker container

If you do:

docker -u 0 ....

then the same message will appear even if the user exists on the host system. Changing the value behind -u to the id of user nginx then solves this problem.

0

This is the command that's work for me "Scientific Linux"

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

or the user name www-data if you use it instead

adduser  --no-create-home  --system  --user-group --shell /bin/false   www-data  
Salem F
  • 173
-1

I had the same issue... I chose "nginx" user and it didn't exist. I solved it reconfiguring and recompiling NGINX choosing an existing one.

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

Everything is OK now...