MacBook M1系统启动MxSrvs中的nginx报错:nginx: [emerg] getgrnam("root") failed in /Applications/MxSrvs/bin/nginx/conf/nginx.conf:1
nginx报错:nginx: [emerg] getgrnam("root") failed in /Applications/MxSrvs/bin/nginx/conf/nginx.conf:1
nginx: [emerg] getgrnam("wangteng") failed in /Applications/MxSrvs/bin/nginx/conf/nginx.conf:1
之前的Intel系统Macbook进水了,换了一台M1芯片,作为phper习惯性安装了MxSrvs,但是nginx解析web应用的css和js失败,而且发现responseheader中的css和js的打开类型都是text/html。
首先看一下我的nginx配置,截图红色区域是按照网上搜索的一些参考,只要引入了mime.types配置,并且与nginx.conf配置同级目录下的mime.types里面也包括css和js的对应类型。
就网上千篇一律的帖子解决方案都一样,但试了很多方法,都没有效果。然后我看了一下nginx的错误日志
2022/10/23 19:53:14 [crit] 14262#0: *1 stat() "/Users/wangteng/my_code/....../public/" failed (13: Permission denied), client: 127.0.0.1, server: local.test.com, request: "GET / HTTP/1.1", host: "local.test.com".....
原来是权限受限.....
解决思路
先看看nginx的启动用户和使用用户是否一致。
master process 、worker process 两个进程的用户不一样。
查看一下nginx.conf文件,修改user为wangteng试试看。
修改完成后启动报错....
user对应值改为root依旧报错。
在Nginx官方文档有说明,如果 group 省略,就认为组名和用户名一样,如下图:
root 用户是否也是 root group 呢?查验一下
在终端中输入: id root
id 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),701(com.apple.sharepoint.group.1),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)
从查询结果可以看到root 用户属于 admin 组,那nginx.conf配置中的user root;写法就不对了,它找不到root组,所以第一行需要改成:
nginx启动成功,终于根本上解决问题。
参考:https://blog.csdn.net/wangyaodong915/article/details/123393665