nginx: [emerg] getgrnam(“root”) failed in /usr/local/etc/nginx/nginx.conf:1解决办法
问题描述
在MacOS下搭建PHP开发环境,配置完毕后重启nginx
时,出现如下错误:
➜ www sudo nginx -s reload
nginx: [emerg] getgrnam("root") failed in /usr/local/etc/nginx/nginx.conf:1
解决过程记录
- 首先,查看
nginx.conf
是否有误,配置文件内容如下:
user root;
worker_processes 1;
error_log /usr/local/var/logs/nginx/error.log debug;
pid /usr/local/var/run/nginx.pid;
events {
worker_connections 256;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /usr/local/var/logs/access.log main;
sendfile on;
keepalive_timeout 65;
port_in_redirect off;
include /usr/local/etc/nginx/servers/*;
}
经过排查,发现问题出现在配置文件第一行 user root;
中,在Nginx官方文档有说明,如果 group
省略,就认为组名和用户名一样,如下图:
那么,root 用户是否也是 root group 呢?查验一下
在终端中输入 id root
➜ www id -a root
uid=0(root) gid=0(wheel) groups=0(wheel),1(daemon),2(kmem),3(sys),4(tty),5(operator),8(procview),9(procmod),12(everyone),20(staff),29(certusers),61(localaccounts),80(admin),33(_appstore),98(_lpadmin),100(_lpoperator),204(_developer),250(_analyticsusers),395(com.apple.access_ftp),398(com.apple.access_screensharing),399(com.apple.access_ssh),400(com.apple.access_remote_ae),701(com.apple.sharepoint.group.1)
从查询结果可以看到root
用户属于 admin
组,那nginx.conf
配置中的user root;
写法就不对了,它找不到root
组,所以第一行需要改成:
user root admin;
保存~
重启nginx,问题解决!