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用户可以拥有更

声明:本网站刊载的所有内容,包括文字、图片、音频、视频、软件、程序、以及网页版式设计等如无特殊说明或标注,均在网上搜集。仅供访问者个人学习、研究或欣赏,禁止商业性或盈利性用途,访问者应遵守著作权法的规定,在使用时征得本站和原著作权人的同意并支付许可使用费。本网站刊登内容,如有侵权请权利人予以告知,本站将立即予以删除。

给TA打赏
共{{data.count}}人
人已打赏
笔记

使用dnf安装新版本软件包提示”Package xxx is already installed.”

2023-4-19 10:53:07

笔记

如何升级VMware vCenter Server(VCSA)

2023-4-19 11:08:12

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
今日签到
有新私信 私信列表
搜索