PHP 手册
后退 | 章 6. Windows 系统下的安装 | 前进

# Microsoft Windows 下的 Apache 1.3.x

本节包括在 Microsoft Windows 平台的 Apache 下安装 PHP 的说明和提示。在另外的页面也有 Apache 2 的安装和说明。

> 注: 应该首先阅读手动安装步骤！

有两种方式让 PHP 工作在 Windows 下的 Apache 1.3.x 中。首先是使用 CGI 可执行程序（PHP 4 下为 `php.exe`，PHP 5 下为 `php-cgi.exe`），另外一种方式是使用 Apache 模块 DLL。无论是那种方式，都需要修改 `httpd.conf` 来配置 Apache，使 PHP 能够在其上运行，然后都需要重启服务。

值得注意的是，现在 Windows 下的 SAPI 模块已经稳定得多，我们建议首先考虑使用 SAPI 而不要使用 CGI 可执行程序。因为 SAPI 更加透明和安全。

虽然还有些其它的方法来在 Apache 下配置 PHP，下面介绍的方法是最简单并适用于新手的。请参考 Apache 的文档以获得更多的配置参数。

在修改完配置文件后，请记得重启 Apache 服务。例如，如果把 Apache 作为 Windows 的一个服务来运行，那么在命令提示行下使用 NET STOP APACHE 命令然后再使用 NET START APACHE 命令便可重启服务。也可以使用重启 Apache 服务的快捷方式来重启。

> 注: 记住在 Windows 下给 Apache 的配置文件中加入路径值的时候，所有的反斜线例如 `c:\directory\file.ext` 必须转换成正斜线，如 `c:/directory/file.ext`。

## 作为 Apache 的模块安装

应该将下面几行加入 Apache 的 `httpd.conf` 文件:

例子 6-3. PHP 作为 Apache 1.3.x 的一个模块

这里假设 PHP 安装在 `c:\php`。如果不是这样请根据情况修改路径。

对于 PHP 4:

    # 在 LoadModule 一节的末尾添加
    # 不要忘记将该文件从 sapi 复制出来
    LoadModule php4_module "C:/php/php4apache.dll"

    # 在 AddModule 一节的末尾添加
    AddModule mod_php4.c

对于 PHP 5:

    # 在 LoadModule 一节的末尾添加
    LoadModule php5_module "C:/php/php5apache.dll"

    # 在 AddModule 一节的末尾添加
    AddModule mod_php5.c

两个 PHP 版本都需要添加的内容:

    # 将下面这行添加到 <IfModule mod_mime.c> 条件块中
    AddType application/x-httpd-php .php

    # 如果要使用语法高亮的 .phps 文件，需要添加
    AddType application/x-httpd-php-source .phps

## 作为 CGI 可执行文件的安装

如果按照手动安装步骤将 PHP 解压到 `C:\php\`，需要在 Apache 的配置文件中添加如下内容以使 PHP 按照 CGI 方式运行:

例子 6-4. PHP 以 CGI 方式运行在 Apache 1.3.x

    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"

    # 指定 php.ini 所在目录
    SetEnv PHPRC C:/php

请注意第二行的配置可以在默认的 `httpd.conf` 中找到，但是是被注释掉的。也请记得将 `c:/php/` 替换为 PHP 所在的真实路径。

警告
如果使用 CGI 方式安装，则服务器对于某些可能的攻击是开放的。请阅读 CGI 安全一章以学习如何防御这些攻击。

如果想发布语法高亮的 php 文件，没有类似于模块方式下 PHP 那种方便的方法。选择了使用 CGI 方式运行 PHP，需要使用 highlight_file() 函数来进行语法高亮。创建一个 PHP 文件，加入下述代码即可：<?php highlight_file('some_php_script.php'); ?>。

后退 | 起点 | 前进
Microsoft IIS／PWS | 上一级 | Microsoft Windows 下的 Apache 2.0.x