PHP执行权限导致”FastCGI sent in stderr: “Primary script unknown”

在近期一次上线web应用部署过程中,相同的配置在测试环境中并没有出现任何问题。部署在生产环境3台服务器上时,一直出现“file not found”,查看nginx服务器的error日志出现了如下错误:

020/07/05 16:32:05 [error] 28033#0: *3 FastCGI sent in stderr: “Primary script unknown” while reading response header from upstream, client: 192.0.61.175, server: baogebiji.com, request: “POST /www/getClientInfoList.php HTTP/1.1″, upstream: “fastcgi://unix:/dev/shm/php-cgi.sock:”, host: “192.0.61.176“, referrer: “http://192.0.61.176/www“

生产环境的部署脚本及配置文件均一摸一样,出现这样的问题感觉到很恐慌。

一、测试php是否可以正常运行。

在网站根目录下,部署test.php文件,访问192.0.61.176
将test.php脚本,复制到www目录,访问网址192.0.61.176/www/test.php
检查nginx.conf配置文件,与测试文件完全相同。网站根目录下打开php文件正常。因此php-fpm应该运行也是正常的。

二、检查网站运行权限。

1,检查nginx.conf文件,nginx运行的用户为app100。
2,检查网站目录,均为app100。

3,检查php运行权限。

$ cat /usr/local/php/etc/php-fpm.conf
;;;;;;;;;;;;;;;;;;;;;
; FPM Configuration ;
;;;;;;;;;;;;;;;;;;;;;
 
;;;;;;;;;;;;;;;;;;
; Global Options ;
;;;;;;;;;;;;;;;;;;
 
[global]
pid = run/php-fpm.pid
error_log = log/php-fpm.log
log_level = warning
 
emergency_restart_threshold = 30
emergency_restart_interval = 60s
process_control_timeout = 5s
daemonize = yes
 
;;;;;;;;;;;;;;;;;;;;
; Pool Definitions ;
;;;;;;;;;;;;;;;;;;;;
 
[www]
listen = /dev/shm/php-cgi.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www

发现user和group均使用www用户,修改以上www用户为app100后,重启systemctl restart php-fpm。故障解除。

总结

出现该问题的原因事后回忆,因默认安装使用的均为www用户,app100用户没有权限。

原创文章,作者:保哥,如若转载,请注明出处:https://www.shizhanxia.com/1092.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
保哥的头像保哥
上一篇 2024年6月27日
下一篇 2024年6月27日

相关推荐

发表回复

登录后才能评论