iZO最近在幫一位朋友調整php.ini的設定
找到了這個資訊頁面,分享給大家
;;;;;;;;;;;;;;;;; ;; 關於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 表示關閉。 ; ; 一個空字符串可以用在等號後不寫任何東西表示,或者用 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將會在出錯信息上顯示超連接, ; 直接鏈接到一個說明這個錯誤或者導致這個錯誤的函數的頁面。 ; 你可以從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 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指令同時打開,則僅將單引號(')轉義為(''), ; 其它特殊字符將不被轉義,即( " \ NULL )將保持原樣!! ; 建議關閉此特性,並視具體情況使用自定義的過濾函數。 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>接受的東西就能正常工作。 [PHP-Core-Langue] short_open_tag = On ; 是否允許使用"<? ?>"短標識。否則必須使用"<?php ?>"長標識。 ; 除非你的php程序僅在受控環境下運行,且只供自己使用,否則請不要使用短標記。 ; 如果要和XML結合使用PHP,可以選擇關閉此選項以方便直接嵌入"<?xml ... ?>", ; 不然你必須用PHP來輸出:<? echo '<?xml version="1.0"'; ?> ; 本指令也會影響到縮寫形式"<?=",它和"<? echo"等價,要使用它也必須打開短標記。 asp_tags = Off ; 是否允許ASP風格的標記"<% %>",這也會影響到縮寫形式"<%="。 ; PHP6中將刪除此指令 arg_separator.output = "&" ; PHP所產生的URL中用來分隔參數的分隔符。 ; 另外還可以用"&"或","等等。 arg_separator.input = "&" ; PHP解析URL中的變量時使用的分隔符列表。 ; 字符串中的每一個字符都會被當作分割符。 ; 另外還可以用",&"等等。 allow_call_time_pass_reference = On ; 是否強迫在函數調用時按引用傳遞參數(每次使用此特性都會收到一條警告)。 ; php反對這種做法,並在PHP6里刪除了該指令(相當於設為Off),因為它影響到了代碼的整潔。 ; 鼓勵的方法是在函數聲明裡明確指定哪些參數按引用傳遞。 ; 我們鼓勵你關閉這一選項,以保證你的腳本在將來版本的語言裡仍能正常工作。 auto_globals_jit = On ; 是否僅在使用到$_SERVER和$_ENV變量時才創建(而不是在腳本一啟動時就自動創建)。 ; 如果並未在腳本中使用這兩個數組,打開該指令將會獲得性能上的提升。 ; 要想該指令生效,必須關閉register_globals和register_long_arrays指令。 auto_prepend_file = auto_append_file = ; 指定在主文件之前/後自動解析的文件名。為空表示禁用該特性。 ; 該文件就像調用了include()函數被包含進來一樣,因此會使用include_path指令的值。 ; 注意:如果腳本通過exit()終止,那麼自動後綴將不會發生。 variables_order = "EGPCS" ; PHP註冊 Environment, GET, POST, Cookie, Server 變量的順序。 ; 分別用 E, G, P, C, S 表示,按從左到右註冊,新值覆蓋舊值。 ; 舉例說,設為"GP"將會導致用POST變量覆蓋同名的GET變量, ; 並完全忽略 Environment, Cookie, Server 變量。 ; 推薦使用"GPC"或"GPCS",並使用getenv()函數訪問環境變量。 register_globals = Off ; 是否將 E, G, P, C, S 變量註冊為全局變量。 ; 打開該指令可能會導致嚴重的安全問題,除非你的腳本經過非常仔細的檢查。 ; 推薦使用預定義的超全局變量:$_ENV, $_GET, $_POST, $_COOKIE, $_SERVER ; 該指令受variables_order指令的影響。 ; PHP6中已經刪除此指令。 register_argc_argv = On ; 是否聲明$argv和$argc全局變量(包含用GET方法的信息)。 ; 建議不要使用這兩個變量,並關掉該指令以提高性能。 register_long_arrays = On ; 是否啟用舊式的長式數組(HTTP_*_VARS)。 ; 鼓勵使用短式的預定義超全局數組,並關閉該特性以獲得更好的性能。 ; PHP6中已經刪除此指令。 always_populate_raw_post_data = Off ; 是否總是生成$HTTP_RAW_POST_DATA變量(原始POST數據)。 ; 否則,此變量僅在遇到不能識別的MIME類型的數據時才產生。 ; 不過,訪問原始POST數據的更好方法是 php://input 。 ; $HTTP_RAW_POST_DATA對於enctype="multipart/form-data"的表單數據不可用。 unserialize_callback_func = ; 如果解序列化處理器需要實例化一個未定義的類, ; 這裡指定的回調函數將以該未定義類的名字作為參數被unserialize()調用, ; 以免得到不完整的"__PHP_Incomplete_Class"對象。 ; 如果這裡沒有指定函數,或指定的函數不包含(或實現)那個未定義的類,將會顯示警告信息。 ; 所以僅在確實需要實現這樣的回調函數時才設置該指令。 ; 若要禁止這個特性,只需置空即可。 y2k_compliance = On ; 是否強制打開2000年適應(可能在非Y2K適應的瀏覽器中導致問題)。 zend.ze1_compatibility_mode = Off ; 是否使用兼容Zend引擎I(PHP 4.x)的模式。PHP6中將刪除該指令(相當於Off)。 ; 這將影響對象的複製、構造(無屬性的對象會產生FALSE或0)、比較。 ; 兼容模式下,對像將按值傳遞,而不是默認的按引用傳遞。 precision = 14 ; 浮點型數據顯示的有效位數。 serialize_precision = 100 ; 將浮點型和雙精度型數據序列化存儲時的精度(有效位數)。 ; 默認值能夠確保浮點型數據被解序列化程序解碼時不會丟失數據。 [PHP-Core-OutputControl] ; 輸出控制函數很有用,特別是在已經輸出了信息之後再發送HTTP頭的情況下。 ; 輸出控制函數不會作用於header()或setcookie()等函數發送的HTTP頭, ; 而只會影響類似於echo()函數輸出的信息和嵌入在PHP代碼之間的信息。 implicit_flush = Off ; 是否要求PHP輸出層在每個輸出塊之後自動刷新數據。 ; 這等效於在每個 print()、echo()、HTML塊 之後自動調用flush()函數。 ; 打開這個選項對程序執行的性能有嚴重的影響,通常只推薦在調試時使用。 ; 在CLI SAPI的執行模式下,該指令默認為 On 。 output_buffering = 0 ; 輸出緩衝區大小(字節)。建議值為4096~8192。 ; 輸出緩衝允許你甚至在輸出正文內容之後再發送HTTP頭(包括cookies)。 ; 其代價是輸出層減慢一點點速度。 ; 設置輸出緩衝可以減少寫入,有時還能減少網絡數據包的發送。 ; 這個參數的實際收益很大程度上取決於你使用的是什麼Web服務器以及什麼樣的腳本。 output_handler = ; 將所有腳本的輸出重定向到一個輸出處理函數。 ; 比如,重定向到mb_output_handler()函數時,字符編碼將被透明地轉換為指定的編碼。 ; 一旦你在這裡指定了輸出處理程序,輸出緩衝將被自動打開(output_buffering=4096)。 ; 注意0: 此處僅能使用PHP內置的函數,自定義函數應在腳本中使用ob_start()指定。 ; 注意1: 可移植腳本不能依賴該指令,而應使用ob_start()函數明確指定輸出處理函數。 ; 使用這個指令可能會導致某些你不熟悉的腳本出錯。 ; 注意2: 你不能同時使用"mb_output_handler"和"ob_iconv_handler"兩個輸出處理函數。 ; 你也不能同時使用"ob_gzhandler"輸出處理函數和zlib.output_compression指令。 ; 注意3: 如果使用zlib.output_handler指令開啟zlib輸出壓縮,該指令必須為空。 [PHP-Core-Directory] include_path = ".:/path/to/php/pear" ; 指定一組目錄用於require(), include(), fopen_with_path()函數尋找文件。 ; 格式和系統的PATH環境變量類似(UNIX下用冒號分隔,Windows下用分號分隔): ; UNIX: "/path1:/path2" ; Windows: "\path1;\path2" ; 在包含路徑中使用'.'可以允許相對路徑,它代表當前目錄。 user_dir = ; 告訴php在使用 /~username 打開腳本時到哪個目錄下去找,僅在非空時有效。 ; 也就是在用戶目錄之下使用PHP文件的基本目錄名,例如:"public_html" extension_dir = "/path/to/php" ; 存放擴展庫(模塊)的目錄,也就是PHP用來尋找動態擴展模塊的目錄。 ; Windows下默認為"C:/php5" [PHP-Core-HTTP] default_mimetype = "text/html" default_charset = ;"gb2312" ; PHP默認會自動輸出"Content-Type: text/html" HTTP頭。 ; 如果將default_charset指令設為"gb2312", ; 那麼將會自動輸出"Content-Type: text/html; charset=gb2312"。 ; PHP6反對使用default_charset指令,而推薦使用unicode.output_encoding指令。 [PHP-Core-Unicode] ; PHP6基於ICU(International Components for Unicode)庫提供了全面的Unicode支持。 ; 編譯時需要使用--with-icu-dir=<dir>指定ICU頭文件和庫的安裝位置。 ; 除detect_unicode外,其他都是PHP6新增的指令。 ; ; PHP6的信息目前還很缺乏,所以此部分內容可能不完整甚至有錯誤。 detect_unicode = On ; 指示Zend引擎是否通過檢查腳本的BOM(字節順序標記)來檢測腳本是否包含多字節字符。 ; 建議關閉。PHP6已經取消了此指令而用unicode.script_encoding指令來代替其功能。 unicode.semantics = Off ; 是否啟用Unicode支持。 ; 如果打開此指令,那麼PHP將變成一個完全的Unicode環境,比如: ; 所有字符串和從HTTP接受的變量都將變成Unicode,所有PHP標識符也都可以使用Unicode字符。 ; 而且,PHP內部將使用Unicode字符串並負責對外圍非Unicode字符進行自動轉換, ; 比如:HTTP輸入輸出、流、文件系統操作等等,甚至連php.ini自身都將按照UTF-8編碼來解析。 ; 開啟這個指令後,你必須明確指定二進制字符串。PHP將不對二進制字符串的內容做任何假定, ; 因此你的程序必須保證能夠恰當的處理二進制字符串。 ; 如果關閉這個指令,PHP的行為將和以前的行為完全相同: ; 字符串不會變成Unicode,文件和二進制字符串也將向後兼容,php.ini也將按照"as-is"風格解析。 ; 不管是否打開此指令,所有的函數和操作符都透明的支持Unicode字符串。 unicode.fallback_encoding = UTF-8 ; 為其他所有unicode.*_encoding指令設置默認值。 ; 也就是說如果某個unicode.*_encoding指令未明確設置的話,將使用此處設置的值。 unicode.runtime_encoding = ; 運行時編碼指定了PHP引擎內部轉換二進制字符串時使用的編碼。 ; 此處的設置對於I/O相關操作(比如:寫入標準輸出/讀取文件系統/解碼HTTP輸入變量)沒有影響。 ; PHP也允許你明確的對字符串進行轉換: ; (binary)$str -- 轉化為二進制字符串 ; (unicode)$str -- 轉化為Unicode字符串 ; (string)$str -- 如果unicode.semantics為On則轉化為Unicode字符串,否則轉化為二進制字符串 ; 例如,如果該指令的值為iso-8859-1並且$uni是一個Unicode字符串,那麼 ; $str = (binary)$uni ; 將等到一個使用iso-8859-1編碼的二進制字符串。 ; 在連接、比較、傳遞參數等操作之前PHP會將相關字符串隱含轉換為Unicode,然後再進行操作。 ; 比如在將二進制字符串與Unicode進行連接的時候, ; PHP將會使用這裡的設置將二進制字符串轉換為Unicode字符串,然後再進行操作。 unicode.output_encoding = ; PHP輸出非二進制字符串使用的編碼。 ; 自動將'print'和'echo'之類的輸出內容轉換為此處設定的編碼(並不對二進制字符串進行轉換)。 ; 當向文件之類的外部資源寫入數據的時候, ; 你必須依賴於流編碼特性或者使用Unicode擴展的函數手動的對數據進行編碼。 ; 在PHP6中反對使用先前的default_charset指令,而推薦使用該指令。 ; 先前的default_charset指令只是指定了Content-Type頭中的字符集,而並不對實際的輸出做任何轉換。 ; 而在PHP6中,default_charset指令僅在unicode.semantics為off的時候才有效。 ; 設置了該指令後將在Content-Type輸出頭的'charset'部分填上該指令的值, ; 而不管default_charset指令如何設置。 unicode.http_input_encoding = ; 通過HTTP獲取的變量(比如$_GET和_$POST)內容的編碼。 ; 直到2007年4月此功能尚在開發中.... unicode.filesystem_encoding = ; 文件系統的目錄名和文件名的編碼。 ; 文件系統相關的函數(比如opendir())將使用這個編碼接受和返回文件名和目錄名。 ; 此處的設置必須與文件系統實際使用的編碼完全一致。 unicode.script_encoding = ; PHP腳本自身的默認編碼。 ; 你可以使用任何ICU支持的編碼來寫PHP腳本。 ; 如果你想針對單獨的腳本文件設定其編碼,可以在該腳本的開頭使用 ; <?php declare(encoding = 'Shift-JIS'); ?> ; 來指定。注意:必須是第一行開頭,全面不要有任何字符(包括空白)。 ; 該方法只能影響其所在的腳本,不會影響任何被包含的其他腳本。 unicode.stream_encoding = UTF-8 unicode.from_error_mode = 2 unicode.from_error_subst_char = 3f ; 尚無文檔 [PHP-Core-Misc] auto_detect_line_endings = Off ; 是否讓PHP自動偵測行結束符(EOL)。 ; 如果的你腳本必須處理Macintosh文件, ; 或者你運行在Macintosh上,同時又要處理unix或win32文件, ; 打開這個指令可以讓PHP自動偵測EOL,以便fgets()和file()函數可以正常工作。 ; 但同時也會導致在Unix系統下使用回車符(CR)作為項目分隔符的人遭遇不兼容行為。 ; 另外,在檢測第一行的EOL習慣時會有很小的性能損失。 browscap = ;"c:/windows/system32/inetsrv/browscap.ini" ; 只有PWS和IIS需要這個設置 ; 你可以從http://www.garykeith.com/browsers/downloads.asp ; 得到一個browscap.ini文件。 ignore_user_abort = Off ; 是否即使在用戶中止請求後也堅持完成整個請求。 ; 在執行一個長請求的時候應當考慮打開該它, ; 因為長請求可能會導致用戶中途中止或瀏覽器超時。 user_agent = ;"PHP" ; 定義"User-Agent"字符串 ;url_rewriter.tags = "a=href,area=href,frame=src,form=,fieldset=" ; 雖然此指令屬於PHP核心部分,但是卻用於Session模塊的配置 ;extension = ; 在PHP啟動時加載動態擴展。例如:extension=mysqli.so ; "="之後只能使用模塊文件的名字,而不能含有路徑信息。 ; 路徑信息應當只由extension_dir指令提供。 ; 主意,在windows上,下列擴展已經內置: ; bcmath ; calendar ; com_dotnet ; ctype ; session ; filter ; ftp ; hash ; iconv ; json ; odbc ; pcre ; Reflection ; date ; libxml ; standard ; tokenizer ; zlib ; SimpleXML ; dom ; SPL ; wddx ; xml ; xmlreader ; xmlwriter [PHP-Core-CGI] ; 這些指令只有在將PHP運行在CGI模式下的時候才有效 doc_root = ; PHP的"CGI根目錄"。僅在非空時有效。 ; 在web服務器的主文檔目錄(比如"htdocs")中放置可執行程序/腳本被認為是不安全的, ; 比如因為配置錯誤而將腳本作為普通的html顯示。 ; 因此很多系統管理員都會在主文檔目錄之外專門設置一個只能通過CGI來訪問的目錄, ; 該目錄中的內容只會被解析而不會原樣顯示出來。 ; 如果設置了該項,那麼PHP就只會解釋doc_root目錄下的文件, ; 並確保目錄外的腳本都不會被PHP解釋器執行(user_dir除外)。 ; 如果編譯PHP時沒有指定FORCE_REDIRECT,並且在非IIS服務器上以CGI方式運行, ; 則必須設置此指令(參見手冊中的安全部分)。 ; 替代方案是使用的cgi.force_redirect指令。 cgi.discard_path = Off ; 尚無文檔(PHP6新增指令) cgi.fix_pathinfo = On ; 是否為CGI提供真正的 PATH_INFO/PATH_TRANSLATED 支持(遵守cgi規範)。 ; 先前的行為是將PATH_TRANSLATED設為SCRIPT_FILENAME,而不管PATH_INFO是什麼。 ; 打開此選項將使PHP修正其路徑以遵守CGI規範,否則仍將使用舊式的不合規範的行為。 ; 鼓勵你打開此指令,並修正腳本以使用 SCRIPT_FILENAME 代替 PATH_TRANSLATED 。 ; 有關PATH_INFO的更多信息請參見cgi規範。 cgi.force_redirect = On ; 是否打開cgi強制重定向。強烈建議打開它以為CGI方式運行的php提供安全保護。 ; 你若自己關閉了它,請自己負責後果。 ; 注意:在IIS/OmniHTTPD/Xitami上則必須關閉它! cgi.redirect_status_env = ; 如果cgi.force_redirect=On,並且在Apache與Netscape之外的服務器下運行PHP, ; 可能需要設定一個cgi重定向環境變量名,PHP將去尋找它來知道是否可以繼續執行下去。 ; 設置這個變量會導致安全漏洞,請務必在設置前搞清楚自己在做什麼。 cgi.rfc2616_headers = 0 ; 指定PHP在發送HTTP響應代碼時使用何種報頭。 ; 0 表示發送一個"Status: "報頭,Apache和其它web服務器都支持。 ; 若設為1,則PHP使用RFC2616標準的頭。 ; 除非你知道自己在做什麼,否則保持其默認值 0 cgi.nph = Off ; 在CGI模式下是否強制對所有請求都發送"Status: 200"狀態碼。 cgi.check_shebang_line =On ; CGI PHP是否檢查腳本頂部以 #! 開始的行。 ; 如果腳本想要既能夠單獨運行又能夠在PHP CGI模式下運行,那麼這個起始行就是必須的。 ; 如果打開該指令,那麼CGI模式的PHP將跳過這一行。 fastcgi.impersonate = Off ; IIS中的FastCGI支持模仿客戶端安全令牌的能力。 ; 這使得IIS能夠定義運行時所基於的請求的安全上下文。 ; Apache中的mod_fastcgi不支持此特性(03/17/2002) ; 如果在IIS中運行則設為On,默認為Off。 fastcgi.logging = On ; 是否記錄通過FastCGI進行的連接。 [PHP-Core-Weirdy] ; 這些選項僅存在於文檔中,卻不存在於phpinfo()函數的輸出中 async_send = Off ; 是否異步發送。 from = ;"[email protected]" ; 定義匿名ftp的密碼(一個email地址) ;;;;;;;;;;;;;;;;;; ;; 近核心模塊 ;; ;;;;;;;;;;;;;;;;;; [Pcre] ;Perl兼容正則表達式模塊 pcre.backtrack_limit = 100000 ; PCRE的最大回溯(backtracking)步數。 pcre.recursion_limit = 100000 ; PCRE的最大遞歸(recursion)深度。 ; 如果你將該值設的非常高,將可能耗盡進程的棧空間,導致PHP崩潰。 [Session] ; 除非使用session_register()或$_SESSION註冊了一個變量。 ; 否則不管是否使用了session_start(),都不會自動添加任何session記錄。 ; 包括resource變量或有循環引用的對象包含指向自身的引用的對象,不能保存在會話中。 ; register_globals指令會影響到會話變量的存儲和恢復。 session.save_handler = "files" ; 存儲和檢索與會話關聯的數據的處理器名字。默認為文件("files")。 ; 如果想要使用自定義的處理器(如基於數據庫的處理器),可用"user"。 ; 設為"memcache"則可以使用memcache作為會話處理器(需要指定"--enable-memcache-session"編譯選項)。 ; 還有一個使用PostgreSQL的處理器:http://sourceforge.net/projects/phpform-ext/ session.save_path = "/tmp" ; 傳遞給存儲處理器的參數。對於files處理器,此值是創建會話數據文件的路徑。 ; Windows下默認為臨時文件夾路徑。 ; 你可以使用"N;[MODE;]/path"這樣模式定義該路徑(N是一個整數)。 ; N表示使用N層深度的子目錄,而不是將所有數據文件都保存在一個目錄下。 ; [MODE;]可選,必須使用8進制數,默認"600",表示文件的訪問權限。 ; 這是一個提高大量會話性能的好主意。 ; 注意0: "N;[MODE;]/path"兩邊的雙引號不能省略。 ; 注意1: [MODE;]並不會改寫進程的umask。 ; 注意2: php不會自動創建這些文件夾結構。請使用ext/session目錄下的mod_files.sh腳本創建。 ; 注意3: 如果該文件夾可以被不安全的用戶訪問(比如默認的"/tmp"),那麼將會帶來安全漏洞。 ; 注意4: 當N>0時自動垃圾回收將會失效,具體參見下面有關垃圾搜集的部分。 ; [安全提示]建議針對每個不同的虛擬主機分別設置各自不同的目錄。 ; ; 對於"memcache"處理器,需要定義一個逗號分隔的服務器URL用來存儲會話數據。 ; 比如:"tcp://host1:11211, tcp://host2:11211" ; 每個URL都可以包含傳遞給那個服務器的參數,可用的參數與 Memcache::addServer() 方法相同。 ; 例如:"tcp://host1:11211?persistent=1&weight=1&timeout=1&retry_interval=15" session.name = "PHPSESSID" ;用在cookie裡的會話ID標識名,只能包含字母和數字。 session.auto_start = Off ; 在客戶訪問任何頁面時都自動初始化會話,默認禁止。 ; 因為類定義必須在會話啟動之前被載入,所以若打開這個選項,你就不能在會話中存放對象。 session.serialize_handler = "php" ; 用來序列化/解序列化數據的處理器,php是標準序列化/解序列化處理器。 ; 另外還可以使用"php_binary"。當啟用了WDDX支持以後,將只能使用"wddx"。 session.gc_probability = 1 session.gc_divisor = 100 ; 定義在每次初始化會話時,啟動垃圾回收程序的概率。 ; 這個收集概率計算公式如下:session.gc_probability/session.gc_divisor ; 對會話頁面訪問越頻繁,概率就應當越小。建議值為1/1000~5000。 session.gc_maxlifetime = 1440 ; 超過此參數所指的秒數後,保存的數據將被視為'垃圾'並由垃圾回收程序清理。 ; 判斷標準是最後訪問數據的時間(對於FAT文件系統是最後刷新數據的時間)。 ; 如果多個腳本共享同一個session.save_path目錄但session.gc_maxlifetime不同, ; 那麼將以所有session.gc_maxlifetime指令中的最小值為準。 ; 如果使用多層子目錄來存儲數據文件,垃圾回收程序不會自動啟動。 ; 你必須使用一個你自己編寫的shell腳本、cron項或者其他辦法來執行垃圾搜集。 ; 比如,下面的腳本相當於設置了"session.gc_maxlifetime=1440" (24分鐘): ; cd /path/to/sessions; find -cmin +24 | xargs rm session.referer_check = ; 如果請求頭中的"Referer"字段不包含此處指定的字符串則會話ID將被視為無效。 ; 注意:如果請求頭中根本不存在"Referer"字段的話,會話ID將仍將被視為有效。 ; 默認為空,即不做檢查(全部視為有效)。 session.entropy_file = ;"/dev/urandom" ; 附加的用於創建會話ID的外部高熵值資源(文件), ; 例如UNIX系統上的"/dev/random"或"/dev/urandom" session.entropy_length = 0 ; 從高熵值資源中讀取的字節數(建議值:16)。 session.use_cookies = On ; 是否使用cookie在客戶端保存會話ID session.use_only_cookies = Off ; 是否僅僅使用cookie在客戶端保存會話ID。PHP6的默認值為On。 ; 打開這個選項可以避免使用URL傳遞會話帶來的安全問題。 ; 但是禁用Cookie的客戶端將使會話無法工作。 session.cookie_lifetime = 0 ; 傳遞會話ID的Cookie有效期(秒),0 表示僅在瀏覽器打開期間有效。 ; [提示]如果你不能保證服務器時間和客戶端時間嚴格一致請不要改變此默認值! session.cookie_path = "/" ; 傳遞會話ID的Cookie作用路徑。 session.cookie_domain = ; 傳遞會話ID的Cookie作用域。 ; 默認為空表示表示根據cookie規範生成的主機名。 session.cookie_secure = Off ; 是否僅僅通過安全連接(https)發送cookie。 session.cookie_httponly = Off ; 是否在cookie中添加httpOnly標誌(僅允許HTTP協議訪問), ; 這將導致客戶端腳本(JavaScript等)無法訪問該cookie。 ; 打開該指令可以有效預防通過XSS攻擊劫持會話ID。 session.cache_limiter = "nocache" ; 設為{nocache|private|public}以指定會話頁面的緩存控制模式, ; 或者設為空以阻止在http應答頭中發送禁用緩存的命令。 session.cache_expire = 180 ; 指定會話頁面在客戶端cache中的有效期限(分鐘) ; session.cache_limiter=nocache時,此處設置無效。 session.use_trans_sid = Off ; 是否使用明碼在URL中顯示SID(會話ID)。 ; 默認是禁止的,因為它會給你的用戶帶來安全危險: ; 1- 用戶可能將包含有效sid的URL通過email/irc/QQ/MSN...途徑告訴給其他人。 ; 2- 包含有效sid的URL可能會被保存在公用電腦上。 ; 3- 用戶可能保存帶有固定不變sid的URL在他們的收藏夾或者瀏覽歷史紀錄裡面。 ; 基於URL的會話管理總是比基於Cookie的會話管理有更多的風險,所以應當禁用。 session.bug_compat_42 = On session.bug_compat_warn = On ; PHP4.2之前的版本有一個未註明的"BUG": ; 即使在register_globals=Off的情況下也允許初始化全局session變量, ; 如果你在PHP4.3之後的版本中使用這個特性,會顯示一條警告。 ; 建議關閉該"BUG"並顯示警告。PHP6刪除了這兩個指令,相當於全部設為Off。 session.hash_function = 0 ; 生成SID的散列算法。SHA-1的安全性更高一些 ; 0: MD5 (128 bits) ; 1: SHA-1 (160 bits) ; 建議使用SHA-1。 session.hash_bits_per_character = 4 ; 指定在SID字符串中的每個字符內保存多少bit, ; 這些二進制數是hash函數的運算結果。 ; 4: 0-9, a-f ; 5: 0-9, a-v ; 6: 0-9, a-z, A-Z, "-", "," ; 建議值為 5 url_rewriter.tags = "a=href,area=href,frame=src,form=,fieldset=" ; 此指令屬於PHP核心部分,並不屬於Session模塊。 ; 指定重寫哪些HTML標籤來包含SID(僅當session.use_trans_sid=On時有效) ; form和fieldset比較特殊: ; 如果你包含他們,URL重寫器將添加一個隱藏的"<input>",它包含了本應當額外追加到URL上的信息。 ; 如果要符合XHTML標準,請去掉form項並在表單字段前後加上<fieldset>標記。 ; 注意:所有合法的項都需要一個等號(即使後面沒有值)。 ; 推薦值為"a=href,area=href,frame=src,input=src,form=fakeentry"。 session.encode_sources = "globals" ; PHP6中有爭議的指令,尚未決定是否採用該指令。也尚無相關文檔。 ;;;;;;;;;;;;;;;; ;; 其他模塊 ;; ;;;;;;;;;;;;;;;; [APC-3.0.16] ; Alternative PHP Cache 用於緩存和優化PHP中間代碼 ; 編譯/安裝/配置信息都位於源碼樹下的 INSTALL 文件中 apc.enabled = On ; 是否啟用APC,如果APC被靜態編譯進PHP又想禁用它,這是唯一的辦法。 apc.enable_cli = Off ; 是否為CLI版本啟用APC功能,僅用於測試和調試目的才打開此指令。 apc.cache_by_default = On ; 是否默認對所有文件啟用緩衝。 ; 若設為Off並與以加號開頭的apc.filters指令一起用,則文件僅在匹配過濾器時才被緩存。 apc.file_update_protection = 2 ; 當你在一個運行中的服務器上修改文件時,你應當執行原子操作。 ; 也就是先寫進一個臨時文件,然後將該文件重命名(mv)到最終的名字。 ; 文本編輯器以及 cp, tar 等程序卻並不是這樣操作的,從而導致有可能緩衝了殘缺的文件。 ; 默認值 2 表示在訪問文件時如果發現修改時間距離訪問時間小於 2 秒則不做緩衝。 ; 那個不幸的訪問者可能得到殘缺的內容,但是這種壞影響卻不會通過緩存擴大化。 ; 如果你能確保所有的更新操作都是原子操作,那麼可以用 0 關閉此特性。 ; 如果你的系統由於大量的IO操作導致更新緩慢,你就需要增大此值。 apc.filters = ; 一個以逗號分隔的POSIX擴展正則表達式列表。 ; 如果源文件名與任意一個模式匹配,則該文件不被緩存。 ; 注意,用來匹配的文件名是傳遞給include/require的文件名,而不是絕對路徑。 ; 如果正則表達式的第一個字符是"+"則意味著任何匹配表達式的文件會被緩存, ; 如果第一個字符是"-"則任何匹配項都不會被緩存。"-"是默認值,可以省略掉。 apc.ttl = 0 ; 緩存條目在緩衝區中允許逗留的秒數。0 表示永不超時。建議值為7200~86400。 ; 設為 0 意味著緩衝區有可能被舊的緩存條目填滿,從而導致無法緩存新條目。 apc.user_ttl = 0 ; 類似於apc.ttl,只是針對每個用戶而言,建議值為7200~86400。 ; 設為 0 意味著緩衝區有可能被舊的緩存條目填滿,從而導致無法緩存新條目。 apc.gc_ttl = 3600 ; 緩存條目在垃圾回收表中能夠存在的秒數。 ; 此值提供了一個安全措施,即使一個服務器進程在執行緩存的源文件時崩潰, ; 而且該源文件已經被修改,為舊版本分配的內存也不會被回收,直到達到此TTL值為止。 ; 設為零將禁用此特性。 apc.include_once_override = Off ; 優化include_once()和require_once()函數以避免執行額外的系統調用。 apc.max_file_size = 1M ; 禁止大於此尺寸的文件被緩存。 apc.mmap_file_mask = ; 如果使用--enable-mmap(默認啟用)為APC編譯了MMAP支持, ; 這裡的值就是傳遞給mmap模塊的mktemp風格的文件掩碼(建議值為"/tmp/apc.XXXXXX")。 ; 該掩碼用於決定內存映射區域是否要被file-backed或者shared memory backed。 ; 對於直接的file-backed內存映射,要設置成"/tmp/apc.XXXXXX"的樣子(恰好6個X)。 ; 要使用POSIX風格的shm_open/mmap就需要設置成"/apc.shm.XXXXXX"的樣子。 ; 你還可以設為"/dev/zero"來為匿名映射的內存使用內核的"/dev/zero"接口。 ; 不定義此指令則表示強制使用匿名映射。 apc.num_files_hint = 1000 ; Web服務器上可能被包含或被請求的不同腳本源代碼文件的大致數量(建議值為1024~4096)。 ; 如果你不能確定,則設為 0 ;此設定主要用於擁有數千個源文件的站點。 apc.optimization = 0 ; 優化級別(建議值為 0 ) 。反對使用該指令。將來可能會被刪除。 ; 正整數值表示啟用優化器,值越高則使用越激進的優化。 ; 更高的值可能有非常有限的速度提升,但目前尚在試驗中。 apc.report_autofilter = Off ; 是否記錄所有由於early/late binding原因而自動未被緩存的腳本。 apc.shm_segments = 1 ; 為編譯器緩衝區分配的共享內存塊數量(建議值為1)。 ; 如果APC耗盡了共享內存,並且已將apc.shm_size指令設為系統允許的最大值,可以嘗試增大此值。 ; 在mmap模式下設置為 1 之外的其它值是無效的,因為經過mmap的共享內存段的大小是沒有限制的。 apc.shm_size = 30 ; 每個共享內存塊的大小(以MB為單位,建議值為128~256)。 ; 有些系統(包括大多數BSD變種)默認的共享內存塊尺寸很小。 apc.slam_defense = 0 ; 在非常繁忙的服務器上,無論是啟動服務還是修改文件, ; 都可能由於多個進程企圖同時緩存一個文件而導致競爭條件。 ; 這個指令用於設置進程在處理未被緩存的文件時跳過緩存步驟的百分率。 ; 比如設為75表示在遇到未被緩存的文件時有75%的概率不進行緩存,從而減少碰撞幾率。 ; 反對使用該指令,鼓勵設為 0 來禁用這個特性。建議該用apc.write_lock指令。 apc.stat = On ; 是否啟用腳本更新檢查。 ; 改變這個指令值要非常小心。 ; 默認值 On 表示APC在每次請求腳本時都檢查腳本是否被更新, ; 如果被更新則自動重新編譯和緩存編譯後的內容。但這樣做對性能有不利影響。 ; 如果設為 Off 則表示不進行檢查,從而使性能得到大幅提高。 ; 但是為了使更新的內容生效,你必須重啟Web服務器。 ; 這個指令對於include/require的文件同樣有效。但是需要注意的是, ; 如果你使用的是相對路徑,APC就必須在每一次include/require時都進行檢查以定位文件。 ; 而使用絕對路徑則可以跳過檢查,所以鼓勵你使用絕對路徑進行include/require操作。 apc.user_entries_hint = 4096 ; 類似於num_files_hint指令,只是針對每個不同用戶而言。 ; 如果你不能確定,則設為 0 。 apc.write_lock = On ; 是否啟用寫入鎖。 ; 在非常繁忙的服務器上,無論是啟動服務還是修改文件, ; 都可能由於多個進程企圖同時緩存一個文件而導致競爭條件。 ; 啟用該指令可以避免競爭條件的出現。 apc.rfc1867 = Off ; 打開該指令後,對於每個恰好在file字段之前含有APC_UPLOAD_PROGRESS字段的上傳文件, ; APC都將自動創建一個upload_<key>的用戶緩存條目(<key>就是APC_UPLOAD_PROGRESS字段值)。 ; 需要注意的是,文件上傳跟蹤在這裡並不是線程安全的, ; 所以如果老文件尚未上載完畢且新文件已經開始上載,那麼將丟失對老文件的跟蹤。 apc.rfc1867_prefix = "upload_" ; 用於rfc1867上傳文件的緩衝項條目名稱前綴 apc.rfc1867_name = "APC_UPLOAD_PROGRESS" ; 需要由APC處理的上傳文件的rfc1867隱含表單項名稱 apc.rfc1867_freq = 0 ; 用戶rfc1867上傳文件緩存項的更新頻率。 ; 取值可以是總文件大小的百分比,或者以'K','M','G'結尾的絕對尺寸。 ; 0 表示盡可能快的更新,不過這樣可能會導致運行速度下降。 apc.localcache = Off ; 是否使用非鎖定本地進程shadow-cache ,它可以減少了向緩衝區寫入時鎖之間的競爭。 apc.localcache.size = 512 ; 本地進程的shadow-cache,應當設為一個足夠大的值,大約相當於num_files_hint的一半。 apc.stat_ctime = Off ; 尚無文檔 [bcmath] ; 為任意精度數學計算提供了二進制計算器(Binary Calculator), ; 它支持任意大小和精度的數字,以字符串形式描述。 bcmath.scale = 0 ; 用於所有bcmath函數的10十進制數的個數 [GD] gd.jpeg_ignore_warning = Off ; 是否忽略jpeg解碼器的警告信息(比如無法識別圖片格式)。 ; 有image/jpeg與image/pjpeg兩種MIME類型,GD庫只能識別前一種傳統格式。 ; 參見:http://twpug.net/modules/newbb/viewtopic.php?topic_id=1867&forum=14 ; http://bugs.php.net/bug.php?id=29878 ; http://www.faqs.org/faqs/jpeg-faq/part1/section-11.html [Filter] ; 對來源不可靠的數據進行確認和過濾,本擴展模塊是實驗性的。 filter.default = "unsafe_raw" ; 使用指定的過濾器過濾$_GET,$_POST,$_COOKIE,$_REQUEST數據, ; 原始數據可以通過input_get()函數訪問。 ; "unsafe_raw"表示不做任何過濾。 filter.default_flags = ; filter_data()函數的默認標誌。 [mbstring] ;多字節字符串模塊支持 mbstring.language = "neutral" ; 默認的NLS(本地語言設置),可設置值如下: ; 默認值"neutral"表示中立,相當於未知。 ; "zh-cn"或"Simplified Chinese"表示簡體中文 ; "zh-tw"或"Traditional Chinese"表示繁體中文 ; "uni"或"universal"表示Unicode ; 該指令自動定義了隨後的mbstring.internal_encoding指令默認值, ; 並且mbstring.internal_encoding指令必須放置在該指令之後。 mbstring.internal_encoding = ; 本指令必須放置在mbstring.language指令之後。 ; 默認的內部編碼,未設置時取決於mbstring.language指令的值: ; "neutral" 對應 "ISO-8859-1" ; "zh-cn" 對應 "EUC-CN" (等價於"GB2312") ; "zh-tw" 對應 "EUC-TW" (等價於"BIG5") ; "uni" 對應 "UTF-8" ; 提醒:對於簡體中文還可以強制設置為"CP936" (等價於"GBK") ; 注意:可能 SJIS, BIG5, GBK 不適合作為內部編碼,不過"GB2312"肯定沒問題。 ; 建議手動強制指定 mbstring.encoding_translation = Off ; 是否對進入的HTTP請求按照mbstring.internal_encoding指令進行透明的編碼轉換, ; 也就是自動檢測輸入字符的編碼並將其透明的轉化為內部編碼。 ; 可移植的庫或者程序千萬不要依賴於自動編碼轉換。 mbstring.http_input = "pass" ; 默認的HTTP輸入編碼,"pass"表示跳過(不做轉換) ; "aotu"的含義與mbstring.detect_order指令中的解釋一樣。 ; 可以設置為一個單獨的值,也可以設置為一個逗號分隔的列表。 mbstring.http_output = "pass" ; 默認的HTTP輸出編碼,"pass"表示跳過(不做轉換) ; "aotu"的含義與mbstring.detect_order指令中的解釋一樣。 ; 可以設置為一個單獨的值,也可以設置為一個逗號分隔的列表。 ; 必須將output_handler指令設置為"mb_output_handler"才可以。 mbstring.detect_order = ; 默認的編碼檢測順序,"pass"表示跳過(不做轉換)。 ; 默認值("auto")隨mbstring.language指令的不同而變化: ; "neutral"和"universal" 對應 "ASCII, UTF-8" ; "Simplified Chinese" 對應 "ASCII, UTF-8, EUC-CN, CP936" ; "Traditional Chinese" 對應 "ASCII, UTF-8, EUC-TW, BIG-5" ; 建議在可控環境下手動強制指定一個單一值 mbstring.func_overload = 0 ; 自動使用 mb_* 函數重載相應的單字節字符串函數。 ; 比如:mail(), ereg() 將被自動替換為mb_send_mail(), mb_ereg() ; 可用 0,1,2,4 進行位組合。比如7表示替換所有。具體替換說明如下: ; 0: 無替換 ; 1: mail() → mb_send_mail() ; 2: strlen() → mb_strlen() ; substr() → mb_substr() ; strpos() → mb_strpos() ; strrpos() → mb_strrpos() ; strtolower() → mb_strtolower() ; strtoupper() → mb_strtoupper() ; substr_count() → mb_substr_count() ; 4: ereg() → mb_ereg() ; eregi() → mb_eregi() ; ereg_replace() → mb_ereg_replace() ; eregi_replace() → mb_eregi_replace() ; split() → mb_split() mbstring.script_encoding = ; 腳本所使用的編碼 mbstring.strict_detection = Off ; 是否使用嚴謹的編碼檢測 mbstring.substitute_character = ; 當某個字符無法解碼時,就是用這個字符替代。 ; 若設為一個整數則表示對應的Unicode值,不設置任何值表示不顯示這個錯誤字符。 ; 建議設為"□" [Mcrypt] ; 一個mcrypt庫的接口,該庫支持許多種塊加密算法。 ; 不建議使用該模塊,因為毛病太多,建議在數據庫層進行加密。 mcrypt.algorithms_dir = ; 默認的加密算法模塊所在目錄。通常是"/usr/local/lib/libmcrypt"。 ; 目前尚無詳細說明文檔,此處的解釋可能是錯誤的。 mcrypt.modes_dir = ; 默認的加密模式模塊所在目錄。通常是"/usr/local/lib/libmcrypt"。 ; 目前尚無說明文檔,此處的解釋可能是錯誤的。 [Memcache-2.2.2] ; 一個高性能的分佈式的內存對像緩存系統,通過在內存裡維護一個統一的巨大的hash表, ; 它能夠用來存儲各種格式的數據,包括圖像、視頻、文件以及數據庫檢索的結果等。 memcache.allow_failover = On ; 是否在遇到錯誤時透明地向其他服務器進行故障轉移。 memcache.chunk_size = 8192 ; 數據將按照此值設定的塊大小進行轉移。此值越小所需的額外網絡傳輸越多。 ; 如果發現無法解釋的速度降低,可以嘗試將此值增加到32768。 memcache.default_port = 11211 ; 連接到memcached服務器時使用的默認TCP端口。 memcache.max_failover_attempts = 20 ; 接受和發送數據時最多嘗試多少個服務器,進在打開memcache.allow_failover時有效。 memcache.hash_strategy = "standard" ; 控制將key映射到server的策略。默認值"standard"表示使用先前版本的老hash策略。 ; 設為"consistent"可以允許在連接池中添加/刪除服務器時不必重新計算key與server之間的映射關係。 memcache.hash_function = "crc32" ; 控制將key映射到server的散列函數。默認值"crc32"使用CRC32算法,而"fnv"則表示使用FNV-1a算法。 ; FNV-1a比CRC32速度稍低,但是散列效果更好。 [Zlib] ; 該模塊允許PHP透明的讀取和寫入gzip(.gz)壓縮文件。 zlib.output_compression = Off ; 是否使用zlib庫透明地壓縮腳本輸出結果。 ; 該指令的值可以設置為:Off、On、字節數(壓縮緩衝區大小,默認為4096)。 ; 如果打開該指令,當瀏覽器發送"Accept-Encoding: gzip(deflate)"頭時, ; "Content-Encoding: gzip(deflate)"和"Vary: Accept-Encoding"頭將加入到應答頭當中。 ; 你可以在應答頭輸出之前用ini_set()函數在腳本中啟用或禁止這個特性。 ; 如果輸出一個"Content-Type: image/??"這樣的應答頭,壓縮將不會啟用(為了防止Netscape的bug)。 ; 你可以在輸出"Content-Type: image/??"之後使用"ini_set('zlib.output_compression', 'On')"重新打開這個特性。 ; 注意1: 壓縮率會受壓縮緩衝區大小的影響,如果你想得到更好的壓縮質量,請指定一個較大的壓縮緩衝區。 ; 注意2: 如果啟用了zlib輸出壓縮,output_handler指令必須為空,同時必須設置zlib.output_handler指令的值。 zlib.output_compression_level = -1 ; 壓縮級別,可用值為 0~9 ,0表示不壓縮。值越高效果越好,但CPU佔用越多,建議值為1~5。 ; 默認值 -1 表示使用zlib內部的默認值(6)。 zlib.output_handler = ; 在打開zlib.output_compression指令的情況下,你只能在這裡指定輸出處理器。 ; 可以使用的處理器有"zlib.inflate"(解壓)或"zlib.deflate"(壓縮)。 ; 如果啟用該指令則必須將output_handler指令設為空。 [dbx] ; 一個數據庫抽像層,為不同數據庫提供了統一的接口。目前支持: ; FrontBase,SQL Server,MySQL,ODBC,PostgreSQL,Sybase-CT,Oracle 8,SQLite dbx.colnames_case = "unchanged" ; 字段名可以按照"unchanged"或"uppercase","lowercase"方式返回。 [MySQLi] ; MySQLi模塊只能與4.1.3以上版本的MySQL一起工作。 mysqli.max_links = -1 ; 每個進程中允許的最大連接數(持久和非持久)。-1 代表無限制 mysqli.default_port = 3306 ; mysqli_connect()連接到MySQL數據庫時使用的默認TCP端口。 ; 如果沒有在這裡指定默認值,將按如下順序尋找: ; (1)$MYSQL_TCP_PORT環境變量 ; (2)/etc/services文件中的mysql-tcp項(unix) ; (3)編譯時指定的MYSQL_PORT常量 ; 注意:Win32下,只使用MYSQL_PORT常量。 mysqli.default_socket = ; mysqli_connect()連接到本機MySQL服務器時所使用的默認套接字名。 ; 若未指定則使用內置的MqSQL默認值。 mysqli.default_host = ; mysqli_connect()連接到MySQL數據庫時使用的默認主機。安全模式下無效。 mysqli.default_user = ; mysqli_connect()連接到MySQL數據庫時使用的默認用戶名。安全模式下無效。 mysqli.default_pw = ; mysqli_connect()連接到MySQL數據庫時使用的默認密碼。安全模式下無效。 ; 在配置文件中保存密碼是個壞主意,任何使用PHP權限的用戶都可以運行 ; 'echo cfg_get_var("mysql.default_password")'來顯示密碼! ; 而且任何對該配置文件有讀權限的用戶也能看到密碼。 mysqli.reconnect = Off ; 是否允許重新連接 [PostgresSQL] ;PostgresSQL模塊建議與8.0以上版本一起工作。 pgsql.allow_persistent = On ; 是否允許持久連接 pgsql.max_persistent = -1 ; 每個進程中允許的最大持久連接數。-1 代表無限制。 pgsql.max_links = -1 ; 每個進程中允許的最大連接數(持久和非持久)。-1 代表無限制。 pgsql.auto_reset_persistent = Off ; 自動復位在pg_pconnect()上中斷了的持久連接,檢測需要一些額外開銷。 pgsql.ignore_notice = Off ; 是否忽略PostgreSQL後端的提醒消息。 ; 記錄後端的提醒消息需要一些很小的額外開銷。 pgsql.log_notice = Off ; 是否在日誌中記錄PostgreSQL後端的提醒消息。 ; 僅在pgsql.ignore_notice=Off時,才可以記錄。