本安装指南指导手动在一个 Microsoft Windows 的 web 服务器下安装和配置 PHP。安装前需要从 » http://www.php.net/downloads.php 下载 PHP 的 ZIP 二进制发布包。
虽然目前有很多多合一的安装包,而且也发布了一个 Microsoft Windows 的 PHP 安装程序,但是仍然建议用户花些时间自己手动安装 PHP。因为这样才可以更加了解这套系统,并能够在需要的时候更方便的安装 PHP 扩展。
Note: 从旧版本的 PHP 升级
上一版的手册建议将 ini 和多个 DLL 文件移动到系统文件夹(例如 C:\WINDOWS)。这一步骤虽然简化了安装过程,却导致升级上的困难。建议在使用新版本的 PHP 前删除所有这些文件(比如从 Windows 系统文件夹删除 php.ini 和 PHP 相关的 DLL 文件)。务必在删除前备份这些文件,因为这一操作可能破坏整个系统。原有的 php.ini 在安装新版本的 PHP 时也可用来参考。不久用户便会明白,安装 PHP 最好的方式便是将所有 PHP 有关的文件都放入同一目录,并在系统的 PATH 环境变量中设置此目录。
Note: MDAC 需求
如果使用 Microsoft Windows 98/NT4,需要下载适用于系统最新版本的 Microsoft Data Access Components(MDAC)。MDAC 可在 » http://msdn.microsoft.com/data/ 下载。需要 MDAC 的原因是 Windows 二进制包中编译进了 ODBC 支持。
不论何种 web 服务器,都需要先进行以下步骤:
将 PHP 压缩包释放到选择的目录中。若使用 PHP 4,可以解压缩到 C:\,压缩包会被释放到一个类似 php-4.3.7-Win32 的新目录中。若使用 PHP 5,请解压缩到 C:\php,因为其 ZIP 包内没有类似 php-4.3.7-Win32 的目录信息。可以选择其它的路径但最好不要用中间有空格的路径(例如:C:\Program Files\PHP 就不太好),如果这样做有些 web 服务器会崩溃。
解压缩后的目录对应 PHP 4 和 5 是不同的。它们的目录结构分别为:
Example #1 PHP 4 目录结构
c:\php | +--cli | | | |-php.exe -- CLI 可执行程序 - 仅使用在命令行脚本 | +--dlls -- 某些扩展需要的 DLL 文件 | | | |-expat.dll | | | |-fdftk.dll | | | |-... | +--extensions -- PHP 的扩展 DLL 文件 | | | |-php_bz2.dll | | | |-php_cpdf.dll | | | |-.. | +--mibs -- SNMP 支持文件 | +--openssl -- Openssl 支持文件 | +--pdf-related -- PDF 支持文件 | +--sapi -- SAPI(服务器模块支持)DLL 文件 | | | |-php4apache.dll | | | |-php4apache2.dll | | | |-.. | +--PEAR -- PEAR 的初始复本 | | |-go-pear.bat -- PEAR 安装脚本 | |-.. | |-php.exe -- CGI 可执行文件 | |-.. | |-php.ini-dist -- 默认的 php.ini 设置 | |-php.ini-recommended -- 推荐的 php.ini 设置 | |-php4ts.dll -- 核心 PHP DLL 文件 | |-...
或:
Example #2 PHP 5 目录结构
c:\php | +--dev | | | |-php5ts.lib | +--ext -- PHP 的扩展 DLL 文件 | | | |-php_bz2.dll | | | |-php_cpdf.dll | | | |-.. | +--extras | | | +--mibs -- SNMP 支持文件 | | | +--openssl -- Openssl 支持文件 | | | +--pdf-related -- PDF 支持文件 | | | |-mime.magic | +--pear -- PEAR 的初始复本 | | |-go-pear.bat -- PEAR 安装脚本 | |-fdftk.dll | |-.. | |-php-cgi.exe -- CGI 可执行文件 | |-php-win.exe -- 执行脚本时不弹出命令提示行窗口 | |-php.exe -- CLI 可执行程序 - 仅使用在命令行脚本 | |-.. | |-php.ini-dist -- 默认的 php.ini 设置 | |-php.ini-recommended -- 推荐 php.ini 设置 | |-php5activescript.dll | |-php5apache.dll | |-php5apache2.dll | |-.. | |-php5ts.dll -- 核心 PHP DLL 文件 | |-...
请注意它们之间的不同和相似之处。PHP 4 和 PHP 5 都有一个 CGI 可执行文件、一个 CLI 可执行文件和服务器模块,但是它们位于不同的文件夹和/或有着不同的命名。PHP 4 将服务器模块放在 sapi 文件夹,而 PHP 5 并没有此目录,它的服务器模块文件位于 PHP 根文件夹中。PHP 5 的扩展支持 DLL 文件也并没有放在一个单独的目录中。
Note: 在 PHP 4 中,需要将位于 dll 和 sapi 文件夹中的文件移动到主文件夹中(例如 C:\php)。
下面是 PHP 4 和 PHP 5 附带的服务器模块列表:
sapi/php4activescript.dll (php5activescript.dll) - ActiveScript 引擎,允许将 PHP 嵌入 Windows 应用程序中。
sapi/php4apache.dll(php5apache.dll) - Apache 1.3.x 模块。
sapi/php4apache2.dll(php5apache2.dll) - Apache 2.0.x 模块。
sapi/php4isapi.dll(php5isapi.dll) - ISAPI 模块,支持 ISAPI 兼容的 web 服务器,比如 IIS 4.0/PWS 4.0 或更新版本。
sapi/php4nsapi.dll(php5nsapi.dll) - Sun/iPlanet/Netscape 服务器模块。
sapi/php4pi3web.dll(PHP 5 无此模块) - Pi3Web 服务器模块。
服务器模块比 CGI 可执行程序提供了更好的性能和更多的功能。CLI 版本是为使用 PHP 命令行脚本而设计的。关于 CLI 的更多信息可以在 PHP 的命令行模式一章中找到。
SAPI 模块在 4.1 中有较多的增强。但是,在老系统中可能会产生服务器错误,或导致服务器的其它模块停止工作,比如 ASP。
CGI 和 CLI 可执行文件以及 web 服务器模块都需要 php4ts.dll(php5ts.dll)。必须确认该文件可以在 PHP 安装路径中找到。对该 DLL 的搜索顺序为:
调用 php.exe 时所在的目录,或者若使用 SAPI 模块时,web 服务器的目录(例如 C:\Program Files\Apache Group\Apache2\bin)。
任何在 Windows 的 PATH 环境变量中指定的目录。
要让 php4ts.dll / php5ts.dll 能正确被搜索到,有下面三个选择:复制该文件到 Windows 系统目录,复制该文件到 web 服务器的目录,或者把 PHP 目录(例如 C:\php)添加到 PATH 环境变量中。为了将来更好的维护,建议使用最后一个选择,将 PHP 目录添加到 PATH 环境变量中,因为这样更便于将来升级 PHP。在相应的常见问题解答项目中可以了解如何将 PHP 目录添加到 PATH 环境变量中(别忘了重新启动电脑,光注销还不够)。
下一步是为 PHP 设置一个有效的配置文件,php.ini。在 ZIP 包中有两个 ini 文件,php.ini-dist 和 php.ini-recommended。建议使用 php.ini-recommended,因为在该文件中优化了性能和安全。请仔细阅读该文件中的注释,因为它从 php.ini-dist 修改而来,会对设置产生较大的影响。例如将 display_errors 设置为 off,将 magic_quotes_gpc 设置为 off。除了阅读这些部分,还可以学习一下 ini 设置,并手动设置每一个配置项目。如果想要最安全的设置,这是最好的方法,虽然 PHP 在默认配置下也是很安全的。复制所选择的 ini 文件到 PHP 能找到的目录中,并将其重命名为 php.ini。PHP 搜索 php.ini 的路径在配置文件一节已有介绍。
如果使用 Apache 2,更简单的选择是使用 PHPIniDir 指令(请阅读在 Apache 2 下的安装);若不是,最好的选择是设置 PHPRC 环境变量。它在此常见问题解答项目中进行了解释。
Note: 如果在 Windows NT、2000、XP 或 2003 中使用 NTFS 分区,请确认运行 web 服务器的用户有权限读取 php.ini(例如将其设置为 Everyone 可读)
下面的步骤是可选的:
编辑新的 php.ini 文件。如果计划使用 OmniHTTPd,不要执行下一步。设置 doc_root 并指向 web 服务器的 document_root。例如:
doc_root = c:\inetpub\wwwroot // for IIS/PWS doc_root = c:\apache\htdocs // for Apache
PHP 现在已经安装在系统中了。接下来一步是选择一个 web 服务器,并为之启用 PHP。请在本章目录中选择一个 web 服务器以了解更详细的安装步骤。