nginx中No input file specified的解决方法

发布时间:2019-11-21编辑:脚本学堂
问题描述:CentOS + PHP + FastCGI + Nginx,配置完后,能够正常打开根目录下的index.php,但是进入abc.com/phpmyadmin,则会提示“No input file specified”。查log,貌似报的是301,阿门。

原因分析:
任何对.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;
没成想,问题成功解决。