描述一下: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;

问题解决。

 

    分享到:

发表评论

电子邮件地址不会被公开。 必填项已用*标注