PHP以fastCGI模式运行出现 No input file specified的问题
这两天在用thinkphp研究php的MVC,结果一上来就问题重重。同样的代码在两台机器上运行结果却不一样(一台是IIS7+php@ISAPI,一台是IIS7+php@fastCGI),那台以FastCGI运行的,只要使用index.php/index/xxx这样的控制结构就出现“No input file specified”的错误。纠结了一会,在网上找到了答案:
很多利用诸如 http://www.zhaoxi.net/index.php/brand 来以index.php作为网站入口的MVC站点,在index.php后使用/brand之类的的controller,action后,就会出现 404错误,错误提示No input file specified 在纠结了几个小时后,终于找到了解决方案, 我就在站点根目录下的php5.ini 加上了:
doc_root=
就解决了。
以下文字来源网络:
php+fastcgi遭遇No input file specified.错误
最近经常搞lighttpd+fastcgi+php或者nginx+fastcgi+php,时常被php的“No input file specified.”给郁闷了,把我遇到的情况说一下
首先php.ini的配置中
cgi.fix_pathinfo=1
doc_root= doc_root
曾经被我设置过一个路径,结果php老提示“No input file specified.”,只有一个虚机好使。改掉后就正常了。
nginx中的配置有些麻烦
fastcgi_pass 127.0.0.1:1234;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
每个虚机要根据自己不通的虚机设置不能的目录,要保证这个路径正确。
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;不能在fastcgi_pass 127.0.0.1:1234;的前面。
记得修改了php.ini要重启fastcgi服务。
匿名用户说到:@ 03-10-2012 12:40
网站根目录也要放php.ini吗?php.ini不是放在php目录下的吗?
回复说到:@ 03-13-2012 22:05
不是必须的,放到网站根目录下主要是针对支持自定义php.ini的虚拟主机配置(虚拟主机是不允许直接修改系统php.ini的)。如果你是在本机测试的话直接改系统(php目录或windows目录下)的配置文件就可以了。