php.ini

該列表只包含核心的 php.ini 配置選項。擴展的配置選項在各個擴展的文檔頁面分別被描述。有關 session 的選項能夠在 sessions 頁面找到。

Httpd 選項

表 I-3. Httpd 選項
名稱 默認值 可修改範圍 更新記錄
async_send "0" PHP_INI_ALL  

語言選項

表 I-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 '<?xml version="1.0"'; ?>。若是禁用了,必須使用 PHP 代碼開始標誌的完×××式( <?php ?>)。
注意: 本指令也會影響到縮寫形式 <?=,它和 <? echo 等價。使用此縮寫須要 short_open_tag 的值爲 On。
asp_tags boolean
除了一般的 <?php ?> 標誌以外還容許使用 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) 兼容模式。這影響到了對象的複製、構造(無屬性的對象會產生 FALSE 或 0)及 比較。此模式下,對象將以值傳遞,而不是默認的引用傳遞。

資源限制

表 I-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
參見 max_execution_time

性能調整

表 I-6. 性能調整
名稱 默認值 可修改範圍 更新記錄
realpath_cache_size "16K" PHP_INI_SYSTEM 自 PHP 5.1.0 起可用。
realpath_cache_ttl "120" PHP_INI_SYSTEM 自 PHP 5.1.0 起可用。
如下是配置選項的簡要解釋。
realpath_cache_size integer
決定 PHP 所使用的真實路徑緩衝區的大小。此值在 PHP 會打開不少文件的系統下應增大,以反映出所執行文件操做的數量。
realpath_cache_ttl integer
對給定文件或目錄以秒爲單位的真實路徑信息緩衝的時間。對文件不多改變的系統,能夠考慮增大辭職。

數據處理

表 I-7. 數據處理配置選項
名稱 默認值 可修改範圍 更新記錄
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_PERDIR 在 PHP <= 5.0.5 時是 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_globalsvariables_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 變量到腳本以處理數據, 也就是 <form action="edit.php?processed=1">, 而後查看 $_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

路徑和目錄

表 I-8. 路徑和目錄配置選項
名稱 默認值 可修改範圍 更新記錄
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  
extension NULL 僅限於 php.ini  
cgi.fix_pathinfo "1" PHP_INI_ALL 從 PHP 4.3.0 起可用
cgi.force_redirect "1" PHP_INI_ALL 從 PHP 4.2.0 起可用
cgi.redirect_status_env NULL PHP_INI_ALL 從 PHP 4.2.0 起可用
fastcgi.impersonate "0" PHP_INI_ALL 從 PHP 4.3.0 起可用
cgi.rfc2616_headers "0" PHP_INI_ALL 從 PHP 4.3.0 起可用
如下是配置選項的簡要解釋。
include_path string
指定一組目錄用於 require()include()fopen_with_path() 函數來尋找文件。格式和系統的 PATH 環境變量相似:一組目錄的列表,在 UNIX 下用冒號分隔,在 Windows 下用分號分隔。
例 I-1. Unix include_path
include_path=".:/php/includes"
例 I-2. Windows include_path
include_path=".;c:\php\includes"
在包含路徑中使用 . 能夠容許相對路徑,它表明當前目錄。
doc_root string
PHP 在服務器上的根目錄。僅在非空時使用。若是 PHP 被配置爲 安全模式,則此目錄以外的文件一律不被解析。若是 PHP 編譯時沒有指定 FORCE_REDIRECT,而且在任何 web 服務器(除了 IIS)中以 CGI 方式運行 PHP,則應該設定 doc_root。替代方案是使用下面的 cgi.force_redirect 配置選項。
user_dir string
在用戶目錄之下使用 PHP 文件的基本目錄名,例如 public_html
extension_dir string
PHP 用來尋找動態鏈接擴展庫的目錄。參見 enable_dldl()
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
在大多數 web 服務器中以 CGI 方式運行 PHP 時頗有必要用 cgi.force_redirect 提供安全。PHP 默認其爲 On。能夠將其關閉,但 風險自擔
注意: Windows 用戶:能夠安全地在 IIS 之下將其關閉,事實上必須這麼作。要在 OmniHTTPD 或 Xitami 之下使用也必須將其關閉。
cgi.redirect_status_env string
若是打開了 cgi.force_redirect,而且不是在 Apache 或 Netscape(iPlanet)web 服務器之下運行,可能須要設定一個環境變量名,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。

文件上傳

表 I-9. 文件上傳配置選項
名稱 默認值 可修改範圍 更新記錄
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_filesizeupload_tmp_dirpost_max_size 指令。
當使用 integer 類型時,其值以字節爲度量單位。還能夠用簡化符號,說明見此 FAQ
upload_tmp_dir string
文件上傳時存放文件的臨時目錄。必須是 PHP 進程全部者用戶可寫的目錄。若是未指定則 PHP 使用系統默認值。
upload_max_filesize integer
所上傳的文件的最大大小。
當使用 integer 類型時,其值以字節爲度量單位。還能夠用簡化符號,說明見此 FAQ

普通 SQL

表 I-10. 普通 SQL 配置選項
名稱 默認值 可修改範圍 更新記錄
sql.safe_mode "0" PHP_INI_SYSTEM  
如下是配置選項的簡要解釋。
sql.safe_mode boolean

調試器配置選項

當心
僅 PHP 3 實現了一個默認的調試器。更多信息請參考 附錄 G
debugger.host string
調試器所使用的主機的 DNS 名或 IP 地址。
debugger.port string
調試器所用的端口號。
debugger.enabled boolean
是否啓用調試器。
表 I-2. PHP_INI_* 常量的定義
常量 含義
PHP_INI_USER 1 配置選項可在用戶的 PHP 腳本或 Windows 註冊表中設置
PHP_INI_PERDIR 2 配置選項可在 php.ini, .htaccesshttpd.conf 中設置
PHP_INI_SYSTEM 4 配置選項可在 php.ini or httpd.conf 中設置
PHP_INI_ALL 7 配置選項可在各處設置
相關文章
相關標籤/搜索