;;;;;;;;;;;;
;; 語法 ;;
; 該文件的語法非常簡單。空白字符和以分號開始的行被簡單地忽略。
; 章節標題(例如: [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 表示關閉。
; 一個空字符串可以用在等號後不寫任何東西表示,或者用 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
; 是否在忽略重復的錯誤信息時忽略重復的錯誤源。