本文做者是一位開源理念的堅決支持者,因此本文雖然不是軟件,可是遵守開源的精神發佈。php
本文做者十分願意與他人分享勞動成果,若是你對個人其餘翻譯做品或者技術文章有興趣,能夠在以下位置查看現有的做品集:html
因爲做者水平有限,所以不能保證做品內容準確無誤。若是你發現了做品中的錯誤(哪怕是錯別字也好),請來信指出,任何提升做品質量的建議我都將虛心接納。mysql
;;;;;;;;;;;;;;;;; ;; 關於php.ini ;; ;;;;;;;;;;;;;;;;; ; 它必須被命名爲'php.ini',PHP會在初始化的時候按以下順序進行搜索(搜到即停): ; 1. SAPI模塊指定的位置: ; (a)Apache httpd.conf中的PHPINIDir指令指定的目錄中 ; (b)CGI/CLI模式下"-c"命令行選項 ; 2. PHPRC 環境變量指定的位置 ; 3. Windows註冊表指定的位置: ; (a)[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z]內的IniFilePath的值(特定於php-x.y.z版本) ; (b)[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y]內的IniFilePath的值(特定於php-x.y.*系列版本) ; (c)[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x]內的IniFilePath的值(特定於php-x.*.*系列版本) ; (d)[HKEY_LOCAL_MACHINE\SOFTWARE\PHP]內的IniFilePath的值(不特定於php的版本) ; 4. 當前工做目錄(僅適用於CLI模式) ; 5. web 服務器目錄(適用於SAPI模塊)或PHP所在目錄(Windows下其它狀況) ; 6. Windows目錄(%SystemRoot%)或 --with-config-file-path 編譯時選項指定的位置 ; ; 最新版本位置: ; php.ini-production ; php.ini-development ;;;;;;;;;;;; ;; 語法 ;; ;;;;;;;;;;;; ; 該文件的語法很是簡單。空白字符和以分號開始的行被簡單地忽略。 ; 章節標題(例如: [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 = ;"john@doe.com" ; 定義匿名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"接口。 ; 不定義此指令則表示強制使用匿名映射。建議使用"/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時,才能夠記錄。