nginx 报错: [emerg] getpwnam(“www“) failed

3 篇文章 1 订阅

目录

问题现象:

问题分析:

解决方法:


问题现象:

        今天在使用 nginx 的过程中出现了如下报错:

        nginx: [emerg] getpwnam("www") failed


问题分析:

从报错信息可以得知:

        报错是因为 nginx 在 识别 "www" 的时候失败了!!!

乍一看,一脸懵逼,那就先去了解一下 这个 "www" 的什么东西???从网上查阅资料后发现,几乎所有的文章都提到了:

现象:

        安装 nginx 或 启动 nginx 时报错:

         nginx: [emerg] getpwnam("www") failed

原因:        

        没有配置 www 这个用户名。

解法(2种):

        1、nginx.conf 中 把 user nobody 的注释去掉。        

        2、在服务器系统中添加 用户组www 用户www,命令如下:

/usr/sbin/groupadd -f www
/usr/sbin/useradd -g www www

        看上去 方法2 的改动风险会大一些,为了求稳,我先去看了 方法1 中提到的 nginx.conf 配置文件:

         发现配置文件中的 user nobody 确实是被注释掉了,按照 方法1 所说,那就是要把注释放开即可。

        一切看上去似乎都顺利成章,水到渠成!只是我又回头想了一下,这个 nginx 之前就已经在正常使用中,而这个也是此前在使用的配置,然而之前却从未出现过问题,现在为什么会报错呢?

        于是我又分析了一下,我的报错情况和网上所说的是否有什么区别!

        然后发现

1、我是在执行一个 stop 脚本的时候报的错,而网上说的是在 安装 nginx 或 启动 nginx 时报的错。

2、www 是用户名,那是不是跟我当前的用户有关系?

        于是我看了一下目前是 root用户,而nginx安装的时候用的是 自定义的 thp用户:

        于是我退出了当前的 root用户,回到 thp用户,再次执行 脚本文件就可以了。


 解决方法:

1、退出当前的 root用户:

2、在 thp用户下执行脚本成功:

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值