怎樣修改配置設(shè)定

PHP 運行于 Apache 模塊方式

當(dāng)使用 PHP 作為 Apache 模塊時,也可以用 Apache 的配置文件(例如 httpd.conf)和 .htaccess 文件中的指令來修改 PHP 的配置設(shè)定。需要有“AllowOverride Options”或“AllowOverride All”權(quán)限才可以。

有幾個 Apache 指令可以使用戶在 Apache 配置文件內(nèi)部修改 PHP 的配置。哪些指令屬于 PHP_INI_ALL,PHP_INI_PERDIRPHP_INI_SYSTEM 中的哪一個,請參考附錄中的 php.ini 配置選項列表。

php_value name value

設(shè)定指定的值。只能用于 PHP_INI_ALLPHP_INI_PERDIR 類型的指令。要清除先前設(shè)定的值,把 value 設(shè)為 none

注意: 不要用 php_value 設(shè)定布爾值。應(yīng)該用 php_flag(見下面)。

php_flag name on|off

用來設(shè)定布爾值的配置指令。僅能用于 PHP_INI_ALLPHP_INI_PERDIR 類型的指令。

php_admin_value name value

設(shè)定指定的指令的值。不能用于 .htaccess 文件。任何用 php_admin_value 設(shè)定的指令都不能被 .htaccess 或 virtualhost 中的指令覆蓋。要清除先前設(shè)定的值,把 value 設(shè)為 none。

php_admin_flag name on|off

用來設(shè)定布爾值的配置指令。不能用于 .htaccess 文件。任何用 php_admin_flag 設(shè)定的指令都不能被 .htaccess 或 virtualhost 中的指令覆蓋。

示例 #1 Apache 配置例子

<IfModule mod_php5.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag engine on
</IfModule>
<IfModule mod_php4.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag engine on
</IfModule>

警告

PHP 常量不存在于 PHP 之外。例如在 httpd.conf 中不能使用 PHP 常量如 E_ALLE_NOTICE 來設(shè)定 error_reporting 指令,因為其無意義,實際等于 0。應(yīng)該用相應(yīng)的掩碼值來替代。這些常量可以在 php.ini 中使用。

通過 Windows 注冊表修改 PHP 配置

在 Windows 下運行 PHP 時,可以用 Windows 注冊表以目錄為單位來修改配置。配置值存放于注冊表項 HKLM\SOFTWARE\PHP\Per Directory Values 下面,子項對應(yīng)于路徑名。例如對于目錄 c:\inetpub\wwwroot 的配置值會存放于 HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot 項下面。其中的設(shè)定對于任何位于此目錄及其任何子目錄的腳本都有效。項中的值的名稱是 PHP 配置指令的名字,值的數(shù)據(jù)是字符串格式的指令值。值中的 PHP 常量不被解析。不過只有可修改范圍是 PHP_INI_USER 的配置值可以用此方法設(shè)定,PHP_INI_PERDIR 的值就不行。因為這些配置對于每次請求來說是只讀的。

其它接口下的 PHP

無論怎樣運行 PHP,都可以在腳本中通過 ini_set() 而在運行時修改某個值。更多信息見手冊中 ini_set() 的頁面。

如果對自己系統(tǒng)中的配置設(shè)定及其當(dāng)前值的完整列表感興趣,可以運行 phpinfo() 函數(shù)并查看其結(jié)果的頁面。也可以在運行時用 ini_get()get_cfg_var() 取得個別配置指令的值。