IIS/PWS 服务器

本节包括 IIS(Microsoft Internet Information Server)的说明和提示。以及 PWS/IIS 3PWS 4 以及更新版本IIS 4 以及更新版本 上 PHP 的安装说明。

CGI 用户请注意: 阅读 cgi.force_redirect 的常见问题中的重要细节。该指令必须被设为 0

Windows 和 PWS/IIS 3

推荐使用PHP发行包中包含的注册表文件(pws-php4cgi.reg)来配置服务器。你可能需要编辑这个文件,确认扩展库和 PHP 的安装目录符合你的设置。或者你可以按照以下步骤手工进行。

警告

以下步骤涉及到直接修改 Windows 注册表,如果出错会使你的系统不稳定。我们强烈推荐你先备份注册表文件。PHP 开发小组将不对你损坏了注册表负责。

  • 运行 Regedit。

  • 找到:HKEY_LOCAL_MACHINE /System /CurrentControlSet /Services /W3Svc /Parameters /ScriptMap

  • 在编辑菜单下选择:新建->字符串值New->String Value)。

  • 输入你想 PHP 脚本使用的文件后缀,例如 .php

  • 双击这个新的字符串值,并且在数据栏中输入 php.exe 的路径,例如:c:\php\php.exe

  • 如果你希望其他后缀(例如 .php3)也和 PHP 关联,重复以上步骤。

以下步骤并不影响 Web 服务器安装,并且仅适用于你的 PHP 脚本运行于命令行方式下(例如运行 c:\myscripts\test.php)或者在资源管理器中双击 PHP 文件。你可能更希望双击 PHP 文件时用文本编辑器打开,那么可以跳过这一步。

  • 找到:HKEY_CLASSES_ROOT

  • 在编辑菜单中选择:新建->主键New->Key)。

  • 给该主键命名为你前一节中设置的后缀,例如:.php

  • 选中该主键,在右边一栏中双击“默认”("Default")并输入 phpfile

  • 对于你前一节中设置的其它后缀,重复以上步骤。

  • 现在再在 HKEY_CLASSES_ROOT 下面新建一个主键(New->Key),命名为 phpfile

  • 选中主键 phpfile,在右边一栏中双击“默认”("Default")并输入 PHP Script

  • 右键点击主键 phpfile,选择新建->主键New->Key),命名为 Shell

  • 右键点击主键 Shell,选择新建->主键New->Key),命名为 open

  • 右键点击主键 open,选择新建->主键New->Key),命名为 command

  • 选中主键 command,在右边一栏中双击“默认”("Default")并且输入 php.exe 的路径,例如 c:\php\php.exe -q %1(别忘了 %1)。

  • 退出 Regedit。

  • 如果使用 PWS for Windows,重新启动计算机使注册表生效。

PWS和IIS 3 的用户现在就拥有一个完全操作正常的 PHP 系统了。IIS 3 用户还可以使用由 Steven Genusa 提供的一个极好的工具来配置脚本映射。

Windows 和 PWS 4 或更新版本

在 PWS 4 或者更新版本中安装 PHP 有两个选择。一种是 CGI 方式,还有一种是使用 ISAPI 模块的 DLL。

如果你选择 CGI 方式,按照以下步骤:

  • 编辑 PHP 发行包中 SAPI 目录下的 pws-php4cgi.reg文件,在里面输入正确的 php.exe 的路径。反斜线必须双写,例如: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map] ".php"="c:\\php\\php.exe",然后双击此文件将其合并(Merge)到注册表中。

  • 在个人 Web 管理器中,右键点击你希望加入 PHP 支持的目录,选择“属性”(Properties),选中“执行“(Execute)多选框,并确认。

如果你选择 ISAPI 模块,按照以下步骤:

  • 编辑 PHP 发行包中 SAPI 目录下的 pws-php4isapi.reg 文件,在里面输入正确的 php4isapi.dll 的路径。反斜线必须双写,例如: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map] ".php"="c:\\php\\sapi\\php4isapi.dll",然后双击此文件将其合并(Merge)到注册表中。

  • 在个人 Web 管理器中,右键点击你希望加入 PHP 支持的目录,选择“属性”(Properties),选中“执行”(Execute)多选框,并确认。

无论哪种方式都需要重新启动计算机以使改变设置生效。

Windows NT/2000/XP 和 IIS 4 或更新版本

要在 NT/2000/XP 中的 IIS 4 或更新版本中安装 PHP,按照以下说明进行。有两种选择安装 PHP,CGI 方式(php.exe)或者 ISAPI 模块方式。

无论哪种方式,都需要打开管理中心(Microsoft Management Console,NT 4.0 Option Pack 中的 'Internet Services Manager',或者 2000/XP 中的控制面板 -> 管理工具(Control Panel->Administrative Tools))。用右键点击你的 Web Server 节点(多半是 'Default Web Site'),选择“属性”(Properties)。

如果你选择 CGI 方式,按照以下步骤:

  • 在“主目录”(Home Directory),“虚拟目录”(Virtual Directory)或者“目录”(Directory)标签栏中,点击“配置”(Configuration)按钮,然后选择“应用程序映射”(App Mappings)标签栏。

  • 点击“添加”(Add)按钮,在“可执行文件”(Executable)框中输入:c:\php\php.exe(假定你将 PHP 解压缩到了 c:\php\)。

  • 在“文件后缀”(Extension)框中输入你要使用的 PHP 后缀。'Method exclusions' 空着,选中“脚本引擎”(Script engine)。你也可以选中“检查文件是否存在”(check that file exists)- 略微损失一点性能,IIS 会先检查脚本文件是否存在。这样会输出 404 的错误信息而不是 PHP 没有输出任何数据的 cgi 错误。

    对于其它你想使用的 PHP 后缀重复以上两个步骤。通常使用的有 .php.phtml,对于一些老的程序还需要 .php3

  • 设置适当的安全级别(在Internet Service Manager 中完成)。如果你使用了 NTFS,还需要在 php.exe 所在的目录中给 I_USR_ 用户加上“执行”的权限。

如果你选择ISAPI模块,按照以下步骤:

  • 如果你不用 PHP 进行 HTTP 认证的话,你可以(也应该)跳过这一步。在 ISAPI Filters 中,加入一个新的 ISAPI filter。用 PHP 作为过滤器的名字,并且提供 php4isapi.dll 所在的路径。

  • 在“主目录”(Home Directory)中点击“配置”(Configuration)按钮,在应用程序映射(Application Mappings)中添加一个新的条目。用 php4isapi.dll 的路径作为可执行文件(Executable),用 .php 作为文件后缀,选中“脚本引擎”(Script Engine),而 'Method exclusions' 为空。

  • 完全停止 IIS 服务(NET STOP iisadmin)

  • 重新启动IIS服务(NET START w3svc)