;;;;;;;;;;;;;;;;;
;; 關于php.ini ;;
; 這個檔案必須命名為'php.ini'并放置在httpd.conf中PHPINIDir指令指定的目錄中。
; 最新版本的php.ini可以在下面兩個位置檢視:
;;;;;;;;;;;;
;; 文法 ;;
; 該檔案的文法非常簡單。空白字元和以分号開始的行被簡單地忽略。
; 章節标題(例如: [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_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"
; 如果您希望将通路控制在一個指定的目錄,那麼請在結尾加上斜線。
[PHP-Core-Safe]
allow_url_fopen = On
; 是否允許打開遠端檔案
allow_url_include = Off
; 是否允許include/require遠端檔案。
disable_classes =
; 該指令接受一個用逗号分隔的類名清單,以禁用特定的類。
disable_functions =
; 該指令接受一個用逗号分隔的函數名清單,以禁用特定的函數。
enable_dl = On
; 是否允許使用dl()函數。dl()函數僅在将PHP作為apache子產品安裝時才有效。
; 禁用dl()函數主要是出于安全考慮,因為它可以繞過open_basedir指令的限制。
; 在安全模式下始終禁用dl()函數,而不管此處如何設定。
; PHP6中删除了該指令,相當于設為Off。
expose_php = On
; 是否暴露PHP被安裝在伺服器上的事實(在http頭中加上其簽名)。
; 它不會有安全上的直接威脅,但它使得用戶端知道伺服器上安裝了PHP。
open_basedir =
; 将PHP允許操作的所有檔案(包括檔案自身)都限制在此組目錄清單下。
; 當一個腳本試圖打開一個指定目錄樹之外的檔案時,将遭到拒絕。
; 所有的符号連接配接都會被解析,是以不可能通過符号連接配接來避開此限制。
; 特殊值'.'指定了存放該腳本的目錄将被當做基準目錄,
; 但這有些危險,因為腳本的工作目錄可以輕易被chdir()改變。
; 對于共享伺服器,在httpd.conf中針對不同的虛拟主機或目錄靈活設定該指令将變得非常有用。
; 在Windows中用分号分隔目錄,UNIX系統中用冒号分隔目錄。
; 作為Apache子產品時,父目錄中的open_basedir路徑将自動被繼承。
; 也就是說"/dir/incl"将允許通路"/dir/include"和"/dir/incls",
; 如果您希望将通路控制在一個指定的目錄,那麼請在結尾加上一個斜線。
; 預設是允許打開所有檔案。
sql.safe_mode = Off
; 是否使用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,即包含所有)
; 也可以用2147483647(所有二進制位全為1)打開現在或将來可能出現的各種錯誤
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将會在出錯資訊上顯示超連接配接,
; 直接連結到一個說明這個錯誤或者導緻這個錯誤的函數的頁面。
; 并将docref_root指令指向你本地的手冊所在的URL目錄。
; 你還必須設定docref_ext指令來指定檔案的擴充名(必須含有'.')。
; 注意: 不要在釋出的站點上使用這個特性。
error_prepend_string = ;"<font color=#f00>"
; 用于錯誤資訊前輸出的字元串
error_append_string = ;"</font>"
; 用于錯誤資訊後輸出的字元串
xmlrpc_errors = Off
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
; 是否在忽略重複的錯誤資訊時忽略重複的錯誤源。
[PHP-Core-Mail]
; 要使郵件函數可用,PHP必須在編譯時能夠通路sendmail程式。
; 如果使用其它的郵件程式,如qmail或postfix,確定使用了相應的sendmail包裝。
; PHP首先會在系統的PATH環境變量中搜尋sendmail,接着按以下順序搜尋:
; /usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib
; 強烈建議在PATH中能夠找到sendmail。
; 另外,編譯PHP的使用者必須能夠通路sendmail程式。
SMTP = "localhost"
; mail()函數中用來發送郵件的SMTP伺服器的主機名稱或者IP位址。僅用于win32。
smtp_port = 25
; SMTP伺服器的端口号。僅用于win32。
sendmail_from =
; 發送郵件時使用的"From:"頭中的郵件位址。僅用于win32
; 該選項還同時設定了"Return-Path:"頭。
sendmail_path = "-t -i"
; 僅用于unix,也可支援參數(預設的是'sendmail -t -i')
; sendmail程式的路徑,通常為"/usr/sbin/sendmail或/usr/lib/sendmail"。
; configure腳本會嘗試找到該程式并設定為預設值,但是如果失敗的話,可以在這裡設定。
; 不使用sendmail的系統應将此指令設定為sendmail替代程式(如果有的話)。
; 例如,Qmail使用者通常可以設為"/var/qmail/bin/sendmail"或"/var/qmail/bin/qmail-inject"。
; qmail-inject 不需要任何選項就能正确處理郵件。
mail.force_extra_parameters =
; 作為額外的參數傳遞給sendmail庫的強制指定的參數附加值。
; 這些參數總是會替換掉mail()的第5個參數,即使在安全模式下也是如此。
[PHP-Core-ResourceLimit]
default_socket_timeout = 60
; 預設socket逾時(秒)
max_execution_time = 30
; 每個腳本最大允許執行時間(秒),0 表示沒有限制。
; 這個參數有助于阻止劣質腳本無休止的占用伺服器資源。
; 該指令僅影響腳本本身的運作時間,任何其它花費在腳本運作之外的時間,
; 如用system()/sleep()函數的使用、資料庫查詢、檔案上傳等,都不包括在内。
; 在安全模式下,你不能用ini_set()在運作時改變這個設定。
memory_limit = 128M
; 一個腳本所能夠申請到的最大記憶體位元組數(可以使用K和M作為機關)。
; 這有助于防止劣質腳本消耗完伺服器上的所有記憶體。
; 要能夠使用該指令必須在編譯時使用"--enable-memory-limit"配置選項。
; 如果要取消記憶體限制,則必須将其設為 -1 。
; 設定了該指令後,memory_get_usage()函數将變為可用。
max_input_time = -1
; 每個腳本解析輸入資料(POST, GET, upload)的最大允許時間(秒)。
; -1 表示不限制。
max_input_nesting_level = 64
; 輸入變量的最大嵌套深度(尚無更多解釋文檔)
post_max_size = 8M
; 允許的POST資料最大位元組長度。此設定也影響到檔案上傳。
; 如果POST資料超出限制,那麼$_POST和$_FILES将會為空。
; 要上傳大檔案,該值必須大于upload_max_filesize指令的值。
; 如果啟用了記憶體限制,那麼該值應當小于memory_limit指令的值。
realpath_cache_size = 16K
; 指定PHP使用的realpath(規範化的絕對路徑名)緩沖區大小。
; 在PHP打開大量檔案的系統上應當增大該值以提高性能。
realpath_cache_ttl = 120
; realpath緩沖區中資訊的有效期(秒)。
; 對檔案很少變動的系統,可以增大該值以提高性能。
[PHP-Core-FileUpLoad]
file_uploads = On
; 是否允許HTTP檔案上傳。
; 參見upload_max_filesize, upload_tmp_dir, post_max_size指令
upload_max_filesize = 2M
; 允許上傳的檔案的最大尺寸。
upload_tmp_dir =
; 檔案上傳時存放檔案的臨時目錄(必須是PHP程序使用者可寫的目錄)。
; 如果未指定則PHP使用系統預設的臨時目錄。
[PHP-Core-MagicQuotes]
; PHP6删除了下列指令,相當于全部為 Off
magic_quotes_gpc = Off
; 是否對輸入的GET/POST/Cookie資料使用自動字元串轉義( ' " \ NULL )。
; 這裡的設定将自動影響 $_GEST $_POST $_COOKIE 數組的值。
; 若将本指令與magic_quotes_sybase指令同時打開,則僅将單引号(')轉義為(''),
; 其它特殊字元将不被轉義,即( " \ NULL )将保持原樣!!
; 建議關閉此特性,并使用自定義的過濾函數。
magic_quotes_runtime = Off
; 是否對運作時從外部資源産生的資料使用自動字元串轉義( ' " \ NULL )。
; 若打開本指令,則大多數函數從外部資源(資料庫,文本檔案等)傳回資料都将被轉義。
; 例如:用SQL查詢得到的資料,用exec()函數得到的資料,等等
; 建議關閉此特性,并視具體情況使用自定義的過濾函數。
magic_quotes_sybase = Off
; 是否采用Sybase形式的自動字元串轉義(用 '' 表示 ')
[PHP-Core-HighLight]
highlight.bg = "#FFFFFF"
highlight.comment = "#FF8000"
highlight.default = "#0000BB"
highlight.html = "#000000"
highlight.keyword = "#007700"
highlight.string = "#DD0000"
; 文法高亮模式的色彩(通常用于顯示 .phps 檔案)。
; 隻要能被<font color=xxx>接受的東西就能正常工作。