nginx+php-fpm 报错Primary script unknown
报错信息(nginx日志):
// :: [crit] #: * stat() "/home/xiaoju/webroot/c-api-intl/app/htdocs/user/getUserInfo" failed (: Permission denied), client: 172.21.205.25, server: localhost, request: "GET /user/getUserInfo HTTP/1.1", host: "10.96.83.130:8005"
// :: [crit] #: * stat() "/home/xiaoju/webroot/c-api-intl/app/htdocs/user/getUserInfo" failed (: Permission denied), client: 172.21.205.25, server: localhost, request: "GET /user/getUserInfo HTTP/1.1", host: "10.96.83.130:8005"
// :: [error] #: * FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 172.21.205.25, server: localhost, request: "GET /user/getUserInfo HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "10.96.83.130:8005"
意思就是找不到php的入口脚本,那么查看nginx配置是否有问题,主要关注以下配置中标红的部分:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param ENV_CAPI_DEBUG true;
fastcgi_param APP_ENV development;
include fastcgi_params;
}
我们也可以加nginx日志来验证 SCRIPT_FILENAME 是否配置正确:
# add to nginx.conf
log_format scripts '$document_root$fastcgi_script_name > $request'; # add to server conf block
access_log /var/log/nginx/scripts.log scripts;
做好以上配置之后重启nginx并请求,同时tail -f /var/log/nginx/scripts.log,查看输出的php脚本能不能找到。
我这里输出是这样的:
/home/xiaoju/webroot/c-api-intl/app/htdocs/index.php > GET /user/getUserInfo HTTP/1.1
如果找不到该文件,重新配置nginx,保证php入口脚本能被找到。
如果已经找到该文件,而且还报此错误,那就是权限问题了:运行php-fpm的linux用户没权限访问php入口文件的权限。
我这里运行php-fpm的用户是nginx。(在/usr/local/php/etc/php-fpm.conf配置文件中配置的)
sudo -u nginx stat /home/xiaoju/webroot/c-api-intl/app/htdocs/index.php
果然权限不足,解决办法:
chown nginx:nginx /home/xiaoju/webroot/c-api-intl
chmod g+x /home
chmod g+x /home/xiaoju
chmod g+x /home/xiaoju/webroot
问题解决。
如果中途出现:account is currently not available
vipw /etc/passwd
把对应用户的/sbin/nologin 改成 /bin/bash。
参考文档:
https://www.jianshu.com/p/ce968818497b
https://www.e-learn.cn/content/wangluowenzhang/299721
https://blog.csdn.net/shaobingj126/article/details/7466583
nginx+php-fpm 报错Primary script unknown的更多相关文章
- [PHP] 安装PHP报错“Primary script unknown”的解决方法
当安装完最新版的nginx和最新版的PHP以后,使用niginx默认配置文件中的PHP配置会有错误访问指定目录下的php文件时,显示File not found.错误.查看nginx的错误日志显示 9 ...
- 解决nginx FastCGI sent in stderr: “Primary script unknown”
今天重启了mac,突然发现本地的 lnmp 服务不能用了,什么请求都返回了: FastCGI sent in stderr: "Primary script unknown" 这个 ...
- PHP Primary script unknown 终极解决方法
相信很多配置php环境的都遇到过这个恼人的问题: 浏览器访问php文件,返回来 File not found 查看/var/log/nginx/error.log ,有 “Primary script ...
- Nginx-Primary script unknown的报错的解决方法
配置nginx时一直报错:file not found 错误日志: [error] 12691#0: *6 FastCGI sent in stderr: "Primary script u ...
- Nginx+PHP配置错误,日志:[error] 24324#0: *31 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream
一.问题现象 1.安装nginx.php.php-fpm后,浏览器访问php报错,“File not found”: 二.问题排查 1.检查nginx.php-fpm服务是否正常启动,均正常启动: 2 ...
- nginx FastCGI错误Primary script unknown解决办法
在centos上成功编译安装nginx 1.4.php 5.4并成功启动nginx和php-fpm后,访问php提示"File not found.",同时在错误日志中看到: 复制 ...
- Nginx配置SSL报错 nginx: [emerg] unknown directive "ssl"
Nginx配置SSL报错 nginx: [emerg] unknown directive "ssl" 出现如图所示错误,处理办法如下 去nginx解压目录下执行 ./co ...
- 【nginx】 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream
2013/10/22 20:05:49 [error] 12691#0: *6 FastCGI sent in stderr: "Primary script unknown" w ...
- NGINX+PHP-FPM7 FastCGI sent in stderr: “Primary script unknown”
https://www.cnblogs.com/hjqjk/p/5651275.html 一开始是Nginx打开网页显示一直是拒绝访问.查看nginx日志是报错显示我的题目,然后就各种搜索解决啊! 百 ...
随机推荐
- Docker Community Edition for CentOS
Docker CE for CentOS Docker CE for CentOS distribution is the best way to install the Docker platfor ...
- matlab求矩阵的鞍点
function count = andian(a) v = max(a,[],2); count = 0; for i=1:length(v) [r2,c2] = find(a==v(i)); mi ...
- Spring学习--通过注解配置 Bean (二)
在 classpath 中扫描组件: 当在组件类上使用了特定的注解之后 , 还需要在 Spring 的配置文件中声明 <context:component-scan>: base-pack ...
- C# using一般用法 (转)
using一般有着以下几种用法: 1.直接引入命名空间 a.using System ,这个是最常用的,就是using+命名空间,这样就可以直接使用命名空间中的类型,而免去了使用详细的命名空间 b.使 ...
- kettle基础操作
ETL:抽取(extract).转换(transform).加载(load)至目的端的过程: Kettle是ETL工具代表之一,是pentaho中的一个数据整合的一个组件.Kettle里包括多个Job ...
- 【SPOJ-QTREE】树链剖分
树链剖分学习 https://blog.csdn.net/u013368721/article/details/39734871 https://www.cnblogs.com/George1994/ ...
- 阶段性总结⓵触摸事件&手势识别⓶Quartz2D绘图⓷CALayer图层⓸CAAnimation⓹UIDynamic UI动力学⓺KVC&KVO
知识点复习 1. 触摸事件&手势识别 1> 4个触摸事件,针对视图的 2> 6个手势识别(除了用代码添加,也可以用Storyboard添加) 附加在某一个特定视图上的, ...
- Codeforces 362E Petya and Pipes 费用流建图
题意: 给一个网络中某些边增加容量,增加的总和最大为K,使得最大流最大. 费用流:在某条边增加单位流量的费用. 那么就可以2个点之间建2条边,第一条给定边(u,v,x,0)这条边费用为0 同时另一条边 ...
- Newtonsoft.Json 序列化和反序列化 以及时间格式
1.JSON序列化 string JsonStr= JsonConvert.SerializeObject(Entity); eg: A a=new A(); a.Name="Elain ...
- Net Core 控制台程序使用Nlog 输出到log文件
using CoreImportDataApp.Common; using Microsoft.Extensions.Configuration; using Microsoft.Extensions ...