任何对.php教程文件的请求,都简单地交给php-cgi去处理,但没有验证该php文件是否存在。PHP文件不存在,没办法返回普通的404错误,它返回一个404,并带上一句”No input file specified”
另外,还可能跟 路径或者权限 有关系,或者SCRIPT_FILENAME 变量没有被正确的设置(这在nginx是最常见的原因)
1)如果html也出现404错误,那么就是document root 设置的有问题
2)检查脚本文件的权限, 可能PHP或者web server不能读取它
3)SCRIPT_FILENAME设置错误
解决方法:
排除了SCRIPT_FILENAME设置错误,那问题就出现在目录文件夹及文件的权限访问上。重新设置了文件www用户组的权限,立即可以访问后台了
好像是权限问题,在上级目录加了everyone读权限,仅针对上级目录,但非常久,等不及,停掉。换了个目录为e:myphpwww.hx.com,给上级目录everyone读权限,访问,提示:
No input file specified.
搜索一下,1种说是把php.ini中的doc_root ="注释掉,我看了下本身就是注释掉的,不是这个问题。第2种是说应用池的问题。IIS新建了一个应用池,给这个站点用。刷新,网站可以访问了。再试一下,是不是和上级目录权限有关,把上级目录everyone读权限去掉,再刷新,又提示和上面的错误一样了,确定与此有关了,然后再加上,问题解决。
昨天买了个GoDaddy的linux主机。似乎被分到了新服务器上,FTP最高可以连接500个用户同时在线,比起原来的旧帐号里的是提高了很多。
结果一运行,很多利用诸如 http://www.wyscyw.com/index.php/brand 来以index.php作为网站入口的MVC站点,在index.php后使用/brand之类的的controller,action后,就会出现404错误,错误提示No input file specified
在纠结了几个小时后,终于找到了解决方案,
我就在站点根目录下的php5.ini 加上了:
cgi.fix_pathinfo=1
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服务。