原因分析:
任何对.php文件的请求,都简单地交给php-cgi去处理,但没有验证该php文件是否存在。PHP文件不存在,没办法返回普通的404错误,它返回 一个404,并带上一句”No input file specified”。
看上去有道理,于是检查了fastcgi_param这里。现在SCRIPT_FILENAME的设置如下:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
网上的文章里说到:
可以使用fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
但必须保证 $document_root 在配置文件中,在astcgi_param SCRIPT_FILENAME前面被用到过一次, 后面有解释为什么。
不敢保证$document_root 在配置文件中,所以还是认真地修改回这样:
fastcgi_param SCRIPT_FILENAME /var/www/nginx-default/wordpress$fastcgi_script_name;
没成想,问题成功解决。