教学之友,学习之友。

站长教学网

IIS7.0通过FastCGI方式运行PHP的问题解决方法

时间:2012-04-08 01:10来源:未知 作者:ken 点击:

经过二天的努力,终于把PHP网站从Apache迁移到IIS7上面,迁移过程中遇到一些问题,在这里和大家分享一下。 至今仍有一个问题,希望大家帮忙指点。

本文不会涉及如下内容:

  1. IIS7的安装
  2. FastCGI For IIS7.0的安装和配置
  3. UrlScan的安装和配置
  4. 如何配置IIS7.0来运行PHP    
  5. 为什么要把PHP网站从Apache迁移到IIS7上面

如果您想了解上面的内容,你可以到http://www.iis.nethttp://www.php.net网站查看相关内容,在搜索引擎中也能找到很多参考资料。

在IIS7.0上以FastCGI方式配置好PHP运行环境,测试可以正常运行PHP程序后,将PHP程序部署上去,导入程序原来的数据和配置信息。由于Apache服务器在占用80端口,所以先停止Apache并设置IIS7.0使用80端口运行网站。 PHP程序终于在IIS7.0上跑起来了,看起来还不错,哈哈……

不过好像高兴的太早,很快就有问题出来啦L

一、某些图片无法显示

我的同事发现有不少图片无法显示。我感觉很奇怪,既然在Apache上没有问题,迁移到IIS7.0后,域名和文件路径均没有变化,不应该出现问题呀。我马上开始确认和排查问题,首先,根据同事的提供信息查看页面,果然很多图片无法显示;然后,我就随机看了网站中的图片,发现有些图片可以正常显示,而且不能正常显示的图片,都是路径中包含了日文或中文字符,这是为什么呢???

疯狂的折腾了一通之后,还是没有头绪,没有办法只能重新再浏览器中打开一张图片,希望可以从错误信息中找到一些有用的东西,只有404 File Not Found错误,没有其他有价值的参考信息。这时候我远程连接到服务器,在服务器上访问,哈哈……错误信息就比较详细了,如下图:

 

OMG,是UrlScan拒绝了该请求,在UrlScan的日志目录C:\Windows\System32\inetsrv\urlscan\logs\中打开一个日志文件,发现很多类似 "Rejected URL+contains+high+bit+character URL"的记录,这又是为什么呢???原来IIS7.0上安装UrlScan后,所有的请求都会经过aspnet_filter和Request Filtering的过滤,Request Filtering的过滤规则就在UrlScan的安装目录C:\Windows\System32\inetsrv\urlscan\UrlScan.ini文件中,其中有这样一个规则AllowHighBitCharacters=0,IIS官网的解释是: This feature either allows or rejects all requests to IIS 7 that contain non-ASCII characters and logs the error code 404.12,允许或拒绝所有包含非ASCII字符的请求并在日志中记录404.12错误,该规则默认为0,也就拒绝包含高位字符的请求 URL。我们将AllowHighBitCharacters的值改为1,图片终于可以正常显示了。

 

关于AllowHighBitCharacters的配置,UrlScan.ini中配置的规则是整个机器级别的,IIS7.0上的所有网站都适用。根据IIS官网的说明,还可以在网站级别配置。在IIS管理器中,你可以在左侧选择指定的网站后,在中间的功能区域选择"Request Filtering",双击该功能,在右侧的操作区域中点击"Edit Feature Settings"后,选中或者取消"allow high-bit characters"项即可;也可以直接在网站的web.config中添加如下内容:

但是,根据我的测试,如果在UrlScan.ini中配置AllowHighBitCharacters=0,那么在网站级别按照上面在web.config中配置AllowHighBitCharacters="true",根本就不起作用,IIS7.0依然拒绝处理路径中含有非ASCII字符的请求;如果在UrlScan.ini中配置AllowHighBitCharacters=1,那么在网站级别按照上面在web.config中配置AllowHighBitCharacters="true|false"就会起作用。

这又是为什么呢?希望有高手指点一下。 站长教学网 eduyo.com

(责任编辑:ken)

TAG标签: php windows iis iis7 FastCGI
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
注册登录:不允许匿名留言,登录后留言无需输入验证码。
栏目列表
最新内容