前言:
微软IIS中的ISAPI其实是个对于很多人都很陌生的东西,这个东西几乎控制着IIS中一切动态内容的生命,因为只有ISAPI,才可以让你的动态内容交互式网页(如ASPX/PHP等),因为ISAPI的高安全性、速度快,许多使用Windows Sever系统的网站在使用IIS时都选择了ISAPI而抛弃了笨拙的CGI模式。今天就给大家说一说IIS中ISAPI的种种法则。
ISAPI简介:
ISAPI其实通俗理解就是控制IIS显示动态交互式内容的一个“漏斗”,只有用户许可的动态内容(多数是指一种动态语言)才可以从这个漏斗流下,并提供给访问者。这个漏斗在IIS中被叫做“ISAPI筛选器”。
种种法则:
现在就开始讲一下ISAPI的权限法则,这或许可以帮助有些站长尽快配置好自己的IIS。
尽管ISAPI是控制内容显示的,但是在Windows Sever 2003版本中,用户在ISAPI筛选器中所指定ISAPI链接库不能直接调用解析用户请求的动态内容。
例如:
现在这里有一个动态内容网页AC.PHP,用户现在请求该文件,但是却返回“无法找到文件或目录”的错误,其实并不是没有找到文件,而是PHP文件解析所用到的ISAPI文件(如PHP5ISAPI.DLL)并没有正确被加载(在ISAPI筛选器显示为红箭头以及“未加载”)。
到这里很多人就不知道该如何做了,其实这个出错的原因是导致该ISAPI文件没有权限而无法运行造成的,只要把权限基于这个ISAPI链接库,就可以正常运行了。
如何解决这一问题,如果你在使用IIS 6.0版本,你真够幸运的,你可以在这个版本中轻易解决这个问题,以下是我总结的方案:
1.首先确定权限的限制是由两部分造成的:系统文件权限以及服务器扩展权限,首先来到这个ISAPI链接库文件所在的地方,之后给予这个文件EveryOne的完全控制权限(你也可以选择读取+写入+执行的权限组合)。
2.解决服务器扩展权限:来到IIS6.0的“服务器扩展”设置页面,如果你想图省事,可以直接点击“允许所有的未知ISAPI”的按钮,但我并不推荐这样做,这样太不安全了!我们在此应当添加一个新的服务器扩展,扩展名你可以随便填,文件就选择到那个ISAPI链接库文件上,然后勾选“将状态设置为允许”后,保存。
3.为了使设置生效,请重启系统,重启后你的ISAPI扩展就可以正常加载了!