本节包括在 Microsoft Windows 系统中针对 Apache 2.x 安装 PHP 的指导与说明。
注意:
请先阅读手工安装步骤!
强烈建议阅读 » Apache 文档 来加深对 Apache 2.x 服务器的基本理解。此外在继续下去之前考虑先阅读一下 Apache 2.x 的 » Windows 下使用说明。
下载最新版本的 » Apache 2.x 以及适合的 PHP 版本。先完成手工安装步骤后再回来继续将 PHP 集成入 Apache。
Windows 下有三种方法使 PHP 工作于 Apache 2.x 之中。可以以 handler、CGI、或者 FastCGI 方式运行 PHP。
注意: 记住当在 Windows 环境下的 Apache 配置文件中添加路径值时,所有的反斜线,如 c:\directory\file.ext,应转换为正斜线: c:/directory/file.ext。对目录来说,也必须由斜线结尾。
注意: 在使用 apache2handler SAPI 时,必须使用线程安全 (TS) 版本的 PHP。
需要将以下几行加入到 Apache 的 httpd.conf 配置文件中以加载 Apache 2.x 的 PHP 模块:
示例 #1 PHP 在 Apache 2.x 中作为 handler
# 在 PHP 8.0.0 之前,模块的名称是 php7_module LoadModule php_module "c:/php/php8apache2_4.dll" <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch> # 配置 php.ini 的路径 PHPIniDir "C:/php"
注意: 必须使用实际的 PHP 路径替换掉上例中的 c:/php/。 确保在
LoadModule
指令中引用的文件位于所指定的位置。 PHP 7 使用 php7apache2_4.dll, PHP 8 使用 php8apache2_4.dll。
要更好地理解在 Apache 下运行 CGI,请参阅 » Apache CGI 文档。
要将 PHP 以 CGI 方式运行,需要将 php-cgi 文件放入到用 ScriptAlias 指令所指定的 CGI 目录中。
然后需要给 PHP 文件中添加 #!
的一行来指明 PHP 可执行文件的位置:
示例 #2 Apache 2.x 下 CGI 方式的 PHP
#!C:/php/php.exe <?php phpinfo(); ?>
服务器使用 CGI 方式进行部署可能存在几个公开的缺陷。请阅读 CGI 安全一章 以学习 如何抵御这些攻击。
以 FastCGI 方式运行 PHP 比起 CGI 方式有很多优点。设定的方式很直接:
从 » https://www.apachelounge.com
取得 mod_fcgid
,该站点有 Win32 可执行文件的下载。按照下载文件中的指示安装此模块。
按以下方法配置 web 服务器,注意用自己系统上的路径替换其中相应的内容:
示例 #3 配置 Apache 以 FastCGI 方式运行 PHP
LoadModule fcgid_module modules/mod_fcgid.so # php.ini 文件的位置 FcgidInitialEnv PHPRC "c:/php" <FilesMatch \.php$> SetHandler fcgid-script </FilesMatch> FcgidWrapper "c:/php/php-cgi.exe" .php
.php
后缀的文件将被 PHP FastCGI 所解析执行。