本节包括在 Microsoft Windows 系统中针对 Apache 2.x 安装 PHP 的指导与说明。在其它页面也有 Apache 1.3.x 用户指导与说明。
Note:
应该先阅读手工安装步骤!
Note: Apache 2.2 支持
Apache 2.2 用户应留意对于 Apache 2.2 的 DLL 文件名是 php5apache2_2.dll 而不是 php5apache2.dll,并且只在 PHP 5.2.0 以及更高版本中出现。参见 » http://snaps.php.net/。
强烈建议阅读 » Apache 文档来加深对 Apache 2.x 服务器的基本理解。此外在继续下去之前考虑先阅读一下 Apache 2.x 的 » Windows 下使用说明。
Apache 2.x 被设计运行于 Windows 版的服务器平台下,例如 Windows NT 4.0,Windows 2000,Windows XP 或 Windows 7。虽然 Apache 2.x 可以在 Windows 9x 下勉强运行,但对此平台的支持尚未完成,某些功能无法正确工作。对此并无补救计划。
下载最新版本的 » Apache 2.x 以及适合的 PHP 版本。先完成手工安装步骤后再回来继续将 PHP 集成入 Apache。
Windows 下有三种方法使 PHP 工作于 Apache 2.x 之中。可以以 handler,CGI,或者 FastCGI 方式运行 PHP。
Note: 记住当在 Windows 环境下的 Apache 配置文件中添加路径值时,所有的反斜线,如 c:\directory\file.ext,应转换为正斜线: c:/directory/file.ext。对目录来说,也必须由斜线结尾。
需要将以下几行加入到 Apache 的 httpd.conf 配置文件中以加载 Apache 2.x 的 PHP 模块:
Example #1 PHP 在 Apache 2.x 中作为 handler
# LoadModule php5_module "c:/php/php5apache2.dll" AddHandler application/x-httpd-php .php # 配置 php.ini 的路径 PHPIniDir "C:/php"
Note: 记得用自己 PHP 实际所在的路径替换掉上例中的 c:/php/。要留意在 LoadModule 指令中使用了 php5apache2.dll 或者 php5apache2_2.dll,并且该文件确实位于所指定的位置。
以上配置将使 PHP 处理任何具有 .php 后缀的文件,即使该文件还有其它的文件后缀。例如一个名为 example.php.txt 的文件将被作为 PHP 文件运行。要确保只有以 .php 结尾的文件才被执行,则用以下配置替换上面的:
<FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>
要更好地理解在 Apache 下运行 CGI,请参阅 » Apache CGI 文档。
要将 PHP 以 CGI 方式运行,需要将 php-cgi 文件放入到用 ScriptAlias 指令所指定的 CGI 目录中。
然后需要给 PHP 文件中添加一 #! 的行来指明 PHP 可执行文件的位置:
Example #2 Apache 2.x 下 CGI 方式的 PHP
#!C:/php/php.exe <?php phpinfo(); ?>
服务器使用 CGI 方式进行部署可能存在几个公开的缺陷。请阅读 CGI 安全一章 以学习 如何抵御这些攻击。
以 FastCGI 方式运行 PHP 比起 CGI 方式有很多优点。设定的方式很直接:
从 » http://httpd.apache.org/mod_fcgid/ 取得 mod_fcgid,该站点有 Win32 可执行文件的下载。按照下载文件中的指示安装此模块。
按以下方法配置 web 服务器,注意用自己系统上的路径替换其中相应的内容:
Example #3 配置 Apache 以 FastCGI 方式运行 PHP
LoadModule fcgid_module modules/mod_fcgid.so # Where is your php.ini file? FcgidInitialEnv PHPRC "c:/php" AddHandler fcgid-script .php FcgidWrapper "c:/php/php-cgi.exe" .php