當使用 PHP 作為 Apache 模塊時(shí),也可以用 Apache 的配置文件(例如 httpd.conf)和 .htaccess 文件中的指令來(lái)修改 PHP 的配置設定。需要有“AllowOverride Options”或“AllowOverride All”權限才可以。
有幾個(gè) Apache 指令可以使用戶(hù)在 Apache
配置文件內部修改 PHP 的配置。哪些指令屬于
PHP_INI_ALL
,PHP_INI_PERDIR
或 PHP_INI_SYSTEM
中的哪一個(gè),請參考附錄中的
php.ini 配置選項列表。
php_value
name
value
設定指定的值。只能用于
PHP_INI_ALL
或 PHP_INI_PERDIR
類(lèi)型的指令。要清除先前設定的值,把 value 設為 none
。
注意: 不要用
php_value
設定布爾值。應該用php_flag
(見(jiàn)下面)。
php_flag
name
on|off
用來(lái)設定布爾值的配置指令。僅能用于
PHP_INI_ALL
和
PHP_INI_PERDIR
類(lèi)型的指令。
php_admin_value
name
value
設定指定的指令的值。不能用于 .htaccess
文件。任何用 php_admin_value
設定的指令都不能被 .htaccess 或 virtualhost
中的指令覆蓋。要清除先前設定的值,把 value 設為 none
。
php_admin_flag
name
on|off
用來(lái)設定布爾值的配置指令。不能用于 .htaccess
文件。任何用 php_admin_flag
設定的指令都不能被 .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_ALL
或 E_NOTICE
來(lái)設定
error_reporting
指令,因為其無(wú)意義,實(shí)際等于
0。應該用相應的掩碼值來(lái)替代。這些常量可以在
php.ini 中使用。
在 Windows 下運行 PHP 時(shí),可以用 Windows
注冊表以目錄為單位來(lái)修改配置。配置值存放于注冊表項
HKLM\SOFTWARE\PHP\Per Directory Values
下面,子項對應于路徑名。例如對于目錄
c:\inetpub\wwwroot
的配置值會(huì )存放于
HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot
項下面。其中的設定對于任何位于此目錄及其任何子目錄的腳本都有效。項中的值的名稱(chēng)是
PHP 配置指令的名字,值的數據是字符串格式的指令值。值中的 PHP
常量不被解析。不過(guò)只有可修改范圍是 PHP_INI_USER
的配置值可以用此方法設定,PHP_INI_PERDIR
的值就不行。因為這些配置對于每次請求來(lái)說(shuō)是只讀的。
無(wú)論怎樣運行 PHP,都可以在腳本中通過(guò) ini_set() 而在運行時(shí)修改某個(gè)值。更多信息見(jiàn)手冊中 ini_set() 的頁(yè)面。
如果對自己系統中的配置設定及其當前值的完整列表感興趣,可以運行 phpinfo() 函數并查看其結果的頁(yè)面。也可以在運行時(shí)用 ini_get() 或 get_cfg_var() 取得個(gè)別配置指令的值。