/etc/nginx/nginx.conf 中的 getpwnam("www") 失败

/etc/nginx/nginx.conf 中的 getpwnam("www") 失败

我复制了nginx.conf示例放到我的 ubuntu 12.04 机器上(我不知道其他配置文件放在哪里。我是 nginx 新手)。当我尝试启动 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 用户?

答案1

您在配置中指定的用户www不存在。请创建该用户,或选择已存在的用户。

答案2

您的另一个选择(如果您不想创建新用户)是用以下内容替换 nginx.conf 中的用户字段:

user nobody;

答案3

创建www用户。在 Ubuntu 上,应使用以下命令和标志完成此操作:

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

答案4

虽然 Michael Hampton 的答案是正确的,但这只是答案的一部分。更完整的版本应该是:

  1. 检查用户是否存在
  2. 还要检查你使用哪个用户启动docker容器

如果你这样做:

docker -u 0 ....

那么即使该用户存在于主机系统上,也会出现同样的消息。将 -u 后面的值更改为用户 nginx 的 id 即可解决此问题。

相关内容