最详细 IIS6.0中
PHP ISAPI 加载状态未知的问题解决 中
在我的博客中的一篇我们介绍了 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 的状态还是未知时,我们就会下意识的认为我们的配置有错误,或者会联想到 所谓的权限问题, 其实有时候就根本不是问题, 而是微软 iis 中关于 isapi 的一些权限法则 的问题,当一个 ISAPI 筛选器添加到 IIS 6.0 上网站时,该筛选器在 IIS Microsoft 管 理控制台 (MMC) 中的状态列为空。直到向站点发出请求时并试图加载筛选器之前,筛选器 的状态都是未知的。只有当你向站点发出请求,才能确定该筛选器的状态。也就是说我们正 确添加的 isapi 并没有
程序来触发,所以也就无法验证状态,因此显示为未知。此时我们可 以用 ip 或者域名来访问一下, 再查看筛选器状态, 就会看到一个可爱的绿色箭头就出来了, 如果是提示 ip 无法访问的话, 有可能是我们的80
端口被防火墙屏蔽的原因, 手动添加开启, 再试一下,就 ok 了。
菲律宾沙龙国 际
总结:不管我们在做 SEO 还是在网站建设的时候都不能盲目的进行权限添加或者操作, 要尽可能多的参考比较权威些的资料,从最简单的出发来开始排查,多动手,勤动脑。