;; 關於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 =terminate, shell_exec
safe_mode_include_dir =include_dir =3m =mode_include_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
; WARNING 運轉時警告(非致命性愛錯誤)
; 4 E_PARSE 編譯時解析錯誤
; 8 E_NOTICE 8 E_NOTICE PHP啟動時初始化過程中的致命錯誤
; 32 E_CORE_WARNING PHP啟動時初始化過程中的警告(非致命性錯誤)
; 64 E_COMPILE_ERROR 編譯時致命性錯誤
; 128 E_COMPILE_WARNING 編譯時警告(非致命性錯誤)ER 致命性錯誤)2575757 月
; 512 E_USER_WARNING 使用者自訂的警告(非致命性錯誤)
; 1024 E_USER_NOTICE 使用者自訂的提醒(經常是bug,也可能是有意圖的)
; 2048 E_STRICT ROR 接近致命的運轉時錯誤,若未被捕獲則視同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 = ;""
; 錯誤訊息前輸出的字串
error_append_string = ;""
; 用於錯誤訊息後輸出的字串
xmlrpc_errors k
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 陣列的值。將不被轉義,即( " NULL )將保持原樣! !
; 建議關閉此特性,並使用自訂的過濾函數。
magic_quotes_runtime = Off
; 是否對執行時間從外部資源產生的資料使用自動字串轉義( ' " NULL )。
; 若開啟本指令,則大多數函數從外部資源(資料庫,文字檔案等)返回資料庫,文字檔案等)返回資料都會被轉義。義為(''),
; 其它特殊字符將不被轉義,即( " 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"
; 語法高亮模式的色彩(通常用於顯示php.phps文件)。
; 只要能被接受的東西就能正常運作。
[PHP-Core-Langue]
short_open_tag = On
; 是否允許使用" ?>"短標識。否則必須使用""長標識。
; 除非你的php程式僅在受控環境下運行,且只供自己使用,否則請不要使用短標記。
; 如果要和XML結合使用PHP,可以選擇關閉此選項以方便直接嵌入"",
; 不然你必須用PHP來輸出: echo '
; 本指令也會影響到縮寫形式"=",它和" 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=
; 除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腳本。
; 如果你想要針對單獨的腳本檔案設定其編碼,可以在該腳本的開頭使用
;
; 來指定。注意:必須是第一行開頭,全面不要有任何字元(包括空白)。
; 此方法只能影響其所在的腳本,不會影響任何被包含的其他腳本。
unicode.stream_encoding= UTF-8
unicode.from_error_mode = 2
unicode.from_error_subst_char = 3f
; 尚無文件
[PHP-Core-Misc]
auto_det_line; )。
; 如果的你腳本必須處理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="
; 雖然此指令屬於PHPP部分,但卻用於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模式下的時候才有效
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的最大回溯步數。
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重寫器將添加一個隱藏的" ",它包含了本應額外追加到URL上的資訊。
; 如果要符合XHTML標準,請去掉form項目並在表單欄位前後加上

PHP在現代Web開發中仍然重要,尤其在內容管理和電子商務平台。 1)PHP擁有豐富的生態系統和強大框架支持,如Laravel和Symfony。 2)性能優化可通過OPcache和Nginx實現。 3)PHP8.0引入JIT編譯器,提升性能。 4)雲原生應用通過Docker和Kubernetes部署,提高靈活性和可擴展性。

PHP適合web開發,特別是在快速開發和處理動態內容方面表現出色,但不擅長數據科學和企業級應用。與Python相比,PHP在web開發中更具優勢,但在數據科學領域不如Python;與Java相比,PHP在企業級應用中表現較差,但在web開發中更靈活;與JavaScript相比,PHP在後端開發中更簡潔,但在前端開發中不如JavaScript。

PHP和Python各有優勢,適合不同場景。 1.PHP適用於web開發,提供內置web服務器和豐富函數庫。 2.Python適合數據科學和機器學習,語法簡潔且有強大標準庫。選擇時應根據項目需求決定。

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP成為許多網站首選技術棧的原因包括其易用性、強大社區支持和廣泛應用。 1)易於學習和使用,適合初學者。 2)擁有龐大的開發者社區,資源豐富。 3)廣泛應用於WordPress、Drupal等平台。 4)與Web服務器緊密集成,簡化開發部署。

PHP在現代編程中仍然是一個強大且廣泛使用的工具,尤其在web開發領域。 1)PHP易用且與數據庫集成無縫,是許多開發者的首選。 2)它支持動態內容生成和麵向對象編程,適合快速創建和維護網站。 3)PHP的性能可以通過緩存和優化數據庫查詢來提升,其廣泛的社區和豐富生態系統使其在當今技術棧中仍具重要地位。

在PHP中,弱引用是通過WeakReference類實現的,不會阻止垃圾回收器回收對象。弱引用適用於緩存系統和事件監聽器等場景,需注意其不能保證對象存活,且垃圾回收可能延遲。

\_\_invoke方法允許對象像函數一樣被調用。 1.定義\_\_invoke方法使對象可被調用。 2.使用$obj(...)語法時,PHP會執行\_\_invoke方法。 3.適用於日誌記錄和計算器等場景,提高代碼靈活性和可讀性。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3漢化版
中文版,非常好用

Dreamweaver Mac版
視覺化網頁開發工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Atom編輯器mac版下載
最受歡迎的的開源編輯器