怎样改变配置选项
以 Apache 模块方式运行 PHP
     当以 Apache 的模块方式运行 PHP 时,也可以通过 Apache
     的配置文件(例如 httpd.conf)和
     .htaccess
     文件中的指令来修改 PHP 的配置选项(需要“AllowOverride Options”或“AllowOverride All”权限)。
    
     在 PHP 4.0 中,有几个 Apache 指令可以允许在 Apache
     的配置文件中修改 PHP 的配置。要得到哪些指令分别属于
     PHP_INI_ALL,PHP_INI_PERDIR 或
     PHP_INI_SYSTEM
     的列表,请看 ini_set() 文档中的表格。
    
注: 
      在 PHP 3.0 中,也有和
      php3.ini 中选项相对应的
      Apache 指令,只不过加上前缀“php3_”。
     
     
- php_value
        name
        value
- 
         设定指定指令的值。仅能用于
         PHP_INI_ALL 和 PHP_INI_PERDIR
         类型的指令。要清除上一个设定的值,将值设为 none。
         - 注: 
          不要用 php_value 来设定布尔值。应该用
          php_flag(见下面)来替代。
          
 
- php_flag
        name
        on|off
- 
         用于设定布尔值类型的配置指令。仅能用于
         PHP_INI_ALL 和 PHP_INI_PERDIR
         类型的指令。
         
- php_admin_value
        name
        value
- 
         设定指定指令的值。不能在 .htaccess 文件中使用。任何在
         php_admin_value
         中设定的值不能被 .htaccess 或者 virtualhost
         中的指令覆盖。要清除上一个设定的值,将值设为 none。
         
- php_admin_flag
        name
        on|off
- 
         用于设定布尔值类型的配置指令。不能在 .htaccess 文件中使用。任何在
         php_admin_flag
         中设定的值不能被 .htaccess 或者 virtualhost 中的指令覆盖。
         
     
| 例子 4-2. Apache 配置例子 | <IfModule mod_php4.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag safe_mode on
</IfModule>
<IfModule mod_php3.c>
  php3_include_path ".:/usr/local/lib/php"
  php3_safe_mode on
</IfModule> | 
 | 
    | 注意 | 
| 
      PHP 常量不存在于 PHP 之外。例如,在 httpd.conf
      中可以使用 PHP 常量如
      E_ALL 或者 E_NOTICE
      来设定
      error_reporting
      指令的值,但它们其实没有意义并被认为是
      0。应该使用相应的位掩码。这些常量可以在
      php.ini 中使用。
      | 
通过修改 Windows 注册表来改变 PHP 配置
      在 Windows 下运行 PHP 时,可以通过 Windows
      注册表来修改每个目录的配置选项。配置的值存放于注册表的
      HKLM\SOFTWARE\PHP\Per Directory Values
      下面根据每个路径起名的子键中。例如对于路径
      c:\inetpub\wwwroot 的配置值存放于
      HKLM\SOFTWARE\PHP\Per Directory
      Values\c\inetpub\wwwroot。对于目录的设置将会在任何在此目录及其子目录下运行的脚本激活。对应键名应该和
      PHP 配置选项相同并且具有字符串值。值中的
      PHP 常量不会被解析。
    
其它 PHP 接口
     不论 PHP
     的接口是什么都可以在脚本执行过程中通过
     ini_set()
     来修改一些值。下表提供了指令可以在哪一级被设定/修改的概览。
    
     
表格 4-1. PHP_INI_* 常量的定义
| 常量 | 值 | 含义 | 
|---|
| PHP_INI_USER | 1 | 该项目可以在用户脚本中设定 | 
| PHP_INI_PERDIR | 2 | 该项目可以在 php.ini,.htaccess 或者
         httpd.conf 中设定 | 
| PHP_INI_SYSTEM | 4 | 该项目可以在 php.ini 或 httpd.conf 中设定 | 
| PHP_INI_ALL | 7 | 该项目可以在任何地方设定 | 
     可以在
     phpinfo()
     的输出中查看配置选项的值。也可以用
     ini_get() 或 get_cfg_var()
     来单个访问配置指令的值。