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