Nginx 请求 PHP 文件 报 File not found 错误处理

软件集成
737
linux
linux 举报
01月28日 19:49
Nginx 请求 PHP 文件 报 File not found 错误处理

这个错误很常见,主要有下面两种几种

1. php-fpm 找不到 SCRIPT_FILENAME 里执行的php文件

2. php-fpm 不能访问所执行的 php,也就是权限问题

第一种情况

可以在你的location php 里面添加当文件不存在时返回404而不是交给php-fpm进行处理

location ~ \.php$
{
...
#文件不存在转404
try_files $uri = 404;
...
}

location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /script$fastcgi_script_name;
    include        fastcgi_params;
}
然后,在你的配置文件中找到下面这段
fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

替换成下面

 fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

然后重新加载nginx

 nginx -s reload

第二种情况

两种解决方法:

第一种,就是把你 root 文件夹设为其他用户允许

第二种,找到你的php-fpm的配置文件,找到下面这段,换成你要的用户组



倒序看帖 只看楼主
热点关注
You need Perl 5 安装openssl时报错提示需要安装perl 5
shell 脚本中常见的 if [ $? -ne 0 ]; 意思
shell 中 if [ “x${var}“ == “x“ ] 中 x的作用
shell脚本每行后面多了一个^M的原因和解决办法
服务停止、启动、重启一体化脚本,万能语言启动脚本
shell参数判断
在后台用进程名运行bash脚本
shell脚本每行后面多了一个^M的原因和解决办法
定时检测服务,检测down掉后重启。系统检测到DMSERVER运行正常
挂载磁盘的时候遇到一个问题,挂载完磁盘之后重启服务器挂载的盘丢失了.
中标麒麟系统Your trial is EXPIRED and no VALID licens
termux 开启ssh并用用户名和密码登陆
extman-1.1自带了图形化显示日志的功能;此功能需要rrdtool的支持,您需要安装此些模块才可能正常显示图形日志。
postfix的相关个别参数设置
postfix中recipient/client/sender/helo四者的区别