php配置參數.md

php 5.5 配置文件

php.ini Options

user_ini.filename stringphp

設定了 PHP 會在每一個目錄下搜尋的文件名;若是設定爲空字符串則 PHP 不會搜尋。默認值是 .user.ini。html

user_ini.cache_ttl integernode

控制着從新讀取用戶 INI 文件的間隔時間。默認是 300 秒(5 分鐘)。mysql

Language Options

engine = booleangit

打開或關閉 PHP 解析。本指令僅在使用 PHP 的 Apache 模塊版本時纔有用。能夠基於目錄或者虛擬主機來打開或者關閉 PHP。將 engine off 放到 httpd.conf 文件中適當的位置就能夠激活或禁用 PHP。web

short_open_tag boolean正則表達式

決定是否容許使用 PHP 代碼開始標誌的縮寫形式(<? ?>)。若是要和 XML 結合使用 PHP,能夠禁用此選項以便於嵌入使用 <?xml ?>。不然還能夠經過 PHP 來輸出,例如:<?php echo '<?xml version="1.0"'; ?>。若是禁用了,必須使用 PHP 代碼開始標誌的完整形式(<?php ?>)。
Note:本指令也會影響到縮寫形式 <?=,它和 <? echo 等價。使用此縮寫須要 short_open_tag 的值爲 On。 從 PHP 5.4.0 起, <?= 老是可用的。算法

asp_tags booleansql

除了一般的 標誌以外還容許使用 ASP 風格的標誌 <% %>。這也包括了輸出變量值的縮寫 <%= $value %>。更多信息見從 HTML 中分離一節。shell

precision = integer

浮點數中顯示有效數字的位數。

y2k_compliance = boolean

強制 2000 年兼容(在不兼容的瀏覽器中會出問題)。

output_buffering integer/boolean

該選項設置爲 On 時,將在全部的腳本中使用輸出控制。若是要限制輸出緩衝區的最大值,可將該選項設定爲指定的最大字節數(例如 output_buffering=4096)。

output_handler string

該選項可將腳本全部的輸出,重定向到一個函數。例如,將 output_handler 設置爲 mb_output_handler() 時,字符的編碼將被修改成指定的編碼。設置的任何處理函數,將自動的處理輸出緩衝。
Note:不能同時使用 mb_output_handler() 和 ob_iconv_handler(),也不能同時使用 ob_gzhandler() 和 zlib.output_compression。
Note:編寫可移植腳本的人不該該依賴於這個ini指示。 相反,使用ob_start()顯式設置輸出處理程序。使用這個ini指令可能會致使問題,除非你知道什麼腳本是在作。
Note:若是設置爲「On」,output_handler必須爲空!相反,您必須使用zlib.output_handler。

zlib.output_compression boolean/integer

是否使用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指令必須爲on,同時必須設置zlib.output_handler指令的值。

zlib_output_compression_level integer

壓縮級別,可用值爲 0~9 ,0表示不壓縮。值越高效果越好,但CPU佔用越多,建議值爲1~5。默認值 -1 表示使用zlib內部的默認值(6)。

zlib.output_handler string

在打開zlib.output_compression指令的狀況下,你只能在這裏指定輸出處理器。可使用的處理器有"zlib.inflate"(解壓)或"zlib.deflate"(壓縮)。若是啓用該指令則必須將output_handler指令設爲空。

implicit_flush boolean

默認爲 FALSE。如將該選項改成 TRUE,PHP 將使輸出層,在每段信息塊輸出後,自動刷新。這等同於在每次使用 print、echo 等函數或每一個 HTML 塊以後,調用 PHP 中的 flush() 函數。
不在web環境中使用 PHP 時,打開這個選項對程序執行的性能有嚴重的影響,一般只推薦在調試時使用。在 CLI SAPI 的執行模式下,該標記默認爲 TRUE。

unserialize_callback_func

若是解序列化處理器須要實例化一個未定義的類,這裏指定的回調函數將以該未定義類的名字做爲參數被unserialize()調用,以避免獲得不完整的"__PHP_Incomplete_Class"對象。若是這裏沒有指定函數,或指定的函數不包含(或實現)那個未定義的類,將會顯示警告信息。因此僅在確實須要實現這樣的回調函數時才設置該指令。若要禁止這個特性,只需置空便可。

serialize_precision integer

將浮點型和雙精度型數據序列化存儲時的精度(有效位數)。默認值可以確保浮點型數據被解序列化程序解碼時不會丟失數據。

open_basedir string

將 PHP 所能打開的文件限制在指定的目錄樹,包括文件自己。本指令不受安全模式打開或者關閉的影響。
當一個腳本試圖用例如 fopen() 或者 gzopen() 打開一個文件時,該文件的位置將被檢查。當文件在指定的目錄樹以外時 PHP 將拒絕打開它。全部的符號鏈接都會被解析,因此不可能經過符號鏈接來避開此限制。
特殊值 . 指明腳本的工做目錄將被做爲基準目錄。但這有些危險,由於腳本的工做目錄能夠輕易被 chdir() 而改變。
在 httpd.conf 文件中中,open_basedir 能夠像其它任何配置選項同樣用「php_admin_value open_basedir none」的方法關閉(例如某些虛擬主機中)。
在 Windows 中,用分號分隔目錄。在任何其它系統中用冒號分隔目錄。做爲 Apache 模塊時,父目錄中的 open_basedir 路徑自動被繼承。
用 open_basedir 指定的限制其實是前綴,不是目錄名。也就是說「open_basedir = /dir/incl」也會容許訪問「/dir/include」和「/dir/incls」,若是它們存在的話。若是要將訪問限制在僅爲指定的目錄,用斜線結束路徑名。例如:「open_basedir = /dir/incl/」。
Note:支持多個目錄是 3.0.7 加入的。默認是容許打開全部文件。

disable_functions string

本指令容許你基於安全緣由禁止某些函數。接受逗號分隔的函數名列表做爲參數。 disable_functions 不受安全模式的影響。 本指令只能設置在 php.ini 中。例如不能將其設置在 httpd.conf。

disable_classes string

本指令可使你出於安全的理由禁用某些類。用逗號分隔類名。disable_classes 不受安全模式的影響。 本指令只能設置在 php.ini 中。例如不能將其設置在 httpd.conf。

highlight.bg string
highlight.comment string
highlight.default string
highlight.html string
highlight.keyword string
highlight.string string

語法高亮的顏色。可設置爲 <font color="??????"> 中任何可接受的代碼。

ignore_user_abort boolean

默認值爲 FALSE 。 若是設置爲 TRUE ,在客戶端斷開鏈接後,腳本不會被停止。

realpath_cache_size integer

指定PHP使用的realpath(規範化的絕對路徑名)緩衝區大小。在PHP打開大量文件的系統上應當增大該值以提升性能。

realpath_cache_ttl integer

realpath緩衝區中信息的有效期(秒)。對文件不多變更的系統,能夠增大該值以提升性能。

zend.enable_gc boolean

啓用或禁用循環引用記數蒐集器。

zend.multibyte boolean

啓用對多字節編碼中源文件的解析。要使用此功能,必須啓用mbstring擴展。

zend.script_encoding string

容許設置腳本的默認編碼。除非在腳本的頂部出現一個declare(encoding = ...)指令,不然將使用此值。僅當zend.multibyte設置時纔會影響。

Miscellaneous

expose_php boolean

是否暴露PHP被安裝在服務器上的事實(在http頭中加上其簽名)。它不會有安全上的直接威脅,但它使得客戶端知道服務器上安裝了PHP。

Resource Limits

max_execution_time integer

