Primary script unknown“ while reading response header from upstream 问题修复

本文介绍了一种常见的Nginx与PHP-FPM之间的权限冲突问题,详细解释了如何通过调整Nginx和PHP-FPM的用户设置来解决Primary script unknown的错误,确保两者用户一致,实现稳定运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#同过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,查看效果,成功。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值