php配置参数.md

php 5.5 配置文件

php.ini Options

user_ini.filename string

设定了 PHP 会在每个目录下搜寻的文件名;如果设定为空字符串则 PHP 不会搜寻。默认值是 .user.ini。

user_ini.cache_ttl integer

控制着重新读取用户 INI 文件的间隔时间。默认是 300 秒(5 分钟)。

Language Options

engine = boolean

打开或关闭 PHP 解析。本指令仅在使用 PHP 的 Apache 模块版本时才有用。可以基于目录或者虚拟主机来打开或者关闭 PHP。将 engine off 放到 httpd.conf 文件中适当的位置就可以激活或禁用 PHP。

short_open_tag boolean

决定是否允许使用 PHP 代码开始标志的缩写形式(<? ?>)。如果要和 XML 结合使用 PHP,可以禁用此选项以便于嵌入使用 <?xml ?>。否则还可以通过 PHP 来输出,例如:<?php echo '<?xml version="1.0"'; ?>。如果禁用了,必须使用 PHP 代码开始标志的完整形式(<?php ?>)。
Note:本指令也会影响到缩写形式 <?=,它和 <? echo 等价。使用此缩写需要 short_open_tag 的值为 On。 从 PHP 5.4.0 起, <?= 总是可用的。

asp_tags boolean

除了通常的 标志之外还允许使用 ASP 风格的标志 <% %>。这也包括了输出变量值的缩写 <%= $value %>。更多信息见从 HTML 中分离一节。

precision = integer

浮点数中显示有效数字的位数。

y2k_compliance = boolean

强制 2000 年兼容(在不兼容的浏览器中会出问题)。

output_buffering integer/boolean

该选项设置为 On 时,将在所有的脚本中使用输出控制。如果要限制输出缓冲区的最大值,可将该选项设定为指定的最大字节数(例如 output_buffering=4096)。

output_handler string

该选项可将脚本所有的输出,重定向到一个函数。例如,将 output_handler 设置为 mb_output_handler() 时,字符的编码将被修改为指定的编码。设置的任何处理函数,将自动的处理输出缓冲。
Note:不能同时使用 mb_output_handler() 和 ob_iconv_handler(),也不能同时使用 ob_gzhandler() 和 zlib.output_compression。
Note:编写可移植脚本的人不应该依赖于这个ini指示。 相反,使用ob_start()显式设置输出处理程序。使用这个ini指令可能会导致问题,除非你知道什么脚本是在做。
Note:如果设置为“On”,output_handler必须为空!相反,您必须使用zlib.output_handler。

zlib.output_compression boolean/integer

是否使用zlib库透明地压缩脚本输出结果。该指令的值可以设置为:Off、On、字节数(压缩缓冲区大小,默认为4096)。如果打开该指令,当浏览器发送"Accept-Encoding: gzip(deflate)"头时,"Content-Encoding: gzip(deflate)"和"Vary: Accept-Encoding"头将加入到应答头当中。你可以在应答头输出之前用ini_set()函数在脚本中启用或禁止这个特性。如果输出一个"Content-Type: image/??"这样的应答头,压缩将不会启用(为了防止Netscape的bug)。你可以在输出"Content-Type: image/??"之后使用"ini_set('zlib.output_compression', 'On')"重新打开这个特性。注意1: 压缩率会受压缩缓冲区大小的影响,如果你想得到更好的压缩质量,请指定一个较大的压缩缓冲区。注意2: 如果启用了zlib输出压缩,output_handler指令必须为on,同时必须设置zlib.output_handler指令的值。

zlib_output_compression_level integer

压缩级别,可用值为 0~9 ,0表示不压缩。值越高效果越好,但CPU占用越多,建议值为1~5。默认值 -1 表示使用zlib内部的默认值(6)。

zlib.output_handler string

在打开zlib.output_compression指令的情况下,你只能在这里指定输出处理器。可以使用的处理器有"zlib.inflate"(解压)或"zlib.deflate"(压缩)。如果启用该指令则必须将output_handler指令设为空。

implicit_flush boolean

默认为 FALSE。如将该选项改为 TRUE,PHP 将使输出层,在每段信息块输出后,自动刷新。这等同于在每次使用 print、echo 等函数或每个 HTML 块之后,调用 PHP 中的 flush() 函数。
不在web环境中使用 PHP 时,打开这个选项对程序执行的性能有严重的影响,通常只推荐在调试时使用。在 CLI SAPI 的执行模式下,该标记默认为 TRUE。

unserialize_callback_func

如果解序列化处理器需要实例化一个未定义的类,这里指定的回调函数将以该未定义类的名字作为参数被unserialize()调用,以免得到不完整的"__PHP_Incomplete_Class"对象。如果这里没有指定函数,或指定的函数不包含(或实现)那个未定义的类,将会显示警告信息。所以仅在确实需要实现这样的回调函数时才设置该指令。若要禁止这个特性,只需置空即可。

serialize_precision integer

将浮点型和双精度型数据序列化存储时的精度(有效位数)。默认值能够确保浮点型数据被解序列化程序解码时不会丢失数据。

open_basedir string

将 PHP 所能打开的文件限制在指定的目录树,包括文件本身。本指令不受安全模式打开或者关闭的影响。
当一个脚本试图用例如 fopen() 或者 gzopen() 打开一个文件时,该文件的位置将被检查。当文件在指定的目录树之外时 PHP 将拒绝打开它。所有的符号连接都会被解析,所以不可能通过符号连接来避开此限制。
特殊值 . 指明脚本的工作目录将被作为基准目录。但这有些危险,因为脚本的工作目录可以轻易被 chdir() 而改变。
在 httpd.conf 文件中中,open_basedir 可以像其它任何配置选项一样用“php_admin_value open_basedir none”的方法关闭(例如某些虚拟主机中)。
在 Windows 中,用分号分隔目录。在任何其它系统中用冒号分隔目录。作为 Apache 模块时,父目录中的 open_basedir 路径自动被继承。
用 open_basedir 指定的限制实际上是前缀,不是目录名。也就是说“open_basedir = /dir/incl”也会允许访问“/dir/include”和“/dir/incls”,如果它们存在的话。如果要将访问限制在仅为指定的目录,用斜线结束路径名。例如:“open_basedir = /dir/incl/”。
Note:支持多个目录是 3.0.7 加入的。默认是允许打开所有文件。

disable_functions string

本指令允许你基于安全原因禁止某些函数。接受逗号分隔的函数名列表作为参数。 disable_functions 不受安全模式的影响。 本指令只能设置在 php.ini 中。例如不能将其设置在 httpd.conf。

disable_classes string

本指令可以使你出于安全的理由禁用某些类。用逗号分隔类名。disable_classes 不受安全模式的影响。 本指令只能设置在 php.ini 中。例如不能将其设置在 httpd.conf。

highlight.bg string
highlight.comment string
highlight.default string
highlight.html string
highlight.keyword string
highlight.string string

语法高亮的颜色。可设置为 <font color="??????"> 中任何可接受的代码。

ignore_user_abort boolean

默认值为 FALSE 。 如果设置为 TRUE ,在客户端断开连接后,脚本不会被中止。

realpath_cache_size integer

指定PHP使用的realpath(规范化的绝对路径名)缓冲区大小。在PHP打开大量文件的系统上应当增大该值以提高性能。

realpath_cache_ttl integer

realpath缓冲区中信息的有效期(秒)。对文件很少变动的系统,可以增大该值以提高性能。

