本節(jié)包括在 Microsoft Windows 系統(tǒng)中針對(duì) Apache 2.x 安裝 PHP 的指導(dǎo)與說(shuō)明。
注意:
請(qǐng)先閱讀手工安裝步驟!
強(qiáng)烈建議閱讀 ? Apache 文檔 來(lái)加深對(duì) Apache 2.x 服務(wù)器的基本理解。此外在繼續(xù)下去之前考慮先閱讀一下 Apache 2.x 的 ? Windows 下使用說(shuō)明。
下載最新版本的 ? Apache 2.x 以及適合的 PHP 版本。先完成手工安裝步驟后再回來(lái)繼續(xù)將 PHP 集成入 Apache。
Windows 下有三種方法使 PHP 工作于 Apache 2.x 之中。可以以 handler、CGI、或者 FastCGI 方式運(yùn)行 PHP。
注意: 記住當(dāng)在 Windows 環(huán)境下的 Apache 配置文件中添加路徑值時(shí),所有的反斜線,如 c:\directory\file.ext,應(yīng)轉(zhuǎn)換為正斜線: c:/directory/file.ext。對(duì)目錄來(lái)說(shuō),也必須由斜線結(jié)尾。
需要將以下幾行加入到 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"
注意: 必須使用實(shí)際的 PHP 路徑替換掉上例中的 c:/php/。 確保在
LoadModule
指令中引用的文件位于所指定的位置。 PHP 7 使用 php7apache2_4.dll, PHP 8 使用 php8apache2_4.dll。
要更好地理解在 Apache 下運(yùn)行 CGI,請(qǐng)參閱 ? Apache CGI 文檔。
要將 PHP 以 CGI 方式運(yùn)行,需要將 php-cgi 文件放入到用 ScriptAlias 指令所指定的 CGI 目錄中。
然后需要給 PHP 文件中添加 #!
的一行來(lái)指明 PHP 可執(zhí)行文件的位置:
示例 #2 Apache 2.x 下 CGI 方式的 PHP
#!C:/php/php.exe <?php phpinfo(); ?>
服務(wù)器使用 CGI 方式進(jìn)行部署可能存在幾個(gè)公開(kāi)的缺陷。請(qǐng)閱讀 CGI 安全一章 以學(xué)習(xí) 如何抵御這些攻擊。
以 FastCGI 方式運(yùn)行 PHP 比起 CGI 方式有很多優(yōu)點(diǎn)。設(shè)定的方式很直接:
從 ? https://www.apachelounge.com
取得 mod_fcgid
,該站點(diǎn)有 Win32 可執(zhí)行文件的下載。按照下載文件中的指示安裝此模塊。
按以下方法配置 web 服務(wù)器,注意用自己系統(tǒng)上的路徑替換其中相應(yīng)的內(nèi)容:
示例 #3 配置 Apache 以 FastCGI 方式運(yùn)行 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