PHP 手册
后退 | 章 6. Windows 系统下的安装 | 前进

# 手工安装步骤

本安装指南指导手动在一个 Microsoft Windows 的 web 服务器下安装和配置 PHP。安装前需要从 http://www.php.net/downloads.php 下载 PHP 的 ZIP 二进制发布包。

虽然目前有很多多合一的安装包，而且也发布了一个 Microsoft Windows 的 PHP 安装程序，但是仍然建议用户花些时间自己手动安装 PHP。因为这样才可以更加了解这套系统，并能够在需要的时候更方便的安装 PHP 扩展。

> 从旧版本的 PHP 升级: 上一版的手册建议将 ini 和多个 DLL 文件移动到系统文件夹（例如 `C:\WINDOWS`）。这一步骤虽然简化了安装过程，却导致升级上的困难。建议在使用新版本的 PHP 前删除所有这些文件（比如从 Windows 系统文件夹删除 `php.ini` 和 PHP 相关的 DLL 文件）。务必在删除前备份这些文件，因为这一操作可能破坏整个系统。原有的 `php.ini` 在安装新版本的 PHP 时也可用来参考。不久用户便会明白，安装 PHP 最好的方式便是将所有 PHP 有关的文件都放入同一目录，并在系统的 PATH 环境变量中设置此目录。

> 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 是不同的。它们的目录结构分别为：

例子 6-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 文件
       |
       |-...

或：

例子 6-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 文件也并没有放在一个单独的目录中。

> 注: 在 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 环境变量。它在此常见问题解答项目中进行了解释。

> 注: 如果在 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 装载的扩展库。请阅读关于 Windows 扩展一节以了解如何设置扩展库，以及哪些功能已经内置无需扩展库。请注意建议在全新安装时先不要在 `php.ini` 中加载任何扩展库，首先要保证 PHP 自身能够正常工作。

- 在 PWS 和 IIS，可以设置 browscap 配置：在 Windows 9x/Me 中指向 `c:\windows\system\inetsrv\browscap.ini`，在 NT/2000 中指向 `c:\winnt\system32\inetsrv\browscap.ini`，在 XP 中指向 `c:\windows\system32\inetsrv\browscap.ini`。要得到最新版本的 `browscap.ini`，请阅读如下常见问题解答项目。

PHP 现在已经安装在系统中了。接下来一步是选择一个 web 服务器，并为之启用 PHP。请在本章目录中选择一个 web 服务器以了解更详细的安装步骤。

后退 | 起点 | 前进
Windows 系统下的安装 | 上一级 | ActiveScript