zend.enable_gc boolean

启用或禁用循环引用记数搜集器。

zend.multibyte boolean

启用对多字节编码中源文件的解析。要使用此功能,必须启用mbstring扩展。

zend.script_encoding string

允许设置脚本的默认编码。除非在脚本的顶部出现一个declare(encoding = ...)指令,否则将使用此值。仅当zend.multibyte设置时才会影响。

Miscellaneous

expose_php boolean

是否暴露PHP被安装在服务器上的事实(在http头中加上其签名)。它不会有安全上的直接威胁,但它使得客户端知道服务器上安装了PHP。

Resource Limits

max_execution_time integer

这设置了脚本被解析器中止之前允许的最大执行时间,单位秒。 这有助于防止写得不好的脚本占尽服务器资源。 默认设置为 30。 从命令行运行 PHP 时,默认设置为 0。
最大执行时间不会影响系统调用和系统操作等。在 安全模式 下你不能通过 ini_set() 来修改此设置。 唯一的解决方法是关闭安全模式或者在 php.ini 中修改时间限制。
你的 web 服务器也可以有其他超时设置,也有可能中断 PHP 的执行。 Apache 有一个 Timeout 指令,IIS 有一个 CGI 超时功能。 他们默认都是 300 秒。更多具体信息参见你的 web 服务器的文档。

max_input_time integer

脚本解析输入数据(类似 POST 和 GET)允许的最大时间,单位是秒。 它从接收所有数据到开始执行脚本进行测量的。

max_input_nesting_level integer

设置输入变量的嵌套深度 (例如 $_GET,$_POST……)

memory_limit integer

脚本可能消耗的最大内存量(128MB)

Error handling and logging

Error handling and logging

