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

PHP 運(yùn)行于 Apache 模塊方式

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

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

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 指令,因?yàn)槠錈o意義,實(shí)際等于 0。應(yīng)該用相應(yīng)的掩碼值來替代。這些常量可以在 php.ini 中使用。

通過 Windows 注冊(cè)表修改 PHP 配置

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

其它接口下的 PHP

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

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