Primary script unknown" while reading response header from upstream

来源:本站原创 Linux 超过186 views围观 0条评论

今天下午搞了一个下午的LNMP环境搭建,N,M,P都安装成功了,静态页面也正常,就差最后一步了,挡的我好心累。

【解决步骤】
1、使用wget从本机获取php页面,返回的是状态码是404.
2、查找错误日志如下(可以放大看):

2018/08/17 05:13:57 [error] 11451#0: *11 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client:  , server: www3.ccie.wang, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: " "

 

3、网上说的解决错误的方法都试了,大多都是粘贴复制,说的是修改Nginx配置文件中找到定义调用脚本文件的地方,修改下面的代码

location / {
root   /usr/local/nginx/html;
index  index.php index.html index.htm;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

结果还是不行,结果还是404错误。

4.既然静态页面解析没问题,肯定是Nginx和PHP的结合程序FastCGI出了问题,查看PHP服务php-fpm

#ps -ef|grep php-fpm


红色笔圈住的地方,本来用户默认是nobody,(nobody用户应该没有多少权限)。正常应该用户是和Nginx进程一致

5、修改php-fpm进程的用户和用户组试试:

#vi /application/php/etc/php-fpm.d/www.conf
这是我的服务器上php-fpm的配置文件路径(我是编译安装的)

 

找到user = nobody

和group = nobody

将其改为何Nginx一致的用户,我这里是chenxuliang用户,如图

修改为下面配置

/etc/php-fpm.d/www.conf

user = nginx

group = nginx


然后使php-fpm服务重启,(我是编译安装的,不知道怎么重启服务,使用ps -ef 命令查找到php-fpm进程号然后将其kill掉,命令#kill -9 process_id,然后执行/application/php/sbin/php-fpm,启动服务,注意这是在我的环境下是这个路径)

6、测试。linux本机执行wget,或者在浏览器中获取php文件,看其是否解析成功。如下图:

文章出自:CCIE那点事 http://www.jdccie.com/ 版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。 禁止全文转载。
本文链接:http://www.jdccie.com/?p=3885转载请注明转自CCIE那点事
如果喜欢:点此订阅本站
  • 相关文章
  • 为您推荐
  • 各种观点

暂时还木有人评论,坐等沙发!
发表评论

快捷键:Ctrl+Enter