这个错误很常见
php-fpm找不到SCRIPT_FILENAME里执行的php文件
可以在你的location php 里面添加当文件不存在时返回404而不是交给php-fpm进行处理
location ~ .php$ { ... #文件不存在转404 try_files $uri = 404; ... }
代码语言:javascript复制 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;
}
然后,在你的配置文件中找到下面这段
代码语言:javascript复制fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
替换成下面(我的当时就是这个原因)
代码语言:javascript复制 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
然后重新加载nginx配置文件 systemctl restart nginx(/usr/local/nginx/sbin/nginx)
------------------------------另一个网友的问题,其实问题一样----
问题原因:
代码语言:javascript复制fastcgi_param SCRIPT_FILENAME scripts$fastcgi_script_name;
解决办法:改成
代码语言:javascript复制fastcgi_param SCRIPT_FILENAME /Users/linchen/Sites$fastcgi_script_name;
其中,/Users/linchen/Sites 是网站的根目录
最终内容如下:
代码语言:javascript复制location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /Users/linchen/Sites$fastcgi_script_name;
include fastcgi_params;
fastcgi_intercept_errors on;
}