這設置了腳本被解析器停止以前容許的最大執行時間,單位秒。 這有助於防止寫得很差的腳本佔盡服務器資源。 默認設置爲 30。 從命令行運行 PHP 時,默認設置爲 0。
最大執行時間不會影響系統調用和系統操做等。在 安全模式 下你不能經過 ini_set() 來修改此設置。 惟一的解決方法是關閉安全模式或者在 php.ini 中修改時間限制。
你的 web 服務器也能夠有其餘超時設置,也有可能中斷 PHP 的執行。 Apache 有一個 Timeout 指令,IIS 有一個 CGI 超時功能。 他們默認都是 300 秒。更多具體信息參見你的 web 服務器的文檔。

max_input_time integer

腳本解析輸入數據(相似 POST 和 GET)容許的最大時間,單位是秒。 它從接收全部數據到開始執行腳本進行測量的。

max_input_nesting_level integer

設置輸入變量的嵌套深度 (例如 $_GET,$_POST……)

memory_limit integer

腳本可能消耗的最大內存量(128MB)

Error handling and logging

Error handling and logging

設置錯誤報告的級別。該參數能夠是一個任意的表示二進制位字段的整數,或者常數名稱。錯誤級別和常數是在 預約義常量定義的,在 php.ini 之中也有專門的說明。在程序運行時,還能夠經過 error_reporting() 函數進行設置。請查看 display_errors 瞭解詳情。
在PHP 4和PHP 5之中,其默認值爲 E_ALL & ~E_NOTICE。 該設置表示除了 E_NOTICE 其餘都顯示的錯誤級別。在開發過程當中頗有必要顯示它們。

  • E_ALL - 全部錯誤和警告 (不包含 E_STRICT)

  • E_ERROR - 致命的運行時錯誤

  • E_RECOVERABLE_ERROR - 幾乎致命的運行時錯誤

  • E_WARNING - 運行時警告 (非致命錯誤)

  • E_PARSE - 編譯時語法錯誤

  • E_NOTICE - 運行時提醒 (這些警告經常由你代碼中的bug致使, 可是也有多是有意的行爲 (例如, 使用一個未初始化的變量並依賴於其會被自動初始化成爲一個空字符串的事實)

  • E_STRICT - 運行時提醒, 打開後PHP會給出針對你代碼的最易移植和最好向後兼容性的建議

  • E_CORE_ERROR - PHP初始化啓動時的致命錯誤

  • E_CORE_WARNING - 在PHP初始化時發生的警告 (非致命錯誤)

  • E_COMPILE_ERROR - 致命的編譯時錯誤

  • E_COMPILE_WARNING - 編譯時警告 (非致命)

  • E_USER_ERROR - 用戶產生的錯誤信息

  • E_USER_WARNING - 用戶產生的警告信息

  • E_USER_NOTICE - 用戶產生的提示信息

舉例:
顯示全部錯誤, 除了提示以及代碼標準警告之外
error_reporting = E_ALL & ~E_NOTICE
顯示全部錯誤,除了提示之外
error_reporting = E_ALL & ~E_NOTICE | E_STRICT
只顯示錯誤
error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
顯示出了提示以及代碼標準警告以外的錯誤
error_reporting = E_ALL & ~E_NOTICE

Note:在開發階段啓用 E_NOTICE 會有一些好處。出於調試的目的:通知信息會對代碼中可能出現的bug給出警告。例如,使用未預先分配和定義的值,就會給出警告。它對於查找拼寫錯誤很是有用,而且能夠節省調試的時間。通知信息也會警告你使用更好的代碼風格。例如,$arr[item] 最好寫成 $arr['item'] ,由於 PHP 會試圖將 "item" 當成一個常量。若是它不是一個常量,PHP纔會把它當作數組的字符串索引。
Note:在PHP 5之中,提供了一個新的錯誤級別 E_STRICT。 由於 E_STRICT 並不包含在 E_ALL 之中,你必須明確啓用才能顯示這個類別的錯誤信息。在開發階段啓用 E_STRICT 會有一些好處。嚴格的信息將幫助你使用最新和最好的建議的方法來編寫代碼,例如它會警告你使用了將被廢棄的函數。
Note: PHP外的PHP常量 在 PHP 之外使用PHP的常量是沒有意義的,例如在 httpd.conf 之中, 你須要使用常量對應的 integer 值來取代。由於隨着時間的推移和PHP的發展,會有更多的錯誤級別將被添加,所以錯誤級別的最大值(爲 E_ALL)可能會改變 。所以在使用 E_ALL 對應整數值的地方,應該考慮使用較大的數值來涵蓋當前和未來須要使用的二進制位字段,例如數值 2147483647 (將包含全部錯誤,而不只僅是 E_ALL).

display_errors string

該選項設置是否將錯誤信息做爲輸出的一部分顯示到屏幕,或者對用戶隱藏而不顯示。設置 "stderr" 表示發送到 stderr 而不是 stdout。 "stderr"從 PHP 5.2.4 開始可用。在之前的版本中,該配置值的類型爲 boolean.
Note:這是一個輔助開發的功能,建議永遠不要在生產系統中使用 (例如系統被鏈接到互聯網對外提供服務)。
Note:儘管 display_errors 也能夠在運行時設置 (使用 ini_set()), 可是腳本出現致命錯誤時任何運行時的設置都是無效的。 由於在這種狀況下預期運行的操做不會被執行。

display_startup_errors boolean

是否顯示PHP啓動時的錯誤。即便 display_errors 設置爲開啓, PHP 啓動過程當中的錯誤信息也不會被顯示。強烈建議除了調試目的之外,將 display_startup_errors 設置爲關閉。

log_errors boolean

設置是否將腳本運行的錯誤信息記錄到服務器錯誤日誌或者error_log之中。注意,這是與服務器相關的特定配置項。
Note:在生產系統中,強烈建議你使用錯誤日誌記錄web站點上顯示的錯誤信息。

log_errors_max_len integer

設置 log_errors 的最大字節數. 在 error_log 會添加有關錯誤源的信息。默認值爲1024,若是設置爲0表示不限長度。該長度設置對記錄的錯誤,顯示的錯誤,以及 $php_errormsg都會有限制做用。
當使用 integer 時, 其值以字節來衡量。還可使用在FAQ中描述的速記符。

ignore_repeated_errors boolean

不記錄重複的信息。重複的錯誤必須出如今同一個文件中的同一行代碼上,除非 ignore_repeated_source 設置爲true。

ignore_repeated_source boolean

忽略重複消息時,也忽略消息的來源。當該設置開啓時,重複信息將不會記錄它是由不一樣的文件仍是不一樣的源代碼行產生的。

report_memleaks boolean

若是這個參數設置爲Off,則內存泄露信息不會顯示 (在 stdout 或者日誌中)。這個參數只在以調試方式編譯的PHP中起做用,而且必須在error_reporting指令中包含 E_WARNING

report_zend_debug = 0

此設置默認爲開啓。

track_errors boolean

若是開啓,最後的一個錯誤將永遠存在於變量 $php_errormsg 中。

xmlrpc_errors = 0

關閉正常的錯誤報告,並將錯誤的格式設置爲XML-RPC錯誤信息的格式。

xmlrpc_error_number = 0

用做 XML-RPC faultCode 元素的值。

html_errors boolean

在錯誤信息中關閉HTML標籤。這種新的HTML格式的錯誤信息是能夠點擊,它引導用戶前往描述該錯誤或者致使該錯誤發生的函數的參考信息頁面。 這些參考與 docref_root 和 docref_ext 的設置有關。

docref_root string

新的錯誤信息格式包含了對應的參考頁面,該頁面對錯誤進行具體描述,或者描述了致使該錯誤發生的函數。爲了提供手冊的頁面,你能夠在PHP官方站點下載對應語言的手冊,並在ini中設置網址到本地對應的地址。若是你的本地手冊拷貝可使用"/manual/" 訪問,你就能夠簡單的設置 docref_root=/manual/。另外你還須要設置 docref_ext 匹配你本地文件的後綴名 docref_ext=.html。固然也能夠設置一個外部的參考地址。例如你能夠設置 docref_root=http://manual/en/ 或者 docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon &url=http%3A%2F%2Fwww.php.net%2F"
一般須要在 docref_root 後面以 "/"結尾, 可是在以上的第二種示例狀況中沒必要這麼設置。
Note:由於這麼作能夠快速定位和查看到函數的說明,因此它對你的開發會很是有用。建議永遠不要再生產系統中使用 (例如系統被鏈接到互聯網對外提供服務)。

docref_ext string

參見 docref_root.
Note:docref_ext的值必須以 "." 開頭.

error_prepend_string string

錯誤信息以前輸出的內容。

error_append_string string

錯誤信息以後輸出的內容。

error_log string

設置腳本錯誤將被記錄到的文件。該文件必須是web服務器用戶可寫的。若是特殊值 syslog 被設置,則將錯誤信息發送到系統日誌記錄器。在Unix以及相似系統上,使用的是 syslog(3) ,而在 Windows NT 類系統上則爲事件日誌。Windows 95上不支持系統日誌記錄。參見: syslog(). 若是該配置沒有設置,則錯誤信息會被髮送到 SAPI 錯誤記錄器。例如,出如今Apache的錯誤日誌中,或者在CLI中發送到 stderr。

Data Handling

arg_separator.output string

PHP所產生的URL中用來分隔參數的分隔符。另外還能夠用"&"或","等等。

arg_separator.input string

PHP解析URL中的變量時使用的分隔符列表。字符串中的每個字符都會被看成分割符。另外還能夠用",&"等等。

variables_order string

PHP設定 Environment, GET, POST, Cookie, Server 變量的解析順序。分別用 E, G, P, C, S 表示,按從左到右註冊,新值覆蓋舊值。舉例說,設爲"GP"將會致使用POST變量覆蓋同名的GET變量,並徹底忽略 Environment, Cookie, Server 變量。推薦使用"GPC"或"GPCS",並使用getenv()函數訪問環境變量。

request_order string

此指令描述的順序PHP設定GET,POST和COOKIE變量_REQUEST數組。註冊是由左到右,新的值將覆蓋舊值。若是這個指令沒有設置,variables_order中使用$ _REQUEST內容。請注意,默認分配的php.ini文件中不包含'C'餅乾,出於安全方面的考慮。

register_argc_argv boolean

是否聲明$argv和$argc全局變量(包含用GET方法的信息)。建議不要使用這兩個變量,並關掉該指令以提升性能。

auto_globals_jit boolean

是否僅在使用到$_SERVER和$_ENV變量時才建立(而不是在腳本一啓動時就自動建立)。若是並未在腳本中使用這兩個數組,打開該指令將會得到性能上的提高。要想該指令生效,必須關閉register_globals和register_long_arrays指令。

enable_post_data_reading

PHP是否將讀取POST數據。默認狀況下啓用此選項。極可能,您不會但願全局禁用此選項。 它致使$ _POST和$ _FILES始終爲空; 你惟一可以讀的方法你惟一可以讀的方法POST數據將經過php://input 流包裝器。這多是有用的以代理請求或以存儲器高效方式處理POST數據。

post_max_size intager

容許的POST數據最大字節長度。此設定也影響到文件上傳。若是POST數據超出限制,那麼$_POST和$_FILES將會爲空。要上傳大文件,該值必須大於upload_max_filesize指令的值。若是啓用了內存限制,那麼該值應當小於memory_limit指令的值。

auto_prepend_file string

指定在主文件以前/後自動解析的文件名。爲空表示禁用該特性。該文件就像調用了include()函數被包含進來同樣,所以會使用include_path指令的值。注意:若是腳本經過exit()終止,那麼自動後綴將不會發生。

auto_append_file strint

指定在主文件以後自動解析的文件的名稱。 包含該文件,就像使用require函數調用同樣,所以使用include_path。
Note:若是腳本使用exit()終止,則不會發生自動附加。

default_mimetype string
default_charset string

PHP默認會自動輸出"Content-Type: text/html" HTTP頭。若是將default_charset指令設爲"gb2312",那麼將會自動輸出"Content-Type: text/html; charset=gb2312"。

always_populate_raw_post_data boolean

是否老是生成$HTTP_RAW_POST_DATA變量(原始POST數據)。不然,此變量僅在遇到不能識別的MIME類型的數據時才產生。不過,訪問原始POST數據的更好方法是 php://input 。$HTTP_RAW_POST_DATA對於enctype="multipart/form-data"的表單數據不可用。

Paths and Directories

include_path string

指定一組目錄用於require(), include(), fopen_with_path()函數尋找文件。格式和系統的PATH環境變量相似(UNIX下用冒號分隔,Windows下用分號分隔):UNIX: "/path1:/path2",Windows: "\path1;\path2"。在包含路徑中使用'.'能夠容許相對路徑,它表明當前目錄。

doc_root string

PHP的"CGI根目錄"。僅在非空時有效。在web服務器的主文檔目錄(好比"htdocs")中放置可執行程序/腳本被認爲是不安全的,好比由於配置錯誤而將腳本做爲普通的html顯示。所以不少系統管理員都會在主文檔目錄以外專門設置一個只能經過CGI來訪問的目錄,該目錄中的內容只會被解析而不會原樣顯示出來。若是設置了該項,那麼PHP就只會解釋doc_root目錄下的文件,並確保目錄外的腳本都不會被PHP解釋器執行(user_dir除外)。若是編譯PHP時沒有指定FORCE_REDIRECT,而且在非IIS服務器上以CGI方式運行,則必須設置此指令(參見手冊中的安所有分)。替代方案是使用的cgi.force_redirect指令。

user_dir string

告訴php在使用 /~username 打開腳本時到哪一個目錄下去找,僅在非空時有效。也就是在用戶目錄之下使用PHP文件的基本目錄名,例如:"public_html"。

extension_dir string

存放擴展庫(模塊)的目錄,也就是PHP用來尋找動態擴展模塊的目錄。

enable_dl boolean

該指令僅對 Apache 模塊版本的 PHP 有效。 你能夠針對每一個虛擬機或每一個目錄開啓或關閉 dl() 動態加載 PHP 模塊。
關閉動態加載的主要緣由是爲了安全。經過動態加載,有可能忽略全部 open_basedir 限制。 默認容許動態加載,除了使用 安全模式。在 安全模式,老是沒法使用 dl()。

cgi.force_redirect boolean

是否打開cgi強制重定向。強烈建議打開它覺得CGI方式運行的php提供安全保護。你若本身關閉了它,請本身負責後果。注意:在IIS/OmniHTTPD/Xitami上則必須關閉它!

cgi.nph boolean

在CGI模式下是否強制對全部請求都發送"Status: 200"狀態碼。

cgi.redirect_status_env string

若是cgi.force_redirect=On,而且在Apache與Netscape以外的服務器下運行PHP,可能須要設定一個cgi重定向環境變量名,PHP將去尋找它來知道是否能夠繼續執行下去。設置這個變量會致使安全漏洞,請務必在設置前搞清楚本身在作什麼。

cgi.fix_pathinfo boolean

是否爲CGI提供真正的 PATH_INFO/PATH_TRANSLATED 支持(遵照cgi規範)。先前的行爲是將PATH_TRANSLATED設爲SCRIPT_FILENAME,而無論PATH_INFO是什麼。打開此選項將使PHP修正其路徑以遵照CGI規範,不然仍將使用舊式的不合規範的行爲。鼓勵你打開此指令,並修正腳本以使用 SCRIPT_FILENAME 代替 PATH_TRANSLATED 。有關PATH_INFO的更多信息請參見cgi規範。

fastcgi.impersonate boolean

IIS中的FastCGI支持模仿客戶端安全令牌的能力。這使得IIS可以定義運行時所基於的請求的安全上下文。Apache中的mod_fastcgi不支持此特性(03/17/2002),若是在IIS中運行則設爲On,默認爲Off。

fastcgi.logging boolean

禁用經過FastCGI鏈接的記錄。 PHP的默認行爲是啓用此功能。

cgi.rfc2616_headers int

指定PHP在發送HTTP響應代碼時使用何種報頭。0 表示發送一個"Status: "報頭,Apache和其它web服務器都支持。若設爲1,則PHP使用RFC2616標準的頭。除非你知道本身在作什麼,不然保持其默認值 0。

File Uploads

file_uploads boolean or integer

HTTP上傳文件的臨時目錄(若是沒有,將使用系統默認值
指定)。

upload_tmp_dir string

文件上傳時存放文件的臨時目錄(必須是PHP進程用戶可寫的目錄)。若是未指定則PHP使用系統默認的臨時目錄。

upload_max_filesize integer

容許上傳的文件的最大尺寸。

max_file_uploads integer

容許同時上傳的文件的最大數量。 從PHP 5.3.4開始,上傳字段在提交時保持空白不計入此限制。

Fopen wrappers

allow_url_fopen boolean

本選項激活了 URL 形式的 fopen 封裝協議使得能夠訪問 URL 對象例如文件。默認的封裝協議提供用 ftp 和 http 協議來訪問遠程文件,一些擴展庫例如 zlib 可能會註冊更多的封裝協議。
Note:出於安全性考慮,此選項只能在 php.ini 中設置。

allow_url_include boolean

此選項容許有如下功能使用URL識別的fopen封裝:包括,include_once,require,require_once。此設置要求allow_url_fopen選項要開啓。

from string

定義匿名 ftp 的密碼(email 地址)。

user_agent string

定義User-Agent字符串。 PHP的默認設置爲空。

default_socket_timeout integer

基於 socket 的流的默認超時時間(秒)。

auto_detect_line_endings boolean

當設爲 On 時,PHP 將檢查經過 fgets() 和 file() 取得的數據中的行結束符號是符合 Unix,MS-DOS,仍是 Macintosh 的習慣。這使得 PHP 能夠和 Macintosh 系統交互操做,可是默認值是 Off,由於在檢測第一行的 EOL 習慣時會有很小的性能損失,並且在 Unix 系統下使用回車符號做爲項目分隔符的人們會遭遇向下不兼容的行爲。

Module Settings

CLI Server

cli_server.color boolean

控制內置Web Server的終端輸出有無顏色。

Date

date.timezone string

定義日期函數使用的默認時區

date.default_latitude float

默認緯度。

date.default_longitude float

默認經度。

date.sunrise_zenith float

默認日出天頂。

date.sunset_zenith float

默認日落天頂。

filter

filter.default string

使用指定的過濾器過濾$_GET,$_POST,$_COOKIE,$_REQUEST和$_SERVER數據,原始數據能夠經過filter_input()函數訪問。"unsafe_raw"表示不作任何過濾。

filter.default_flags integer

filter_data()函數的默認標誌。

iconv

iconv.input_encoding string

PHP 5.6 及以上的用戶應該留空並以 default_charset 取代。

iconv.internal_encoding string

PHP 5.6 及以上的用戶應該留空並以 default_charset 取代。

iconv.output_encoding string

PHP 5.6 及以上的用戶應該留空並以 default_charset 取代。

sqlite

sqlite.assoc_case integer

是否使用混合大小寫(0),大寫(1)或小寫(2)散列索引。

當您須要與其餘數據庫系統兼容時,此選項主要有用,其中列的名稱始終以大寫或小寫形式返回,而無論數據庫模式中實際字段名稱的大小寫。
SQLite庫返回天然狀況下的列名(與您在模式中使用的狀況相符)。 當sqlite.assoc_case設置爲0時,將保留天然的狀況。 當它設置爲1或2時,PHP將分別應用散列鍵上的大小寫摺疊到大寫或小寫的鍵。
使用此選項會致使輕微的性能損失,但比使用PHP腳本自動摺疊更快。

Pcre

pcre.backtrack_limit integer

PCRE的最大回溯(backtracking)步數。

pcre.recursion_limit integer

PCRE的遞歸限制. 請注意, 若是 講這個值設置爲一個很大的數字, 你可能會消耗掉 全部的進程可用堆棧, 最終致使php崩潰(直到達到系統限制的堆棧大小).

Pdo

pdo_odbc.connection_pooling string

ODBC鏈接池設置。能夠是「strict」,「relaxed」或「off」(等於「」)之一。 該參數描述了在將鏈接參數與現有池鏈接匹配時,鏈接管理器應該有多嚴格。 strict是推薦的默認值,而且只有當全部鏈接參數徹底匹配時纔會致使使用緩存鏈接。 relaxed將致使在使用相似的鏈接參數時使用緩存鏈接。 這可能致使高速緩存的使用增長,從而具備在(例如)虛擬主機之間泄露鏈接信息的風險。
此設置只能從php.ini文件更改,並影響整個過程; 加載到進程中使用相同ODBC庫的任何其餘模塊也將受到影響,包括Unified ODBC擴展。
將此設置保留爲默認的嚴格設置,除非您有充分的理由更改它。

pdo_odbc.db2_instance_name string

若是使用db2 flavor來編譯PDO_ODBC,則此設置將Linux和UNIX操做系統上的DB2INSTANCE環境變量的值設置爲DB2實例的指定名稱。 這使PDO_ODBC可以解析DB2庫的位置,並對DB2數據庫進行編目鏈接。
此設置只能從php.ini文件更改,並影響整個過程; 加載到進程中使用相同ODBC庫的任何其餘模塊也將受到影響,包括Unified ODBC擴展。
此設置對Windows不起做用。

Pdo_mysql

pdo_mysql.cache_size

若是使用mysqlnd:內部結果集緩存的緩存槽數

pdo_mysql.default_socket=

本地MySQL鏈接的默認套接字名稱。 若是爲空,使用內置
MySQL默認值。

Phar

phar.readonly boolean

此選項禁用使用phar流或Phar對象的寫支持建立或修改Phar歸檔。 此設置應始終在生產計算機上啓用,由於phar擴展的方便的寫支持能夠容許直接建立基於php的病毒,加上其餘常見的安全漏洞。
Note:因爲安全緣由,此設置只能在php.ini中取消設置。 若是在php.ini中phar.readonly被禁用,用戶能夠在腳本中啓用phar.readonly或稍後禁用它。 若是在php.ini中啓用phar.readonly,腳本可能會無惡意地「re-enable」 INI變量,但不能禁用它。

phar.require_hash boolean

此選項將強制全部打開的Phar存檔包含某種簽名(目前支持MD5,SHA1,SHA256和SHA512),而且將拒絕處理不包含簽名的任何Phar存檔。
Note:因爲安全緣由,此設置只能在php.ini中取消設置。 若是在php.ini中禁用phar.require_hash,則用戶能夠在腳本中啓用phar.require_hash或稍後禁用它。若是在php.ini中啓用phar.require_hash,腳本可能會無惡意地「re-enable」INI變量,但不能禁用它。
此設置不影響使用PharData類讀取純tar文件。

phar.cahche_list string

這個INI設置是在2.0.0版本中添加的,容許映射phar檔案在web服務器啓動時預解析,提供性能改進,使運行的文件脫離phar歸檔很是接近從傳統的基於磁盤的安裝運行這些文件的速度。

mail function

SMTP string

僅用於 Windows:PHP 在 mail() 函數中用來發送郵件的 SMTP 服務器的主機名稱或者 IP 地址。

smtp_port integer

僅用於 Windows:SMTP 服務器的端口號,默認爲 25。自 PHP 4.3.0 起可用。

sendmail_from string

在 Windows 下用 PHP 發送郵件時的「From:」郵件地址的值。該選項同時設置了 「Return-Path:」頭。

sendmail_path string

僅用於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 不須要任何選項就能正確處理郵件。
此指令也可用於 Windows。若是設定,smtp,smtp_port 和 sendmail_from 都被忽略並運行指定的命令。

mail.force_extra_parameters

做爲額外的參數傳遞給sendmail庫的強制指定的參數附加值。這些參數老是會替換掉mail()的第5個參數,即便在安全模式下也是如此。

mail.add_x_header boolean

添加X-PHP原產腳本,將包括腳本其次是文件名的UID。

mail.log string

記錄全部郵件日誌的路徑。

SQL

sql.safe_mode boolean

是否使用SQL安全模式。若是打開,指定默認值的數據庫鏈接函數將會使用這些默認值代替支持的參數。對於每一個不一樣數據庫的鏈接函數,其默認值請參考相應的手冊頁面。

ODBC

odbc.defaule_db string

配置 ODBC 默認鏈接的數據庫名稱,供 odbc_connect() 或 odbc_pconnect() 函數使用。

odbc.default_user string

配置 ODBC 默認鏈接的用戶賬號,供 odbc_connect() 或 odbc_pconnect() 函數使用。

odbc.default_pw string

配置 ODBC 默認鏈接的用戶密碼,供 odbc_connect() 或 odbc_pconnect() 函數使用。

odbc.default_cursortype

控制ODBC遊標模型。默認值:SQL_CURSOR_STATIC。

odbc.allow_persistent boolean

配置是否容許 ODBC 數據庫持續鏈接 (persistent connections),會影響 odbc_pconnect() 函數。

odbc.check_persistent boolean

在重用前檢查鏈接是否可用。

odbc.max_persistent integer

配置每一個處理程序最多保持幾個 ODBC 持續鏈接。 -1 意味着沒有限制.

odbc.max_links integer

配置每一個處理程序最多開幾個 ODBC 鏈接,包括持續鏈接。 -1意味着沒有限制.

odbc.defaultlrl integer

長字段處理. 返回變量的字節數. 0 意味着略過.

odbc.defaultbinmode integer

二進制數據處理. 0 意味着略過, 1按照實際返回, 2 轉換到字符.

Interbase

ibase.allow_persistent boolean

是否容許持續鏈接到Firebird / InterBase。

ibase.max_persistent integer

每一個進程的最大持續Firebird / InterBase鏈接數。 若是超過此數目,使用ibase_pconnect()建立的新鏈接將是非持久的。

ibase.max_links integer

每一個進程的最大Firebird / InterBase鏈接數,包括持續鏈接。

ibase.default_db string

在不指定數據庫名稱的狀況下調用ibase_ [p] connect()時,鏈接到的默認數據庫。 若是設置了此值並啓用了SQL安全模式,則不容許與此數據庫以外的其餘鏈接。

ibase.default_user string

若是未指定用戶名,則在鏈接到數據庫時使用的用戶名。

ibase.default_password string

未指定密碼時鏈接到數據庫時使用的密碼。

ibase.default_charset string

鏈接到數據庫時使用的字符集(若是未指定字符集)。

ibase.timestampformat string

默認時間戳格式。

ibase.dateformat string

默認日期格式。

ibase.timeformat string
這些指令用於設置從結果集返回日期和時間時使用的日期和時間格式,或者將參數綁定到日期和時間參數。

MySQL

mysql.allow_local_infile boolean

容許從PHP的角度訪問本地文件與LOAD DATA語句

mysql.allow_persistent boolean

是否容許 MySQL 的持久鏈接。

mysql.cache_size

若是使用mysqlnd:內部結果集緩存的緩存槽數

mysql.max_persistent integer

每一個進程中最大的持久鏈接數目。

mysql.max_links integer

每一個進程中最大的鏈接數,包括持久鏈接。

mysql.default_port integer

指定默認鏈接數據庫的 TCP 端口號。若是沒有指定默認端口號,則按順序從 MYSQL_TCP_PORT 環境變量,/etc/services 文件中的 mysql-tcp 項或者編譯時指定的 MYSQL_PORT 常量中取得。Win32 環境下只會使用 MYSQL_PORT 常量。

mysql.default_socket string

當使用本地鏈接的時候,默認的 socket 名稱。

mysql.default_host string

默認鏈接的數據庫服務器地址。不適用於 SQL 安全模式。

mysql.default_user string

默認鏈接數據庫時使用的用戶名。不適用於 SQL 安全模式。

mysql.default_password string

默認鏈接數據庫時使用的密碼。不適用於 SQL 安全模式。

mysql.connect_timeout integer

鏈接超時秒數。在 Linux 中,此參數設定了等候來自服務器的響應的時長。

mysql.teace_mode boolean

跟蹤模式。當激活 mysql.trace_mode 時,將會顯示 table/index 掃描的警告,未釋放的結果集以及 SQL 錯誤。(PHP 4.3.0 引進)

MySQLi

mysqli.max_persistent = -1

持續連接的最大數量。 -1表示沒有限制。

mysqli.allow_local_infile = On

容許從PHP的角度訪問本地文件與LOAD DATA語句

mysqli.allow_persistent = On

容許或阻止持久連接。

mysqli.max_links = -1

每一個進程中Mysql鏈接的最大數量。 -1表示沒有限制。

mysqli.cache_size = 2000

若是使用mysqlnd:內部結果集緩存的緩存槽數

mysqli.default_port = 3306

當沒有指定其餘端口號時使用的默認的用於鏈接數據庫服務器的TCP端口號。若是沒有設置默認值, 端口號將會按照順序從環境變量MYSQL_TCP_PORT,/etc/services 文件中的mysql-tcp條目或編譯期的MYSQL_PORT常量等位置獲取。 Win32僅使用MYSQL_PORT常量。

mysqli.default_socket string

當鏈接到本地數據庫服務器時若是沒有指定其餘socket名稱,使用的默認socket名稱。

mysqli.default_host string

當鏈接到數據庫服務器時, 若是沒有指定其餘主機地址,使用的默認服務器主機。不要在 安全模式下使用。

mysqli.default_user string

當鏈接到數據庫服務器時,若是沒有指定其餘用戶名,使用的默認用戶名。不要在 安全模式下使用。

mysqli.default_pw string

當鏈接到數據庫服務器時,若是滅有指定其餘密碼,使用的默認密碼。不要在 安全模式下使用。

mysqli.reconnect integer

鏈接丟失時是否自動從新鏈接。

mysqlnd

mysqlnd.collect_statistics = On

啓用/禁用經過mysqlnd的通常統計信息的收集,能夠用於調優和監視MySQL操做。

mysqlnd.collect_memory_statistics = Off

啓用/禁用經過mysqlnd收集內存使用狀況統計信息,可用於調整和監視MySQL操做。

mysqlnd.net_cmd_buffer_size = 2048

向MySQL發送命令時使用的預分配緩衝區的大小(以字節爲單位)。

mysqlnd.net_read_buffer_size = 32768

用於讀取服務器發送的數據的預分配緩衝區的大小(以字節爲單位)。

bcmath

bcmath.scale integer

全部 bcmath 函數中十進制數字的數目。

browscap

browscap string

瀏覽器功能文件的位置和文件名 (例如 browscap.ini)。

Session

session.save_handler string

session.save_handler 定義了來存儲和獲取與會話關聯的數據的處理器的名字。默認爲 files。

session.save_path string

session.save_path 定義了傳遞給存儲處理器的參數。若是選擇了默認的 files 文件處理器,則此值是建立文件的路徑。默認爲 /tmp。
此指令還有一個可選的 N 參數來決定會話文件分佈的目錄深度。例如,設定爲 '5;/tmp' 將使建立的會話文件和路徑相似於 /tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If。要使用 N 參數,必須在使用前先建立好這些目錄。在 ext/session 目錄下有個小的 shell 腳本名叫 mod_files.sh,windows 版本是 mod_files.bat 能夠用來作這件事。此外注意若是使用了 N 參數而且大於 0,那麼將不會執行自動垃圾回收,更多信息見 php.ini。另外若是用了 N 參數,要確保將 session.save_path 的值用雙引號 "quotes" 括起來,由於分隔符分號( ;)在 php.ini 中也是註釋符號。
文件儲存模塊默認使用 mode 600 建立文件。經過 修改可選參數 MODE 來改變這種默認行爲: N;MODE;/path ,其中 MODE 是 mode 的八進制表示。 MODE 設置不影響進程的掩碼(umask)。
使用以上描述的可選目錄層級參數 N 時請注意,對於絕大多數站點,大於1或者2的值會不太合適——由於這須要建立大量的目錄:例如,值設置爲 3 須要在文件系統上建立 64^3 個目錄,將浪費不少空間和 inode。

session.use_strict_mode boolean

session.use_strict_mode指定模塊是否將使用嚴格的會話ID模式。 若是啓用此模式,模塊不接受未初始化的會話ID。 若是從瀏覽器發送未初始化的會話ID,則會將新的會話ID發送到瀏覽器。 應用程序經過嚴格模式的會話採用保護會話固定。 默認爲0(禁用)。

session.use_cookies boolean

session.use_cookies 指定是否在客戶端用 cookie 來存放會話 ID。默認爲 1(啓用)。

session.cookie_secure boolean

session.cookie_secure 指定是否僅經過安全鏈接發送 cookie。默認爲 off。

session.use_only_cookies boolean

session.use_only_cookies 指定是否在客戶端僅僅使用 cookie 來存放會話 ID。啓用此設定能夠防止有關經過 URL 傳遞會話 ID 的攻擊。此設定是 PHP 4.3.0 添加的。自PHP 5.3.0開始,默認值改成1(啓用)

session.name string

session.name 指定會話名以用作 cookie 的名字。只能由字母數字組成,默認爲 PHPSESSID。

session.auto_start boolean

session.auto_start 指定會話模塊是否在請求開始時自動啓動一個會話。默認爲 0(不啓動)。

session.cookie_lifetime integer

session.cookie_lifetime 以秒數指定了發送到瀏覽器的 cookie 的生命週期。值爲 0 表示「直到關閉瀏覽器」。默認爲 0。
Note:到期時間戳相對於服務器時間設置,這不必定與客戶端瀏覽器中的時間相同。

session.cookie_path string

session.cookie_path 指定了要設定會話 cookie 的路徑。默認爲 /。

session.cookie_domain string

session.cookie_domain 指定了要設定會話 cookie 的域名。默認爲無,表示根據 cookie 規範產生 cookie 的主機名

session.cookie_httponly boolean

將Cookie標記爲僅經過HTTP協議可訪問。 這意味着cookie不能經過腳本語言(如JavaScript)訪問。 此設置能夠有效幫助減小經過XSS攻擊的身份竊取(雖然它不被全部瀏覽器支持)。

session.serialize_handler string

session.serialize_handler 定義用來序列化/解序列化的處理器名字。 當前支持 PHP 序列化格式 (名爲 php_serialize)、 PHP PHP 內部格式 (名爲 php 及 php_binary) 和 WDDX (名爲 wddx)。 若是 PHP 編譯時加入了 WDDX 支持,則只能用 WDDX。 自 PHP 5.5.4 起可使用 php_serialize。 php_serialize 在內部簡單地直接使用 serialize/unserialize 函數,而且不會有 php 和 php_binary 所具備的限制。 使用較舊的序列化處理器致使 $_SESSION 的索引既不能是數字也不能包含特殊字符(| and !) 。 使用 php_serialize 避免腳本退出時,數字及特殊字符索引致使出錯。 默認使用 php。

session.gc_probability integer

session.gc_probability 與 session.gc_divisor 合起來用來管理 gc(garbage collection 垃圾回收)進程啓動的機率。默認爲 1。

session.gc_divisor integer

session.gc_divisor 與 session.gc_probability 合起來定義了在每一個會話初始化時啓動 gc(garbage collection 垃圾回收)進程的機率。此機率用 gc_probability/gc_divisor 計算得來。例如 1/100 意味着在每一個請求中有 1% 的機率啓動 gc 進程。 將此值增長到1000會給你0.1%的概率gc將運行任何給出的請求。 對於大批量生產服務器,這是一個更有效的方法。

session.gc_maxlifetime integer

session.gc_maxlifetime integer 指定過了多少秒以後數據就會被視爲「垃圾」並被清除。 垃圾蒐集可能會在 session 啓動的時候開始( 取決於session.gc_probability 和 session.gc_divisor)。
Note:若是不一樣的腳本具備不一樣的 session.gc_maxlifetime 數值可是共享了同一個地方存儲會話數據,則具備最小數值的腳本會清理數據。此狀況下,與 session.save_path 一塊兒使用本指令。

session.referer_check string

session.referer_check 包含有用來檢查每一個 HTTP Referer 的子串。若是客戶端發送了 Referer 信息可是在其中並未找到該子串,則嵌入的會話 ID 會被標記爲無效。默認爲空字符串。

session.entropy_length integer

session.entropy_length 指定了從上面的文件中讀取的字節數。默認爲 0(禁用)。

session.entropy_file string

session.entropy_file 給出了一個到外部資源(文件)的路徑,該資源將在會話 ID 建立進程中被用做附加的熵值資源。例如在許多 Unix 系統下均可以用 /dev/random 或 /dev/urandom。 在 Windows 上自 PHP 5.3.3 起加入了此功能。 設置 session.entropy_length 爲非零的值將使 PHP 使用 Windows Random API 做爲熵值源。
Note: 自 PHP 5.4.0 起,默認狀況下, session.entropy_file 在 /dev/urandom 或 /dev/arandom 可用的時候使用它們。 在 PHP 5.3.0 中此指令默認留空。

session.cache_limiter string

session.cache_limiter 指定會話頁面所使用的緩衝控制方法(none/nocache/private/private_no_expire/public)。默認爲 nocache。

session.cache_expire integer

session.cache_expire 以分鐘數指定緩衝的會話頁面的存活期,此設定對 nocache 緩衝控制方法無效。默認爲 180。

session.use_trans_sid boolean

session.use_trans_sid 指定是否啓用透明 SID 支持。默認爲 0(禁用)。
Note: 基於 URL 的會話管理比基於 cookie 的會話管理有更多安全風險。例如用戶有可能經過 email 將一個包含有效的會話 ID 的 URL 發給他的朋友,或者用戶老是有可能在收藏夾中存有一個包含會話 ID 的 URL 來以一樣的會話 ID 去訪問站點。

session.hash_function mixed

session.hash_function 容許用戶指定生成會話 ID 的散列算法。'0' 表示 MD5(128 位),'1' 表示 SHA-1(160 位)。

session.hash_bits_per_character integer

session.hash_bits_per_character 容許用戶定義將二進制散列數據轉換爲可讀的格式時每一個字符存放多少個比特。可能值爲 '4'(0-9,a-f),'5'(0-9,a-v),以及 '6'(0-9,a-z,A-Z,"-",",")。

url_rewriter.tags string

url_rewriter.tags 指定在使用透明 SID 支持時哪些 HTML 標記會被修改以加入會話 ID。默認爲 a=href,area=href,frame=src,input=src,form=fakeentry,fieldset=。
Note: 若是要符合 XHTML,去掉 form 項並在表單字段先後加上 <fieldset> 標記。

session.upload_progress.enabled boolean

啓用上傳進度跟蹤,填充$ _SESSION變量。 默認爲1,啓用。

session.upload_progress.cleanup boolean

在讀取全部POST數據(即上傳完成)後當即清理進度信息。 默認爲1,啓用。
Note:強烈建議保持此功能啓用。

session.upload_progress.prefix string

用於$ _SESSION中上傳進度鍵的前綴。此鍵將與$ _POST [ini_get(「session.upload_progress.name」)]的值鏈接以提供惟一索引。 默認爲「upload_progress_」。

session.upload_progress.name string

在$ _SESSION中用於存儲進度信息的密鑰的名稱。 另請參見session.upload_progress.prefix。 若是$ _POST [ini_get(「session.upload_progress.name」)]未經過或可用,將不會記錄上傳進度。 默認爲「PHP_SESSION_UPLOAD_PROGRESS」。

session.upload_progress.freq mixed

定義應更新上傳進度信息的頻率。 這能夠以字節(即「每100字節後更新進度信息」)或百分比(即「在每1%的整個文件大小接收後更新進度信息」)來定義。 默認爲「1%」。

session.upload_progress.min_freq integer

更新之間的最小延遲(以秒爲單位)。 默認爲「1」(一秒)。

Assertion

assert.active boolean

激活 assert() 斷言評測。

assert.warning boolean

爲每一個失敗的斷言產生一條 PHP 警告信息

assert.bail boolean

失敗的斷言將停止腳本。

assert.callback string

失敗的斷言將調用用戶的函數

assert.quiet_eval boolean

在 斷言表達式執行時 error_reporting() 使用當前的設置。 若是啓用了,在執行時錯誤將不會被顯示(隱式的 error_reporting(0))。 若是禁用了,錯誤將根據 error_reporting() 的設置來顯示。

COM

com.typelib_file

設置時,應保存包含應在啓動時加載的類型庫列表的文件的路徑。 文件的每一行都將被看成類型庫名稱加載,就像你調用com_load_typelib()同樣。 常量將被持久註冊,所以庫只須要加載一次。 若是類型庫名稱以字符串#cis或#case_insensitive結尾,那麼該庫中的常量將不區分大小寫。

com.allow_dcom = true

若是打開此選項,PHP 將被容許以一個 D-COM(Distributed COM)客戶方式操做並容許 PHP 腳本在遠程服務器上實例化 COM 對象。

com.autoregister_typelib = true

當這被打開時,PHP將嘗試從它實例化的對象的類型庫中註冊常量,若是這些對象實現得到該信息所需的接口。 其寄存器的常量的大小寫是由配置指令控制的。

com.autoregister_casesensitive = false

當打開(默認)時,在自動加載類型庫中找到的常量將被敏感地註冊。

com.autoregister_verbose = true

顯示重複常量註冊的警告

com.code_page=

將字符串傳遞到COM對象或從COM對象傳遞字符串時使用的默認字符集代碼頁。

mbstring

mbstring.language string

mbstring 使用了國家默認語言設置(NLS)。 注意,該選項自動地定義了 mbstring.internal_encoding 和 mbstring.internal_encoding,在 php.ini 裏應當放置在 mbstring.language 以後。

mbstring.internal_encoding string

定義內部字符的默認編碼。PHP 5.6 及更新版的用戶應該將此選項留空,並設置 default_charset 做爲代替。

mbstring.http_input string

定義 HTTP 輸入字符的默認編碼。PHP 5.6 及更新版的用戶應該將此選項留空,並設置 default_charset 做爲代替。

mbstring.http_output string

定義 HTTP 輸出字符的默認編碼。PHP 5.6 及更新版的用戶應該將此選項留空,並設置 default_charset 做爲代替。

mbstring.encoding_translation boolean

爲傳入的 HTTP 查詢啓用透明字符編碼過濾器,將檢測和轉換輸入的編碼爲內部字符編碼(internal character encoding)。

mbstring.detect_order string

定義字符編碼的默認檢測順序。

mbstring.substitute_character string

爲無效編碼的字符定義替代字符。

mbstring.func_overload string

用 mbstring 對應的函數覆蓋單字節版本的函數集。該設置僅能經過 php.ini 文件來修改。

mbstring.strict_detection boolean

使用嚴格的編碼檢測。

mbstring.http_output_conv_mimetype=

此僞指令指定激活mb_output_handler()的內容類型的正則表達式模式。

gd

gd.jpeg_ignore_warning bool

告訴jpeg decode忽略警告並嘗試建立gd圖像。 該警告將顯示爲通知默認狀況下禁用

exif

exif.encode_unicode string

exif.encode_unicode 定義了 UNICODE 用戶註釋被處理的字符集。默認爲 ISO-8859-15,可用於大多數非亞洲國家。本設置能夠爲空或者必須爲一個 mbstring 所支持的編碼。若是爲空,則使用當前 mbstring 內部使用的編碼。

exif.decode_unicode_motorola string

exif.decode_unicode_motorola 定義了 Unicode 編碼的用戶註釋的圖像內部字符集,若是圖像是摩托羅拉字節順序(big-endian)的話。本設置不能爲空但能夠指定一個 mbstring 支持的編碼列表。默認爲 UCS-2BE。

exif.decode_unicode_intel string

exif.decode_unicode_intel 定義了 Unicode 編碼的用戶註釋的圖像內部字符集,若是圖像是英特爾字節順序(little-endian)的話。本設置不能爲空但能夠指定一個 mbstring 支持的編碼列表。默認爲 UCS-2LE。

exif.encode_jis string

exif.encode_jis 定義了 JIS 用戶註釋被處理的字符集。默認爲空值,迫使函數使用當前 mbstring 使用的內部編碼。

exif.decode_jis_motorola string

exif.decode_jis_motorola 定義了 JIS 編碼的用戶註釋的圖像內部字符集,若是圖像是摩托羅拉字節順序(big-endian)的話。本設置不能爲空但能夠指定一個 mbstring 支持的編碼列表。默認爲 JIS。

exif.decode_jis_intel string

exif.decode_jis_intel 定義了 JIS 編碼的用戶註釋的圖像內部字符集,若是圖像是英特爾字節順序(litle-endian)的話。本設置不能爲空但能夠指定一個 mbstring 支持的編碼列表。默認爲 JIS。

Tidy

tidy.default_config string

使用tidy時要使用的默認整潔配置文件的路徑。

tidy.clean_output boolean

經過Tidy打開/關閉輸出修復。若是您正在生成非html內容,請不要使用此選項, 例如動態圖像

soap

soap.wsdl_cache_enabled integer

啓用或禁用WSDL緩存功能。

soap.wsdl_cache_dir string

設置SOAP擴展將放置緩存文件的目錄名稱。

soap.wsdl_cache_ttl integer

設置將使用緩存文件而不是原始文件的秒數(生存時間)。

soap.wsdl_cache_limit integer

內存中緩存的WSDL文件的最大數量。 將更多文件添加到完整內存緩存中將從中刪除最舊的文件。

sysvshm

sysvshm.init_mem int

共享內存段的默認大小。

ldap

ldap.max_links

設置開放連接的最大數量,或-1爲無限制。

mcrypt

mcrypt.algorithms_dir string

包含算法的目錄。 默認狀況向是 libmcrypt 的編譯目錄, 一般是 /usr/local/lib/libmcrypt。

mcrypt.modes_dir string

包含模式的目錄。 默認狀況向是 libmcrypt 的編譯目錄, 一般是 /usr/local/lib/libmcrypt。

opcache

opcache.enable boolean

啓用操做碼緩存。若是禁用此選項,則不會優化和緩存代碼。 在運行期使用 ini_set() 函數只能禁用 opcache.enable 設置,不能夠啓用此設置。 若是在腳本中嘗試啓用此設置項會產生警告。

opcache.enable_cli boolean

僅針對 CLI 版本的 PHP 啓用操做碼緩存。 一般被用來測試和調試。

opcache.memory_consumption integer

OPcache 的共享內存大小,以兆字節爲單位。

opcache.interned_strings_buffer integer

用來存儲臨時字符串的內存大小,以兆字節爲單位。 PHP 5.3.0 以前的版本會忽略此配置指令。

opcache.max_accelerated_files integer

OPcache 哈希表中可存儲的腳本文件數量上限。 真實的取值是在質數集合 { 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987 } 中找到的第一個比設置值大的質數。 設置值取值範圍最小值是 200,最大值在 PHP 5.5.6 以前是 100000,PHP 5.5.6 及以後是 1000000。

opcache.max_wasted_percentage integer

浪費內存的上限,以百分比計。 若是達到此上限,那麼 OPcache 將產生從新啓動續發事件。

opcache.use_cwd boolean

若是啓用,OPcache 將在哈希表的腳本鍵以後附加改腳本的工做目錄, 以免同名腳本衝突的問題。 禁用此選項能夠提升性能,可是可能會致使應用崩潰。

opcache.validate_timestamps boolean

若是啓用,那麼 OPcache 會每隔 opcache.revalidate_freq 設定的秒數 檢查腳本是否更新。 若是禁用此選項,你必須使用 opcache_reset() 或者 opcache_invalidate() 函數來手動重置 OPcache,也能夠 經過重啓 Web 服務器來使文件系統更改生效。

opcache.revalidate_freq integer

檢查腳本時間戳是否有更新的週期,以秒爲單位。 設置爲 0 會致使針對每一個請求, OPcache 都會檢查腳本更新。若是 opcache.validate_timestamps 配置指令設置爲禁用,那麼此設置項將會被忽略。

opcache.revalidate_path boolean

若是禁用此選項,在同一個 include_path 已存在的緩存文件會被重用。 所以,將沒法找到不在包含路徑下的同名文件。

opcache.save_comments boolean

若是禁用,腳本文件中的註釋內容將不會被包含到操做碼緩存文件, 這樣能夠有效減少優化後的文件體積。 禁用此配置指令可能會致使一些依賴註釋或註解的 應用或框架沒法正常工做, 好比: Doctrine, Zend Framework 2 以及 PHPUnit。

opcache.load_comments boolean

若是禁用,則即便文件中包含註釋,也不會加載這些註釋內容。 本選項能夠和 opcache.save_comments 一塊兒使用,以實現按需加載註釋內容。

opcache.fast_shutdown boolean

若是啓用,則會使用快速中止續發事件。 所謂快速中止續發事件是指依賴 Zend 引擎的內存管理模塊 一次釋放所有請求變量的內存,而不是依次釋放每個已分配的內存塊。

opcache.enable_file_override boolean

若是啓用,則在調用函數 file_exists(), is_file() 以及 is_readable() 的時候, 都會檢查操做碼緩存,不管文件是否已經被緩存。 若是應用中包含檢查 PHP 腳本存在性和可讀性的功能,這樣能夠提高性能。 可是若是禁用了 opcache.validate_timestamps 選項, 可能存在返回過期數據的風險。

opcache.optimization_level integer

控制優化級別的二進制位掩碼。

opcache.inherited_hack boolean

在 PHP 5.3 以前的版本,OPcache 會存儲代碼中使用 DECLARE_CLASS 操做碼 來實現繼承的位置。當文件被加載以後,OPcache 會嘗試使用當前環境來綁定被繼承的類。 因爲當前腳本中可能並不須要 DECLARE_CLASS 操做碼,若是這樣的腳本須要對應的操做碼被定義時, 可能沒法運行。在 PHP 5.3 及後續版本中,此配置指令會被忽略。

opcache.dups_fix boolean

僅做爲針對 「不可重定義類」錯誤的一種解決方案。

opcache.blacklist_filename string

OPcache 黑名單文件位置。黑名單文件爲文本文件,包含了不進行預編譯優化的文件名,每行一個文件名。 黑名單中的文件名可使用通配符,也可使用前綴。 此文件中以分號(;)開頭的行將被視爲註釋。
簡單的黑名單文件可能以下所示:

; 將特定文件加入到黑名單
/var/www/broken.php
; 以字符 x 文件打頭的文件
/var/www/x
; 通配符匹配
/var/www/*-broken.php

opcache.max_file_size integer

以字節爲單位的緩存的文件大小上限。設置爲 0 表示緩存所有文件。

opcache.consistency_checks integer

若是是非 0 值,OPcache 將會每隔 N 次請求檢查緩存校驗和。 N 即爲此配置指令的設置值。 因爲此選項對於性能有較大影響,請盡在調試環境使用。

opcache.force_restart_timeout integer

若是緩存處於非激活狀態,等待多少秒以後計劃重啓。 若是超出了設定時間,則 OPcache 模塊將殺除持有緩存鎖的進程, 並進行重啓。若是選項 opcache.log_verbosity_level 設置爲 3 或者 3 以上的數值,當發生重啓時將在日誌中記錄一條錯誤信息。

opcache.error_log string

OPcache 模塊的錯誤日誌文件。 若是留空,則視爲 stderr, 錯誤日誌將被送往標準錯誤輸出 (一般狀況下是 Web 服務器的錯誤日誌文件)。

opcache.log_verbosity_level integer

OPcache 模塊的日誌級別。 默認狀況下,僅有致命級別(0)及錯誤級別(1)的日誌會被記錄。 其餘可用的級別有:警告(2),信息(3)和調試(4)。

opcache.preferred_memory_model string

OPcache 首選的內存模塊。 若是留空,OPcache 會選擇適用的模塊, 一般狀況下,自動選擇就能夠知足需求。可選值包括: mmap,shm, posix 以及 win32。

opcache.protect_memory boolean

保護共享內存,以免執行腳本時發生非預期的寫入。 僅用於內部調試。

opcache.mmap_base string

在 Windows 平臺上共享內存段的基地址。 全部的 PHP 進程都將共享內存映射到一樣的地址空間。 使用此配置指令避免「沒法從新附加到基地址」的錯誤。

opcache.restrict_api string

僅容許路徑是以指定字符串開始的 PHP 腳本調用 OPcache API 函數。 默認值爲空字符串 "",表示不作限制。

php 緩存

在php中緩存類的擴展有:Zend Opcacha、APC、xcahce等,可是目前的趨勢是官方已經把Zend Opcache包含在php5.5中,只要在編譯的過程當中啓用就能夠了。而剩下的擴展基本上不多更新了。因此在php緩存上儘可能選擇官方維護的。對於APC則能夠參考官網:APC.

下面是影響PHP行爲的擴展鏈接:http://php.net/manual/zh/refs.basic.php.php

推薦的Opcache 配置

opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

你也能夠禁用 opcache.save_comments 而且啓用 opcache.enable_file_override。 須要提醒的是,在生產環境中使用上述配置以前,必須通過嚴格測試。 由於上述配置存在一個已知問題,它會引起一些框架和應用的異常, 尤爲是在存在文檔使用了備註註解的時候。

說明:資料翻譯大部分是由php官網提供,這裏的總結只是讓本身學習查詢更加方便!

相關文章
相關標籤/搜索