要用 ISAPI 模块方式,按如下方法进行: 
如果不想用 PHP 进行 HTTP 认证,应该跳过这一步。在“ISAPI 筛选器”标签页中添加一个新的 ISAPI 筛选器。“筛选器名称”设为 PHP,“可执行文件”设为 php4isapi.dll/php5isapi.dll 的路径。 选择“主目录”,“虚拟目录”或“目录”标签页,然后进行: 将执行权限改为“纯脚本” 点“配置”按钮,选择“映射”标签页。点击“添加”按钮,将“可执行文件”指向适当的 ISAPI DLL。例如 PHP 5 的值可能是:C:\php\php5isapi.dll。在“扩展名”中填入 .php。选择“全部动作”(或者“限制为”留空),选中“脚本引擎”。然后点击“确定”。 完全停止 IIS(NET STOP iisadmin) 重新启动 IIS(NET START w3svc) 
对于 IIS 6(2003 Server),打开 IIS 管理器,进入 web 服务扩展,点击“添加一个新的 web 服务扩展”,“扩展名”中输入名称,例如 PHP,再点击“添加”按钮,点击“浏览”选择要么 ISAPI 文件(php4isapi.dll 或 php5isapi.dll)或者 CGI 文件(php.exe 或 php-cgi.exe)作为“文件路径”后点“确定”,然后选中“设置扩展状态为允许”并点“确定”。 要使用 index.php 作为默认文档,在“文档”标签页中选择“添加”。输入 index.php 并点“确定”。用上下箭头按钮调整顺序。这和在 Apache 中设定 DirectoryIndex 相似。 对于每个要关联为 PHP 脚本的后缀都要重复以上步骤。.php 是最常用的,此外为兼容一些遗留下来的老程序可能还需要加上 .php3。 如果过些时候之后碰到 CPU 占用率达到 100%,则取消选中“缓存 ISAPI 应用程序”(“主目录”下点“配置”按钮”)。

解决方案 »

  1.   

    源码: 
    $d = dir("./");
    while($f = $d->read())
    {
    echo $f."<br/>";
    }运行结果:
    .
    ..
    ADROT.dll
    adsiis.dll
    ASP Compiled Templates
    asp.dll
    asp.mfl
    asp.mof
    browscap.dll
    browscap.ini
    CertMap.ocx
    certobj.dll
    CertWiz.ocx
    clusftp.vbs
    clusweb.vbs
    Cnfgprts.ocx
    coadmin.dll
    ContRot.dll
    ....
    奇怪极了,用CGI形式运行不会有此问题
      

  2.   

    要启用父目录。  CGI模式不会出现该问题。在站点配置里面启用父目录