no
一.IIS Noinput file specified
办法一:改PHP.ini中的doc_root行,翻开ini文件注释掉此行,然后重启IIS
办法二:
请修改php.ini
找到
; cgi.force_redirect = 1
去掉前面分号,把后边的1改为0
即
cgi.force_redirect = 0
二.apache No input file specified
apache No input filespecified,今天是我们装备apache RewriteRule时呈现这种问题,解决办法很简单如下
翻开.htaccess 在RewriteRule 后边的index.php教程后边增加一个“?”
完整代码如下
.htaccess
RewriteEngine on
RewriteCond $1 !^(index.php|images|robots.txt)
RewriteRule ^(.*)$ /index.php?/$1 [L]
如果是apache服务器出问题,看看是不是的Apache 把 .php 后缀的文件解析哪里有问题了。
总结
Apache 将哪些后缀作为 PHP 解析。例如,让 Apache 把 .php 后缀的文件解析为PHP。能够将任何后缀的文件解析为 PHP,只要在以下语句中参加并用空格分隔。这里以增加一个 .phtml 来示例。
AddType application/x-httpd-php .php .phtml
为了将 .phps教程作为 PHP 的源文件进行语法高亮显现,还能够加上:
AddType application/x-httpd-php-source .phps
用一般的进程启动 Apache(有必要彻底停止 Apache 再重新启动,而不是用 HUP 或许USR1 信号使 Apache 重新加载)。
三.nginx装备遭受No inputfile specified
虚拟机测试nginx 遭受 Noinput file specified,多方查找总算找到解决办法
1、 php.ini(/etc/php5/cgi/php.ini)的装备中这两项
cgi.fix_pathinfo=1 (这个是自己增加的)
doc_root=
2、nginx装备文件/etc/nginx/sites-available/default中注意以下部分
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;
include fastcgi_params;
}
上面的部分路径需求依据你主机主目录的实际情况填写
装备完以上部分,重启一下service nginx restart,应该没问题了
no input file specified.方法汇总
但今天我要说的问题并不是简略的404问题,如果是文件途径不对,这个很容易处理。奇怪的是,只有拜访php的时分才会呈现该提示,并且是偶尔呈现,大多时分拜访正常。
环境是使用一键装置包装置的LNMP,
拜访静态的图片并不会呈现该问题,那问题锋芒指向php。
咱们以往的处理问题思路是,当遇到问题需求检查日志,正确的、过错的都要看。所以,在此看了nginx的过错日志,看了php-fpm的过错日志,并且把日志等级调整为debug,可惜的是没有发现问题。
这条路走不通,那就用别的一种办法,到google搜,搜了很多文章,有的说是文件权限不对,有的说是open_basedir有约束,这两种状况可以排除。
持续搜,找到一篇更改cgi.fix_pathinfo参数的。
这个却是有或许,所以无妨试试看,办法是编辑php.ini,找到cgi.fix_pathinfo,把该参数设定为1。注意,修正完该参数后,需求重启php-fpm服务。
改完后,测验好久并未再呈现Noinputfilespecified的提示,不知道是重启php-fpm后状况好转,还便是由于调整该参数的原因。
总归,这两种状况我都怀疑,只好持续观察一下,看看时间久了会不会持续呈现。
对于cgi.fix_pathinfo参数,要想搞清楚它的效果,需求了解php中的pathinfo是什么(请大家自行查找),不过设置cgi.fix_pathinfo为1的话,有个Nginx的安全隐患,但经测验新版本Nginx并没呈现问题。