这个错误很常见,主要有下面两种几种
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的配置文件,找到下面这段,换成你要的用户组