网站运行PHP出现No input file specified 的解决办法
2017-08-13 10:59
916 查看
今天接到小伙伴的配置服务器运行php页面的时候就会报错“No input file specified”。使用的是IIS + Fastcgi + PHP 5.3.X,在默认网站下运行都是正常的,但是新增一台虚拟主机或网站按照网上的各种解决方法,如屏蔽doc_root、给目录加权限、修改缓冲池等等都无效。
在WINDOWS下的PHP总会出现DOCUMENT_ROOT为空,无值的问题.
设置IIS下PHP环境的DOCUMENT_ROOT
这两天把一网站架到了IIS服务器上,却发现在读取 $_SERVER['DOCUMENT_ROOT'] 的时候是空值。翻阅了PHP的文档,发现对该变量的解释为:“当前运行脚本所在的文档根目录。在服务器配置文件中定义。”这才突然想到,Apache的配置文件里确实有 DocumentRoot 这一项,而IIS则没有这个配置文件。好吧,既然没有,那就值得用别的方式来“修复”IIS服务器了。把下面这段代码加到程序中,注意必须在你调用
$_SERVER['DOCUMENT_ROOT'] 之前哦!
if(empty($_SERVER['DOCUMENT_ROOT']) && !empty($_SERVER['SCRIPT_FILENAME'])) {
$_SERVER['DOCUMENT_ROOT'] = str_replace( '\\', '/', substr($_SERVER['SCRIPT_FILENAME'], 0, 0 - strlen($_SERVER['PHP_SELF'])));
}
if(empty($_SERVER['DOCUMENT_ROOT']) && !empty($_SERVER['PATH_TRANSLATED'])) {
$_SERVER['DOCUMENT_ROOT'] = str_replace( '\\', '/', substr(str_replace('\\\\', '\\', $_SERVER['PATH_TRANSLATED']), 0, 0 - strlen($_SERVER['PHP_SELF'])));
}
解决方法二:
使用 php.iis.net 上的安装方法直接安装 php 会出现$_SERVER["DOCUMENT_ROOT"]为空的问题。
解决办法:将*.php映射到 C:\WINDOWS\system32\inetsrv\fcgiext.dll 即解决。
另外注意检查下网站目录是否有相关用户的写入权限!!!
【其他】Apache、Ngnix处理办法详见:http://www.sudu.cn/service/detail/1/2/2/5/12253.html
终极解决方法【仅供参考,每个环境不一样】
设置IIS下PHP环境的DOCUMENT_ROOT【从源头找分析】
在WINDOWS下的PHP总会出现DOCUMENT_ROOT为空,无值的问题.设置IIS下PHP环境的DOCUMENT_ROOT
这两天把一网站架到了IIS服务器上,却发现在读取 $_SERVER['DOCUMENT_ROOT'] 的时候是空值。翻阅了PHP的文档,发现对该变量的解释为:“当前运行脚本所在的文档根目录。在服务器配置文件中定义。”这才突然想到,Apache的配置文件里确实有 DocumentRoot 这一项,而IIS则没有这个配置文件。好吧,既然没有,那就值得用别的方式来“修复”IIS服务器了。把下面这段代码加到程序中,注意必须在你调用
$_SERVER['DOCUMENT_ROOT'] 之前哦!
if(empty($_SERVER['DOCUMENT_ROOT']) && !empty($_SERVER['SCRIPT_FILENAME'])) {
$_SERVER['DOCUMENT_ROOT'] = str_replace( '\\', '/', substr($_SERVER['SCRIPT_FILENAME'], 0, 0 - strlen($_SERVER['PHP_SELF'])));
}
if(empty($_SERVER['DOCUMENT_ROOT']) && !empty($_SERVER['PATH_TRANSLATED'])) {
$_SERVER['DOCUMENT_ROOT'] = str_replace( '\\', '/', substr(str_replace('\\\\', '\\', $_SERVER['PATH_TRANSLATED']), 0, 0 - strlen($_SERVER['PHP_SELF'])));
}
解决方法二:
使用 php.iis.net 上的安装方法直接安装 php 会出现$_SERVER["DOCUMENT_ROOT"]为空的问题。
解决办法:将*.php映射到 C:\WINDOWS\system32\inetsrv\fcgiext.dll 即解决。
另外注意检查下网站目录是否有相关用户的写入权限!!!
【其他】Apache、Ngnix处理办法详见:http://www.sudu.cn/service/detail/1/2/2/5/12253.html
相关文章推荐
- 运行PHP出现No input file specified错误的解决办法
- 运行PHP出现No input file specified错误的解决办法
- 运行PHP出现No input file specified错误的解决办法
- 运行PHP出现No input file specified错误的解决办法
- 运行PHP出现No input file specified错误的解决办法
- 运行PHP出现No input file specified错误的解决办法
- Windows7安装 nginx+php 后访问.php文件出现 “No input file specified.” 的解决办法
- 在 IIS 6 中 fastcgi 模式运行 php 出现 No input file specified. 的解决
- iis6下运行php出现No input file specified的解决方法
- nginx+php出现No input file specified解决办法
- PHP4和PHP5共存的环境(主力为PHP4)中PHP5在命令行跑PHP文件中遇到No input file specified.错误解决办法
- 访问tp3.2的项目时出现No input file specified.的解决办法
- ThinkPHP隐藏index.php出现No input file specified的解决方法
- nginx运行php"No input file specified"错误的解决方法
- 【LNMP】提示Nginx PHP “No input file specified”错误的解决办法
- 配置Nginx支持php,出现No input file specified错误的解决方法
- Apahce 出现 No input file specified解决办法
- php出现Noinput file specified问题解决
- laravel homestead windows 安装 no input file specified解决办法
- 解决NGINX PHP "No input file specified"