【网站】IIS、Apache、Nginx网站提示“No input file specified"问题汇总
2016年05月05日 14:31:12 作者:Jiaozn 分类:网络 评论(0) (一)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,应该没问题了
1、 php.ini(/usr/local/php/etc/php.ini)的配置中中找到
cgi.fix_pathinfo=0
将其改成
cgi.fix_pathinfo=1
2、nginx配置文件/etc/nginx/conf/nginx.conf中注意以下部分
代码如下
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/www/blog$fastcgi_script_name;
include fastcgi_params;
}
红色部分路径需要根据你主机主目录的实际情况填写
配置完以上部分,重启一下nginx和php-fpm,问题成功
另外,还可能跟 路径或者权限 有关系,或者SCRIPT_FILENAME 变量没有被正确的设置(这在nginx是最常见的原因)
1)如果html也出现404错误,那么就是document root 设置的有问题
2)检查脚本文件的权限, 可能PHP或者web server不能读取它
3)SCRIPT_FILENAME设置错误
解决方法:
排除了SCRIPT_FILENAME设置错误,那问题就出现在目录文件夹及文件的权限访问上。重新设置了文件www用户组的权限,立即可以访问后台了。在这里再次特别感谢 久酷 童鞋。
设置权限的SSH命令则是
代码如下
chown -vR www:www /folder
补充:我的SCRIPT_FILENAME设置参数
vim fcgi.conf (SCRIPT_FILENAME的目录)
代码如下
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
对应document_root的权限必须与nginx.conf和fcgi.conf的用户一样
(四)注意检查下网站目录是否有相关用户的写入权限
评论
发表评论