当前位置: 代码网 > 服务器>服务器>Linux > nginx报错:[emerg] getpwnam(“www“)failed问题及解决

nginx报错:[emerg] getpwnam(“www“)failed问题及解决

2025年03月14日 Linux 我要评论
问题现象今天在使用 nginx 的过程中出现了如下报错:nginx: [emerg] getpwnam("www") failed问题分析从报错信息可以得知:报错是因为 nginx

问题现象

今天在使用 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用户下执行脚本成功:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com