博主在启动Nginx服务的时候,出现以下错误
[root@localhost ~]# /usr/local/nginx/sbin/nginx
nginx: [emerg] getpwnam("nginx") failed
报错信息中的getpwnam的功能是获取用户登录相关信息
因此可以了解到获取"nginx"用户失败
用id查询该用户,果然不存在
[root@localhost ~]# id nginx
id: nginx: no such user
添加该用户后,就可正常运行
[root@localhost ~]# useradd -M -s /sbin/nologin nginx
[root@localhost ~]# /usr/local/nginx/sbin/nginx
[root@localhost ~]# netstat -anpt | grep nginx
tcp 0 0 10.0.0.100:80 0.0.0.0:* LISTEN 3843/nginx: master
回忆了下,发现之前源码编译安装的时候配置如下
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make && make install
当时设定了nginx的用户及用户组,在系统不存在nginx用户的情况下,自然不能启动。