#同过nginx错误日志查看报错信息:
tail -f /usr/local/Cellar/nginx/1.19.1/logs/error.log
报错信息
2020/07/17 19:26:57 [error] 99124#0: *130 FastCGI sent in stderr:
“Primary script unknown” while reading response header from upstream,
client: 127.0.0.1, server: local.wukongbangfu.com, request: “GET
/index.php HTTP/1.1”, upstream: “fastcgi://127.0.0.1:9000”, host:
“localhost:8088”
问题分析:
nginx.conf里的user配置要跟php-fpm.d/www.conf不一致,导致nginx对php7.0-fpm.sock
文件有读写权限,因此就需要将设置nginx和php-fpm的user设置成一致。
解决方案:
查看当前php-fpm进程用户(通过sudo php-fpm 命令启动)
(base) ➜ www ps aux|grep php-fpm | grep -v grep
_www 94225 0.0 0.0 4491520 1552 ?? S 5:00PM 0:00.01 php-fpm
_www 94224 0.0 0.0 4491520 1548 ?? S 5:00PM 0:00.01 php-fpm
root 94223 0.0 0.0 4489472 5044 ?? Ss 5:00PM 0:00.15 php-fpm
查看当前nginx进程用户
(base) ➜ wukongbangfu ps aux|grep nginx | grep -v grep
root 94191 0.0 0.0 4336440 2624 ?? Ss 4:59PM 0:00.03 nginx: master process nginx
nobody 99381 0.0 0.0 4337904 1960 ?? S 7:33PM 0:00.01 nginx: worker process
结论:
php-fpm进程用户为_www;nginx进程用户为nobody很显然不一致
接下来更改php-fpm.d/www.conf配置文件中user和group分别为:apple everyone
#查看php配置路径
php --ini
#编辑php-fpm.d/www.conf
vim /usr/local/etc/php/7.4/php-fpm.d/www.conf
#修改php-fpm.d/www.conf的user和group为:apple everyone
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
user = apple
group = everyone
重启php-fpm
#查找php-fpm进程
ps aux|grep php-fpm | grep -v grep
#杀死php-fpm进程
sudo kill -9 98978 98979 98980 98981
#启动php-fpm
sudo php-fpm
#编辑nginx.conf
vim /usr/local/etc/nginx/nginx.conf
#修改nginx.conf的user和group为:apple everyone
user apple everyone;
重启nginx
sudo nginx -s reload
再次查看当前php-fpm进程用户(通过sudo php-fpm 命令启动)
(base) ➜ www ps aux|grep php | grep -v grep
apple 1723 0.0 0.0 4500480 2148 s000 S+ 8:09PM 0:00.00 php-fpm
apple 1722 0.0 0.0 4500480 2444 s000 S+ 8:09PM 0:00.01 php-fpm
apple 1721 0.0 0.0 4500736 4800 s000 S+ 8:09PM 0:00.39 php-fpm
再次查看当前nginx进程用户(通过sudo nginx 命令启动)
(base) ➜ wukongbangfu ps aux|grep nginx | grep -v grep
apple 15769 0.0 0.0 4337904 8 ?? S 10:49AM 0:00.04 nginx: worker process
root 94191 0.0 0.0 4337464 8 ?? Ss Fri04PM 0:00.05 nginx: master process nginx
结论:
输出结果中nginx进程拥有者已经成为apple
再次在浏览器输入localhost:8088/index.php,查看效果,成功。