<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Microsoft IIS/PWS</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="PHP 手册" HREF="index.html"><LINK REL="UP" TITLE="Windows 系统下的安装" HREF="install.windows.html"><LINK REL="PREVIOUS" TITLE="ActiveScript" HREF="install.windows.activescript.html"><LINK REL="NEXT" TITLE="Microsoft Windows 下的 Apache 1.3.x" HREF="install.windows.apache1.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></HEAD ><BODY CLASS="sect1" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >PHP 手册</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="install.windows.activescript.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >章 6. Windows 系统下的安装</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="install.windows.apache1.html" ACCESSKEY="N" >下一页</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="sect1" ><H1 CLASS="sect1" ><A NAME="install.windows.iis" >Microsoft IIS/PWS</A ></H1 ><P > 本节包括针对 IIS(Microsoft Internet Information Server)的说明与提示。 </P ><DIV CLASS="warning" ><P ></P ><TABLE CLASS="warning" BORDER="1" WIDTH="100%" ><TR ><TD ALIGN="CENTER" ><B >警告</B ></TD ></TR ><TR ><TD ALIGN="LEFT" ><P >如果使用 CGI 方式安装,则服务器对于某些可能的攻击是开放的。请阅读 <A HREF="security.cgi-bin.html" >CGI 安全</A >一章以学习如何防御这些攻击。</P ></TD ></TR ></TABLE ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="install.windows.iis.general" >PHP 与 IIS 或 PWS 安装的通用事项</A ></H2 ><P > <P ></P ><UL ><LI ><P > 首先请阅读<A HREF="install.windows.manual.html" >手工安装步骤</A >。不要跳过这一步,这里提供了将 PHP 安装到 Windows 中的极其重要的信息。 </P ></LI ><LI ><P > CGI 用户必须在 <TT CLASS="filename" >php.ini</TT > 中将 <A HREF="ini.core.html#ini.cgi.force-redirect" >cgi.force_redirect</A > 指令设为 <TT CLASS="literal" >0</TT >。其重要细节请阅读 <A HREF="faq.installation.html#faq.installation.forceredirect" >FAQ 中的cgi.force_redirect</A >。此外,CGI 用户可能需要设定 <A HREF="ini.core.html#ini.cgi.redirect-status-env" >cgi.redirect_status_env</A > 指令。在使用这些指令时,确保它们没有在 <TT CLASS="filename" >php.ini</TT > 中被注释掉。 </P ></LI ><LI ><P > PHP 4 的 CGI 文件名是 <TT CLASS="filename" >php.exe</TT > 而在 PHP 5 中是 <TT CLASS="filename" >php-cgi.exe</TT >。在 PHP 5 中,<TT CLASS="filename" >php.exe</TT > 是 CLI 版本,不是 CGI。 </P ></LI ><LI ><P > 修改 Windows 的 <TT CLASS="literal" >PATH</TT > 环境变量以把 PHP 目录包括进去。这样 PHP 的 DLL 文件,可执行文件和 <TT CLASS="filename" >php.ini</TT > 就都可以保留在 PHP 目录中而不用把 Windows 系统目录搞乱了。更多细节见 FAQ 中的<A HREF="faq.installation.html#faq.installation.addtopath" >设定路径 PATH</A >。 </P ></LI ><LI ><P > IIS 专用用户(通常为 IUSR_MACHINENAME)需要能够读取各个文件和目录的权限,例如 <TT CLASS="filename" >php.ini</TT >,docroot 和 session 的 tmp 目录。 </P ></LI ><LI ><P > 确保在 <TT CLASS="filename" >php.ini</TT > 中正确设定了 <A HREF="ini.core.html#ini.extension-dir" >extension_dir</A > 和 <A HREF="ini.core.html#ini.doc-root" >doc_root</A > 指令的值。这些指令依赖于 PHP 被安装的系统。在 PHP 4 中,extension_dir 是 <TT CLASS="filename" >extensions</TT > 而在 PHP 5 中是 <TT CLASS="filename" >ext</TT >。因此在 PHP 5 中 extensions_dir 的一个取值例子是 <TT CLASS="filename" >"c:\php\ext"</TT >,IIS 的 doc_root 的取值例子是 <TT CLASS="filename" >"c:\Inetpub\wwwroot"</TT >。 </P ></LI ><LI ><P > PHP 扩展库的 DLL 文件,如 <TT CLASS="filename" >php_mysql.dll</TT > 和 <TT CLASS="filename" >php_curl.dll</TT >,存放于 PHP 下载的 ZIP 包中(自动安装包里没有)。在 PHP 5 中,很多扩展库都是 PECL 的一部分,可以从“Collection of PECL modules”包中下载,例如 <TT CLASS="filename" >php_zip.dll</TT > 和 <TT CLASS="filename" >php_ssh2.dll</TT >。<A HREF="http://www.php.net/downloads.php" TARGET="_top" >点击进入 PHP 下载页</A >。 </P ></LI ><LI ><P > 在定义应用程序扩展名映射时,应选中“检查文件是否存在”。以极小的性能为代价,IIS(或者 PWS)会在调用 PHP 之前检查脚本文件是否存在并选出认证方法。这意味着 web 服务器会提供一个有道理的 404 形式错误信息而不是一条 CGI 错误说什么 PHP 没有输出任何数据。 </P ></LI ></UL > </P ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="install.windows.iis.iis4" >Windows NT/200x/XP 和 IIS 4 或更高版本</A ></H2 ><P > PHP 可以安装为 CGI 或者 ISAPI 模块。不管哪种,都需要启动 Microsoft 管理控制台(也可能是“Internet 信息服务”,在 Windows NT 4.0 Option Pack 中或者在 Windows 2000/XP 下的控制面板=>管理工具)。然后右键点击 web 服务器节点(通常为“默认网站”),并选择“属性”。 </P ><P > 如果想用 CGI 方式,按如下方法进行: <P ></P ><UL ><LI ><P > 选择“主目录”,“虚拟目录”或“目录”标签页,然后进行: </P ></LI ><LI ><P > 将执行权限改为“纯脚本” </P ></LI ><LI ><P > 点“配置”按钮,选择“映射”标签页。点击“添加”按钮,将“可执行文件”指向适当的 CGI 文件名。例如 PHP 5 的值可能是:<TT CLASS="filename" >C:\php\php-cgi.exe</TT >。在“扩展名”中填入 <TT CLASS="literal" >.php</TT >。选择“全部动作”(或者“限制为”留空),选中“脚本引擎”。然后点击“确定”。 </P ></LI ><LI ><P > 设定合适的目录安全性(在 Internet 信息服务中完成)。如果 NT 服务器使用 NTFS 文件系统,给 I_USR_ 用户加上 <TT CLASS="filename" >php.exe</TT >/<TT CLASS="filename" >php-cgi.exe</TT > 文件所在目录的可执行权限(通过资源管理器完成)。 </P ></LI ></UL > </P ><P > 要用 ISAPI 模块方式,按如下方法进行: <P ></P ><UL ><LI ><P > 如果不想用 PHP 进行 HTTP 认证,应该跳过这一步。在“ISAPI 筛选器”标签页中添加一个新的 ISAPI 筛选器。“筛选器名称”设为 PHP,“可执行文件”设为 <TT CLASS="filename" >php4isapi.dll</TT >/<TT CLASS="filename" >php5isapi.dll</TT > 的路径。 </P ></LI ><LI ><P > 选择“主目录”,“虚拟目录”或“目录”标签页,然后进行: </P ></LI ><LI ><P > 将执行权限改为“纯脚本” </P ></LI ><LI ><P > 点“配置”按钮,选择“映射”标签页。点击“添加”按钮,将“可执行文件”指向适当的 ISAPI DLL。例如 PHP 5 的值可能是:<TT CLASS="filename" >C:\php\php5isapi.dll</TT >。在“扩展名”中填入 <TT CLASS="literal" >.php</TT >。选择“全部动作”(或者“限制为”留空),选中“脚本引擎”。然后点击“确定”。 </P ></LI ><LI ><P > 完全停止 IIS(NET STOP iisadmin) </P ></LI ><LI ><P > 重新启动 IIS(NET START w3svc) </P ></LI ></UL > </P ><P > 对于 IIS 6(2003 Server),打开 IIS 管理器,进入 web 服务扩展,点击“添加一个新的 web 服务扩展”,“扩展名”中输入名称,例如 PHP,再点击“添加”按钮,点击“浏览”选择要么 ISAPI 文件(<TT CLASS="filename" >php4isapi.dll</TT > 或 <TT CLASS="filename" >php5isapi.dll</TT >)或者 CGI 文件(<TT CLASS="filename" >php.exe</TT > 或 <TT CLASS="filename" >php-cgi.exe</TT >)作为“文件路径”后点“确定”,然后选中“设置扩展状态为允许”并点“确定”。 </P ><P > 要使用 <TT CLASS="filename" >index.php</TT > 作为默认文档,在“文档”标签页中选择“添加”。输入 <TT CLASS="filename" >index.php</TT > 并点“确定”。用上下箭头按钮调整顺序。这和在 Apache 中设定 DirectoryIndex 相似。 </P ><P > 对于每个要关联为 PHP 脚本的后缀都要重复以上步骤。<TT CLASS="literal" >.php</TT > 是最常用的,此外为兼容一些遗留下来的老程序可能还需要加上 <TT CLASS="literal" >.php3</TT >。 </P ><P > 如果过些时候之后碰到 CPU 占用率达到 100%,则取消选中“<TT CLASS="literal" >缓存 ISAPI 应用程序</TT >”(“主目录”下点“配置”按钮”)。 </P ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="install.windows.iis.pws4" >Windows 和 PWS 4</A ></H2 ><P > PWS 4 不支持 ISAPI,只能使用 PHP CGI。 </P ><P > <P ></P ><UL ><LI ><P > 编辑包里附上的 <TT CLASS="filename" >pws-php4cgi.reg</TT >/<TT CLASS="filename" >pws-php5cgi.reg</TT > 文件(PHP 4 在 SAPI 目录下,PHP 5 在主目录下)改为自己的 <TT CLASS="filename" >php.exe</TT >/<TT CLASS="filename" >php-cgi.exe</TT > 文件的路径。反斜线应双写,例如:<TT CLASS="literal" >[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map] ".php"="C:\\php\\php.exe"</TT >(如果用 PHP 5 则改为 <TT CLASS="literal" >C:\\php\\php-cgi.exe</TT >)。然后将此注册表文件合并入系统;鼠标双击此文件即可。 </P ></LI ><LI ><P > 在 PWS 管理器中,右键点击需要加入 PHP 支持的目录并选择“属性”。选中“执行”,并确认。 </P ></LI ></UL > </P ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="install.windows.iis.iis3" >Windows 和 PWS/IIS 3</A ></H2 ><P > 配置此服务器的推荐方法是使用随包发布的注册表文件(PHP 4 是 SAPI 目录下的 <TT CLASS="filename" >pws-php4cgi.reg</TT >,PHP 5 是主目录下的 <TT CLASS="filename" >pws-php5cgi.reg</TT >)。可能要编辑此文件已确保其中的 PHP 安装目录和扩展库目录符合用户自己的设置。或者按以下步骤手工完成。 </P ><DIV CLASS="warning" ><P ></P ><TABLE CLASS="warning" BORDER="1" WIDTH="100%" ><TR ><TD ALIGN="CENTER" ><B >警告</B ></TD ></TR ><TR ><TD ALIGN="LEFT" ><P > 以下步骤涉及到直接操作 Windows 注册表。如果出错可能使系统不稳定,强烈建议先备份注册表。如果用户损坏了注册表 PHP 开发组不负任何责任。 </P ></TD ></TR ></TABLE ></DIV ><P > <P ></P ><UL ><LI ><P > 运行 Regedit。 </P ></LI ><LI ><P > 找到:<TT CLASS="literal" >HKEY_LOCAL_MACHINE /System /CurrentControlSet /Services /W3Svc /Parameters /ScriptMap</TT >。 </P ></LI ><LI ><P > 在编辑菜单选择:<TT CLASS="literal" >新建->字符串值</TT >。 </P ></LI ><LI ><P > 输入 PHP 脚本想要使用的后缀,例如 <TT CLASS="literal" >.php</TT >。 </P ></LI ><LI ><P > 双击新建的字符串值并在“数值数据”栏里输入 <TT CLASS="filename" >php.exe</TT > 的路径,例如 PHP 4 是 <TT CLASS="filename" >C:\php\php.exe "%s" %s</TT >,或者 PHP 5 是 <TT CLASS="filename" >C:\php\php-cgi.exe "%s" %s</TT >。 </P ></LI ><LI ><P > 对每个要关联为 PHP 脚本的文件后缀名重复以上步骤。 </P ></LI ></UL > </P ><P > 以下步骤不影响 web 服务器安装,仅适用于想在命令行下运行 PHP 脚本(例如运行 <TT CLASS="filename" >C:\myscripts\test.php</TT >)或者在资源管理器窗口中双击文件名就运行程序。如果更希望双击 PHP 文件名是将其调入文本编辑器,则跳过以下步骤。 </P ><P > <P ></P ><UL ><LI ><P > 找到:<TT CLASS="literal" >HKEY_CLASSES_ROOT</TT >。 </P ></LI ><LI ><P > 在编辑菜单选择:<TT CLASS="literal" >新建->项</TT >。 </P ></LI ><LI ><P > 将新项命名为前一节设的后缀,例如:<TT CLASS="literal" >.php</TT >。 </P ></LI ><LI ><P > 选中新项,在右边栏双击“默认”并输入 <TT CLASS="literal" >phpfile</TT >。 </P ></LI ><LI ><P > 对每个在前一节设定的后缀都重复以上步骤。 </P ></LI ><LI ><P > 在 <TT CLASS="literal" >HKEY_CLASSES_ROOT</TT > 下再创建另一个<TT CLASS="literal" >新建->项</TT > 并命名为 <TT CLASS="literal" >phpfile</TT >。 </P ></LI ><LI ><P > 选中新项 <TT CLASS="literal" >phpfile</TT >,在右边栏双击“默认”并输入 <TT CLASS="literal" >PHP Script</TT >。 </P ></LI ><LI ><P > 右键点击 <TT CLASS="literal" >phpfile</TT > 项并选择<TT CLASS="literal" >新建->项</TT >,命名为 <TT CLASS="literal" >Shell</TT >。 </P ></LI ><LI ><P > 右键点击 <TT CLASS="literal" >Shell</TT > 项并选择<TT CLASS="literal" >新建->项</TT >,命名为 <TT CLASS="literal" >open</TT >。 </P ></LI ><LI ><P > 右键点击 <TT CLASS="literal" >open</TT > 项并选择<TT CLASS="literal" >新建->项</TT >,命名为 <TT CLASS="literal" >command</TT >。 </P ></LI ><LI ><P > 选中新项 <TT CLASS="literal" >command</TT >,在右边栏双击“默认”并输入 <TT CLASS="filename" >php.exe</TT > 的路径,例如:<TT CLASS="literal" >c:\php\php.exe -q %1</TT >(不要忘了 <TT CLASS="literal" >%1</TT >)。 </P ></LI ><LI ><P > 退出 Regedit。 </P ></LI ><LI ><P > 如果是 Windows 下的 PWS,重启动以重新加载注册表。 </P ></LI ></UL > </P ><P > PWS 和 IIS 3 的用户现在就拥有了完全可运作的系统。IIS 3 用户可以使用来自 Steven Genusa 的漂亮<A HREF="http://www.genusa.com/iis/iiscfg.html" TARGET="_top" >工具</A >来配置脚本映射。 </P ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="install.windows.activescript.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >起始页</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="install.windows.apache1.html" ACCESSKEY="N" >下一页</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >ActiveScript</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="install.windows.html" ACCESSKEY="U" >上一级</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Microsoft Windows 下的 Apache 1.3.x</TD ></TR ></TABLE ></DIV ></BODY ></HTML >