php5.2 的檔案詳解,金步國的翻譯作品,比較有參考意義,需要的朋友收藏了。
;;;;;;;;;;;;;;;;;;
;; 關於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設為空字串
; foo = none ;字串
; 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
; 預設經度
zenith = 90.583333
; 預設日落天頂
date.timezone =
; 未設定TZ環境變數時用於所有日期和時間函數的預設時區。
; 應用時區的優先順序為:
; 1. 用date_default_timezone_set()函數設定的時區(如果設定了的話)
; 2. TZ 環境變數(如果非空的話)
; 3. 該指令的值(如果設定了的話)
; 4. PHP自己推測(如果作業系統支援)
; 5. 如果以上都不成功,則使用「UTC」
[PHP-Core -Assert]
; 是否啟用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
; 換句話說,如果此處的值為空,任何UID/GID不符合的文件都不允許被包含。
; 這裡設定的目錄必須已經存在於include_path指令中或用完整路徑來包含。
; 多個目錄之間以冒號(Win下為分號)隔開。
; 指定的限制實際上是一個前綴,而不是一個目錄名,
; 也就是說”/dir/incl”將允許訪問”/dir/include”和”/dir/incls”
; 如果您希望將存取控制在一個指定的目錄,那麼請在結尾加上斜線。
[PHP-Core-Safe]
allow_url_fopen = On
; 是否允許開啟遠端檔案
allow_url_include = Off
disable_classes =
disable_functions =
enable_dl = On
; 停用dl()函數主要是出於安全考慮,因為它可以繞過open_basedir指令的限制。
; 在安全模式下始終停用dl()函數,而不管此處如何設定。
; PHP6中刪除了指令,相當於設為Off。
expose_php = On
; 它不會有安全上的直接威脅,但它使得客戶端知道伺服器上安裝了PHP。
open_basedir =
; 當一個腳本試圖開啟一個指定目錄樹以外的檔案時,將遭到拒絕。
; 所有的符號連接都會被解析,所以不可能透過符號連接來避開此限制。
; 特殊值’.’指定了存放該腳本的目錄將被當做基準目錄,
; 但這有些危險,因為腳本的工作目錄可以輕易被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 |
; 2 E_WARNING 運轉中警告(非致命性錯誤)
; 4 E_PARSE 編譯時解析錯誤
; 8 E_NOTICE E_CORE_ERROR PHP啟動時初始化過程中的致命錯誤
; 32 E_CORE_WARNING PHP啟動時初始化過程中的警告(非致命性錯誤)
; 64 E_COMPILE_ERROR 編譯時致命性錯誤
; 128 E_COMPILE_WARNING ER_ER(自訂的致命錯誤
; 512 E_USER_WARNING 使用者自已定義的警告(非致命性錯誤)
; 1024 E_USER_NOTICE 使用者自訂的提醒(經常是bug,也可能是有意願的)
; 2048 E_STRICT RECOVERABLE_ERROR 接近致命的運作時錯誤,若未被捕獲則視同E_ERROR
; 6143 E_ALL 除E_STRICTICT或未來可能出現的各種錯誤
track_errors = Off
; 是否在變數$php_errormsg中保存最近一個錯誤或警告訊息。
display_errors = On
; 在最終發布的web站點上,強烈建議你關掉這個特性,並使用錯誤日誌代替(參看下面)。
; 在最終發布的web站點打開這個特性可能暴露一些安全信息,
display_startup_errors = Off
; 是否顯示PHP啟動時的錯誤。
; 即使display_errors指令被打開,關閉此參數也將不顯示PHP啟動時的錯誤。
; 建議你關掉這個特性,除非你必須用於調試中。
report_memleaks = On
; 是否報告記憶體洩漏。這個參數只在以偵錯方式編譯的PHP中起作用,
; 且必須在error_reporting指令中包含E_WARNING
; 尚無說明文件
html_errors = On
html_errors = On
; 注意: 不要在發佈的網站上使用這個特性!
docref_root = ;”http://localhost/phpmanual/”
; 如果打開了html_errors指令,PHP將會在出錯訊息上顯示超連接,
; 直接連結到一個說明這個指令,PHP將會在出錯訊息上顯示超連接,
;直接連結到一個說明這個說明錯誤或導致這個錯誤的函數的頁面。
; 你可以從http://www.php.net/docs.php下載php手冊,
; 並將docref_root指令指向你本地的手冊所在的URL目錄。
; 你也必須設定docref_ext指令來指定檔案的副檔名(必須含有’.’)。
; 注意: 不要在發佈的網站上使用這個特性。
; 錯誤訊息前輸出的字串
error_append_string = ;”
xmlrpc_error_number = 0
; 尚無文件
; 是否定義各種系統日誌變數,如:$LOG_PRONID, $LOG_C 或PRONID 等等。
; 關掉它以提高效率的好主意。
; 你可以在運行時呼叫define_syslog_variables()函數來定義這些變數。
; 將錯誤日誌記錄到哪個檔案。該文件必須對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
; 每個腳本
max_execution_time = 30
; 每個腳本 允許執行時間限制。
; 這個參數有助於阻止劣質腳本無休止的佔用伺服器資源。
; 如用system()/sleep()函數的使用、資料庫查詢、文件上傳等,都不包括在內。
; 在安全模式下,你不能用ini_set()在運作時改變這個設定。
memory_limit = 128M
; 一個腳本所能夠申請到的最大記憶體位元組數(可以使用K和M作為單位)。
; 這有助於防止劣質腳本消耗完伺服器上的所有記憶體。
; 如果要取消記憶體限制,則必須將其設為 -1 。
; 設定了該指令後,memory_get_usage()函數將變成可用。
; 每個腳本解析輸入資料(POST, GET, upload)的最大允許時間(秒)。
; -1 表示不限制。
max_input_nesting_level = 64
; 輸入變數的最大巢狀深度(尚無更多解釋文件)
post_max_size = 8M
; 允許的POST資料最大位元組長度。此設定也影響到文件上傳。
; 要上傳大文件,該值必須大於upload_max_filesize指令的值。
; 如果啟用了記憶體限制,那麼該值應小於memory_limit指令的值。
; 指定PHP所使用的realpath(已規範的絕對路徑名)緩衝區大小。
; 在PHP開啟大量檔案的系統上應增加該值以提高效能。
; realpath緩衝區中資訊的有效期限(秒)。
; 對檔案很少變動的系統,可以增加該值以提高效能。
[PHP-Core-FileUpLoad]
; 是否允許HTTP檔案上傳。
; 參考upload_max_filesize, upload_tmp_dir, post_max_size指令
upload_max_filesize = 2M
; 允許上傳的檔案的最大尺寸。
; 檔案上傳時存放檔案的暫存目錄(必須是PHP流程使用者可寫的目錄)。
; 若未指定則PHP使用系統預設的暫存目錄。
magic_quotes_gpc = Off
; 是否對輸入的GET/POST/Cookie資料使用自動字串轉義( ' ” NULL )。
; 這裡的設定會自動影響$_GEST $_POST $_COOKIE 陣列的值。本指令與magic_quotes_sybase指令同時打開,則僅將單引號(')轉義為(”),
; 其它特殊字元將不被轉義,即( ” NULL )將保持原樣! ,並使用自訂的過濾函數。
; 若開啟本指令,則大多數函數從外部資源(資料庫,文字檔案等)傳回資料都會被轉義。
; 例如:用SQL查詢得到的數據,用exec()函數得到的數據,等等
; 其它特殊字元將不被轉義,即( ” NULL )將保持原樣! !
; 建議關閉此特性,並視具體情況使用自訂的過濾函數。
magic_quotes_sybase = Off
; 是否採用Sybase形式的自動字串轉義(用” 表示')
[PHP-Core-HighLight]
highlight.bg = “#FFFFFF”
.com ″
highlight.html = “#000000″
highlight.keyword = “#007700″highlight.string = “#DD0000″
; 語法高亮模式的色彩(通常用於顯示高亮模式的色彩(通常用於顯示高亮模式的顏色; .phps 檔案)。標識。否則必須使用””長標識。使用PHP,可以選擇關閉此選項以方便直接嵌入””,
; 不然你必須用PHP來輸出: echo '
; 本指令也會影響到縮寫形式”=”,它和” echo”等價,要使用它也必須打開短標記。 ”,這也會影響縮寫形式”; PHP6中將刪除此指令
arg_separator.output = “&”
; PHP所產生的URL中用來分隔參數的分隔符號。
; 是否僅在使用到$_SERVER和$_ENV變數時才創建(而不是在腳本一啟動時就自動創建)。
; 如果並未在腳本中使用這兩個數組,打開該指令將會獲得效能上的提升。
; 要想該指令生效,必須關閉register_globals和register_long_arrays指令。
auto_prepend_file =
auto_append_file =
; 該檔案就像呼叫了include()函數被包含進來一樣,因此會使用include_path指令的值。
; 注意:如果腳本透過exit()終止,那麼自動後綴將不會發生。
; PHP註冊 Environment, GET, POST, Cookie, Server 變數的順序。
; 分別以 E, G, P, C, S 表示,以從左到右註冊,新值覆蓋舊值。
; 舉例說,設為」GP」將會導致用POST變數覆寫同名的GET變量,
; 建議使用”GPC”或”GPCS”,並使用getenv()函數存取環境變數。
register_globals = Off
; 是否將 E, G, P, C, S 變數註冊為全域變數。
; 建議使用預先定義的超全域變數:$_ENV, $_GET, $_POST, $_COOKIE, $_SERVER
; 此指令受variables_order指令的影響。
; PHP6中已經刪除此指令。
register_argc_argv = On
; 建議不要使用這兩個變量,並關掉該指令以提高效能。
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=
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腳本。
; 如果你想要針對單獨的腳本檔案設定其編碼,可以在該腳本的開頭使用
;
; 來指定。注意:必須是第一行開頭,全面不要有任何字元(包括空白)。
; 此方法只能影響其所在的腳本,不會影響任何被包含的其他腳本。
unicode.stream_encoding = UTF-8
unicode.from_error_mode = 2
unicode.from_error_subst_char = 3f
; 尚無文件
[PHP-Core-Misc] 測試結束符(EOL)。
; 如果的你腳本必須處理Macintosh文件,; 或者你運行在Macintosh上,同時又要處理unix或win32文件,
; 打開這個指令可以讓PHP自動偵測EOL,以便fgets()和file()函數可以正常工作。
; 但同時也會導致在Unix系統下使用回車符(CR)作為項目分隔符號的人遭遇不相容行為。
; 另外,在偵測第一行的EOL習慣時會有很小的效能損失。
browscap = ;”c:/windows/system32/inetsrv/browscap.ini”
; 只有PWS和IIS需要這個設定
;得到一個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 ; hash
; iconv ; json ; odbc ; pcre; Reflection ; hash
; iconv ; json ; odbc ; pcre; Reflection ; zlib ; SimpleXML ; dom ; SPL ; wddx ; xml ; xmlreader ; xmlwriter
[PHP-Core-CGI]
_ 這些指令只有在將PHP運行在CGI模式下的時候才有效
; 在web伺服器的主文檔目錄(例如”htdocs”)中放置可執行程式/腳本被認為是不安全的,
; 例如因為配置錯誤而將腳本作為普通的html顯示。
; 因此許多系統管理員都會在主文檔目錄之外專門設定一個只能透過CGI來存取的目錄,
; 該目錄中的內容只會被解析而不會原樣顯示出來。
; 如果設定了該項,那麼PHP就只會解釋doc_root目錄下的文件,
; 並確保目錄外的腳本都不會被PHP解釋器執行(user_dir除外)。
; 如果編譯PHP時沒有指定FORCE_REDIRECT,並且在非IIS伺服器上以CGI方式運行,
; 則必須設定此指令(請參閱手冊中的安全部分)。
; 替代方案是使用的cgi.force_redirect指令。
cgi.discard_path = Off
cgi.fix_pathinfo = On
; 先前的行為是將PATH_TRANSLATED設為SCRIPT_FILENAME,而不管PATH_INFO是什麼。
; 開啟此選項將使PHP修正其路徑以遵守CGI規範,否則仍將使用舊式的不合規範的行為。
; 鼓勵你開啟此指令,並修正腳本以使用 SCRIPT_FILENAME 取代 PATH_TRANSLATED 。
; 有關PATH_INFO的更多資訊請參閱cgi規範。
cgi.force_redirect = On
; 你若自己關閉了它,請自己負責後果。
; 注意:在IIS/OmniHTTPD/Xitami上則必須關閉它!
cgi.redirect_status_env =
; 可能需要設定一個cgi重定向環境變數名,PHP將去尋找它來知道是否可以繼續執行下去。
; 設定這個變數會導致安全漏洞,請務必在設定前搞清楚自己在做什麼。
cgi.rfc2616_headers = 0
; 0 表示發送一個”Status: “報頭,Apache和其它web伺服器都支援。
; 若設為1,則PHP使用RFC2616標準的頭。
; 除非你知道自己在做什麼,否則保持其預設值 0
cgi.nph = Off
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
; 是否非同步傳送。
; 定義匿名ftp的密碼(一個email地址)
;;;;;;;;;;;;;;;;;;;
[Pcre]
pcre.backtrack_limit = 100000
pcre.recursion_limit = 100000
; 如果你將該值設的非常高,將可能耗盡進程的堆疊空間,導致PHP崩潰。
[Session]
; 否則不管是否使用了session_start(),都不會自動新增任何session記錄。
; 包括resource變數或有循環引用的對象包含指向自身的引用的對象,不能保存在會話中。
; register_globals指令會影響到會話變數的儲存和復原。
session.save_handler = “files”
; 如果想要使用自訂的處理器(如基於資料庫的處理器),可用」user」。
; 設為”memcache”則可以使用memcache作為會話處理器(需要指定”–enable-memcache-session”編譯選項)。
; 還有一個使用PostgreSQL的處理器:http://sourceforge.net/projects/phpform-ext/
session.save_path = “/tmp”
; 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”
session.auto_start = Off
; 因為類別定義必須在會話啟動之前被載入,所以若開啟這個選項,你就不能在會話中存放物件。
session.serialize_handler = “php”
; 另外還可以使用」php_binary」。當啟用了WDDX支援以後,將只能使用”wddx”。
session.gc_probability = 1
; 定義在每次初始化會話時,啟動垃圾回收程序的機率。
; 這個收集機率計算公式如下: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 =n =checkd;請求頭中的”Referer”欄位不包含此處指定的字串則會話ID將被視為無效。
; 注意:如果請求頭中根本不存在”Referer”字段的話,會話ID將仍將被視為有效。
; 預設為空,即不做檢查(全部視為有效)。