在我的博客中的一篇我们介绍了iis中php环境的安装过程,其中有一个比较关键的步骤就是要检测php isapi的dll文件是否加载,即phpisapi筛选器的状态箭头是否为绿色,如果前面的状态箭头为红色,就证明是php.ini文件未配置正确,或者上篇中介绍的文件未copy完,为绿色的话就证明已经加载完成,一般情况下按照上篇中的步骤配置过程phpisapi都会配置加载完成的,但是也有显示状态未知的情况,这个就让很多人感到纳闷了,而且最主要的就是找不到原因,有的地方说是php文件夹权限的问题,把everyone权限全开就行,其实这种做法有时并不能解决问题,而且还有可能带来不比较的安全问题,下面我针对加载显示状态未知的情况总结一下原因和解决方法:
1) web服务扩展 加载php isapi ,如果你出现加载未知的情况首先应该考虑到是不是这个步骤忘掉了,那就赶快配置一下,添加一个新的web服务扩展,然后给它起个扩展名,把php5文件夹下的php5isapi.dll文件添加进来,然后状态为允许就ok了,重启一下应用程序池和站点,查看筛选器状态,如果变绿就可以了。
2) user用户组权限问题,这个问题其实不是很常见的,你只要是在服务器上用的最高管理员进行的操作,建的文件夹,一般这个用户组会默认继承的,至于添加什么everyone权限什么的,个人并不赞同,因为很可能你就为以后你的网站埋下了一个很大安全隐患,一般user组的权限只要有读取和运行,列出文件夹目录和特殊的继承权限就可以了,至于特殊的权限对于php的运行有没有影响,笔者还没有碰到过类似的事情。
3) 最简单的问题也是我们最容易忽略的问题,当我们所有步骤都正确的进行完后,查看phpisapi的状态还是未知时,我们就会下意识的认为我们的配置有错误,或者会联想到所谓的权限问题,其实8630.html">有时候就根本不是问题,而是微软iis中关于isapi的一些权限法则的问题,当一个 ISAPI 筛选器添加到 IIS 6.0 上网站时,该筛选器在 IIS Microsoft 管理控制台 (MMC) 中的状态列为空。直到向站点发出请求时并试图加载筛选器之前,筛选器的状态都是未知的。只有当你向站点发出请求,才能确定该筛选器的状态。也就是说我们正确添加的isapi并没有程序来触发,所以也就无法验证状态,因此显示为未知。此时我们可以用ip或者域名来访问一下,再查看筛选器状态,就会看到一个可爱的绿色箭头就出来了,如果是提示ip无法访问的话,有可能是我们的80端口被防火墙屏蔽的原因,手动添加开启,再试一下,就ok了。
总结:不管我们在做SEO还是在网站建设的时候都不能盲目的进行权限添加或者操作,要尽可能多的参考比较权威些的资料,从最简单的出发来开始排查,多动手,勤动脑。本文来自郑州SEO:高恒星的博客 ,转载请注明原文链接: http://www.welmkt.com/iis6-phpisapi-nostatus.html