本节包括在 Microsoft Windows 系统中针对 Apache 2.0.x 安装 PHP 的指导与说明。在其它页面也有 Apache 1.3.x 用户指导与说明。
Note: 应该先阅读手工安装步骤!
不推荐将线程化 MPM 用于实际运作的 Apache 2 环境中去。用 prefork MPM 替代,或者用 Apache 1。其原因见 FAQ 中的使用线程化 MPM 的 Apache2。
强烈建议阅读 » Apache 文档来加深对 Apache 2.0.x 服务器的基本理解。此外在继续下去之前考虑先阅读一下 Apache 2.0.x 的 » Windows 下使用说明。
Note: PHP 和 Apache 2.0.x 兼容性注意事项
已知下列版本的 PHP 可以工作于最近版本的 Apache 2.0.x 之下:
- PHP 4.3.0 或更高版本,可从 » http://www.php.net/downloads.php 下载。
- 最新的稳定开发版。取得源代码 » http://snaps.php.net/php5-latest.tar.gz 或下载 Windows 可执行程序 » http://snaps.php.net/win32/php5-win32-latest.zip。
- 预发布版,可从 » http://qa.php.net/ 下载。
- 总是可以通过» 匿名 CVS 取得 PHP。
以上版本的 PHP 与 Apache 2.0.40 或更高版本兼容。
Apache 2.0 SAPI 支持自 PHP 4.2.0 起。PHP 4.2.3 可工作于 2.0.39,不要用任何其它版本的 Apache 与 PHP 4.2.3 配合。不过推荐的设置是用 PHP 4.3.0 或更高版本与最新版的 Apache2 配合使用。
所有提及的 PHP 版本仍然能工作于 Apache 1.3.x 之下。
Apache 2.0.x 被设计运行于 Windows NT 4.0,Windows 2000 或 Windows XP 之下。目前为止对 Windows 9x 的支持尚未完成,此时尚不指望 Apache 2.0.x 在此类平台下工作。
下载最新版本的 » Apache 2.0.x 以及适合的 PHP 版本。先完成手工安装步骤后再回来继续将 PHP 集成入 Apache。
Windows 下有两种方法使 PHP 工作于 Apache 2.0.x 之中。一种是 使用 CGI 可执行程序,另一种是适用 Apache 模块的 DLL。不管哪种都需要编辑 httpd.conf 来配置 Apache 支持 PHP 并重新启动服务器。
Note: 记住在 Windows 下给 Apache 的配置文件中加入路径值的时候,所有的反斜线例如 c:\directory\file.ext 必须转换成正斜线,如 c:/directory/file.ext。
需要将以下三行加入到 Apache 的 httpd.conf 配置文件中以设定 CGI:
Example #1 PHP 在 Apache 2.0 中的 CGI 方式
ScriptAlias /php/ "c:/php/" AddType application/x-httpd-php .php # 对 PHP 4 用这行 Action application/x-httpd-php "/php/php.exe" # 对 PHP 5 用这行 Action application/x-httpd-php "/php/php-cgi.exe"
如果使用 CGI 方式安装,则服务器对于某些可能的攻击是开放的。请阅读 CGI 安全一章以学习如何防御这些攻击。
需要将以下两行加入到 Apache 的 httpd.conf 配置文件中以设定 Apache 2.0 的 PHP 模块:
Example #2 PHP 在 Apache 2.0 中的模块方式
# 对 PHP 4 用这两行: LoadModule php4_module "c:/php/php4apache2.dll" # 别忘了从 sapi 目录中把 php4apache2.dll 拷贝出来! AddType application/x-httpd-php .php # 对 PHP 5 用这两行: LoadModule php5_module "c:/php/php5apache2.dll" AddType application/x-httpd-php .php # 配置 php.ini 的路径 PHPIniDir "C:/php"
Note: 记得用自己 PHP 实际所在的路径替换掉上例中的 c:/php/。要留意在 LoadModule 指令中用的是 php4apache2.dll 或 php5apache2.dll,而不是 php4apache.dll 或 php5apache.dll,后者是设计用于 Apache 1.3.x 的。
Note: 如果要使用内容协商机制,请阅读有关 FAQ。
不要在安装中混合使用来自不同 PHP 版本的 DLL。使用下载回来的 PHP 版本中所提供的 DLL 和扩展库是唯一选择。