php.ini配置详解(1)
2014-08-11 11:11
106 查看
;************************以下这部分是php.ini-recommended中的内容*****************************
*******************************************************************************************
;[php 5.0.4 php.ini-recommended]
;;;;;;;;;;;;;;;;;
;;关于这个文件 ;;
;;;;;;;;;;;;;;;;;
; 这个版本是推荐使用的、PHP5风格的php.ini版本。
; 这个版本使用了一些非标准设置,目的是使PHP更加高效、安全,鼓励更加整洁的代码
; 代价是可能与某些程序不兼容,并给开发带来难度。我们鼓励在正式发布网站时使用这个配置。
; 所有与默认不同的设置都有明显的注明,你可以决定是否使用与默认不同的设置。
; 有关php.ini的普通说明请参考php安装文件夹下的php.ini-dist文件。
; 这个文件和php.ini-dist不同,有些参数的设置改变了,这样做是为了提高性能和保障安全。
; 请确认你阅读了不同之处,并且修改过你的脚本,再采用这个版本的配置文件。
;-----------------------------------------------------------------
;-> register_globals = Off [安全,性能]
; 不再为输入数据注册全局变量(POST, GET, cookies, 环境变量, 服务器变量)
; 不要使用$foo,而要使用$_REQUEST["foo"](包含任何通过请求传送的数据,即:POST, GET, cookies, 环境变量, 服务器变量
),
; 或使用指定的$_GET["foo"], $_POST["foo"], $_COOKIE["foo"], $_FILES["foo"](不包含在$_REQUEST数组中), 这取决于请求
来自何处。
; 同时,你可以查看import_request_variables()函数(将 GET/POST/Cookie 变量导入到全局作用域中)。
; 注意,register_globals将在下一个版本中被废除(默认关闭),因为它总是带来太多的安全问题。
; 请参考 http://php.net/manual/en/security.registerglobals.php 以获得更多信息。
;
;-> register_long_arrays = Off [性能]
; 禁用旧式的长式预定义数组($HTTP_*_VARS),取而代之以短式预定义超全局数组。
;
;-> display_errors = Off [安全]
; 关闭这个特性,脚本执行期间的错误/警告将不会显示输出,这样就不会将敏感信息暴露给远端用户。
; 一些错误/警告信息会暴露可能被攻击者利用的脚本信息、服务器信息、数据库信息。
; 正式发布网站时应当关闭这个特性。
;
;-> log_errors = On [安全]
; 这个指令是上一个指令的补充。
; 脚本执行期间的错误将被记录到日志文件中(比如系统日志),可以有几种不同的配置方法。
; 配合将"display_errors"关闭,这个设置可以让你明白那里出了问题,而不会暴露任何敏感信息给远端用户。
;
;-> output_buffering = 4096 [性能]
; 设置一个4K的输出缓冲。请用输出缓存可以减少写入动作,有时还能减少传输数据包的大小,这些都有助于提高性能。
; 这个参数的实际收益取很大程度上取决于你使用的是什么Web服务器,使用的是什么样的脚本。
;
;-> register_argc_argv = Off [性能]
; 禁止注册有些多余的$argv和$argc全局变量
;
;-> magic_quotes_gpc = Off [性能]
; 不将输入的数据用反斜杠进行转义,以便发送给数据库时不需要更多的处理。
; 事实上,你应该对每一个发送到数据库的输入数据使用addslashes()函数。
;
;-> variables_order = "GPCS" [性能]
; 使得$_ENV数组中的环境变量不再杂乱无章。
; 你应当使用getenv()函数存取环境变量。
;
;-> error_reporting = E_ALL [代码清洁,安全(?)]
; 默认情况下,PHP错误报告等级是E_NOTICE
; E_ALL表示报告所有非致命错误,因为这些错误可能会导致大问题(比如使用了未定义的变量)。
;
;-> allow_call_time_pass_reference = Off [代码清洁]
; 禁止默认将函数的参数按引用传递。
; PHP4/5风格的处理办法是在函数声明时指定按引用传递。
;************************以下这部分是php.ini-recommended中的内容*****************************
*******************************************************************************************
;[php 5.0.4 php.ini-recommended]
;;;;;;;;;;;;;;;;;
;;关于这个文件 ;;
;;;;;;;;;;;;;;;;;
; 这个版本是推荐使用的、PHP5风格的php.ini版本。
; 这个版本使用了一些非标准设置,目的是使PHP更加高效、安全,鼓励更加整洁的代码
; 代价是可能与某些程序不兼容,并给开发带来难度。我们鼓励在正式发布网站时使用这个配置。
; 所有与默认不同的设置都有明显的注明,你可以决定是否使用与默认不同的设置。
; 有关php.ini的普通说明请参考php安装文件夹下的php.ini-dist文件。
; 这个文件和php.ini-dist不同,有些参数的设置改变了,这样做是为了提高性能和保障安全。
; 请确认你阅读了不同之处,并且修改过你的脚本,再采用这个版本的配置文件。
;-----------------------------------------------------------------
;-> register_globals = Off [安全,性能]
; 不再为输入数据注册全局变量(POST, GET, cookies, 环境变量, 服务器变量)
; 不要使用$foo,而要使用$_REQUEST["foo"](包含任何通过请求传送的数据,即:POST, GET, cookies, 环境变量, 服务器变量
),
; 或使用指定的$_GET["foo"], $_POST["foo"], $_COOKIE["foo"], $_FILES["foo"](不包含在$_REQUEST数组中), 这取决于请求
来自何处。
; 同时,你可以查看import_request_variables()函数(将 GET/POST/Cookie 变量导入到全局作用域中)。
; 注意,register_globals将在下一个版本中被废除(默认关闭),因为它总是带来太多的安全问题。
; 请参考 http://php.net/manual/en/security.registerglobals.php 以获得更多信息。
;
;-> register_long_arrays = Off [性能]
; 禁用旧式的长式预定义数组($HTTP_*_VARS),取而代之以短式预定义超全局数组。
;
;-> display_errors = Off [安全]
; 关闭这个特性,脚本执行期间的错误/警告将不会显示输出,这样就不会将敏感信息暴露给远端用户。
; 一些错误/警告信息会暴露可能被攻击者利用的脚本信息、服务器信息、数据库信息。
; 正式发布网站时应当关闭这个特性。
;
;-> log_errors = On [安全]
; 这个指令是上一个指令的补充。
; 脚本执行期间的错误将被记录到日志文件中(比如系统日志),可以有几种不同的配置方法。
; 配合将"display_errors"关闭,这个设置可以让你明白那里出了问题,而不会暴露任何敏感信息给远端用户。
;
;-> output_buffering = 4096 [性能]
; 设置一个4K的输出缓冲。请用输出缓存可以减少写入动作,有时还能减少传输数据包的大小,这些都有助于提高性能。
; 这个参数的实际收益取很大程度上取决于你使用的是什么Web服务器,使用的是什么样的脚本。
;
;-> register_argc_argv = Off [性能]
; 禁止注册有些多余的$argv和$argc全局变量
;
;-> magic_quotes_gpc = Off [性能]
; 不将输入的数据用反斜杠进行转义,以便发送给数据库时不需要更多的处理。
; 事实上,你应该对每一个发送到数据库的输入数据使用addslashes()函数。
;
;-> variables_order = "GPCS" [性能]
; 使得$_ENV数组中的环境变量不再杂乱无章。
; 你应当使用getenv()函数存取环境变量。
;
;-> error_reporting = E_ALL [代码清洁,安全(?)]
; 默认情况下,PHP错误报告等级是E_NOTICE
; E_ALL表示报告所有非致命错误,因为这些错误可能会导致大问题(比如使用了未定义的变量)。
;
;-> allow_call_time_pass_reference = Off [代码清洁]
; 禁止默认将函数的参数按引用传递。
; PHP4/5风格的处理办法是在函数声明时指定按引用传递。
;**************以下这部分是php.ini-dist的内容,但是包含了与php.ini-recommended的不同之处******** ********************************************************************************************** [PHP 5.0.4 php.ini-dist] ;;;;;;;;;; ;; 警告 ;; ;;;;;;;;;; ; 这是PHP新安装时的默认设置。默认设置适合于开发但是不适合正式应用。 ; 出于安全方面考虑,请在发布正式应用程序时使用php.ini-recommended ; 并且参考如下页面:http://php.net/manual/en/security.php ;;;;;;;;;;;;;;;;;;; ;; 关于 php.ini ;; ;;;;;;;;;;;;;;;;;;; ; 这个文件控制了PHP许多方面的性能和行为。 为了让PHP正确读取这个文件, ; 它必须被命名为'php.ini'。PHP将按照如下顺序依次查找该文件: ; 1.当前工作目录;2.环境变量PHPRC指明的路径;3.编译时指定的路径。 ; 在windows下,编译时的路径是Windows的安装目录(C:WINDOWS等)。 ; 在命令行模式下,php.ini的查找路径可以用 -c 参数指定。 ; ; 该文件的语法非常简单。空白字符(" ","/t",...)和用分号(";")开始的行被简单地忽略。 ; 章节标题(例如 : [php])也被简单地忽略,即使将来它们可能有某种意义。 ; ; 设置格式如下: ; directive = value ; 指令标识符(directive) 是大小写敏感的! "foo=bar" 不同于 "FOO = bar"。 ; 值(value)可以是: ; 1.一个字符串、2.一个数字、3.一个 PHP常量(如:E_ALL, M_PI)、 ; 4.一个INI常量(On, Off, True, False, Yes, No, None)、 ; 5.一个表达式(如:E_ALL & ~E_NOTICE)、 ; 6.用引号括起来的字符串("foo"). ; ; INI文件中的表达式仅限于使用位运算符/逻辑非/小括号。 ; | 位或 ; & 位与 ; ~ 位非 ; ! 逻辑非 ; ; 布尔标志可用 1, On, True, Yes 打开,亦可用 0, Off, False, No 关闭。 ; ; 一个空字符串可以用在等号后不写任何东西表示,或者用 none 关键字,举例如下: ; foo = 将foo置为空字符串 ; foo = none 将foo置为空字符串 ; foo = "none" 将foo置为字符串'none' ; ; 如果你在值设置中使用常量,而这些常量属于动态扩展(PHP扩展或Zend扩展) ; 那么你只能在调入这些动态扩展的行之后使用这些常量。 ; ; 所有在 php.ini-dist 文件里设定的值与内建的默认值相同。 ; 也就是说,如果 php.ini 不存在,或者你删掉了某些行,默认值与之相同。 ;;;;;;;;;;;;;;; ;;; 语言选项 ;; ;;;;;;;;;;;;;;; engine = On ; 使PHP脚本语言引擎在Apache下有效。 zend.ze1_compatibility_mode = Off ; 允许使用兼容Zend引擎1(PHP 4.x)的模式 short_open_tag = On ; 允许 "<?...?>" 短标识,否则只有"<?php...?>"和"<script>...</script>"才能被识别。 ; 注意:除非你的php程序只供自己使用,否则请不要使用短标记。 ; 如果要和XML结合使用PHP,你可以选择禁用此选项以方便直接嵌入使用 <?xml ?>, ; 不然你必须用PHP来输出:<? echo '<?xml version="1.0"'; ?> ; 本指令也会影响到缩写形式 <?=,它和 <? echo 等价,要使用此缩写必须允许短标识。 asp_tags = Off ; 是否允许ASP风格的标记"<% %>",这也会影响到缩写形式:<%= $value %> precision = 12 ;[recommended]->precision = 14 ; 浮点型数据显示的有效位数 y2k_compliance = On ; 强制打开2000年适应 (可能在非Y2K适应的浏览器中导致问题) output_buffering = Off ;[recommended]->output_buffering = 4096 ; 输出缓存允许你甚至在输出正文内容之后发送http头(包括cookies)。 ; 其代价是输出层减慢一点点速度。 ; 你可以在运行期间通过调用输出缓冲函数启用输出缓存。 ; 你还可以通过设置"output_buffering=On"来为所有文件启用输出缓存(默认4096)。 ; 如果你想指定缓冲区的最大字节数,你可以直接将"On"替换成数字, ; 比如:"output_buffering=4096"指定了缓存上限为4096字节。 ;output_handler = ; 你可以将所有脚本输出重定向到一个输出处理函数。 ; 比如,重定向到"mb_output_handler"函数时,字符编码将被透明地转换为指定的编码。 ; 一旦你在这里指定了输出处理程序,"output_buffering"将被自动打开。 ; 注意1: 在编写可移植脚本的时候不能依赖这个指令,而应明确的调用ob_start()函数打开输出缓存 ; 使用这个指令可能会导致某些你不熟悉的脚本出错。 ; 注意2: 你不能同时使用"mb_output_handler"和"ob_iconv_handler" ; 你也不能同时使用"ob_gzhandler"和"zlib.output_compression" ; 注意3: 如果启用了zlib输出压缩,"output_handler"必须为空,取而代之,必须启用"zlib.output_handler"。 zlib.output_compression = Off ; 使用zlib库透明地压缩脚本输出结果。 ; 该指令的值可以设置为:Off/On/字节数(用来作为压缩缓冲区大小,默认为4KB) ; 如果在php.ini或者apache配置中打开这个功能,当浏览器发送"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"必须为空,取而代之,必须启用"zlib.output_handler"。 ;zlib.output_handler = ; 在打开"zlib.output_compression"指令的情况下,除这里以外,你不能另外指定输出处理程序。 ; 这个指令和"output_handler"起相同的作用,但是顺序不同。 implicit_flush = Off ; 这个指令告诉PHP输出层在每个输出块之后自动刷新自身数据。默认为 FALSE ; 这等效于在每个print()、echo()、HTML块之后自动调用flush()函数。 ; 打开这个选项对程序执行的性能有严重的影响,通常只推荐在调试时使用。 ; 在CLI SAPI的执行模式下,该标记默认为 TRUE 。 unserialize_callback_func= ; 如果解序列化程序需要实例化一个未定义类,该这里指定的回调函数将以该未定义类的名字作为参数被调用, ; 以免得到不完整的"__PHP_Incomplete_Class"对象。 ; 如果这里没有指定函数,或者指定的函数不包含(或实现)那个未定义的类,将会显示一条警告信息。 ; 只有在你真想执行这样一个回调函数的情况下,才需要指定该参数的值。 ; 可以通过 php.ini、ini_set() 或 .htaccess 定义"unserialize_callback_func"。 ; 若要禁止这个特性,只需置空此设定。 serialize_precision = 100 ; 将浮点型和双精度型数据序列化存储时,序列化精度指明了有效位数。 ; 默认值能够确保浮点型数据被解序列化程序解码时不会有数据丢失。 allow_call_time_pass_reference = On ;[recommended]->allow_call_time_pass_reference = Off ; 强迫函数调用时按引用传递参数。 ; php反对使用这一方法,并可能在将来版本的PHP/Zend里不再支持。 ; 鼓励的方法是在函数声明里指定哪些参数按引用传递。 ; 我们鼓励你尝试关闭这一选项并确认你的脚本仍能正常工作,以保证你的脚本在将来版本的语言里仍能正常工作。 ; (每次使用此特性都会收到一条警告:参数会被按值传递而不是按照引用传递) ;;;;;;;;;;;;;;
; 资源限制 ;; ;;;;;;;;;;;;;; max_execution_time = 30 ; 每个脚本最大允许执行时间, 按秒计。默认为30秒。 ; 这个参数有助于阻止劣质脚本无休止的占用服务器资源。 ; 注: "max_execution_time"仅影响脚本本身的运行时间。 ; 任何其它花费在脚本运行之外的时间,如用system()/sleep()函数的使用、数据库查询、文件上传等,都不包括在内。 ; 在安全模式下,你不能用ini_set()在运行时改变这个设置。 max_input_time = 60 ; 每个脚本接收输入数据的最大允许时间(POST, GET, upload), 按秒计 memory_limit = 8M ; 设定一个脚本所能够申请到的最大内存字节数。 ; 这有助于防止劣质脚本消耗完服务器上的所有内存。 ; 要使用此指令必须在编译的时候激活。 ; 因此 configure 一行中应该包括:--enable-memory-limit ; 如果不需要任何内存上的限制,必须将其设为 -1 ; 自php4.3.2 起,当设置了memory_limit后,memory_get_usage()函数将变为可用 ;;;;;;;;;;;;;;;;;;;; ;; 出错处理和日志 ;; ;;;;;;;;;;;;;;;;;;;; error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT ;[recommended]->error_reporting = E_ALL ; 显示所有的错误,除了提醒和编码标准化警告。 ; 错误报告是位字段。可以将数字加起来得到想要的错误报告等级。 ; E_ALL - 所有的错误和警告(不包括 E_STRICT) ; E_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_COMPILE_ERROR|E_ERROR|E_CORE_ERROR ; 仅显示错误 display_errors = On ;[recommended]->display_errors = Off ; 作为输出的一部分显示出错误信息 ; 在最终发布的web站点上,强烈建议你关掉这个特性,并使用错误日志代替(参看下面)。 ; 在最终发布的web站点打开这个特性可能暴露一些安全信息, ; 例如你的web服务上的文件路径、数据库规划或别的信息。 display_startup_errors = Off ; 即使"display_errors"特性被打开,关闭此参数也将不显示PHP启动时的错误。 ; 强烈建议你关掉这个特性,除非你必须要用于调试中。 log_errors = Off ;[recommended]->log_errors = On ; 在日志文件里记录错误(服务器指定的日志,stderr标准错误输出,或error_log(下面的)) ; 正如上面说明的那样,强烈建议你在最终发布的web站点时用日志记录错误而不是直接输出。 log_errors_max_len = 1024 ; 设置错误日志文件的最大长度。 ; 设为 0 可以允许无限长度。 ignore_repeated_errors = Off ; 忽略重复的错误信息 ; 如果关闭这个参数,错误信息必须出现在同一个文件的同一行才被忽略。 ; 如果打开这个参数,则没有这个限制。 ignore_repeated_source = Off ; 忽略重复的错误源 ; 忽略重复的错误信息时忽略重复的错误源 ; 如果打开这个参数,将不会记录不同的出错文件和对应行的错误信息。 report_memleaks = On ; 报告内存泄漏 ; 如果关闭该参数,将不记录或者显示内存泄漏 ; 这个参数只在调试编译中起作用,并且必须在错误报告中包含 E_WARNING track_errors = Off ; 保存最近一个错误/警告消息于变量$php_errormsg (boolean)中 ;html_errors = Off ; 禁用出错信息中的HTML标记 ; 注意: 不要在发布的程序中使用这个特性。 ;docref_root = "/phpmanual/" ;docref_ext = .html ; 如果打开了html_errors参数,PHP将会在出错信息上显示超连接, ; 直接链接到一个说明这个错误或者导致这个错误的函数的页面。 ; 你可以从http://www.php.net/docs.php下载php手册,并设置docref_root参数,将他指向你本地的手册所在目录。 ; 你还必须设置"docref_ext"来指定文件的扩展名。 ; 注意: 不要在发布的程序中使用这个特性。 ;error_prepend_string = "<font color=ff0000>" ; 用于错误信息前输出的字符串 ;error_append_string = "</font>" ; 用于错误信息后输出的字符串 ;error_log = filename ; 将错误日志记录到哪个文件中。 ; 如果设为"syslog", 错误日志将被记录到系统日志中(NT下的事件日志, Unix下的syslog(3)) ;;;;;;;;;;;;;; ;; 数据处理 ;; ;;;;;;;;;;;;;; ;arg_separator.output = "&" ; PHP所产生的URL中来分隔参数的分隔符。默认值是"&" ;arg_separator.input = ";&" ; PHP解析URL中的变量时使用的分隔符列表,默认值是"&" ; 注意: 字符串中的任何字符都将被看着分割符 variables_order = "EGPCS" ;[recommended]->variables_order = "GPCS" ; PHP注册 GET, POST, Cookie, Environment, Built-in 变量的顺序。 ; (以 G, P, C, E, S 表示,通常以 EGPCS 或 GPC 或 ES 的方式引用)。 ; 按从左到右记录,新值覆盖旧值。 ; 举例说,将其设为"GP",会导致 PHP 完全忽略环境变量、cookies 、server, ; 并用 GET 方法的变量覆盖 POST 方法的同名变量 register_globals = Off ; 是否将这些 EGPCS 变量注册为全局变量。自 PHP 4.2.0 开始,本指令默认为 off ; 例如,如果打开这个特性,那么URL:http://www.example.com/test.php?id=3 将产生 $id ; 或者从 $_SERVER['DOCUMENT_ROOT'] 得到 $DOCUMENT_ROOT 。 ; 如果你不想让脚本中的全局变量和用户输入的数据搞混的话,请关闭它。 ; 推荐使用PHP的预定义变量来替代,例如超全局变量:$_ENV,$_GET,$_POST,$_COOKIE 和 $_SERVER ; 请注意, register_globals不能在运行时设定(ini_set()),尽管在主机允许时可以用 .htaccess 来设置 ; 一个 .htaccess 项目的例子:php_flag register_globals on ; 注: register_globals 受 variables_order 指令的影响。 register_long_arrays = On ;[recommended]->register_long_arrays = Off ; 是否启用旧式的长式数组(HTTP_*_VARS),推荐关闭该特性以获得更好的性能。 register_argc_argv = On ;[recommended]->register_argc_argv = Off ; 是否声明 argv和argc 变量(其中包含用GET方法传来的数据) ; 【argv为变量数组,argc为变量数组中元素个数】 ; 若你不想使用这两个变量,应当关掉它以提高性能。 post_max_size = 8M ; PHP接受的POST数据最大长度。此设定也影响到文件上传。 ; 要上传大文件,该值必须大于"upload_max_filesize" ; 如果配置脚本中激活了内存限制,"memory_limit"也会影响文件上传。 ; 一般说来,"memory_limit"应该比"post_max_size"要大。
相关文章推荐
- PHP5下PHP.INI中SESSION配置详解教程
- PHP5.2的php.ini详解中文配置
- 基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
- php.ini 配置选项详解
- PHP.ini详解以及配置
- php.ini 配置详解
- PHP配置文件详解php.ini
- PHP.ini 安全相关配置详解
- PHP配置文件详解php.ini [转]
- php.ini 文件配置详解
- php配置文件php.ini中文说明详解
- php.ini中的php-5.2.0配置指令详解
- php.ini配置文件详解
- php.ini 配置详解
- PHP配置文件详解php.ini
- php.ini 配置详解
- php.ini 配置详解
- php.ini中的php-5.2.0配置指令详解
- php.ini配置文件详解
- PHP中php.ini 配置详解