php.ini 核心配備選項說明

來源:互聯網
上載者:User
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,可以禁用此選項以便於嵌入使用 。否則還可以通過 PHP 來輸出,例如:。如果禁用了,必須使用 PHP 代碼開始標誌的完整形式()。

注: 本指令也會影響到縮寫形式

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 變數到指令碼以處理資料, 也就是

, 然後查看 $_GET['processed'] 是否被設定。

gpc_order string
設定 GET/POST/COOKIE 變數解析的順序,預設為“GPC”。舉例說,將其設為“GP”,會導致 PHP 完全忽略 cookie 變數,並用 GET 方法的變數覆蓋 POST 方法的同名變數。

注: 本選項不能用於 PHP 4。用 variables_order 替代之。

auto_prepend_file string
指定在主檔案之前自動解析的檔案名稱。該檔案就像調用了 include() 函數一樣被包含進來,因此會使用 include_path。

特殊值 none 禁止了自動首碼。

auto_append_file string
指定在主檔案之後自動解析的檔案名稱。該檔案就像調用了 include() 函數一樣被包含進來,因此會使用 include_path。

特殊值 none 禁止了自動尾碼。

注: 如果指令碼通過 exit() 終止,則自動尾碼不會發生。

default_mimetype string
default_charset string
自 4.0b4 起,PHP 總是預設在 HTTP 資訊頭 Content-type: 中輸出字元編碼。要禁止發送字元集,將本選項設為空白即可。

always_populate_raw_post_data boolean
總是產生 $HTTP_RAW_POST_DATA 變數包含有原始的 POST 資料。否則,此變數僅在碰到未識別 MIME 類型的資料時產生。不過,訪問原始 POST 資料的更好方法是 php://input。$HTTP_RAW_POST_DATA 對於 enctype="multipart/form-data" 表單資料不可用。

allow_webdav_methods boolean
允許在 PHP 指令碼中處理 WebDAV 的 HTTP 要求(例如 PROPFIND,PROPPATCH,MOVE,COPY 等)。此選項在 PHP 4.3.2 以後便不存在了。如果要取得這些請求的 POST 資料,也要設定 always_populate_raw_post_data。

參見 magic_quotes_gpc,magic-quotes-runtime 和 magic_quotes_sybase。

路徑和目錄
表格 G-7. 路徑和目錄配置選項

名稱 預設值 可修改範圍 更新記錄
include_path ".;/path/to/php/pear" PHP_INI_ALL
doc_root NULL PHP_INI_SYSTEM
user_dir NULL PHP_INI_SYSTEM
extension_dir "/path/to/php" PHP_INI_SYSTEM
cgi.fix_pathinfo "1" PHP_INI_ALL
cgi.force_redirect "1" PHP_INI_ALL
cgi.redirect_status_env NULL PHP_INI_ALL
fastcgi.impersonate "0" PHP_INI_ALL
cgi.rfc2616_headers "0" PHP_INI_ALL

以下是配置選項的簡要解釋。

include_path string
指定一組目錄用於 require(),include() 和 fopen_with_path() 函數來尋找檔案。格式和系統的 PATH 環境變數類似:一組目錄的列表,在 UNIX 下用冒號分隔,在 Windows 下用分號分隔。

例子 G-1. Unix include_path

include_path=".:/php/includes"


例子 G-2. Windows include_path

include_path=".;c:/php/includes"


在包含路徑中使用 . 可以允許相對路徑,它代表目前的目錄。

doc_root string
PHP 在伺服器上的根目錄。僅在非空時使用。如果 PHP 被配置為安全模式,則此目錄之外的檔案一概不被解析。如果 PHP 編譯時間沒有指定 FORCE_REDIRECT,並且在任何 網頁伺服器(除了 IIS)中以 CGI 方式運行 PHP,則應該設定 doc_root。替代方案是使用下面的 cgi.force_redirect 配置選項。

user_dir string
在使用者目錄之下使用 PHP 檔案的基本目錄名,例如 public_html。

