PHP中文手册

版权信息

PHP 手册

入门指引

安装与配置

语言参考

安全

特点

函数参考

PHP 核心:骇客指南

FAQ

附录

Microsoft Windows 下的 Apache 2.x

本节包括在 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 handler 方式安装

需要将以下几行加入到 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>

以 CGI 方式运行 PHP

要更好地理解在 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();
?>

Warning

服务器使用 CGI 方式进行部署可能存在几个公开的缺陷。请阅读 CGI 安全一章 以学习 如何抵御这些攻击。

以 FastCGI 方式运行 PHP

以 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  
此时具有 .php 后缀的文件将被 PHP FastCGI 所解析执行。