nginx: [emerg] getgrnam(“root“) failed in /usr/local/etc/nginx/nginx.conf:1解决办法

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 省略,就认为组名和用户名一样,如下图:
nginx用户组说明
那么,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,问题解决!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值