extension_dir string
PHP 用來尋找動態串連擴充庫的目錄。參見 enable_dl 和 dl()。

extension string
當 PHP 啟動時所載入的動態串連擴充庫。

cgi.fix_pathinfo boolean
對 CGI 提供了真正的 PATH_INFO/PATH_TRANSLATED 支援。以前 PHP 的行為是將 PATH_TRANSLATED 設為 SCRIPT_FILENAME,而不管 PATH_INFO 是什麼。有關 PATH_INFO 的更多資訊見 cgi 規格。將此值設為 1 將使 PHP CGI 修正其路徑以遵守規格。設為 0 將使 PHP 的行為和從前一樣。預設為零。使用者應該修正其指令碼使用 SCRIPT_FILENAME 而不是 PATH_TRANSLATED。

cgi.force_redirect boolean
在大多數 網頁伺服器中以 CGI 方式運行 PHP 時很有必要用 cgi.force_redirect 提供安全。PHP 預設其為 On。可以將其關閉,但風險自擔。

注: Windows 使用者:可以安全地在 IIS 之下將其關閉,事實上必須這麼做。要在 OmniHTTPD 或 Xitami 之下使用也必須將其關閉。

cgi.redirect_status_env string
如果開啟了 cgi.force_redirect,並且不是在 Apache 或 Netscape(iPlanet)網頁伺服器之下運行,可能需要設定一個環境變數名,PHP 將去尋找它來知道可以繼續執行下去。

注: 設定此變數可能會導致安全問題,首先要知道自己在做什麼。

fastcgi.impersonate string
IIS(在基於 WINNT 的作業系統上)中的 FastCGI 支援模仿用戶端安全性權杖的能力。這使得 IIS 能夠定義運行時所基於的請求的安全上下文。Apache 中的 mod_fastcgi 不支援此特性(03/17/2002)。如果在 IIS 中運行則設為 1。預設為 0。

cgi.rfc2616_headers int
指定 PHP 在發送 HTTP 響應代碼時使用何種前序。如果設定為 0,PHP 發送一個 Status: 前序,Apache 和其它 web server 都支援。如果此選項設定為 1,PHP 將發送 RFC 2616 相容的前序。除非你知道自己在做什麼,否則保留其值為 0。

檔案上傳
表格 G-8. 檔案上傳配置選項

名稱 預設值 可修改範圍 更新記錄
file_uploads "1" PHP_INI_SYSTEM 在 PHP <= 4.2.3 時是 PHP_INI_ALL。從 PHP 4.0.3 起可用。
upload_tmp_dir NULL PHP_INI_SYSTEM
upload_max_filesize "2M" PHP_INI_PERDIR 在 PHP <= 4.2.3 時是 PHP_INI_ALL。

以下是配置選項的簡要解釋。

file_uploads boolean
是否允許 HTTP 檔案上傳。參見 upload_max_filesize,upload_tmp_dir 和 post_max_size 指令。

當使用 integer 類型時,其值以位元組為度量單位。還可以用簡化符號,說明見此 FAQ。

upload_tmp_dir string
檔案上傳時存放檔案的臨時目錄。必須是 PHP 進程所有者使用者可寫的目錄。如果未指定則 PHP 使用系統預設值。

upload_max_filesize integer
所上傳的檔案的最大大小。

當使用 integer 類型時,其值以位元組為度量單位。還可以用簡化符號,說明見此 FAQ。

普通 SQL
表格 G-9. 普通 SQL 配置選項

名稱 預設值 可修改範圍 更新記錄
sql.safe_mode "0" PHP_INI_SYSTEM

以下是配置選項的簡要解釋。

sql.safe_mode boolean
調試器配置選項
注意
僅 PHP 3 實現了一個預設的調試器。更多資訊請參考附錄 E。

debugger.host string
調試器所使用的主機的 DNS 名或 IP 位址。

debugger.port string
調試器所用的連接埠號碼。

debugger.enabled boolean
是否啟用調試器。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.