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 

这个错误是什么意思? 我该如何解决? 我发现这个post,但我的用户已经设置为www www(如果你在链接的文件中看到) 如何更改NGINX用户?

您在configuration中指定的用户www不存在。 要么创build用户,要么select一个存在的用户。

你的其他选项(如果你不想创build一个新的用户)是用下面的代码replacenginx.conf中的用户字段:

 user nobody; 

虽然迈克尔汉普顿的答案是正确的,但这只是答案的一部分。 更完整的版本将是:

  1. 检查用户是否存在
  2. 还要检查你用哪个用户来启动docker集装箱

如果你这样做:

 docker -u 0 .... 

那么即使用户存在于主机系统上也会出现相同的信息。 将-u后面的值更改为用户nginx的id,然后解决这个问题。

创buildwww用户。 在Ubuntu上,这应该使用以下命令和标志完成:

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

我有同样的问题…我select了“nginx”用户,它不存在。 我解决了它重新configuration和重新编译NGINXselect一个现有的。

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

一切都好现在…