;;;;;;;;;;;;
;; 文法 ;;
; 該檔案的文法非常簡單。空白字元和以分號開始的行被簡單地忽略。
; 章區段標頭(例如: [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_value name value ;設定非bool型的指令,將value設為none則清除先前的設定
; php_flag name on|off ;僅用於設定bool型的指令
; PHP常量(如E_ALL)僅能在php.ini中使用,在httpd.conf中必須使用相應的掩碼值。
; 帶"SYS"標誌的指令只能在httpd.conf中的全域配置部分使用。
;[2007-4-9日更新,增加了更多關於PHP6的資訊,並根據PHP-5.2.2修正和添加了一些資訊]
;=============================================
;;==========配置指令詳解===========================
;=============================================
; 以下每個指令的設定值都與 PHP-5.2.2 內建的預設值相同。
; 也就是說,如果'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
;SYS
; 是否啟用安全模式。
; 開啟時,PHP將檢查當前指令碼的擁有者是否和被操作的檔案的擁有者相同,
; 相同則允許操作,不同則拒絕操作。
safe_mode_gid = Off
;SYS
; 在安全模式下,預設在訪問檔案時會做UID比較檢查。
; 但有些情況下嚴格的UID檢查反而是不適合的,寬鬆的GID檢查已經足夠。
; 如果你想將其放寬到僅做GID比較,可以開啟這個參數。
safe_mode_allowed_env_vars = "PHP_"
;SYS
; 在安全模式下,使用者僅可以更改的環境變數的首碼列表(逗號分隔)。
; 允許使用者佈建某些環境變數,可能會導致潛在的安全性漏洞。
; 注意: 如果這一參數值為空白,PHP將允許使用者更改任意環境變數!
safe_mode_protected_env_vars = "LD_LIBRARY_PATH"
;SYS
; 在安全模式下,使用者不能更改的環境變數列表(逗號分隔)。
; 這些變數即使在safe_mode_allowed_env_vars指令設定為允許的情況下也會得到保護。
safe_mode_exec_dir = "/usr/local/php/bin"
;SYS
; 在安全模式下,只有該目錄下的可執行程式才允許被執行系統程式的函數執行。
; 這些函數是:system, escapeshellarg, escapeshellcmd, exec, passthru,
; proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, shell_exec
safe_mode_include_dir =
;SYS
; 在安全模式下,該組目錄和其子目錄下的檔案被包含時,將跳過UID/GID檢查。
; 換句話說,如果此處的值為空白,任何UID/GID不符合的檔案都不允許被包含。
; 這裡設定的目錄必須已經存在於include_path指令中或者用完整路徑來包含。
; 多個目錄之間用冒號(Win下為分號)隔開。
; 指定的限制實際上是一個首碼,而非一個目錄名,
; 也就是說"/dir/incl"將允許訪問"/dir/include"和"/dir/incls"
; 如果您希望將存取控制在一個指定的目錄,那麼請在結尾加上斜線。
[PHP-Core-Safe]
allow_url_fopen = On
;SYS
; 是否允許開啟遠程檔案
allow_url_include = Off
;SYS
; 是否允許include/require遠程檔案。
disable_classes =
;SYS
; 該指令接受一個用逗號分隔的類名列表,以禁用特定的類。
disable_functions =
;SYS
; 該指令接受一個用逗號分隔的函數名列表,以禁用特定的函數。
enable_dl = On
;SYS
; 是否允許使用dl()函數。dl()函數僅在將PHP作為apache模組安裝時才有效。
; 禁用dl()函數主要是出於安全考慮,因為它可以繞過open_basedir指令的限制。
; 在安全模式下始終禁用dl()函數,而不管此處如何設定。
; PHP6中刪除了該指令,相當於設為Off。
expose_php = On
;SYS
; 是否暴露PHP被安裝在伺服器上的事實(在http頭中加上其簽名)。
; 它不會有安全上的直接威脅,但它使得用戶端知道伺服器上安裝了PHP。
open_basedir =
;SYS
; 將PHP允許操作的所有檔案(包括檔案自身)都限制在此組目錄列表下。
; 當一個指令碼試圖開啟一個指定分類樹之外的檔案時,將遭到拒絕。
; 所有的符號串連都會被解析,所以不可能通過符號串連來避開此限制。
; 特殊值'.'指定了存放該指令碼的目錄將被當做基準目錄。
; 但這有些危險,因為指令碼的工作目錄可以輕易被chdir()改變。
; 對於共用伺服器,在httpd.conf中靈活設定該指令將變得非常有用。
; 在Windows中用分號分隔目錄,UNIX系統中用冒號分隔目錄。
; 作為Apache模組時,父目錄中的open_basedir路徑將自動被繼承。
; 指定的限制實際上是一個首碼,而非一個目錄名,
; 也就是說"/dir/incl"將允許訪問"/dir/include"和"/dir/incls",
; 如果您希望將存取控制在一個指定的目錄,那麼請在結尾加上一個斜線。
; 預設是允許開啟所有檔案。
sql.safe_mode = Off
;SYS
; 是否使用SQL安全模式。
; 如果開啟,指定預設值的資料庫連接函數將會使用這些預設值代替支援的參數。
; 對於每個不同資料庫的串連函數,其預設值請參考相應的手冊頁面。
[PHP-Core-Error]
error_reporting = E_ALL & ~E_NOTICE
; 錯誤報表層級是位欄位的疊加,推薦使用 E_ALL | E_STRICT
; 1 E_ERROR 致命的執行階段錯誤
; 2 E_WARNING 運行時警告(非致命性錯誤)
; 4 E_PARSE 編譯時間解析錯誤
; 8 E_NOTICE 運行時提醒(經常是bug,也可能是有意的)
; 16 E_CORE_ERROR PHP啟動時初始化過程中的致命錯誤
; 32 E_CORE_WARNING PHP啟動時初始化過程中的警告(非致命性錯)
; 64 E_COMPILE_ERROR 編譯時間致命性錯
; 128 E_COMPILE_WARNING 編譯時間警告(非致命性錯)
; 256 E_USER_ERROR 使用者自訂的致命錯誤
; 512 E_USER_WARNING 使用者自訂的警告(非致命性錯誤)
; 1024 E_USER_NOTICE 使用者自訂的提醒(經常是bug,也可能是有意的)
; 2048 E_STRICT 編碼通訊協定化警告(建議如何修改以向前相容)
; 4096 E_RECOVERABLE_ERROR 接近致命的執行階段錯誤,若未被捕獲則視同E_ERROR
; 6143 E_ALL 除E_STRICT外的所有錯誤(PHP6中為8191,即包含所有)
track_errors = Off
; 是否在變數$php_errormsg中儲存最近一個錯誤或警告訊息。
display_errors = On
; 是否將錯誤資訊作為輸出的一部分顯示。
; 在最終發布的web網站上,強烈建議你關掉這個特性,並使用錯誤記錄檔代替(參看下面)。
; 在最終發布的web網站開啟這個特性可能暴露一些安全資訊,
; 例如你的web服務上的檔案路徑、資料庫規劃或別的資訊。
display_startup_errors = Off
; 是否顯示PHP啟動時的錯誤。
; 即使display_errors指令被開啟,關閉此參數也將不顯示PHP啟動時的錯誤。
; 建議你關掉這個特性,除非你必須要用於調試中。
report_memleaks = On
; 是否報告記憶體流失。這個參數只在以調試方式編譯的PHP中起作用,
; 並且必須在error_reporting指令中包含 E_WARNING
report_zend_debug = On
; 尚無說明文檔
html_errors = On
; 是否在出錯資訊中使用HTML標記。
; 注意: 不要在發布的網站上使用這個特性!
docref_root = ;"http://localhost/phpmanual/"
docref_ext = ;".html"
; 如果開啟了html_errors指令,PHP將會在出錯資訊上顯示超串連,
; 直接連結到一個說明這個錯誤或者導致這個錯誤的函數的頁面。
; 你可以從http://www.php.net/docs.php下載php手冊,
; 並將docref_root指令指向你本地的手冊所在的URL目錄。
; 你還必須設定docref_ext指令來指定檔案的副檔名(必須含有'.')。
; 注意: 不要在發布的網站上使用這個特性。
error_prepend_string = ;"<font color=#f00>"
; 用於錯誤資訊前輸出的字串
error_append_string = ;"</font>"
; 用於錯誤資訊後輸出的字串
xmlrpc_errors = Off
;SYS
xmlrpc_error_number = 0
; 尚無文檔
[PHP-Core-Logging]
define_syslog_variables = Off
; 是否定義各種系統日誌變數,如:$LOG_PID, $LOG_CRON 等等。
; 關掉它以提高效率的好主意。
; 你可以在運行時調用define_syslog_variables()函數來定義這些變數。
error_log =
; 將錯誤記錄檔記錄到哪個檔案中。該檔案必須對Web伺服器使用者可寫。
; syslog 表示記錄到系統日誌中(NT下的事件記錄, Unix下的syslog(3))
; 如果此處未設定任何值,則錯誤將被記錄到Web伺服器的錯誤記錄檔中。
log_errors = Off
; 是否在記錄檔裡記錄錯誤,具體在哪裡記錄取決於error_log指令。
; 強烈建議你在最終發布的web網站時使用日誌記錄錯誤而不是直接輸出,
; 這樣可以讓你既知道那裡出了問題,又不會暴露敏感資訊。
log_errors_max_len = 1024
; 設定錯誤記錄檔中附加的與錯誤資訊相關聯的錯誤源的最大長度。
; 這裡設定的值對顯示的和記錄的錯誤以及$php_errormsg都有效。
; 設為 0 可以允許無限長度。
ignore_repeated_errors = Off
; 記錄錯誤記錄檔時是否忽略重複的錯誤資訊。
; 錯誤資訊必須出現在同一檔案的同一行才被被視為重複。
ignore_repeated_source = Off
; 是否在忽略重複的錯誤資訊時忽略重複的錯誤源。