怎樣修改配置設定
PHP 執行于 Apache 模組方式
當使用 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 下執行 PHP 時,可以用 Windows
註冊表以目錄為單位來修改配置。配置值存放于註冊表項
HKLM\SOFTWARE\PHP\Per Directory Values
下面,子項對應于路徑名。例如對於目錄
c:\inetpub\wwwroot
的配置值會存放于
HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot
項下面。其中的設定對於任何位於此目錄及其任何子目錄的指令碼都有效。項中的值的名稱是
PHP 配置指令的名字,值的數據是字串格式的指令值。值中的 PHP
常量不被解析。不過只有可修改範圍是 PHP_INI_USER
的配置值可以用此方法設定,PHP_INI_PERDIR
的值就不行。因為這些配置對於每次請求來說是隻讀的。
其它介面下的 PHP
無論怎樣執行 PHP,都可以在指令碼中通過 ini_set() 而在執行時修改某個值。更多資訊見手冊中 ini_set() 的頁面。
如果對自己系統中的配置設定及其目前值的完整列表感興趣,可以執行 phpinfo() 函式並檢視其結果的頁面。也可以在執行時用 ini_get() 或 get_cfg_var() 取得個別配置指令的值。