介绍PHP.ini中文配置说明,希望有需要了解php.ini配置文件的同学不防进入参考。
php.ini中文配置说明
警告:此配置文件是对于新安装的PHP的默认设置.默认情况下,PHP使用此配置文件安装,此配置针对开发目的,并且*不是*针对生产环境,基于一些安全方面的考虑,在你的网站上线之前,请考虑使用php.ini-recommended,以及在线文档 http://php.net/manual/en/security.php.
关于 php.ini
此文件控制了PHP行为的很多方面.为了让PHP能够读取它,必须命名为 'php.ini'.PHP 在其当前工作目录,由PHPRC环境变量指定目录,以及由编译时指定的目录(按此顺序)查找此文件,在Windows环境下, 编译时目录是Windows目录.在命令行模式下查找php.ini的目录可以被-c参数覆盖.此文件的语法非常简单.空行和由分号开始的行会被忽略(你可能已经猜到了). 段的开头(例如 [Foo]) 同样会被悄悄忽略,即使在将来他们可能会有其他作用.
使用以下语法来设定指令:
directive = value 指令 = 值
指令名称是 *大小写敏感* - foo=bar 和 FOO=bar 是不同的.值可以是字符串,数值,PHP常量 (例如 E_ALL 和 M_PI), INI 常量 (On, Off, True, False, Yes, No 和 None) 或者一个表达式 (例如 E_ALL & ~E_NOTICE), 或者带引号的字串 ("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, 或者如果你删除了这些行, 就和内建的默认值一样).
语言选项
打开在Apache下的PHP脚本语言引擎 engine = On
打开Zend Engine兼容模式(PHP 4.x) zend.ze1_compatibility_mode = Off
允许标签被认为是PHP脚本.
注意: 尽可能避免在开发可重新发布的程序或者库的时候使用简略标签,或者在不受你控制的服务器下发布,因为简略标签可能不被目标服务器支持.为了可移植性, 可重新发布的代码, 请不要使用简略标签 short_open_tag = On 使用ASP风格 <% %> 标签.asp_tags = Off
浮点数中数值的有效位数(浮点数精度). precision = 12,强制2000年兼容 (可能引起不兼容浏览器的问题) y2k_compliance = On 输出缓冲允许在你发送了body内容之后发送header(包括 cookies) ,代价是稍稍减缓了PHP输出层,你可以在运行时调用 output buffering 函数来打开此功能,你也可以将此指令设置为On来对所有文件打开输出缓冲 ,如果你想将这个缓冲区限制到特定大小 - 你可以使用最大的字节数来代替'On',来作为这个指令的参数 (例如 output_buffering=4096).
output_buffering = Off
你可以将所有你脚本输出的内容重定向到指定函数.例如, 如果你设置 output_handler 到 "mb_output_handler",字符编码会被转换成为指定的编码..设置任何的输出处理句柄会自动打开输出缓冲.
注意: 如果想编写可移植脚本就不要依赖此INI配置,取而代之的是, 明确的使用 ob_start() 来设置输出处理句柄.使用此ini指令可能引起问题,除非你很清楚的理解脚本正在做什么.
注意: 你不能同时使用 "mb_output_handler" 和 "ob_iconv_handler",并且你不能同时使用 "ob_gzhandler" 和 "zlib.output_compression".
注意: 如果使用zlib.output_handler指令开启zlib输出压缩, 该指令必须为空.output_handler =
使用zlib库对输出进行压缩
对此选项的有效值是 'off', 'on', 或者字节数 (用来压缩的缓冲大小 , 默认是 4KB)
注意:结果的chunk大小可能由于压缩对象的大小而不同.PHP输出块的大小一般压缩之后每个大小时几百个字节.如果你希望藉由一个大块的堆大小来获取更好的性能, 需要额外的打开 output_buffering 选项.
注意:你必须使用 zlib.output_handler 来替代标准的
output_handler, 否则输出可能会有问题.
zlib.output_compression = Off
zlib.output_compression_level = -1
这里激活 zlib.output_compression 之后,你无法再指定额外的输出处理.这个设置和 output_handler 一样,但是处理顺序不同.
zlib.output_handler =
立即刷新告知 PHP 让输出层在每次输出块之后立刻自动刷新.这和每次调用print()或者echo()函数以及任何一种HTML块后调用flush()一样.打开此选项会严重导致性能下降,一般只有用于调试情况下才建议打开.
implicit_flush = Off
如果反序列器找到一个可以作为示例的未定义类.未序列化的回调函数会被调用(使用未定义的类名作为参数),如果特定的函数未被定义或者如果此函数没有包含/实现丢失的类,则会发生一个警告.如果只有你真想要实现类似的回调函数,才设定此入口.
unserialize_callback_func=
当浮点和双精度被序列化后,浮点号后由 serialize_precision 指定存储精确度的有效位数.默认值是当浮点数被反序列解码后,数值仍旧相同.
serialize_precision = 100
是否打开强制通过引用传递参数给函数,此方法被反对并且很有可能在未来版本的PHP/Zend中不再被支持.被孤立的指定的方法是参数应该在函数被声明的时候按照引用传入.你被鼓励来尝试上述方法并关闭此选项来确保你脚本在今后的新版本中仍旧可以正常工作 ( 每次你使用此特性的时候会受到一个警告,并且参数会传值而不是传引用).
allow_call_time_pass_reference = On
安全模式
safe_mode = Off
默认情况下,安全模式在打开文件时,使用UID来比对检测.如果你只想使用GID做宽松的比对,打开 safe_mode_gid.
safe_mode_gid = Off
当 safe_mode 被打开, 此目录下包含的文件和子文件夹的UID/GID 检测会被绕过.(目录必须在 include_path 中存在或者必须在包含时使用全路径)
safe_mode_include_dir =
当 safe_mode 被打开, 只有在 safe_mode_exec_dir 中定义的可执行文件能够通过exec函数组打开执行.
safe_mode_exec_dir =
设定某些的环境变量可能成为潜在的安全隐患.此指令包含一个逗号分隔的前导列表. 在安全模式中, 用户可能只能改变符合这里所给出前导字符的变量.默认情况下,用户只能改变以PHP_开头的变量(例如. PHP_FOO=BAR).
注意: 如果此指令为空, PHP会允许用户修改任何环境变量!
safe_mode_allowed_env_vars = PHP_
此指令包含了一个用逗号分隔的环境变量列表, 用户无法通过 putenv() 函数来修改列表中的环境变量.这些变量即便已经在 safe_mode_allowed_env_vars 所设定的列表中,也会被被保护不允许修改.
safe_mode_protected_env_vars = LD_LIBRARY_PATH
如果设置了open_basedir, 将会限制文件操作只能是此指令下的目录和子目录.此指令对于每目录或者每虚拟主机配置文件最有意义. 此指令* 不会 *受安全模式开或者关的影响.
open_basedir =
此指令允许你为了安全原因关闭指定的函数.它接受以逗号分隔的函数名的列表.此指令* 不会 *受安全模式开或者关的影响.
disable_functions =
此指令允许你由于安全原因关闭指定的类.它接受以逗号分隔的类名的列表.此指令* 不会 *受安全模式开或者关的影响.
disable_classes =
语法高亮模式的色彩. 任何在中可接受的值都可以使用.
highlight.string = #DD0000
highlight.comment = #FF9900
highlight.keyword = #007700
highlight.bg = #FFFFFF
highlight.default = #0000BB
highlight.html = #000000
如果打开, 即便用户放弃了的请求也会被执行完成.在执行可能被用户打断或者浏览器超时所中断的请求时打开此选项.
ignore_user_abort = On
指定PHP使用的实际路径的缓冲. 对于PHP打开很多文件来处理很多文件操作的系统上,应该增加此值.
realpath_cache_size=16k
对于给定文件或者目录的缓冲真实路径信息的缓冲保留秒数. 对于很少修改文件的系统可以考虑增加此值.
realpath_cache_ttl=120
其他
考虑到PHP可能被其所安装的服务器上暴露的事实(例如. 被web服务器作为头部信息的签名).任何情况下这虽然不是安全威胁, 仍有可能暴露在你的服务器上是否正在使用PHP.
expose_php = On
资源限制
每个脚本最大执行秒数:max_execution_time = 30
每个脚本用来分析请求数据的最大时间:max_input_time = 60
最大输入变量的嵌套级别:max_input_nesting_level = 64
每个脚本能够使用的最大内存数量 (128MB):memory_limit = 128M
错误处理和记录
错误报告时一个位.对每一个数值取或可以得到最终的报告级别
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
打印输出错误 (作为输出的一部分).对于生产环境的网站来说,强烈建议你关闭此选项, 使用错误日志来替代 (详情参考下面内容).在一个生产环境下的web站点打开display_errors可能泄漏安全信息给最终用户, 例如web服务器的文件路径,你数据库的结构或者其他信息.
display_errors可用的值:
Off - 不显示任何错误信息
stderr - 将错误信息输出到STDERR (只有 CGI/CLI 格式下有效!)
display_errors = "stderr"
stdout (On) - 输出错误信息到STDOUT上
display_errors = On
即使 display_errors 打开后,PHP启动序列中发生的错误也不会显示.强烈建议你保持 display_startup_errors 关闭状态, 除非在排错
display_startup_errors = Off
将错误输入到日志文件 (服务器指定的log,stderr或者error_log (以下指定)),和上面提到的一样, 强烈建议你在生产环境的web站点下使用错误日志来代替错误显示.
log_errors = Off
设定log_errors的最大长度. 在 error_log 关于源的信息也计算在内.默认是1024, 设置为0可以不限制任何最大长度.
log_errors_max_len = 1024
不要记录重复的信息.必须出现在同样文件的相同行之中的才被认为是重复信息,除非 ignore_repeated_source 被设为 true.
ignore_repeated_errors = Off
当忽略重复消息时忽略消息的来源. 当此设置打开后,不再记录来自不同文件或者不同行的相同消息.
ignore_repeated_source = Off
如果此选项被设置为 Off, 那么内存泄漏不会被显示 (不论在stdout还是在日志中). 此项仅在debug编译模式下有效, 并且错误报告需要包含 E_WARNING
report_memleaks = On report_zend_debug = 0
在$php_errormsg中保存最后一次错误/警告消息 (逻辑值).
track_errors = Off
关闭在错误信息中所包含的HTML标签.注意:永远不要再生产环境中使用此特性.
html_errors = Off
如果html_errors 设置为On, 则PHP产生可点击的错误信息,点击后会跳转到描述此错误或者引起此错误的函数具体信息的页面.你可以从 http://www.php.net/docs.php 下载一份PHP手册的副本,并且将 docref_root指向你放置本地拷贝的以'/'开头的,你同时必须指定文件文件的包含点的扩展名,注意: 永远不要再生产环境中使用此特性.
(责任编辑:最模板) |