php的設定檔詳解
;;;;;;;;;;;;;;;;;
;; 關於php.ini ;;
;;;;;;;;;;;;;;;;;
; 這個檔案必須命名為’php.ini’並放置在httpd.conf中PHPINIDir指令指定的目錄中。
; 最新版本的php.ini可以在下面兩個位置查看:
; http://cvs.php.net/viewvc.cgi/php-src/php.ini-recommended?view=co
; http://cvs.php.net/viewvc.cgi/php-src/php.ini-dist?view=co
;;;;;;;;;;;;
;; 文法 ;;
;;;;;;;;;;;;
; 該檔案的文法非常簡單。空白字元和以分號開始的行被簡單地忽略。
; 章區段標頭(例如: [php])也被簡單地忽略,即使將來它們可能有某種意義。
;
; 設定指令的格式如下:
; directive = value
; 指令名(directive)是大小寫敏感的!所以”foo=bar”不同於”FOO=bar”。
; 值(value)可以是:
; 1. 用引號界定的字串(如:”foo”)
; 2. 一個數字(整數或浮點數,如:0, 1, 34, -1, 33.55)
; 3. 一個PHP常量(如:E_ALL, M_PI)
; 4. 一個INI常量(On, Off, none)
; 5. 一個運算式(如:E_ALL & ~E_NOTICE)
;
; INI檔案中的運算式僅使用:位元運算符、邏輯非、圓括弧:
; | 位或
; & 位與
; ~ 位非
; ! 邏輯非
;
; 布爾標誌用 On 表示開啟,用 Off 表示關閉。
;
; 一個Null 字元串可以用在等號後不寫任何東西表示,或者用 none 關鍵字:
; foo = ; 將foo設為空白字串
; foo = none ; 將foo設為空白字串
; foo = “none” ; 將foo設為字串’none’
;
; 如果你在指令值中使用動態擴充(PHP擴充或Zend擴充)中的常量,
; 那麼你只能在載入這些動態擴充的指令行之後使用這些常量。
;;;;;;;;;;;;;;;;;;
;; httpd.conf ;;
;;;;;;;;;;;;;;;;;;
; 可以在httpd.conf中針對特定虛擬機器主機或目錄覆蓋php.ini的值,以進行更靈活的配置:
; php_admin_value name value ;設定非bool型的指令,將value設為none則清除先前的設定
; php_admin_flag name on|off ;僅用於設定bool型的指令
; [提示]因為很多指令不允許使用php_value/php_flag進行設定,因此不建議使用這兩個。
;
; PHP常量(如E_ALL)僅能在php.ini中使用,在httpd.conf中必須使用相應的掩碼值。
;[2008-3-2日更新]
;==========================================================================================
;;=====================================配置指令詳解========================================
;==========================================================================================
; 以下每個指令的設定值都與 PHP-5.2.5 內建的預設值相同。
; 也就是說,如果’php.ini’不存在,或者你刪掉了某些行,預設值與之相同。
;;;;;;;;;;;;;;
;; Apache ;;
;;;;;;;;;;;;;;
[Apache]
; 僅在將PHP作為Apache模組時才有效。
child_terminate = Off
; PHP指令碼在請求結束後是否允許使用apache_child_terminate()函數終止子進程。
; 該指令僅在UNIX平台上將PHP安裝為Apache1.3的模組時可用。其他情況下皆不存在。
engine = On
; 是否啟用PHP解析引擎。
; 提示:可以在httpd.conf中基於目錄或者虛擬機器主機來開啟或者關閉PHP解析引擎。
last_modified = Off
; 是否在Last-Modified應答頭中放置該PHP指令碼的最後修改時間。
xbithack = Off
; 是否不管檔案結尾是什麼,都作為PHP可執行位組來解析。
;;;;;;;;;;;;;;;
;; PHP核心 ;;
;;;;;;;;;;;;;;;
[PHP-Core-DateTime]
; 前四個配置選項目前僅用於date_sunrise()和date_sunset()函數。
date.default_latitude = 31.7667
; 預設緯度
date.default_longitude = 35.2333
; 預設經度
date.sunrise_zenith = 90.583333
; 預設日出天頂
date.sunset_zenith = 90.583333
; 預設日落天頂
date.timezone =
; 未設定TZ環境變數時用於所有日期和時間函數的預設時區。
; 中國大陸應當使用”PRC”
; 應用時區的優先順序為:
; 1. 用date_default_timezone_set()函數設定的時區(如果設定了的話)
; 2. TZ 環境變數(如果非空的話)
; 3. 該指令的值(如果設定了的話)
; 4. PHP自己推測(如果作業系統支援)
; 5. 如果以上都不成功,則使用 “UTC”
[PHP-Core-Assert]
assert.active = On
; 是否啟用assert()斷言評估
assert.bail = Off
; 是否在發生失敗斷言時中止指令碼的執行
assert.callback =
; 發生失敗斷言時執行的回呼函數
assert.quiet_eval = Off
; 是否使用安靜評估(不顯示任何錯誤資訊,相當於error_reporting=0)。
; 若關閉則在評估斷言運算式的時候使用當前的error_reporting指令值。
assert.warning = On
; 是否對每個失敗斷言都發出警告
[PHP-Core-SafeMode]
; 安全模式是為瞭解決共用伺服器的安全問題而設立的。
; 但試圖在PHP層解決這個問題在結構上是不合理的,
; 正確的做法應當是修改web伺服器層和作業系統層。
; 因此在PHP6中廢除了安全模式,並使用基於open_basedir的安全防護。
; 此部分指令在PHP6中已經全部被刪除。
safe_mode = Off
; 是否啟用安全模式。
; 開啟時,PHP將檢查當前指令碼的擁有者是否和被操作的檔案的擁有者相同,
; 相同則允許操作,不同則拒絕操作。
safe_mode_gid = Off
; 在安全模式下,預設在訪問檔案時會做UID比較檢查。
; 但有些情況下嚴格的UID檢查反而是不適合的,寬鬆的GID檢查已經足夠。
; 如果你想將其放寬到僅做GID比較,可以開啟這個參數。
safe_mode_allowed_env_vars = “PHP_”
; 在安全模式下,使用者僅可以更改的環境變數的首碼列表(逗號分隔)。
; 允許使用者佈建某些環境變數,可能會導致潛在的安全性漏洞。
; 注意: 如果這一參數值為空白,PHP將允許使用者更改任意環境變數!
safe_mode_protected_env_vars = “LD_LIBRARY_PATH”
; 在安全模式下,使用者不能更改的環境變數列表(逗號分隔)。
; 這些變數即使在safe_mode_allowed_env_vars指令設定為允許的情況下也會得到保護。
safe_mode_exec_dir = “/usr/local/php/bin”
; 在安全模式下,只有該目錄下的可執行程式才允許被執行系統程式的函數執行。
; 這些函數是:system, escapeshellarg, escapeshellcmd, exec, passthru,
; proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, shell_exec
safe_mode_include_dir =
; 在安全模式下,該組目錄和其子目錄下的檔案被包含時,將跳過UID/GID檢查。
; 換句話說,如果此處的值為空白,任何UID/GID不符合的檔案都不允許被包含。
; 這裡設定的目錄必須已經存在於include_path指令中或者用完整路徑來包含。
; 多個目錄之間用冒號(Win下為分號)隔開。
; 指定的限制實際上是一個首碼,而非一個目錄名,
; 也就是說”/dir/incl”將允許訪問”/dir/include”和”/dir/incls”
; 如果您希望將存取控制在一個指定的目錄,那麼請在結尾加上斜線。