日期:2014-05-17  浏览次数:20425 次

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 '<?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) 兼容模式。这影响到了对象的复制、构造及比较。

参见从 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