網站架設~apache~php.ini設定
php.ini 核心配置選項說明
該列表只包含核心的 php.ini 配置選項。擴展的配置選項在各個擴展的文檔頁面分別被描述。有關 session 的選項可以在 sessions 頁面找到。
Httpd 選項
表格 G-3. Httpd 選項
名稱 默認值 可修改範圍 更新記錄
async_send “0” PHP_INI_ALL
語言選項
表格 G-4. 語言和雜類配置選項
名稱 默認值 可修改範圍 更新記錄
short_open_tag “1” PHP_INI_PERDIR 在 PHP < = 4.0.0 時是 PHP_INI_ALL。
asp_tags "0" PHP_INI_PERDIR 在 PHP <= 4.0.0 時是 PHP_INI_ALL。
precision "14" PHP_INI_ALL
y2k_compliance "1" PHP_INI_ALL
allow_call_time_pass_reference "1" PHP_INI_PERDIR 在 PHP <= 4.0.0 時是 PHP_INI_ALL。
expose_php "1" 僅可在 php.ini 中配置。
zend.ze1_compatibility_mode "0" PHP_INI_ALL 從 PHP 5.0.0 起可用。
以下是配置選項的簡要解釋。
short_open_tag boolean
決定是否允許使用 PHP 代碼開始標志的縮寫形式( ?>)。如果要和 XML 結合使用 PHP,可以禁用此選項以便於嵌入使用 < ?xml ?>。否則還可以通過 PHP 來輸出,例如:< ?php echo '。如果禁用了,必須使用 PHP 代碼開始標志的完整形式(< ?php ?>)。
注: 本指令也會影響到縮寫形式 < ?=,它和 echo 等價。使用此縮寫需要 short_open_tag 的值為 On。 asp_tags boolean 除了通常的 標志之外還允許使用 ASP 風格的標志 < % %>。這也包括了輸出變量值的縮寫 < %= $value %>。更多信息見從 HTML 中分離一節。
注: ASP 風格標志的支持是 3.0.4 版新加的。
precision integer
浮點數中顯示有效數字的位數。
y2k_compliance boolean
強制 2000 年兼容(在不兼容的瀏覽器中會出問題)。
allow_call_time_pass_reference boolean
是否啟用在函數調用時強制參數被按照引用傳遞。此方法已不被讚成並在 PHP/Zend 未來的版本中很可能不再支持。鼓勵使用的方法是在函數定義中指定哪些參數應該用引用傳遞。鼓勵大家嘗試關閉此選項並確保腳本能夠正常運行,以確保該腳本也能在未來的版本中運行(每次使用此特性都會收到一條警告,參數會被按值傳遞而不是按照引用傳遞)。
在函數調用時通過引用傳遞參數是不推薦的,因為它影響到了代碼的整潔。如果函數的參數沒有聲明作為引用傳遞,函數可以通過未寫入文檔的方法修改其參數。要避免其副作用,最好僅在函數聲明時指定那個參數需要通過引用傳遞。
參見引用的解釋。
expose_php boolean
決定是否暴露 PHP 被安裝在服務器上(例如在 Web 服務器的信息頭中加上其簽名)。沒有任何安全上的威脅,只是讓客戶端能夠知道是否在服務器中安裝了 PHP。
zend.ze1_compatibility_mode boolean
啟用 Zend 引擎 1 (PHP 4) 兼容模式。這影響到了對象的復制、構造及比較。
參見從 PHP 4 移植到 PHP 5。
資源限制
表格 G-5. 資源限制
名稱 默認值 可修改範圍 更新記錄
memory_limit “8M” PHP_INI_ALL
以下是配置選項的簡要解釋。
memory_limit integer
本指令設定了一個腳本所能夠申請到的最大內存字節數。這有助於防止寫得不好的腳本消耗光服務器上的可用內存。要使用此指令必須在編譯的時候激活。因此 configure 一行中應該包括:–enable-memory-limit。如果不需要任何內存上的限制,必須將其設為 -1。
自 4.3.2 起,當激活了 memory_limit,PHP 函數 memory_get_usage() 便可以使用了。
當使用 integer 類型時,其值以字節為度量單位。還可以用簡化符號,說明見此 FAQ。
See also: max_execution_time.
數據處理
表格 G-6. 數據處理配置選項
名稱 默認值 可修改範圍 更新記錄
track_vars “On” PHP_INI_??
arg_separator.output “&” PHP_INI_ALL 從 PHP 4.0.5 起可用。
arg_separator.input “&” PHP_INI_PERDIR 從 PHP 4.0.5 起可用。
variables_order “EGPCS” PHP_INI_ALL
auto_globals_jit “1” PHP_INI_PERDIR 從 PHP 5.0.0 起可用。
register_globals “0” PHP_INI_PERDIR 在 PHP < = 4.2.3 時是 PHP_INI_ALL。
register_argc_argv "1" PHP_INI_PERDIR 在 PHP <= 4.2.3 時是 PHP_INI_ALL。
register_long_arrays "1" PHP_INI_PERDIR 從 PHP 5.0.0 起可用。
post_max_size "8M" PHP_INI_PERDIR 在 PHP <= 4.2.3 時是 PHP_INI_ALL。從 PHP 4.0.3 起可用。
gpc_order "GPC" PHP_INI_ALL
auto_prepend_file NULL PHP_INI_PERDIR 在 PHP <= 4.2.3 時是 PHP_INI_ALL。
auto_append_file NULL PHP_INI_PERDIR 在 PHP <= 4.2.3 時是 PHP_INI_ALL。
default_mimetype "text/html" PHP_INI_ALL
default_charset "" PHP_INI_ALL
always_populate_raw_post_data "0" PHP_INI_PERDIR 在 PHP <= 4.2.3 時是 PHP_INI_ALL。從 PHP 4.1.0 起可用。
allow_webdav_methods "0" PHP_INI_PERDIR
以下是配置選項的簡要解釋。
track_vars boolean
如果激活,則環境變量,GET,POST,Cookie 和 Server 變量都能夠分別在全局關聯數組中找到:$_ENV,$_GET,$_POST,$_COOKIE 和 $_SERVER。
注意自 PHP 4.0.3 起,track_vars 總是打開的。
arg_separator.output string
PHP 所產生的 URL 中來分隔參數的分隔符。
arg_separator.input string
PHP 用來將 URL 解析為變量的分隔符列表。
注: 本指令中的每個字符都會被當成分隔符!
variables_order string
設定 EGPCS(Environment,GET,POST,Cookie,Server)變量解析的順序。默認設定為“EGPCS”。舉例說,將其設為“GP”,會導致 PHP 完全忽略環境變量,cookies 和 server 變量,並用 GET 方法的變量覆蓋 POST 方法的同名變量。
參見 register_globals。
auto_globals_jit boolean
啟用後,SERVER 和 ENV 變量在他們第一次使用後 (Just In Time) 便被創建,而不是等到腳本開始運行時。如果這些變量沒有在腳本總使用,啟用這個變量會提高服務器性能。
要使此選項有效,PHP 配置選項 register_globals, register_long_arrays, 和 register_argc_argv 必須禁用。
register_globals boolean
決定是否將 EGPCS(Environment,GET,POST,Cookie,Server)變量注冊為全局變量。
PHP 4.2.0 開始,本選項默認為 off。
相關信息請閱讀安全一章中的使用 register_globals。
請注意 register_globals 不能在運行時設定(ini_set()),盡管如以上說明在主機允許時可以用 .htaccess。一個 .htaccess 項目的例子:php_flag register_globals off。
注: register_globals 受 variables_order 選項的影響。
register_argc_argv boolean
決定 PHP 是否定義 argv & argc 變量(可能包含有 GET 信息)。
參見命令行方式。此外,本選項自 PHP 4.0.0 起可用,在此之前總是“On”。
register_long_arrays boolean
設定 PHP 是否注冊已過時的 $HTTP_*_VARS 之類的預定義變量。如果為 On(默認值),則類似 $HTTP_GET_VARS 的 PHP 變量會被注冊。如果不使用,為性能考慮建議關閉此選項,而使用超全局數組例如 $_GET 替代之。
本指令自 PHP 5.0.0 起可用。
post_max_size integer
設定 POST 數據所允許的最大大小。此設定也影響到文件上傳。要上傳大文件,該值必須大於 upload_max_filesize。
如果配置腳本中激活了內存限制,memory_limit 也會影響文件上傳。通常說,memory_limit 應該比 post_max_size 要大。
當使用 integer 類型時,其值以字節為度量單位。還可以用簡化符號,說明見此 FAQ。
如果 POST 數據尺寸大於 post_max_size $_POST 和 $_FILES superglobals 便會為空。這可以以多種方式證明,例如,傳遞 $_GET 變量到腳本以處理數據, 也就是