PHP 手册
后退 |  | 前进

# 章 9. 运行时配置

# 配置文件

配置文件（PHP 3 中是 `php3.ini`，自 PHP 4 起是 `php.ini`）在 PHP 启动时被读取。对于服务器模块版本的 PHP，仅在 web 服务器启动时读取一次。对于 CGI 和 CLI 版本，每次调用都会读取。

`php.ini` 的搜索路径如下（按顺序）：

- SAPI 模块所指定的位置（Apache 2 中的 PHPIniDir 指令，CGI 和 CLI 中的 -c 命令行选项，NSAPI 中的 php_ini 参数，THTTPD 中的 PHP_INI_PATH 环境变量）

- HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath（Windows 注册表位置）

- PHPRC 环境变量

- 当前工作目录（对于 CLI）

- web 服务器目录（对于 SAPI 模块）或 PHP 所在目录（Windows 下其它情况）

- Windows 目录（`C:\windows` 或 `C:\winnt`），或 --with-config-file-path 编译时选项指定的位置

如果存在 `php-SAPI.ini`（SAPI 是当前所用的 SAPI 名称，因此实际文件名为 `php-cli.ini` 或 `php-apache.ini` 等），则会用它替代 `php.ini`。SAPI 的名称可以用 php_sapi_name() 来测定。

> 注: Apache web 服务器在启动时会把目录转到根目录，这将导致 PHP 尝试在根目录下读取 `php.ini`，如果存在的话。

由扩展库处理的 `php.ini` 指令，其文档分别在各扩展库的页面。内核配置选项见附录。不过也许不是所有的 PHP 指令都在手册中有文档说明。要得到自己的 PHP 版本中的配置指令完整列表，请阅读 `php.ini` 文件，其中都有注释。此外，也许从 CVS 得到的最新版 `php.ini` 也有帮助。

例子 9-1. `php.ini` 例子

    ; any text on a line after an unquoted semicolon (;) is ignored
    [php] ; section markers (text within square brackets) are also ignored
    ; Boolean values can be set to either:
    ;    true, on, yes
    ; or false, off, no, none
    register_globals = off
    track_errors = yes

    ; you can enclose strings in double-quotes
    include_path = ".:/usr/local/lib/php"

    ; backslashes are treated the same as any other character
    include_path = ".;c:\php\lib"

自 PHP 5.1.0 起，有可能在 .ini 文件内引用已存在的 .ini 变量。例如：open_basedir = ${open_basedir} ":/new/dir"。

后退 | 起点 | 前进
错误报告 | 上一级 | 怎样修改配置设定