设置错误报告的级别。该参数可以是一个任意的表示二进制位字段的整数,或者常数名称。错误级别和常数是在 预定义常量定义的,在 php.ini 之中也有专门的说明。在程序运行时,还可以通过 error_reporting() 函数进行设置。请查看 display_errors 了解详情。
在PHP 4和PHP 5之中,其默认值为 E_ALL & ~E_NOTICE。 该设置表示除了 E_NOTICE 其他都显示的错误级别。在开发过程中很有必要显示它们。

  • E_ALL - 所有错误和警告 (不包含 E_STRICT)

  • E_ERROR - 致命的运行时错误

  • E_RECOVERABLE_ERROR - 几乎致命的运行时错误

  • E_WARNING - 运行时警告 (非致命错误)

  • E_PARSE - 编译时语法错误

  • E_NOTICE - 运行时提醒 (这些警告常常由你代码中的bug导致, 但是也有可能是有意的行为 (例如, 使用一个未初始化的变量并依赖于其会被自动初始化成为一个空字符串的事实)

  • E_STRICT - 运行时提醒, 打开后PHP会给出针对你代码的最易移植和最好向后兼容性的建议

  • E_CORE_ERROR - PHP初始化启动时的致命错误

  • E_CORE_WARNING - 在PHP初始化时发生的警告 (非致命错误)

  • E_COMPILE_ERROR - 致命的编译时错误

  • E_COMPILE_WARNING - 编译时警告 (非致命)

  • E_USER_ERROR - 用户产生的错误信息

  • E_USER_WARNING - 用户产生的警告信息

  • E_USER_NOTICE - 用户产生的提示信息

举例:
显示所有错误, 除了提示以及代码标准警告以外
error_reporting = E_ALL & ~E_NOTICE
显示所有错误,除了提示以外
error_reporting = E_ALL & ~E_NOTICE | E_STRICT
只显示错误
error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
显示出了提示以及代码标准警告之外的错误
error_reporting = E_ALL & ~E_NOTICE

Note:在开发阶段启用 E_NOTICE 会有一些好处。出于调试的目的:通知信息会对代码中可能出现的bug给出警告。例如,使用未预先分配和定义的值,就会给出警告。它对于查找拼写错误非常有用,并且可以节省调试的时间。通知信息也会警告你使用更好的代码风格。例如,$arr[item] 最好写成 $arr['item'] ,因为 PHP 会试图将 "item" 当成一个常量。如果它不是一个常量,PHP才会把它当做数组的字符串索引。
Note:在PHP 5之中,提供了一个新的错误级别 E_STRICT。 因为 E_STRICT 并不包含在 E_ALL 之中,你必须明确启用才能显示这个类别的错误信息。在开发阶段启用 E_STRICT 会有一些好处。严格的信息将帮助你使用最新和最好的建议的方法来编写代码,例如它会警告你使用了将被废弃的函数。
Note: PHP外的PHP常量 在 PHP 以外使用PHP的常量是没有意义的,例如在 httpd.conf 之中, 你需要使用常量对应的 integer 值来取代。因为随着时间的推移和PHP的发展,会有更多的错误级别将被添加,因此错误级别的最大值(为 E_ALL)可能会改变 。因此在使用 E_ALL 对应整数值的地方,应该考虑使用较大的数值来涵盖当前和将来需要使用的二进制位字段,例如数值 2147483647 (将包含所有错误,而不仅仅是 E_ALL).

display_errors string

该选项设置是否将错误信息作为输出的一部分显示到屏幕,或者对用户隐藏而不显示。设置 "stderr" 表示发送到 stderr 而不是 stdout。 "stderr"从 PHP 5.2.4 开始可用。在以前的版本中,该配置值的类型为 boolean.
Note:这是一个辅助开发的功能,建议永远不要在生产系统中使用 (例如系统被连接到互联网对外提供服务)。
Note:尽管 display_errors 也可以在运行时设置 (使用 ini_set()), 但是脚本出现致命错误时任何运行时的设置都是无效的。 因为在这种情况下预期运行的操作不会被执行。

display_startup_errors boolean

是否显示PHP启动时的错误。即使 display_errors 设置为开启, PHP 启动过程中的错误信息也不会被显示。强烈建议除了调试目的以外,将 display_startup_errors 设置为关闭。

log_errors boolean

设置是否将脚本运行的错误信息记录到服务器错误日志或者error_log之中。注意,这是与服务器相关的特定配置项。
Note:在生产系统中,强烈建议你使用错误日志记录web站点上显示的错误信息。

log_errors_max_len integer

设置 log_errors 的最大字节数. 在 error_log 会添加有关错误源的信息。默认值为1024,如果设置为0表示不限长度。该长度设置对记录的错误,显示的错误,以及 $php_errormsg都会有限制作用。
当使用 integer 时, 其值以字节来衡量。还可以使用在FAQ中描述的速记符。

ignore_repeated_errors boolean

不记录重复的信息。重复的错误必须出现在同一个文件中的同一行代码上,除非 ignore_repeated_source 设置为true。

ignore_repeated_source boolean

忽略重复消息时,也忽略消息的来源。当该设置开启时,重复信息将不会记录它是由不同的文件还是不同的源代码行产生的。

report_memleaks boolean

如果这个参数设置为Off,则内存泄露信息不会显示 (在 stdout 或者日志中)。这个参数只在以调试方式编译的PHP中起作用,并且必须在error_reporting指令中包含 E_WARNING

report_zend_debug = 0

此设置默认为开启。

track_errors boolean

如果开启,最后的一个错误将永远存在于变量 $php_errormsg 中。

xmlrpc_errors = 0

关闭正常的错误报告,并将错误的格式设置为XML-RPC错误信息的格式。

xmlrpc_error_number = 0

用作 XML-RPC faultCode 元素的值。

html_errors boolean

在错误信息中关闭HTML标签。这种新的HTML格式的错误信息是可以点击,它引导用户前往描述该错误或者导致该错误发生的函数的参考信息页面。 这些参考与 docref_root 和 docref_ext 的设置有关。

docref_root string

新的错误信息格式包含了对应的参考页面,该页面对错误进行具体描述,或者描述了导致该错误发生的函数。为了提供手册的页面,你可以在PHP官方站点下载对应语言的手册,并在ini中设置网址到本地对应的地址。如果你的本地手册拷贝可以使用"/manual/" 访问,你就可以简单的设置 docref_root=/manual/。另外你还需要设置 docref_ext 匹配你本地文件的后缀名 docref_ext=.html。当然也可以设置一个外部的参考地址。例如你可以设置 docref_root=http://manual/en/ 或者 docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon &url=http%3A%2F%2Fwww.php.net%2F"
通常需要在 docref_root 后面以 "/"结尾, 但是在以上的第二种示例情况中不必这么设置。
Note:因为这么做可以快速定位和查看到函数的说明,所以它对你的开发会非常有用。建议永远不要再生产系统中使用 (例如系统被连接到互联网对外提供服务)。

docref_ext string

参见 docref_root.
Note:docref_ext的值必须以 "." 开头.

error_prepend_string string

错误信息之前输出的内容。

error_append_string string

错误信息之后输出的内容。

error_log string

设置脚本错误将被记录到的文件。该文件必须是web服务器用户可写的。如果特殊值 syslog 被设置,则将错误信息发送到系统日志记录器。在Unix以及类似系统上,使用的是 syslog(3) ,而在 Windows NT 类系统上则为事件日志。Windows 95上不支持系统日志记录。参见: syslog(). 如果该配置没有设置,则错误信息会被发送到 SAPI 错误记录器。例如,出现在Apache的错误日志中,或者在CLI中发送到 stderr。

Data Handling

arg_separator.output string

PHP所产生的URL中用来分隔参数的分隔符。另外还可以用"&"或","等等。

arg_separator.input string

PHP解析URL中的变量时使用的分隔符列表。字符串中的每一个字符都会被当作分割符。另外还可以用",&"等等。

variables_order string

PHP设定 Environment, GET, POST, Cookie, Server 变量的解析顺序。分别用 E, G, P, C, S 表示,按从左到右注册,新值覆盖旧值。举例说,设为"GP"将会导致用POST变量覆盖同名的GET变量,并完全忽略 Environment, Cookie, Server 变量。推荐使用"GPC"或"GPCS",并使用getenv()函数访问环境变量。

request_order string

此指令描述的顺序PHP设定GET,POST和COOKIE变量_REQUEST数组。注册是由左到右,新的值将覆盖旧值。如果这个指令没有设置,variables_order中使用$ _REQUEST内容。请注意,默认分配的php.ini文件中不包含'C'饼干,出于安全方面的考虑。

register_argc_argv boolean

是否声明$argv和$argc全局变量(包含用GET方法的信息)。建议不要使用这两个变量,并关掉该指令以提高性能。

auto_globals_jit boolean

是否仅在使用到$_SERVER和$_ENV变量时才创建(而不是在脚本一启动时就自动创建)。如果并未在脚本中使用这两个数组,打开该指令将会获得性能上的提升。要想该指令生效,必须关闭register_globals和register_long_arrays指令。

enable_post_data_reading

PHP是否将读取POST数据。默认情况下启用此选项。很可能,您不会希望全局禁用此选项。 它导致$ _POST和$ _FILES始终为空; 你唯一能够读的方法你唯一能够读的方法POST数据将通过php://input 流包装器。这可能是有用的以代理请求或以存储器高效方式处理POST数据。

post_max_size intager

允许的POST数据最大字节长度。此设定也影响到文件上传。如果POST数据超出限制,那么$_POST和$_FILES将会为空。要上传大文件,该值必须大于upload_max_filesize指令的值。如果启用了内存限制,那么该值应当小于memory_limit指令的值。

auto_prepend_file string

指定在主文件之前/后自动解析的文件名。为空表示禁用该特性。该文件就像调用了include()函数被包含进来一样,因此会使用include_path指令的值。注意:如果脚本通过exit()终止,那么自动后缀将不会发生。

auto_append_file strint

指定在主文件之后自动解析的文件的名称。 包含该文件,就像使用require函数调用一样,因此使用include_path。
Note:如果脚本使用exit()终止,则不会发生自动附加。

default_mimetype string
default_charset string

PHP默认会自动输出"Content-Type: text/html" HTTP头。如果将default_charset指令设为"gb2312",那么将会自动输出"Content-Type: text/html; charset=gb2312"。

always_populate_raw_post_data boolean

是否总是生成$HTTP_RAW_POST_DATA变量(原始POST数据)。否则,此变量仅在遇到不能识别的MIME类型的数据时才产生。不过,访问原始POST数据的更好方法是 php://input 。$HTTP_RAW_POST_DATA对于enctype="multipart/form-data"的表单数据不可用。

Paths and Directories

include_path string

指定一组目录用于require(), include(), fopen_with_path()函数寻找文件。格式和系统的PATH环境变量类似(UNIX下用冒号分隔,Windows下用分号分隔):UNIX: "/path1:/path2",Windows: "path1;path2"。在包含路径中使用'.'可以允许相对路径,它代表当前目录。

doc_root string

PHP的"CGI根目录"。仅在非空时有效。在web服务器的主文档目录(比如"htdocs")中放置可执行程序/脚本被认为是不安全的,比如因为配置错误而将脚本作为普通的html显示。因此很多系统管理员都会在主文档目录之外专门设置一个只能通过CGI来访问的目录,该目录中的内容只会被解析而不会原样显示出来。如果设置了该项,那么PHP就只会解释doc_root目录下的文件,并确保目录外的脚本都不会被PHP解释器执行(user_dir除外)。如果编译PHP时没有指定FORCE_REDIRECT,并且在非IIS服务器上以CGI方式运行,则必须设置此指令(参见手册中的安全部分)。替代方案是使用的cgi.force_redirect指令。

user_dir string

告诉php在使用 /~username 打开脚本时到哪个目录下去找,仅在非空时有效。也就是在用户目录之下使用PHP文件的基本目录名,例如:"public_html"。

extension_dir string

存放扩展库(模块)的目录,也就是PHP用来寻找动态扩展模块的目录。

enable_dl boolean

该指令仅对 Apache 模块版本的 PHP 有效。 你可以针对每个虚拟机或每个目录开启或关闭 dl() 动态加载 PHP 模块。
关闭动态加载的主要原因是为了安全。通过动态加载,有可能忽略所有 open_basedir 限制。 默认允许动态加载,除了使用 安全模式。在 安全模式,总是无法使用 dl()。

cgi.force_redirect boolean

是否打开cgi强制重定向。强烈建议打开它以为CGI方式运行的php提供安全保护。你若自己关闭了它,请自己负责后果。注意:在IIS/OmniHTTPD/Xitami上则必须关闭它!

cgi.nph boolean

在CGI模式下是否强制对所有请求都发送"Status: 200"状态码。

cgi.redirect_status_env string

如果cgi.force_redirect=On,并且在Apache与Netscape之外的服务器下运行PHP,可能需要设定一个cgi重定向环境变量名,PHP将去寻找它来知道是否可以继续执行下去。设置这个变量会导致安全漏洞,请务必在设置前搞清楚自己在做什么。

cgi.fix_pathinfo boolean

是否为CGI提供真正的 PATH_INFO/PATH_TRANSLATED 支持(遵守cgi规范)。先前的行为是将PATH_TRANSLATED设为SCRIPT_FILENAME,而不管PATH_INFO是什么。打开此选项将使PHP修正其路径以遵守CGI规范,否则仍将使用旧式的不合规范的行为。鼓励你打开此指令,并修正脚本以使用 SCRIPT_FILENAME 代替 PATH_TRANSLATED 。有关PATH_INFO的更多信息请参见cgi规范。

fastcgi.impersonate boolean

IIS中的FastCGI支持模仿客户端安全令牌的能力。这使得IIS能够定义运行时所基于的请求的安全上下文。Apache中的mod_fastcgi不支持此特性(03/17/2002),如果在IIS中运行则设为On,默认为Off。

fastcgi.logging boolean

禁用通过FastCGI连接的记录。 PHP的默认行为是启用此功能。

cgi.rfc2616_headers int

指定PHP在发送HTTP响应代码时使用何种报头。0 表示发送一个"Status: "报头,Apache和其它web服务器都支持。若设为1,则PHP使用RFC2616标准的头。除非你知道自己在做什么,否则保持其默认值 0。

File Uploads

file_uploads boolean or integer

HTTP上传文件的临时目录(如果没有,将使用系统默认值
指定)。

upload_tmp_dir string

文件上传时存放文件的临时目录(必须是PHP进程用户可写的目录)。如果未指定则PHP使用系统默认的临时目录。

upload_max_filesize integer

允许上传的文件的最大尺寸。

max_file_uploads integer

允许同时上传的文件的最大数量。 从PHP 5.3.4开始,上传字段在提交时保持空白不计入此限制。

Fopen wrappers

allow_url_fopen boolean

本选项激活了 URL 形式的 fopen 封装协议使得可以访问 URL 对象例如文件。默认的封装协议提供用 ftp 和 http 协议来访问远程文件,一些扩展库例如 zlib 可能会注册更多的封装协议。
Note:出于安全性考虑,此选项只能在 php.ini 中设置。

allow_url_include boolean

此选项允许有以下功能使用URL识别的fopen封装:包括,include_once,require,require_once。此设置要求allow_url_fopen选项要开启。

from string

定义匿名 ftp 的密码(email 地址)。

user_agent string

定义User-Agent字符串。 PHP的默认设置为空。

default_socket_timeout integer

基于 socket 的流的默认超时时间(秒)。

auto_detect_line_endings boolean

当设为 On 时,PHP 将检查通过 fgets() 和 file() 取得的数据中的行结束符号是符合 Unix,MS-DOS,还是 Macintosh 的习惯。这使得 PHP 可以和 Macintosh 系统交互操作,但是默认值是 Off,因为在检测第一行的 EOL 习惯时会有很小的性能损失,而且在 Unix 系统下使用回车符号作为项目分隔符的人们会遭遇向下不兼容的行为。

Module Settings

CLI Server

cli_server.color boolean

控制内置Web Server的终端输出有无颜色。

Date

date.timezone string

定义日期函数使用的默认时区

date.default_latitude float

默认纬度。

date.default_longitude float

默认经度。

date.sunrise_zenith float

默认日出天顶。

date.sunset_zenith float

默认日落天顶。

filter

filter.default string

使用指定的过滤器过滤$_GET,$_POST,$_COOKIE,$_REQUEST和$_SERVER数据,原始数据可以通过filter_input()函数访问。"unsafe_raw"表示不做任何过滤。

filter.default_flags integer

filter_data()函数的默认标志。

iconv

iconv.input_encoding string

PHP 5.6 及以上的用户应该留空并以 default_charset 取代。

iconv.internal_encoding string

PHP 5.6 及以上的用户应该留空并以 default_charset 取代。

iconv.output_encoding string

PHP 5.6 及以上的用户应该留空并以 default_charset 取代。

sqlite

sqlite.assoc_case integer

是否使用混合大小写(0),大写(1)或小写(2)散列索引。

当您需要与其他数据库系统兼容时,此选项主要有用,其中列的名称始终以大写或小写形式返回,而不管数据库模式中实际字段名称的大小写。
SQLite库返回自然情况下的列名(与您在模式中使用的情况相符)。 当sqlite.assoc_case设置为0时,将保留自然的情况。 当它设置为1或2时,PHP将分别应用散列键上的大小写折叠到大写或小写的键。
使用此选项会导致轻微的性能损失,但比使用PHP脚本自动折叠更快。

Pcre

pcre.backtrack_limit integer

PCRE的最大回溯(backtracking)步数。

pcre.recursion_limit integer

PCRE的递归限制. 请注意, 如果 讲这个值设置为一个很大的数字, 你可能会消耗掉 所有的进程可用堆栈, 最终导致php崩溃(直到达到系统限制的堆栈大小).

Pdo

pdo_odbc.connection_pooling string

ODBC连接池设置。可以是“strict”,“relaxed”或“off”(等于“”)之一。 该参数描述了在将连接参数与现有池连接匹配时,连接管理器应该有多严格。 strict是推荐的默认值,并且只有当所有连接参数完全匹配时才会导致使用缓存连接。 relaxed将导致在使用类似的连接参数时使用缓存连接。 这可能导致高速缓存的使用增加,从而具有在(例如)虚拟主机之间泄露连接信息的风险。
此设置只能从php.ini文件更改,并影响整个过程; 加载到进程中使用相同ODBC库的任何其他模块也将受到影响,包括Unified ODBC扩展。
将此设置保留为默认的严格设置,除非您有充分的理由更改它。

pdo_odbc.db2_instance_name string

如果使用db2 flavor来编译PDO_ODBC,则此设置将Linux和UNIX操作系统上的DB2INSTANCE环境变量的值设置为DB2实例的指定名称。 这使PDO_ODBC能够解析DB2库的位置,并对DB2数据库进行编目连接。
此设置只能从php.ini文件更改,并影响整个过程; 加载到进程中使用相同ODBC库的任何其他模块也将受到影响,包括Unified ODBC扩展。
此设置对Windows不起作用。

Pdo_mysql

pdo_mysql.cache_size

如果使用mysqlnd:内部结果集缓存的缓存槽数

pdo_mysql.default_socket=

本地MySQL连接的默认套接字名称。 如果为空,使用内置
MySQL默认值。

Phar

phar.readonly boolean

此选项禁用使用phar流或Phar对象的写支持创建或修改Phar归档。 此设置应始终在生产计算机上启用,因为phar扩展的方便的写支持可以允许直接创建基于php的病毒,加上其他常见的安全漏洞。
Note:由于安全原因,此设置只能在php.ini中取消设置。 如果在php.ini中phar.readonly被禁用,用户可以在脚本中启用phar.readonly或稍后禁用它。 如果在php.ini中启用phar.readonly,脚本可能会无恶意地“re-enable” INI变量,但不能禁用它。

phar.require_hash boolean

此选项将强制所有打开的Phar存档包含某种签名(目前支持MD5,SHA1,SHA256和SHA512),并且将拒绝处理不包含签名的任何Phar存档。
Note:由于安全原因,此设置只能在php.ini中取消设置。 如果在php.ini中禁用phar.require_hash,则用户可以在脚本中启用phar.require_hash或稍后禁用它。如果在php.ini中启用phar.require_hash,脚本可能会无恶意地“re-enable”INI变量,但不能禁用它。
此设置不影响使用PharData类读取纯tar文件。

phar.cahche_list string

这个INI设置是在2.0.0版本中添加的,允许映射phar档案在web服务器启动时预解析,提供性能改进,使运行的文件脱离phar归档非常接近从传统的基于磁盘的安装运行这些文件的速度。

mail function

SMTP string

仅用于 Windows:PHP 在 mail() 函数中用来发送邮件的 SMTP 服务器的主机名称或者 IP 地址。

smtp_port integer

仅用于 Windows:SMTP 服务器的端口号,默认为 25。自 PHP 4.3.0 起可用。

sendmail_from string

在 Windows 下用 PHP 发送邮件时的“From:”邮件地址的值。该选项同时设置了 “Return-Path:”头。

sendmail_path string

仅用于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 不需要任何选项就能正确处理邮件。
此指令也可用于 Windows。如果设定,smtp,smtp_port 和 sendmail_from 都被忽略并运行指定的命令。

mail.force_extra_parameters

作为额外的参数传递给sendmail库的强制指定的参数附加值。这些参数总是会替换掉mail()的第5个参数,即使在安全模式下也是如此。

mail.add_x_header boolean

添加X-PHP原产脚本,将包括脚本其次是文件名的UID。

mail.log string

记录所有邮件日志的路径。

SQL

sql.safe_mode boolean

是否使用SQL安全模式。如果打开,指定默认值的数据库连接函数将会使用这些默认值代替支持的参数。对于每个不同数据库的连接函数,其默认值请参考相应的手册页面。

ODBC

odbc.defaule_db string

配置 ODBC 默认连接的数据库名称,供 odbc_connect() 或 odbc_pconnect() 函数使用。

odbc.default_user string

配置 ODBC 默认连接的用户帐号,供 odbc_connect() 或 odbc_pconnect() 函数使用。

odbc.default_pw string

配置 ODBC 默认连接的用户密码,供 odbc_connect() 或 odbc_pconnect() 函数使用。

odbc.default_cursortype

控制ODBC游标模型。默认值:SQL_CURSOR_STATIC。

odbc.allow_persistent boolean

配置是否允许 ODBC 数据库持续连接 (persistent connections),会影响 odbc_pconnect() 函数。

odbc.check_persistent boolean

在重用前检查连接是否可用。

odbc.max_persistent integer

配置每个处理程序最多保持几个 ODBC 持续连接。 -1 意味着没有限制.

odbc.max_links integer

配置每个处理程序最多开几个 ODBC 连接,包括持续连接。 -1意味着没有限制.

odbc.defaultlrl integer

长字段处理. 返回变量的字节数. 0 意味着略过.

odbc.defaultbinmode integer

二进制数据处理. 0 意味着略过, 1按照实际返回, 2 转换到字符.

Interbase

ibase.allow_persistent boolean

是否允许持续连接到Firebird / InterBase。

ibase.max_persistent integer

每个进程的最大持续Firebird / InterBase连接数。 如果超过此数目,使用ibase_pconnect()创建的新连接将是非持久的。

ibase.max_links integer

每个进程的最大Firebird / InterBase连接数,包括持续连接。

ibase.default_db string

在不指定数据库名称的情况下调用ibase_ [p] connect()时,连接到的默认数据库。 如果设置了此值并启用了SQL安全模式,则不允许与此数据库之外的其他连接。

ibase.default_user string

如果未指定用户名,则在连接到数据库时使用的用户名。

ibase.default_password string

未指定密码时连接到数据库时使用的密码。

ibase.default_charset string

连接到数据库时使用的字符集(如果未指定字符集)。

ibase.timestampformat string

默认时间戳格式。

ibase.dateformat string

默认日期格式。

ibase.timeformat string
这些指令用于设置从结果集返回日期和时间时使用的日期和时间格式,或者将参数绑定到日期和时间参数。

MySQL

mysql.allow_local_infile boolean

允许从PHP的角度访问本地文件与LOAD DATA语句

mysql.allow_persistent boolean

是否允许 MySQL 的持久连接。

mysql.cache_size

如果使用mysqlnd:内部结果集缓存的缓存槽数

mysql.max_persistent integer

每个进程中最大的持久连接数目。

mysql.max_links integer

每个进程中最大的连接数,包括持久连接。

mysql.default_port integer

指定默认连接数据库的 TCP 端口号。如果没有指定默认端口号,则按顺序从 MYSQL_TCP_PORT 环境变量,/etc/services 文件中的 mysql-tcp 项或者编译时指定的 MYSQL_PORT 常量中取得。Win32 环境下只会使用 MYSQL_PORT 常量。

mysql.default_socket string

当使用本地连接的时候,默认的 socket 名称。

mysql.default_host string

默认连接的数据库服务器地址。不适用于 SQL 安全模式。

mysql.default_user string

默认连接数据库时使用的用户名。不适用于 SQL 安全模式。

mysql.default_password string

默认连接数据库时使用的密码。不适用于 SQL 安全模式。

mysql.connect_timeout integer

连接超时秒数。在 Linux 中,此参数设定了等候来自服务器的响应的时长。

mysql.teace_mode boolean

跟踪模式。当激活 mysql.trace_mode 时,将会显示 table/index 扫描的警告,未释放的结果集以及 SQL 错误。(PHP 4.3.0 引进)

MySQLi

mysqli.max_persistent = -1

持续链接的最大数量。 -1表示没有限制。

mysqli.allow_local_infile = On

允许从PHP的角度访问本地文件与LOAD DATA语句

mysqli.allow_persistent = On

允许或阻止持久链接。

mysqli.max_links = -1

每个进程中Mysql连接的最大数量。 -1表示没有限制。

mysqli.cache_size = 2000

如果使用mysqlnd:内部结果集缓存的缓存槽数

mysqli.default_port = 3306

当没有指定其他端口号时使用的默认的用于连接数据库服务器的TCP端口号。如果没有设置默认值, 端口号将会按照顺序从环境变量MYSQL_TCP_PORT,/etc/services 文件中的mysql-tcp条目或编译期的MYSQL_PORT常量等位置获取。 Win32仅使用MYSQL_PORT常量。

mysqli.default_socket string

当连接到本地数据库服务器时如果没有指定其他socket名称,使用的默认socket名称。

mysqli.default_host string

当连接到数据库服务器时, 如果没有指定其他主机地址,使用的默认服务器主机。不要在 安全模式下使用。

mysqli.default_user string

当连接到数据库服务器时,如果没有指定其他用户名,使用的默认用户名。不要在 安全模式下使用。

mysqli.default_pw string

当连接到数据库服务器时,如果灭有指定其他密码,使用的默认密码。不要在 安全模式下使用。

mysqli.reconnect integer

连接丢失时是否自动重新连接。

mysqlnd

mysqlnd.collect_statistics = On

启用/禁用通过mysqlnd的一般统计信息的收集,可以用于调优和监视MySQL操作。

mysqlnd.collect_memory_statistics = Off

启用/禁用通过mysqlnd收集内存使用情况统计信息,可用于调整和监视MySQL操作。

mysqlnd.net_cmd_buffer_size = 2048

向MySQL发送命令时使用的预分配缓冲区的大小(以字节为单位)。

mysqlnd.net_read_buffer_size = 32768

用于读取服务器发送的数据的预分配缓冲区的大小(以字节为单位)。

bcmath

bcmath.scale integer

所有 bcmath 函数中十进制数字的数目。

browscap

browscap string

浏览器功能文件的位置和文件名 (例如 browscap.ini)。

Session

session.save_handler string

session.save_handler 定义了来存储和获取与会话关联的数据的处理器的名字。默认为 files。

session.save_path string

session.save_path 定义了传递给存储处理器的参数。如果选择了默认的 files 文件处理器,则此值是创建文件的路径。默认为 /tmp。
此指令还有一个可选的 N 参数来决定会话文件分布的目录深度。例如,设定为 '5;/tmp' 将使创建的会话文件和路径类似于 /tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If。要使用 N 参数,必须在使用前先创建好这些目录。在 ext/session 目录下有个小的 shell 脚本名叫 mod_files.sh,windows 版本是 mod_files.bat 可以用来做这件事。此外注意如果使用了 N 参数并且大于 0,那么将不会执行自动垃圾回收,更多信息见 php.ini。另外如果用了 N 参数,要确保将 session.save_path 的值用双引号 "quotes" 括起来,因为分隔符分号( ;)在 php.ini 中也是注释符号。
文件储存模块默认使用 mode 600 创建文件。通过 修改可选参数 MODE 来改变这种默认行为: N;MODE;/path ,其中 MODE 是 mode 的八进制表示。 MODE 设置不影响进程的掩码(umask)。
使用以上描述的可选目录层级参数 N 时请注意,对于绝大多数站点,大于1或者2的值会不太合适——因为这需要创建大量的目录:例如,值设置为 3 需要在文件系统上创建 64^3 个目录,将浪费很多空间和 inode。

session.use_strict_mode boolean

session.use_strict_mode指定模块是否将使用严格的会话ID模式。 如果启用此模式,模块不接受未初始化的会话ID。 如果从浏览器发送未初始化的会话ID,则会将新的会话ID发送到浏览器。 应用程序通过严格模式的会话采用保护会话固定。 默认为0(禁用)。

session.use_cookies boolean

session.use_cookies 指定是否在客户端用 cookie 来存放会话 ID。默认为 1(启用)。

session.cookie_secure boolean

session.cookie_secure 指定是否仅通过安全连接发送 cookie。默认为 off。

session.use_only_cookies boolean

session.use_only_cookies 指定是否在客户端仅仅使用 cookie 来存放会话 ID。启用此设定可以防止有关通过 URL 传递会话 ID 的攻击。此设定是 PHP 4.3.0 添加的。自PHP 5.3.0开始,默认值改为1(启用)

session.name string

session.name 指定会话名以用做 cookie 的名字。只能由字母数字组成,默认为 PHPSESSID。

session.auto_start boolean

session.auto_start 指定会话模块是否在请求开始时自动启动一个会话。默认为 0(不启动)。

session.cookie_lifetime integer

session.cookie_lifetime 以秒数指定了发送到浏览器的 cookie 的生命周期。值为 0 表示“直到关闭浏览器”。默认为 0。
Note:到期时间戳相对于服务器时间设置,这不一定与客户端浏览器中的时间相同。

session.cookie_path string

session.cookie_path 指定了要设定会话 cookie 的路径。默认为 /。

session.cookie_domain string

session.cookie_domain 指定了要设定会话 cookie 的域名。默认为无,表示根据 cookie 规范产生 cookie 的主机名

session.cookie_httponly boolean

将Cookie标记为仅通过HTTP协议可访问。 这意味着cookie不能通过脚本语言(如JavaScript)访问。 此设置可以有效帮助减少通过XSS攻击的身份窃取(虽然它不被所有浏览器支持)。

session.serialize_handler string

session.serialize_handler 定义用来序列化/解序列化的处理器名字。 当前支持 PHP 序列化格式 (名为 php_serialize)、 PHP PHP 内部格式 (名为 php 及 php_binary) 和 WDDX (名为 wddx)。 如果 PHP 编译时加入了 WDDX 支持,则只能用 WDDX。 自 PHP 5.5.4 起可以使用 php_serialize。 php_serialize 在内部简单地直接使用 serialize/unserialize 函数,并且不会有 php 和 php_binary 所具有的限制。 使用较旧的序列化处理器导致 $_SESSION 的索引既不能是数字也不能包含特殊字符(| and !) 。 使用 php_serialize 避免脚本退出时,数字及特殊字符索引导致出错。 默认使用 php。

session.gc_probability integer

session.gc_probability 与 session.gc_divisor 合起来用来管理 gc(garbage collection 垃圾回收)进程启动的概率。默认为 1。

session.gc_divisor integer

session.gc_divisor 与 session.gc_probability 合起来定义了在每个会话初始化时启动 gc(garbage collection 垃圾回收)进程的概率。此概率用 gc_probability/gc_divisor 计算得来。例如 1/100 意味着在每个请求中有 1% 的概率启动 gc 进程。 将此值增加到1000会给你0.1%的几率gc将运行任何给出的请求。 对于大批量生产服务器,这是一个更有效的方法。

session.gc_maxlifetime integer

session.gc_maxlifetime integer 指定过了多少秒之后数据就会被视为“垃圾”并被清除。 垃圾搜集可能会在 session 启动的时候开始( 取决于session.gc_probability 和 session.gc_divisor)。
Note:如果不同的脚本具有不同的 session.gc_maxlifetime 数值但是共享了同一个地方存储会话数据,则具有最小数值的脚本会清理数据。此情况下,与 session.save_path 一起使用本指令。

session.referer_check string

session.referer_check 包含有用来检查每个 HTTP Referer 的子串。如果客户端发送了 Referer 信息但是在其中并未找到该子串,则嵌入的会话 ID 会被标记为无效。默认为空字符串。

session.entropy_length integer

session.entropy_length 指定了从上面的文件中读取的字节数。默认为 0(禁用)。

session.entropy_file string

session.entropy_file 给出了一个到外部资源(文件)的路径,该资源将在会话 ID 创建进程中被用作附加的熵值资源。例如在许多 Unix 系统下都可以用 /dev/random 或 /dev/urandom。 在 Windows 上自 PHP 5.3.3 起加入了此功能。 设置 session.entropy_length 为非零的值将使 PHP 使用 Windows Random API 作为熵值源。
Note: 自 PHP 5.4.0 起,默认情况下, session.entropy_file 在 /dev/urandom 或 /dev/arandom 可用的时候使用它们。 在 PHP 5.3.0 中此指令默认留空。

session.cache_limiter string

session.cache_limiter 指定会话页面所使用的缓冲控制方法(none/nocache/private/private_no_expire/public)。默认为 nocache。

session.cache_expire integer

session.cache_expire 以分钟数指定缓冲的会话页面的存活期,此设定对 nocache 缓冲控制方法无效。默认为 180。

session.use_trans_sid boolean

session.use_trans_sid 指定是否启用透明 SID 支持。默认为 0(禁用)。
Note: 基于 URL 的会话管理比基于 cookie 的会话管理有更多安全风险。例如用户有可能通过 email 将一个包含有效的会话 ID 的 URL 发给他的朋友,或者用户总是有可能在收藏夹中存有一个包含会话 ID 的 URL 来以同样的会话 ID 去访问站点。

session.hash_function mixed

session.hash_function 允许用户指定生成会话 ID 的散列算法。'0' 表示 MD5(128 位),'1' 表示 SHA-1(160 位)。

session.hash_bits_per_character integer

session.hash_bits_per_character 允许用户定义将二进制散列数据转换为可读的格式时每个字符存放多少个比特。可能值为 '4'(0-9,a-f),'5'(0-9,a-v),以及 '6'(0-9,a-z,A-Z,"-",",")。

url_rewriter.tags string

url_rewriter.tags 指定在使用透明 SID 支持时哪些 HTML 标记会被修改以加入会话 ID。默认为 a=href,area=href,frame=src,input=src,form=fakeentry,fieldset=。
Note: 如果要符合 XHTML,去掉 form 项并在表单字段前后加上 <fieldset> 标记。

session.upload_progress.enabled boolean

启用上传进度跟踪,填充$ _SESSION变量。 默认为1,启用。

session.upload_progress.cleanup boolean

在读取所有POST数据(即上传完成)后立即清理进度信息。 默认为1,启用。
Note:强烈建议保持此功能启用。

session.upload_progress.prefix string

用于$ _SESSION中上传进度键的前缀。此键将与$ _POST [ini_get(“session.upload_progress.name”)]的值连接以提供唯一索引。 默认为“upload_progress_”。

session.upload_progress.name string

在$ _SESSION中用于存储进度信息的密钥的名称。 另请参见session.upload_progress.prefix。 如果$ _POST [ini_get(“session.upload_progress.name”)]未通过或可用,将不会记录上传进度。 默认为“PHP_SESSION_UPLOAD_PROGRESS”。

session.upload_progress.freq mixed

定义应更新上传进度信息的频率。 这可以以字节(即“每100字节后更新进度信息”)或百分比(即“在每1%的整个文件大小接收后更新进度信息”)来定义。 默认为“1%”。

session.upload_progress.min_freq integer

更新之间的最小延迟(以秒为单位)。 默认为“1”(一秒)。

Assertion

assert.active boolean

激活 assert() 断言评测。

assert.warning boolean

为每个失败的断言产生一条 PHP 警告信息

assert.bail boolean

失败的断言将中止脚本。

assert.callback string

失败的断言将调用用户的函数

assert.quiet_eval boolean

在 断言表达式执行时 error_reporting() 使用当前的设置。 如果启用了,在执行时错误将不会被显示(隐式的 error_reporting(0))。 如果禁用了,错误将根据 error_reporting() 的设置来显示。

COM

com.typelib_file

设置时,应保存包含应在启动时加载的类型库列表的文件的路径。 文件的每一行都将被当作类型库名称加载,就像你调用com_load_typelib()一样。 常量将被持久注册,因此库只需要加载一次。 如果类型库名称以字符串#cis或#case_insensitive结尾,那么该库中的常量将不区分大小写。

com.allow_dcom = true

如果打开此选项,PHP 将被允许以一个 D-COM(Distributed COM)客户方式操作并允许 PHP 脚本在远程服务器上实例化 COM 对象。

com.autoregister_typelib = true

当这被打开时,PHP将尝试从它实例化的对象的类型库中注册常量,如果这些对象实现获得该信息所需的接口。 其寄存器的常量的大小写是由配置指令控制的。

com.autoregister_casesensitive = false

当打开(默认)时,在自动加载类型库中找到的常量将被敏感地注册。

com.autoregister_verbose = true

显示重复常量注册的警告

com.code_page=

将字符串传递到COM对象或从COM对象传递字符串时使用的默认字符集代码页。

mbstring

mbstring.language string

mbstring 使用了国家默认语言设置(NLS)。 注意,该选项自动地定义了 mbstring.internal_encoding 和 mbstring.internal_encoding,在 php.ini 里应当放置在 mbstring.language 之后。

mbstring.internal_encoding string

定义内部字符的默认编码。PHP 5.6 及更新版的用户应该将此选项留空,并设置 default_charset 作为代替。

mbstring.http_input string

定义 HTTP 输入字符的默认编码。PHP 5.6 及更新版的用户应该将此选项留空,并设置 default_charset 作为代替。

mbstring.http_output string

定义 HTTP 输出字符的默认编码。PHP 5.6 及更新版的用户应该将此选项留空,并设置 default_charset 作为代替。

mbstring.encoding_translation boolean

为传入的 HTTP 查询启用透明字符编码过滤器,将检测和转换输入的编码为内部字符编码(internal character encoding)。

mbstring.detect_order string

定义字符编码的默认检测顺序。

mbstring.substitute_character string

为无效编码的字符定义替代字符。

mbstring.func_overload string

用 mbstring 对应的函数覆盖单字节版本的函数集。该设置仅能通过 php.ini 文件来修改。

mbstring.strict_detection boolean

使用严格的编码检测。

mbstring.http_output_conv_mimetype=

此伪指令指定激活mb_output_handler()的内容类型的正则表达式模式。

gd

gd.jpeg_ignore_warning bool

告诉jpeg decode忽略警告并尝试创建gd图像。 该警告将显示为通知默认情况下禁用

exif

exif.encode_unicode string

exif.encode_unicode 定义了 UNICODE 用户注释被处理的字符集。默认为 ISO-8859-15,可用于大多数非亚洲国家。本设置可以为空或者必须为一个 mbstring 所支持的编码。如果为空,则使用当前 mbstring 内部使用的编码。

exif.decode_unicode_motorola string

exif.decode_unicode_motorola 定义了 Unicode 编码的用户注释的图像内部字符集,如果图像是摩托罗拉字节顺序(big-endian)的话。本设置不能为空但可以指定一个 mbstring 支持的编码列表。默认为 UCS-2BE。

exif.decode_unicode_intel string

exif.decode_unicode_intel 定义了 Unicode 编码的用户注释的图像内部字符集,如果图像是英特尔字节顺序(little-endian)的话。本设置不能为空但可以指定一个 mbstring 支持的编码列表。默认为 UCS-2LE。

exif.encode_jis string

exif.encode_jis 定义了 JIS 用户注释被处理的字符集。默认为空值,迫使函数使用当前 mbstring 使用的内部编码。

exif.decode_jis_motorola string

exif.decode_jis_motorola 定义了 JIS 编码的用户注释的图像内部字符集,如果图像是摩托罗拉字节顺序(big-endian)的话。本设置不能为空但可以指定一个 mbstring 支持的编码列表。默认为 JIS。

exif.decode_jis_intel string

exif.decode_jis_intel 定义了 JIS 编码的用户注释的图像内部字符集,如果图像是英特尔字节顺序(litle-endian)的话。本设置不能为空但可以指定一个 mbstring 支持的编码列表。默认为 JIS。

Tidy

tidy.default_config string

使用tidy时要使用的默认整洁配置文件的路径。

tidy.clean_output boolean

通过Tidy打开/关闭输出修复。如果您正在生成非html内容,请不要使用此选项, 例如动态图像

soap

soap.wsdl_cache_enabled integer

启用或禁用WSDL缓存功能。

soap.wsdl_cache_dir string

设置SOAP扩展将放置缓存文件的目录名称。

soap.wsdl_cache_ttl integer

设置将使用缓存文件而不是原始文件的秒数(生存时间)。

soap.wsdl_cache_limit integer

内存中缓存的WSDL文件的最大数量。 将更多文件添加到完整内存缓存中将从中删除最旧的文件。

sysvshm

sysvshm.init_mem int

共享内存段的默认大小。

ldap

ldap.max_links

设置开放链接的最大数量,或-1为无限制。

mcrypt

mcrypt.algorithms_dir string

包含算法的目录。 默认情况向是 libmcrypt 的编译目录, 通常是 /usr/local/lib/libmcrypt。

mcrypt.modes_dir string

包含模式的目录。 默认情况向是 libmcrypt 的编译目录, 通常是 /usr/local/lib/libmcrypt。

opcache

opcache.enable boolean

启用操作码缓存。如果禁用此选项,则不会优化和缓存代码。 在运行期使用 ini_set() 函数只能禁用 opcache.enable 设置,不可以启用此设置。 如果在脚本中尝试启用此设置项会产生警告。

opcache.enable_cli boolean

仅针对 CLI 版本的 PHP 启用操作码缓存。 通常被用来测试和调试。

opcache.memory_consumption integer

OPcache 的共享内存大小,以兆字节为单位。

opcache.interned_strings_buffer integer

用来存储临时字符串的内存大小,以兆字节为单位。 PHP 5.3.0 之前的版本会忽略此配置指令。

opcache.max_accelerated_files integer

OPcache 哈希表中可存储的脚本文件数量上限。 真实的取值是在质数集合 { 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987 } 中找到的第一个比设置值大的质数。 设置值取值范围最小值是 200,最大值在 PHP 5.5.6 之前是 100000,PHP 5.5.6 及之后是 1000000。

opcache.max_wasted_percentage integer

浪费内存的上限,以百分比计。 如果达到此上限,那么 OPcache 将产生重新启动续发事件。

opcache.use_cwd boolean

如果启用,OPcache 将在哈希表的脚本键之后附加改脚本的工作目录, 以避免同名脚本冲突的问题。 禁用此选项可以提高性能,但是可能会导致应用崩溃。

opcache.validate_timestamps boolean

如果启用,那么 OPcache 会每隔 opcache.revalidate_freq 设定的秒数 检查脚本是否更新。 如果禁用此选项,你必须使用 opcache_reset() 或者 opcache_invalidate() 函数来手动重置 OPcache,也可以 通过重启 Web 服务器来使文件系统更改生效。

opcache.revalidate_freq integer

检查脚本时间戳是否有更新的周期,以秒为单位。 设置为 0 会导致针对每个请求, OPcache 都会检查脚本更新。如果 opcache.validate_timestamps 配置指令设置为禁用,那么此设置项将会被忽略。

opcache.revalidate_path boolean

如果禁用此选项,在同一个 include_path 已存在的缓存文件会被重用。 因此,将无法找到不在包含路径下的同名文件。

opcache.save_comments boolean

如果禁用,脚本文件中的注释内容将不会被包含到操作码缓存文件, 这样可以有效减小优化后的文件体积。 禁用此配置指令可能会导致一些依赖注释或注解的 应用或框架无法正常工作, 比如: Doctrine, Zend Framework 2 以及 PHPUnit。

opcache.load_comments boolean

如果禁用,则即使文件中包含注释,也不会加载这些注释内容。 本选项可以和 opcache.save_comments 一起使用,以实现按需加载注释内容。

opcache.fast_shutdown boolean

如果启用,则会使用快速停止续发事件。 所谓快速停止续发事件是指依赖 Zend 引擎的内存管理模块 一次释放全部请求变量的内存,而不是依次释放每一个已分配的内存块。

opcache.enable_file_override boolean

如果启用,则在调用函数 file_exists(), is_file() 以及 is_readable() 的时候, 都会检查操作码缓存,无论文件是否已经被缓存。 如果应用中包含检查 PHP 脚本存在性和可读性的功能,这样可以提升性能。 但是如果禁用了 opcache.validate_timestamps 选项, 可能存在返回过时数据的风险。

opcache.optimization_level integer

控制优化级别的二进制位掩码。

opcache.inherited_hack boolean

在 PHP 5.3 之前的版本,OPcache 会存储代码中使用 DECLARE_CLASS 操作码 来实现继承的位置。当文件被加载之后,OPcache 会尝试使用当前环境来绑定被继承的类。 由于当前脚本中可能并不需要 DECLARE_CLASS 操作码,如果这样的脚本需要对应的操作码被定义时, 可能无法运行。在 PHP 5.3 及后续版本中,此配置指令会被忽略。

opcache.dups_fix boolean

仅作为针对 “不可重定义类”错误的一种解决方案。

opcache.blacklist_filename string

OPcache 黑名单文件位置。黑名单文件为文本文件,包含了不进行预编译优化的文件名,每行一个文件名。 黑名单中的文件名可以使用通配符,也可以使用前缀。 此文件中以分号(;)开头的行将被视为注释。
简单的黑名单文件可能如下所示:

; 将特定文件加入到黑名单
/var/www/broken.php
; 以字符 x 文件打头的文件
/var/www/x
; 通配符匹配
/var/www/*-broken.php

opcache.max_file_size integer

以字节为单位的缓存的文件大小上限。设置为 0 表示缓存全部文件。

opcache.consistency_checks integer

如果是非 0 值,OPcache 将会每隔 N 次请求检查缓存校验和。 N 即为此配置指令的设置值。 由于此选项对于性能有较大影响,请尽在调试环境使用。

opcache.force_restart_timeout integer

如果缓存处于非激活状态,等待多少秒之后计划重启。 如果超出了设定时间,则 OPcache 模块将杀除持有缓存锁的进程, 并进行重启。如果选项 opcache.log_verbosity_level 设置为 3 或者 3 以上的数值,当发生重启时将在日志中记录一条错误信息。

opcache.error_log string

OPcache 模块的错误日志文件。 如果留空,则视为 stderr, 错误日志将被送往标准错误输出 (通常情况下是 Web 服务器的错误日志文件)。

opcache.log_verbosity_level integer

OPcache 模块的日志级别。 默认情况下,仅有致命级别(0)及错误级别(1)的日志会被记录。 其他可用的级别有:警告(2),信息(3)和调试(4)。

opcache.preferred_memory_model string

OPcache 首选的内存模块。 如果留空,OPcache 会选择适用的模块, 通常情况下,自动选择就可以满足需求。可选值包括: mmap,shm, posix 以及 win32。

opcache.protect_memory boolean

保护共享内存,以避免执行脚本时发生非预期的写入。 仅用于内部调试。

opcache.mmap_base string

在 Windows 平台上共享内存段的基地址。 所有的 PHP 进程都将共享内存映射到同样的地址空间。 使用此配置指令避免“无法重新附加到基地址”的错误。

opcache.restrict_api string

仅允许路径是以指定字符串开始的 PHP 脚本调用 OPcache API 函数。 默认值为空字符串 "",表示不做限制。

php 缓存

在php中缓存类的扩展有:Zend Opcacha、APC、xcahce等,但是目前的趋势是官方已经把Zend Opcache包含在php5.5中,只要在编译的过程中启用就可以了。而剩下的扩展基本上很少更新了。所以在php缓存上尽量选择官方维护的。对于APC则可以参考官网:APC.

下面是影响PHP行为的扩展连接:http://php.net/manual/zh/refs.basic.php.php

推荐的Opcache 配置

opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

你也可以禁用 opcache.save_comments 并且启用 opcache.enable_file_override。 需要提醒的是,在生产环境中使用上述配置之前,必须经过严格测试。 因为上述配置存在一个已知问题,它会引发一些框架和应用的异常, 尤其是在存在文档使用了备注注解的时候。

说明:资料翻译大部分是由php官网提供,这里的总结只是让自己学习查询更加方便!

原文地址:https://www.cnblogs.com/cuchadanfan/p/6163970.html