php.ini中的php-5.2.0配置指令详解
程序员文章站
2022-05-18 10:18:33
;; 关于php.ini ;; 这个文件必须命名为'php.ini'并放置在httpd.conf中的phpinidir指令指定的目录中。...
;; 关于php.ini ;;
这个文件必须命名为'php.ini'并放置在httpd.conf中的phpinidir指令指定的目录中。
; 最新版本的php.ini可以在下面两个位置查看:
; http://cvs.php.net/viewvc.cgi/php-src/php.ini-recommended?view=co
; http://cvs.php.net/viewvc.cgi/php-src/php.ini-dist?view=co
;;;;;;;;;;;;
;; 语法 ;;
;;;;;;;;;;;;
; 该文件的语法非常简单。空白字符和以分号开始的行被简单地忽略。
; 章节标题(例如: [php])也被简单地忽略,即使将来它们可能有某种意义。
;
; 设置指令的格式如下:
; directive = value
; 指令名(directive)是大小写敏感的!所以"foo=bar"不同于"foo=bar"。
; 值(value)可以是:
; 1. 用引号界定的字符串(如:"foo")
; 2. 一个数字(整数或浮点数,如:0, 1, 34, -1, 33.55)
; 3. 一个php常量(如:e_all, m_pi)
; 4. 一个ini常量(on, off, none)
; 5. 一个表达式(如:e_all & ~e_notice)
;
; ini文件中的表达式仅使用:位运算符、逻辑非、圆括号:
; | 位或
; & 位与
; ~ 位非
; ! 逻辑非
;
; 布尔标志用 on 表示打开,用 off 表示关闭。
;
; 一个空字符串可以用在等号后不写任何东西表示,或者用 none 关键字:
; foo = ; 将foo设为空字符串
; foo = none ; 将foo设为空字符串
; foo = "none" ; 将foo设为字符串'none'
;
; 如果你在指令值中使用动态扩展(php扩展或zend扩展)中的常量,
; 那么你只能在加载这些动态扩展的指令行之后使用这些常量。
;;;;;;;;;;;;;;;;;;
;; httpd.conf ;;
;;;;;;;;;;;;;;;;;;
; 还可以在httpd.conf中覆盖php.ini的值,以进行更灵活的配置:
; php_value name value ;设置非bool型的指令,将value设为none则清除先前的设定
; php_flag name on|off ;仅用于设置bool型的指令
;
; php常量(如e_all)仅能在php.ini中使用,在httpd.conf中必须使用相应的掩码值。
; 带"sys"标志的指令只能在httpd.conf中的全局配置部分使用,
; 带"ini"标志的指令不能在httpd.conf中使用,它们仅能用于php.ini中。
;=========================================================================
;;====================配置指令详解========================================
;=========================================================================
; 以下每个指令的设定值都与 php-5.2.0 内建的默认值相同。
; 也就是说,如果'php.ini'不存在,或者你删掉了某些行,默认值与之相同。
;;;;;;;;;;;;;;
;; apache ;;
;;;;;;;;;;;;;;
[apache]
; 仅在将php作为apache模块时才有效。
engine = on
; 是否启用php解析引擎。
; 可以在httpd.conf中基于目录或者虚拟主机来打开或者关闭php解析引擎。
last_modified = off
; 是否在last-modified应答头中放置该php脚本的最后修改时间。
xbithack = off
; 是否不管文件结尾是什么,都作为php可执行位组来解析。
child_terminate = off
; php脚本在请求结束后是否允许使用apache_child_terminate()函数终止子进程。
; 该指令仅在unix平台上将php安装为apache1.3的模块时可用。其他情况下皆不存在。
;;;;;;;;;;;;;;;
;; php核心 ;;
;;;;;;;;;;;;;;;
[php-core-datetime]
; 前四个配置选项目前仅用于date_sunrise()和date_sunset()函数。
date.default_latitude = 31.7667
; 默认纬度
date.default_longitude = 35.2333
; 默认经度
date.sunrise_zenith = 90.583333
; 默认日出天顶
date.sunset_zenith = 90.583333
; 默认日落天顶
date.timezone =
; 未设定tz环境变量时用于所有日期和时间函数的默认时区。
; *应当使用"prc"
; 应用时区的优先顺序为:
; 1. 用date_default_timezone_set()函数设定的时区(如果设定了的话)
; 2. tz 环境变量(如果非空的话)
; 3. 该指令的值(如果设定了的话)
; 4. php自己推测(如果操作系统支持)
; 5. 如果以上都不成功,则使用 utc
[php-core-assert]
assert.active = on
; 是否启用assert()断言评估
assert.bail = off
; 是否在发生失败断言时中止脚本的执行
assert.callback =
; 发生失败断言时执行的回调函数
assert.quiet_eval = off
; 是否使用安静评估(不显示任何错误信息,相当于error_reporting=0)。
; 若关闭则在评估断言表达式的时候使用当前的error_reporting指令值。
assert.warning = on
; 是否对每个失败断言都发出警告
[php-core-safemode]
; 安全模式是为了解决共享服务器的安全问题而设立的。
; 但试图在php层解决这个问题在结构上是不合理的,
; 正确的做法应当是修改web服务器层和操作系统层。
; 因此在php6中废除了安全模式,并打算使用open_basedir指令取代之。
safe_mode = off
;sys
; 是否启用安全模式。
; 打开时,php将检查当前脚本的拥有者是否和被操作的文件的拥有者相同,
; 相同则允许操作,不同则拒绝操作。
safe_mode_gid = off
;sys
; 在安全模式下,默认在访问文件时会做uid比较检查。
; 但有些情况下严格的uid检查反而是不适合的,宽松的gid检查已经足够。
; 如果你想将其放宽到仅做gid比较,可以打开这个参数。
safe_mode_allowed_env_vars = "php_"
;sys
; 在安全模式下,用户仅可以更改的环境变量的前缀列表(逗号分隔)。
; 允许用户设置某些环境变量,可能会导致潜在的安全漏洞。
; 注意: 如果这一参数值为空,php将允许用户更改任意环境变量!
safe_mode_protected_env_vars = "ld_library_path"
;sys
; 在安全模式下,用户不能更改的环境变量列表(逗号分隔)。
; 这些变量即使在safe_mode_allowed_env_vars指令设置为允许的情况下也会得到保护。
safe_mode_exec_dir = "/usr/local/php/bin"
;sys
; 在安全模式下,只有该目录下的可执行程序才允许被执行系统程序的函数执行。
; 这些函数是:system, escapeshellarg, escapeshellcmd, exec, passthru,
; proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, shell_exec
safe_mode_include_dir =
;sys
; 在安全模式下,该组目录和其子目录下的文件被包含时,将跳过uid/gid检查。
; 换句话说,如果此处的值为空,任何uid/gid不符合的文件都不允许被包含。
; 这里设置的目录必须已经存在于include_path指令中或者用完整路径来包含。
; 多个目录之间用冒号(win下为分号)隔开。
; 指定的限制实际上是一个前缀,而非一个目录名,
; 也就是说"/dir/incl"将允许访问"/dir/include"和"/dir/incls"
; 如果您希望将访问控制在一个指定的目录,那么请在结尾加上斜线。
sql.safe_mode = off
;sys
; 是否使用sql安全模式。
; 如果打开,指定默认值的数据库连接函数将会使用这些默认值代替支持的参数。
; 对于每个不同数据库的连接函数,其默认值请参考相应的手册页面。
[php-core-safe]
allow_url_fopen = on
;ini
; 是否允许打开远程文件
allow_url_include = off
;sys
; 是否允许include/require远程文件。
disable_classes =
;ini
; 该指令接受一个用逗号分隔的类名列表,以禁用特定的类。
disable_functions =
;ini
; 该指令接受一个用逗号分隔的函数名列表,以禁用特定的函数。
enable_dl = on
;sys
; 是否允许使用dl()函数。dl()函数仅在将php作为apache模块安装时才有效。
; 禁用dl()函数主要是出于安全考虑,因为它可以绕过open_basedir指令的限制。
; 在安全模式下始终禁用dl()函数,而不管此处如何设置。
expose_php = on
;ini
; 是否暴露php被安装在服务器上的事实(在http头中加上其签名)。
; 它不会有安全上的直接威胁,但它使得客户端知道服务器上安装了php。
open_basedir =
;sys
; 将php允许操作的所有文件(包括文件自身)都限制在此组目录列表下。
; 当一个脚本试图打开一个指定目录树之外的文件时,将遭到拒绝。
; 所有的符号连接都会被解析,所以不可能通过符号连接来避开此限制。
; 特殊值'.'指定了存放该脚本的目录将被当做基准目录。
; 但这有些危险,因为脚本的工作目录可以轻易被chdir()改变。
; 对于共享服务器,在httpd.conf中灵活设置该指令将变得非常有用。
; 在windows中用分号分隔目录,unix系统中用冒号分隔目录。
; 作为apache模块时,父目录中的open_basedir路径将自动被继承。
; 指定的限制实际上是一个前缀,而非一个目录名,
; 也就是说"/dir/incl"将允许访问"/dir/include"和"/dir/incls",
; 如果您希望将访问控制在一个指定的目录,那么请在结尾加上一个斜线。
; 默认是允许打开所有文件。
[php-core-error]
error_reporting = e_all & ~e_notice
; 错误报告级别是位字段的叠加,推荐使用 e_all | e_strict
; 1 e_error 致命的运行时错误
; 2 e_warning 运行时警告(非致命性错误)
; 4 e_parse 编译时解析错误
; 8 e_notice 运行时提醒(经常是bug,也可能是有意的)
; 16 e_core_error php启动时初始化过程中的致命错误
; 32 e_core_warning php启动时初始化过程中的警告(非致命性错)
; 64 e_compile_error 编译时致命性错
; 128 e_compile_warning 编译时警告(非致命性错)
; 256 e_user_error 用户自定义的致命错误
; 512 e_user_warning 用户自定义的警告(非致命性错误)
; 1024 e_user_notice 用户自定义的提醒(经常是bug,也可能是有意的)
; 2048 e_strict 编码标准化警告(建议如何修改以向前兼容)
; 4096 e_recoverable_error 接近致命的运行时错误,若未被捕获则视同e_error
; 6143 e_all 除e_strict外的所有错误(php6中为8191,即包含所有)
track_errors = off
; 是否在变量$php_errormsg中保存最近一个错误或警告消息。
display_errors = on
; 是否将错误信息作为输出的一部分显示。
; 在最终发布的web站点上,强烈建议你关掉这个特性,并使用错误日志代替(参看下面)。
; 在最终发布的web站点打开这个特性可能暴露一些安全信息,
; 例如你的web服务上的文件路径、数据库规划或别的信息。
display_startup_errors = off
; 是否显示php启动时的错误。
; 即使display_errors指令被打开,关闭此参数也将不显示php启动时的错误。
; 建议你关掉这个特性,除非你必须要用于调试中。
report_memleaks = on
; 是否报告内存泄漏。这个参数只在以调试方式编译的php中起作用,
; 并且必须在error_reporting指令中包含 e_warning
report_zend_debug = on
; 尚无说明文档
html_errors = on
; 是否在出错信息中使用html标记。
; 注意: 不要在发布的站点上使用这个特性!
docref_root = ;"http://localhost/phpmanual/"
docref_ext = ;".html"
; 如果打开了html_errors指令,php将会在出错信息上显示超连接,
; 直接链接到一个说明这个错误或者导致这个错误的函数的页面。
; 你可以从http://www.php.net/docs.php下载php手册,
; 并将docref_root指令指向你本地的手册所在的url目录。
; 你还必须设置docref_ext指令来指定文件的扩展名(必须含有'.')。
; 注意: 不要在发布的站点上使用这个特性。
error_prepend_string = ;"<font color=#f00>"
; 用于错误信息前输出的字符串
error_append_string = ;"</font>"
; 用于错误信息后输出的字符串
xmlrpc_errors = off
xmlrpc_error_number = 0
; 尚无文档
[php-core-logging]
define_syslog_variables = off
; 是否定义各种系统日志变量,如:$log_pid, $log_cron 等等。
; 关掉它以提高效率的好主意。
; 你可以在运行时调用define_syslog_variables()函数来定义这些变量。
error_log =
; 将错误日志记录到哪个文件中。该文件必须对web服务器用户可写。
; syslog 表示记录到系统日志中(nt下的事件日志, unix下的syslog(3))
; 如果此处未设置任何值,则错误将被记录到web服务器的错误日志中。
log_errors = off
; 是否在日志文件里记录错误,具体在哪里记录取决于error_log指令。
; 强烈建议你在最终发布的web站点时使用日志记录错误而不是直接输出,
; 这样可以让你既知道那里出了问题,又不会暴露敏感信息。
log_errors_max_len = 1024
; 设置错误日志中附加的与错误信息相关联的错误源的最大长度。
; 这里设置的值对显示的和记录的错误以及$php_errormsg都有效。
; 设为 0 可以允许无限长度。
ignore_repeated_errors = off
; 记录错误日志时是否忽略重复的错误信息。
; 错误信息必须出现在同一文件的同一行才被被视为重复。
ignore_repeated_source = off
; 是否在忽略重复的错误信息时忽略重复的错误源。
[php-core-mail]
; 要使邮件函数可用,php必须在编译时能够访问sendmail程序。
; 如果使用其它的邮件程序,如qmail或postfix,确保使用了相应的sendmail包装。
; php首先会在系统的path环境变量中搜索sendmail,接着按以下顺序搜索:
; /usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib
; 强烈建议在path中能够找到sendmail。
; 另外,编译php的用户必须能够访问sendmail程序。
smtp = "localhost"
; mail()函数中用来发送邮件的smtp服务器的主机名称或者ip地址。仅用于win32。
smtp_port = 25
; smtp服务器的端口号。仅用于win32。
sendmail_from =
; 发送邮件时使用的"from:"头中的邮件地址。仅用于win32
; 该选项还同时设置了"return-path:"头。
sendmail_path = "-t -i"
;sys
; 仅用于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 不需要任何选项就能正确处理邮件。
mail.force_extra_parameters =
; 作为额外的参数传递给sendmail库的强制指定的参数附加值。
; 这些参数总是会替换掉mail()的第5个参数,即使在安全模式下也是如此。
[php-core-resourcelimit]
default_socket_timeout = 60
; 默认socket超时(秒)
max_execution_time = 30
; 每个脚本最大允许执行时间(秒),0 表示没有限制。
; 这个参数有助于阻止劣质脚本无休止的占用服务器资源。
; 该指令仅影响脚本本身的运行时间,任何其它花费在脚本运行之外的时间,
; 如用system()/sleep()函数的使用、数据库查询、文件上传等,都不包括在内。
; 在安全模式下,你不能用ini_set()在运行时改变这个设置。
memory_limit = 16m
; 一个脚本所能够申请到的最大内存字节数(可以使用k和m作为单位)。
; 这有助于防止劣质脚本消耗完服务器上的所有内存。
; 要能够使用该指令必须在编译时使用"--enable-memory-limit"配置选项。
; 如果要取消内存限制,则必须将其设为 -1 。
; 设置了该指令后,memory_get_usage()函数将变为可用。
max_input_time = -1
; 每个脚本解析输入数据(post, get, upload)的最大允许时间(秒)。
; -1 表示不限制。
post_max_size = 8m
; 允许的post数据最大字节长度。此设定也影响到文件上传。
; 如果post数据超出限制,那么$_post和$_files将会为空。
; 要上传大文件,该值必须大于upload_max_filesize指令的值。
; 如果启用了内存限制,那么该值应当小于memory_limit指令的值。
realpath_cache_size = 16k
;sys
; 指定php使用的realpath(规范化的绝对路径名)缓冲区大小。
; 在php打开大量文件的系统上应当增大该值以提高性能。
realpath_cache_ttl = 120
;sys
; realpath缓冲区中信息的有效期(秒)。
; 对文件很少变动的系统,可以增大该值以提高性能。
[php-core-fileupload]
file_uploads = on
;sys
; 是否允许http文件上传。
; 参见upload_max_filesize, upload_tmp_dir, post_max_size指令
upload_max_filesize = 2m
; 允许上传的文件的最大尺寸。
upload_tmp_dir =
;sys
; 文件上传时存放文件的临时目录(必须是php进程用户可写的目录)。
; 如果未指定则php使用系统默认的临时目录。
[php-core-magicquotes]
; php6将取消魔术引号,相当于下列指令全部为 off
magic_quotes_gpc = on
; 是否对输入的get/post/cookie数据使用自动字符串转义( ' " null )。
; 这里的设置将自动影响 $_gest $_post $_cookie 数组的值。
; 若将本指令与magic_quotes_sybase指令同时打开,则仅将单引号(')转义为(''),
; 其它特殊字符将不被转义,即( " null )将保持原样!!
; 建议关闭此特性,并使用自定义的过滤函数。
magic_quotes_runtime = off
; 是否对运行时从外部资源产生的数据使用自动字符串转义( ' " null )。
; 若打开本指令,则大多数函数从外部资源(数据库,文本文件等)返回数据都将被转义。
; 例如:用sql查询得到的数据,用exec()函数得到的数据,等等
; 若将本指令与magic_quotes_sybase指令同时打开,则仅将单引号(')转义为(''),
; 其它特殊字符将不被转义,即( " null )将保持原样!!
; 建议关闭此特性,并视具体情况使用自定义的过滤函数。
magic_quotes_sybase = off
; 是否采用sybase形式的自动字符串转义(用 '' 表示 ')
[php-core-highlight]
highlight.bg = "#ffffff"
highlight.comment = "#ff8000"
highlight.default = "#0000bb"
highlight.html = "#000000"
highlight.keyword = "#007700"
highlight.string = "#dd0000"
; 语法高亮模式的色彩(通常用于显示 .phps 文件)。
; 只要能被<font color=xxx>接受的东西就能正常工作。
[php-core-langue]
short_open_tag = on
; 是否允许使用"<? ?>"短标识。否则必须使用"<?php ?>"长标识。
; 除非你的php程序仅在受控环境下运行,且只供自己使用,否则请不要使用短标记。
; 如果要和xml结合使用php,可以选择关闭此选项以方便直接嵌入"<?xml ... ?>",
; 不然你必须用php来输出:<? echo '<?xml version="1.0"'; ?>
; 本指令也会影响到缩写形式"<?=",它和"<? echo"等价,要使用它也必须打开短标记。
asp_tags = off
; 是否允许asp风格的标记"<% %>",这也会影响到缩写形式"<%="。
; php6中将删除此指令
arg_separator.output = "&"
; php所产生的url中用来分隔参数的分隔符。
; 另外还可以用"&"或","等等。
arg_separator.input = "&"
; php解析url中的变量时使用的分隔符列表。
; 字符串中的每一个字符都会被当作分割符。
; 另外还可以用",&"等等。
allow_call_time_pass_reference = on
; 是否强迫在函数调用时按引用传递参数(每次使用此特性都会收到一条警告)。
; php反对这种做法,并在将来的版本里不再支持,因为它影响到了代码的整洁。
; 鼓励的方法是在函数声明里明确指定哪些参数按引用传递。
; 我们鼓励你关闭这一选项,以保证你的脚本在将来版本的语言里仍能正常工作。
auto_globals_jit = on
; 是否仅在使用到$_server和$_env变量时才创建(而不是在脚本一启动时就自动创建)。
; 如果并未在脚本中使用这两个数组,打开该指令将会获得性能上的提升。
; 要想该指令生效,必须关闭register_globals和register_long_arrays指令。
auto_prepend_file =
auto_append_file =
; 指定在主文件之前/后自动解析的文件名。为空表示禁用该特性。
; 该文件就像调用了include()函数被包含进来一样,因此会使用include_path指令的值。
; 注意:如果脚本通过exit()终止,那么自动后缀将不会发生。
variables_order = "egpcs"
; php注册 environment, get, post, cookie, server 变量的顺序。
; 分别用 e, g, p, c, s 表示,按从左到右注册,新值覆盖旧值。
; 举例说,设为"gp"将会导致用post变量覆盖同名的get变量,
; 并完全忽略 environment, cookie, server 变量。
; 推荐使用"gpc"或"gpcs",并使用getenv()函数访问环境变量。
register_globals = off
; 是否将 e, g, p, c, s 变量注册为全局变量。
; 打开该指令可能会导致严重的安全问题,除非你的脚本经过非常仔细的检查。
; 推荐使用预定义的超全局变量:$_env, $_get, $_post, $_cookie, $_server
; 该指令受variables_order指令的影响。
; php6中已经删除此指令。
register_argc_argv = on
; 是否声明$argv和$argc全局变量(包含用get方法的信息)。
; 建议不要使用这两个变量,并关掉该指令以提高性能。
register_long_arrays = on
; 是否启用旧式的长式数组(http_*_vars)。
; 鼓励使用短式的预定义超全局数组,并关闭该特性以获得更好的性能。
; php6中已经删除此指令。
always_populate_raw_post_data = off
; 是否总是生成$http_raw_post_data变量(原始post数据)。
; 否则,此变量仅在遇到不能识别的mime类型的数据时才产生。
; 不过,访问原始post数据的更好方法是 php://input 。
; $http_raw_post_data对于enctype="multipart/form-data"的表单数据不可用。
unserialize_callback_func =
; 如果解序列化处理器需要实例化一个未定义的类,
; 这里指定的回调函数将以该未定义类的名字作为参数被unserialize()调用,
; 以免得到不完整的"__php_incomplete_class"对象。
; 如果这里没有指定函数,或指定的函数不包含(或实现)那个未定义的类,将会显示警告信息。
; 所以仅在确实需要实现这样的回调函数时才设置该指令。
; 若要禁止这个特性,只需置空即可。
y2k_compliance = on
; 是否强制打开2000年适应(可能在非y2k适应的浏览器中导致问题)。
zend.ze1_compatibility_mode = off
; 是否使用兼容zend引擎i(php 4.x)的模式。
; 这将影响对象的复制、构造(无属性的对象会产生false或0)、比较。
; 兼容模式下,对象将按值传递,而不是默认的按引用传递。
precision = 14
; 浮点型数据显示的有效位数。
serialize_precision = 100
; 将浮点型和双精度型数据序列化存储时的精度(有效位数)。
; 默认值能够确保浮点型数据被解序列化程序解码时不会丢失数据。
[php-core-outputcontrol]
; 输出控制函数很有用,特别是在已经输出了信息之后再发送http头的情况下。
; 输出控制函数不会作用于header()或setcookie()等函数发送的http头,
; 而只会影响类似于echo()函数输出的信息和嵌入在php代码之间的信息。
implicit_flush = off
; 是否要求php输出层在每个输出块之后自动刷新数据。
; 这等效于在每个 print()、echo()、html块 之后自动调用flush()函数。
; 打开这个选项对程序执行的性能有严重的影响,通常只推荐在调试时使用。
; 在cli sapi的执行模式下,该指令默认为 on 。
output_buffering = 0
; 输出缓冲区大小(字节)。建议值为4096~8192。
; 输出缓冲允许你甚至在输出正文内容之后再发送http头(包括cookies)。
; 其代价是输出层减慢一点点速度。
; 设置输出缓冲可以减少写入,有时还能减少网络数据包的发送。
; 这个参数的实际收益很大程度上取决于你使用的是什么web服务器以及什么样的脚本。
output_handler =
; 将所有脚本的输出重定向到一个输出处理函数。
; 比如,重定向到mb_output_handler()函数时,字符编码将被透明地转换为指定的编码。
; 一旦你在这里指定了输出处理程序,输出缓冲将被自动打开(output_buffering=4096)。
; 注意0: 此处仅能使用php内置的函数,自定义函数应在脚本中使用ob_start()指定。
; 注意1: 可移植脚本不能依赖该指令,而应使用ob_start()函数明确指定输出处理函数。
; 使用这个指令可能会导致某些你不熟悉的脚本出错。
; 注意2: 你不能同时使用"mb_output_handler"和"ob_iconv_handler"两个输出处理函数。
; 你也不能同时使用"ob_gzhandler"输出处理函数和zlib.output_compression指令。
; 注意3: 如果使用zlib.output_handler指令开启zlib输出压缩,该指令必须为空。
[php-core-directory]
doc_root =
;sys
; php的"根目录"。仅在非空时有效。
; 如果safe_mode=on,则此目录之外的文件一概被拒绝。
; 如果编译php时没有指定force_redirect,并且在非iis服务器上以cgi方式运行,
; 则必须设置此指令(参见手册中的安全部分)。
; 替代方案是使用的cgi.force_redirect指令。
include_path = ".:/path/to/php/pear"
; 指定一组目录用于require(), include(), fopen_with_path()函数寻找文件。
; 格式和系统的path环境变量类似(unix下用冒号分隔,windows下用分号分隔):
; unix: "/path1:/path2"
; windows: "path1;path2"
; 在包含路径中使用'.'可以允许相对路径,它代表当前目录。
user_dir =
;sys
; 告诉php在使用 /~username 打开脚本时到哪个目录下去找,仅在非空时有效。
; 也就是在用户目录之下使用php文件的基本目录名,例如:"public_html"
extension_dir = "/path/to/php"
;sys
; 存放扩展库(模块)的目录,也就是php用来寻找动态扩展模块的目录。
; windows下默认为"c:/php5"
[php-core-http]
default_mimetype = "text/html"
default_charset = ;"gb2312"
; php默认会自动输出"content-type: text/html" http头。
; 如果将default_charset指令设为"gb2312",
; 那么将会自动输出"content-type: text/html; charset=gb2312"。
[php-core-unicode]
detect_unicode = on
; 尚无文档
[php-core-misc]
auto_detect_line_endings = off
; 是否让php自动侦测行结束符(eol)。
; 如果的你脚本必须处理macintosh文件,
; 或者你运行在macintosh上,同时又要处理unix或win32文件,
; 打开这个指令可以让php自动侦测eol,以便fgets()和file()函数可以正常工作。
; 但同时也会导致在unix系统下使用回车符(cr)作为项目分隔符的人遭遇不兼容行为。
; 另外,在检测第一行的eol习惯时会有很小的性能损失。
browscap = ;"c:/windows/system32/inetsrv/browscap.ini"
;sys
; 只有pws和iis需要这个设置
; 你可以从http://www.garykeith.com/browsers/downloads.asp
; 得到一个browscap.ini文件。
ignore_user_abort = off
; 是否即使在用户中止请求后也坚持完成整个请求。
; 在执行一个长请求的时候应当考虑打开该它,
; 因为长请求可能会导致用户中途中止或浏览器超时。
user_agent = ;"php"
; 定义"user-agent"字符串
;url_rewriter.tags = "a=href,area=href,frame=src,form=,fieldset="
; 虽然此指令属于php核心部分,但是却用于session模块的配置
extension
; 在php启动时加载动态扩展。例如:extension=mysqli.so
; "="之后只能使用模块文件的名字,而不能含有路径信息。
; 路径信息应当只由extension_dir指令提供。
;主意,在windows上,下列扩展已经内置:
; bcmath ; calendar ; com_dotnet ; ctype ; session ; filter ; ftp ; hash
; iconv ; json ; odbc ; pcre ; reflection ; date ; libxml ; standard
; tokenizer ; zlib ; simplexml ; dom ; spl ; wddx ; xml ; xmlreader ; xmlwriter
[php-core-cgi]
; 这些指令只有在将php运行在cgi模式下的时候才有效
cgi.discard_path = off
; 尚无文档
cgi.fix_pathinfo = on/off(??)
; 是否为cgi提供真正的 path_info/path_translated 支持(遵守cgi规范)。
; 先前的行为是将path_translated设为script_filename,而不管path_info是什么。
; 打开此选项将使php修正其路径以遵守cgi规范,否则仍将使用旧式的不合规范的行为。
; 鼓励你打开此指令,并修正脚本以使用 script_filename 代替 path_translated 。
; 有关path_info的更多信息请参见cgi规范。
cgi.force_redirect = on
; 是否打开cgi强制重定向。强烈建议打开它以为cgi方式运行的php提供安全保护。
; 你若自己关闭了它,请自己负责后果。
; 注意:在iis/omnihttpd/xitami上则必须关闭它!
cgi.redirect_status_env =
; 如果cgi.force_redirect=on,并且在apache与netscape之外的服务器下运行php,
; 可能需要设定一个cgi重定向环境变量名,php将去寻找它来知道是否可以继续执行下去。
; 设置这个变量会导致安全漏洞,请务必在设置前搞清楚自己在做什么。
cgi.rfc2616_headers = 0
; 指定php在发送http响应代码时使用何种报头。
; 0 表示发送一个"status: "报头,apache和其它web服务器都支持。
; 若设为1,则php使用rfc2616标准的头。
; 除非你知道自己在做什么,否则保持其默认值 0
cgi.nph = off
; 在cgi模式下是否强制对所有请求都发送"status: 200"状态码。
fastcgi.impersonate = off
; iis中的fastcgi支持模仿客户端安全令牌的能力。
; 这使得iis能够定义运行时所基于的请求的安全上下文。
; apache中的mod_fastcgi不支持此特性(03/17/2002)
; 如果在iis中运行则设为on,默认为off。
fastcgi.logging = on
; 是否记录通过fastcgi进行的连接。
[php-core-weirdy]
; 这些选项仅存在于文档中,却不存在于phpinfo()函数的输出中
async_send = off
; 是否异步发送。
from = ;"john@doe.com"
; 定义匿名ftp的密码(一个email地址)
;;;;;;;;;;;;;;;;;;
;; 近核心模块 ;;
;;;;;;;;;;;;;;;;;;
[pcre]
;perl兼容正则表达式模块
pcre.backtrack_limit = 100000
; pcre的最大回溯(backtracking)步数。
pcre.recursion_limit = 100000
; pcre的最大递归(recursion)深度。
; 如果你将该值设的非常高,将可能耗尽进程的栈空间,导致php崩溃。
[session]
; 除非使用session_register()或$_session注册了一个变量。
; 否则不管是否使用了session_start(),都不会自动添加任何session记录。
; 包括resource变量或有循环引用的对象包含指向自身的引用的对象,不能保存在会话中。
; register_globals指令会影响到会话变量的存储和恢复。
session.save_handler = "files"
; 存储和检索与会话关联的数据的处理器名字。默认为文件("files")。
; 如果想要使用自定义的处理器(如基于数据库的处理器),可用"user"。
; 有一个使用postgresql的处理器:http://sourceforge.net/projects/phpform-ext/
session.save_path = "/tmp"
; 传递给存储处理器的参数。对于files处理器,此值是创建会话数据文件的路径。
; windows下默认为临时文件夹路径。
; 你可以使用"n;[mode;]/path"这样模式定义该路径(n是一个整数)。
; n表示使用n层深度的子目录,而不是将所有数据文件都保存在一个目录下。
; [mode;]可选,必须使用8进制数,默认600(=384),表示每个目录下最多保存的会话文件数量。
; 这是一个提高大量会话性能的好主意。
这个文件必须命名为'php.ini'并放置在httpd.conf中的phpinidir指令指定的目录中。
; 最新版本的php.ini可以在下面两个位置查看:
; http://cvs.php.net/viewvc.cgi/php-src/php.ini-recommended?view=co
; http://cvs.php.net/viewvc.cgi/php-src/php.ini-dist?view=co
;;;;;;;;;;;;
;; 语法 ;;
;;;;;;;;;;;;
; 该文件的语法非常简单。空白字符和以分号开始的行被简单地忽略。
; 章节标题(例如: [php])也被简单地忽略,即使将来它们可能有某种意义。
;
; 设置指令的格式如下:
; directive = value
; 指令名(directive)是大小写敏感的!所以"foo=bar"不同于"foo=bar"。
; 值(value)可以是:
; 1. 用引号界定的字符串(如:"foo")
; 2. 一个数字(整数或浮点数,如:0, 1, 34, -1, 33.55)
; 3. 一个php常量(如:e_all, m_pi)
; 4. 一个ini常量(on, off, none)
; 5. 一个表达式(如:e_all & ~e_notice)
;
; ini文件中的表达式仅使用:位运算符、逻辑非、圆括号:
; | 位或
; & 位与
; ~ 位非
; ! 逻辑非
;
; 布尔标志用 on 表示打开,用 off 表示关闭。
;
; 一个空字符串可以用在等号后不写任何东西表示,或者用 none 关键字:
; foo = ; 将foo设为空字符串
; foo = none ; 将foo设为空字符串
; foo = "none" ; 将foo设为字符串'none'
;
; 如果你在指令值中使用动态扩展(php扩展或zend扩展)中的常量,
; 那么你只能在加载这些动态扩展的指令行之后使用这些常量。
;;;;;;;;;;;;;;;;;;
;; httpd.conf ;;
;;;;;;;;;;;;;;;;;;
; 还可以在httpd.conf中覆盖php.ini的值,以进行更灵活的配置:
; php_value name value ;设置非bool型的指令,将value设为none则清除先前的设定
; php_flag name on|off ;仅用于设置bool型的指令
;
; php常量(如e_all)仅能在php.ini中使用,在httpd.conf中必须使用相应的掩码值。
; 带"sys"标志的指令只能在httpd.conf中的全局配置部分使用,
; 带"ini"标志的指令不能在httpd.conf中使用,它们仅能用于php.ini中。
;=========================================================================
;;====================配置指令详解========================================
;=========================================================================
; 以下每个指令的设定值都与 php-5.2.0 内建的默认值相同。
; 也就是说,如果'php.ini'不存在,或者你删掉了某些行,默认值与之相同。
;;;;;;;;;;;;;;
;; apache ;;
;;;;;;;;;;;;;;
[apache]
; 仅在将php作为apache模块时才有效。
engine = on
; 是否启用php解析引擎。
; 可以在httpd.conf中基于目录或者虚拟主机来打开或者关闭php解析引擎。
last_modified = off
; 是否在last-modified应答头中放置该php脚本的最后修改时间。
xbithack = off
; 是否不管文件结尾是什么,都作为php可执行位组来解析。
child_terminate = off
; php脚本在请求结束后是否允许使用apache_child_terminate()函数终止子进程。
; 该指令仅在unix平台上将php安装为apache1.3的模块时可用。其他情况下皆不存在。
;;;;;;;;;;;;;;;
;; php核心 ;;
;;;;;;;;;;;;;;;
[php-core-datetime]
; 前四个配置选项目前仅用于date_sunrise()和date_sunset()函数。
date.default_latitude = 31.7667
; 默认纬度
date.default_longitude = 35.2333
; 默认经度
date.sunrise_zenith = 90.583333
; 默认日出天顶
date.sunset_zenith = 90.583333
; 默认日落天顶
date.timezone =
; 未设定tz环境变量时用于所有日期和时间函数的默认时区。
; *应当使用"prc"
; 应用时区的优先顺序为:
; 1. 用date_default_timezone_set()函数设定的时区(如果设定了的话)
; 2. tz 环境变量(如果非空的话)
; 3. 该指令的值(如果设定了的话)
; 4. php自己推测(如果操作系统支持)
; 5. 如果以上都不成功,则使用 utc
[php-core-assert]
assert.active = on
; 是否启用assert()断言评估
assert.bail = off
; 是否在发生失败断言时中止脚本的执行
assert.callback =
; 发生失败断言时执行的回调函数
assert.quiet_eval = off
; 是否使用安静评估(不显示任何错误信息,相当于error_reporting=0)。
; 若关闭则在评估断言表达式的时候使用当前的error_reporting指令值。
assert.warning = on
; 是否对每个失败断言都发出警告
[php-core-safemode]
; 安全模式是为了解决共享服务器的安全问题而设立的。
; 但试图在php层解决这个问题在结构上是不合理的,
; 正确的做法应当是修改web服务器层和操作系统层。
; 因此在php6中废除了安全模式,并打算使用open_basedir指令取代之。
safe_mode = off
;sys
; 是否启用安全模式。
; 打开时,php将检查当前脚本的拥有者是否和被操作的文件的拥有者相同,
; 相同则允许操作,不同则拒绝操作。
safe_mode_gid = off
;sys
; 在安全模式下,默认在访问文件时会做uid比较检查。
; 但有些情况下严格的uid检查反而是不适合的,宽松的gid检查已经足够。
; 如果你想将其放宽到仅做gid比较,可以打开这个参数。
safe_mode_allowed_env_vars = "php_"
;sys
; 在安全模式下,用户仅可以更改的环境变量的前缀列表(逗号分隔)。
; 允许用户设置某些环境变量,可能会导致潜在的安全漏洞。
; 注意: 如果这一参数值为空,php将允许用户更改任意环境变量!
safe_mode_protected_env_vars = "ld_library_path"
;sys
; 在安全模式下,用户不能更改的环境变量列表(逗号分隔)。
; 这些变量即使在safe_mode_allowed_env_vars指令设置为允许的情况下也会得到保护。
safe_mode_exec_dir = "/usr/local/php/bin"
;sys
; 在安全模式下,只有该目录下的可执行程序才允许被执行系统程序的函数执行。
; 这些函数是:system, escapeshellarg, escapeshellcmd, exec, passthru,
; proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, shell_exec
safe_mode_include_dir =
;sys
; 在安全模式下,该组目录和其子目录下的文件被包含时,将跳过uid/gid检查。
; 换句话说,如果此处的值为空,任何uid/gid不符合的文件都不允许被包含。
; 这里设置的目录必须已经存在于include_path指令中或者用完整路径来包含。
; 多个目录之间用冒号(win下为分号)隔开。
; 指定的限制实际上是一个前缀,而非一个目录名,
; 也就是说"/dir/incl"将允许访问"/dir/include"和"/dir/incls"
; 如果您希望将访问控制在一个指定的目录,那么请在结尾加上斜线。
sql.safe_mode = off
;sys
; 是否使用sql安全模式。
; 如果打开,指定默认值的数据库连接函数将会使用这些默认值代替支持的参数。
; 对于每个不同数据库的连接函数,其默认值请参考相应的手册页面。
[php-core-safe]
allow_url_fopen = on
;ini
; 是否允许打开远程文件
allow_url_include = off
;sys
; 是否允许include/require远程文件。
disable_classes =
;ini
; 该指令接受一个用逗号分隔的类名列表,以禁用特定的类。
disable_functions =
;ini
; 该指令接受一个用逗号分隔的函数名列表,以禁用特定的函数。
enable_dl = on
;sys
; 是否允许使用dl()函数。dl()函数仅在将php作为apache模块安装时才有效。
; 禁用dl()函数主要是出于安全考虑,因为它可以绕过open_basedir指令的限制。
; 在安全模式下始终禁用dl()函数,而不管此处如何设置。
expose_php = on
;ini
; 是否暴露php被安装在服务器上的事实(在http头中加上其签名)。
; 它不会有安全上的直接威胁,但它使得客户端知道服务器上安装了php。
open_basedir =
;sys
; 将php允许操作的所有文件(包括文件自身)都限制在此组目录列表下。
; 当一个脚本试图打开一个指定目录树之外的文件时,将遭到拒绝。
; 所有的符号连接都会被解析,所以不可能通过符号连接来避开此限制。
; 特殊值'.'指定了存放该脚本的目录将被当做基准目录。
; 但这有些危险,因为脚本的工作目录可以轻易被chdir()改变。
; 对于共享服务器,在httpd.conf中灵活设置该指令将变得非常有用。
; 在windows中用分号分隔目录,unix系统中用冒号分隔目录。
; 作为apache模块时,父目录中的open_basedir路径将自动被继承。
; 指定的限制实际上是一个前缀,而非一个目录名,
; 也就是说"/dir/incl"将允许访问"/dir/include"和"/dir/incls",
; 如果您希望将访问控制在一个指定的目录,那么请在结尾加上一个斜线。
; 默认是允许打开所有文件。
[php-core-error]
error_reporting = e_all & ~e_notice
; 错误报告级别是位字段的叠加,推荐使用 e_all | e_strict
; 1 e_error 致命的运行时错误
; 2 e_warning 运行时警告(非致命性错误)
; 4 e_parse 编译时解析错误
; 8 e_notice 运行时提醒(经常是bug,也可能是有意的)
; 16 e_core_error php启动时初始化过程中的致命错误
; 32 e_core_warning php启动时初始化过程中的警告(非致命性错)
; 64 e_compile_error 编译时致命性错
; 128 e_compile_warning 编译时警告(非致命性错)
; 256 e_user_error 用户自定义的致命错误
; 512 e_user_warning 用户自定义的警告(非致命性错误)
; 1024 e_user_notice 用户自定义的提醒(经常是bug,也可能是有意的)
; 2048 e_strict 编码标准化警告(建议如何修改以向前兼容)
; 4096 e_recoverable_error 接近致命的运行时错误,若未被捕获则视同e_error
; 6143 e_all 除e_strict外的所有错误(php6中为8191,即包含所有)
track_errors = off
; 是否在变量$php_errormsg中保存最近一个错误或警告消息。
display_errors = on
; 是否将错误信息作为输出的一部分显示。
; 在最终发布的web站点上,强烈建议你关掉这个特性,并使用错误日志代替(参看下面)。
; 在最终发布的web站点打开这个特性可能暴露一些安全信息,
; 例如你的web服务上的文件路径、数据库规划或别的信息。
display_startup_errors = off
; 是否显示php启动时的错误。
; 即使display_errors指令被打开,关闭此参数也将不显示php启动时的错误。
; 建议你关掉这个特性,除非你必须要用于调试中。
report_memleaks = on
; 是否报告内存泄漏。这个参数只在以调试方式编译的php中起作用,
; 并且必须在error_reporting指令中包含 e_warning
report_zend_debug = on
; 尚无说明文档
html_errors = on
; 是否在出错信息中使用html标记。
; 注意: 不要在发布的站点上使用这个特性!
docref_root = ;"http://localhost/phpmanual/"
docref_ext = ;".html"
; 如果打开了html_errors指令,php将会在出错信息上显示超连接,
; 直接链接到一个说明这个错误或者导致这个错误的函数的页面。
; 你可以从http://www.php.net/docs.php下载php手册,
; 并将docref_root指令指向你本地的手册所在的url目录。
; 你还必须设置docref_ext指令来指定文件的扩展名(必须含有'.')。
; 注意: 不要在发布的站点上使用这个特性。
error_prepend_string = ;"<font color=#f00>"
; 用于错误信息前输出的字符串
error_append_string = ;"</font>"
; 用于错误信息后输出的字符串
xmlrpc_errors = off
xmlrpc_error_number = 0
; 尚无文档
[php-core-logging]
define_syslog_variables = off
; 是否定义各种系统日志变量,如:$log_pid, $log_cron 等等。
; 关掉它以提高效率的好主意。
; 你可以在运行时调用define_syslog_variables()函数来定义这些变量。
error_log =
; 将错误日志记录到哪个文件中。该文件必须对web服务器用户可写。
; syslog 表示记录到系统日志中(nt下的事件日志, unix下的syslog(3))
; 如果此处未设置任何值,则错误将被记录到web服务器的错误日志中。
log_errors = off
; 是否在日志文件里记录错误,具体在哪里记录取决于error_log指令。
; 强烈建议你在最终发布的web站点时使用日志记录错误而不是直接输出,
; 这样可以让你既知道那里出了问题,又不会暴露敏感信息。
log_errors_max_len = 1024
; 设置错误日志中附加的与错误信息相关联的错误源的最大长度。
; 这里设置的值对显示的和记录的错误以及$php_errormsg都有效。
; 设为 0 可以允许无限长度。
ignore_repeated_errors = off
; 记录错误日志时是否忽略重复的错误信息。
; 错误信息必须出现在同一文件的同一行才被被视为重复。
ignore_repeated_source = off
; 是否在忽略重复的错误信息时忽略重复的错误源。
[php-core-mail]
; 要使邮件函数可用,php必须在编译时能够访问sendmail程序。
; 如果使用其它的邮件程序,如qmail或postfix,确保使用了相应的sendmail包装。
; php首先会在系统的path环境变量中搜索sendmail,接着按以下顺序搜索:
; /usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib
; 强烈建议在path中能够找到sendmail。
; 另外,编译php的用户必须能够访问sendmail程序。
smtp = "localhost"
; mail()函数中用来发送邮件的smtp服务器的主机名称或者ip地址。仅用于win32。
smtp_port = 25
; smtp服务器的端口号。仅用于win32。
sendmail_from =
; 发送邮件时使用的"from:"头中的邮件地址。仅用于win32
; 该选项还同时设置了"return-path:"头。
sendmail_path = "-t -i"
;sys
; 仅用于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 不需要任何选项就能正确处理邮件。
mail.force_extra_parameters =
; 作为额外的参数传递给sendmail库的强制指定的参数附加值。
; 这些参数总是会替换掉mail()的第5个参数,即使在安全模式下也是如此。
[php-core-resourcelimit]
default_socket_timeout = 60
; 默认socket超时(秒)
max_execution_time = 30
; 每个脚本最大允许执行时间(秒),0 表示没有限制。
; 这个参数有助于阻止劣质脚本无休止的占用服务器资源。
; 该指令仅影响脚本本身的运行时间,任何其它花费在脚本运行之外的时间,
; 如用system()/sleep()函数的使用、数据库查询、文件上传等,都不包括在内。
; 在安全模式下,你不能用ini_set()在运行时改变这个设置。
memory_limit = 16m
; 一个脚本所能够申请到的最大内存字节数(可以使用k和m作为单位)。
; 这有助于防止劣质脚本消耗完服务器上的所有内存。
; 要能够使用该指令必须在编译时使用"--enable-memory-limit"配置选项。
; 如果要取消内存限制,则必须将其设为 -1 。
; 设置了该指令后,memory_get_usage()函数将变为可用。
max_input_time = -1
; 每个脚本解析输入数据(post, get, upload)的最大允许时间(秒)。
; -1 表示不限制。
post_max_size = 8m
; 允许的post数据最大字节长度。此设定也影响到文件上传。
; 如果post数据超出限制,那么$_post和$_files将会为空。
; 要上传大文件,该值必须大于upload_max_filesize指令的值。
; 如果启用了内存限制,那么该值应当小于memory_limit指令的值。
realpath_cache_size = 16k
;sys
; 指定php使用的realpath(规范化的绝对路径名)缓冲区大小。
; 在php打开大量文件的系统上应当增大该值以提高性能。
realpath_cache_ttl = 120
;sys
; realpath缓冲区中信息的有效期(秒)。
; 对文件很少变动的系统,可以增大该值以提高性能。
[php-core-fileupload]
file_uploads = on
;sys
; 是否允许http文件上传。
; 参见upload_max_filesize, upload_tmp_dir, post_max_size指令
upload_max_filesize = 2m
; 允许上传的文件的最大尺寸。
upload_tmp_dir =
;sys
; 文件上传时存放文件的临时目录(必须是php进程用户可写的目录)。
; 如果未指定则php使用系统默认的临时目录。
[php-core-magicquotes]
; php6将取消魔术引号,相当于下列指令全部为 off
magic_quotes_gpc = on
; 是否对输入的get/post/cookie数据使用自动字符串转义( ' " null )。
; 这里的设置将自动影响 $_gest $_post $_cookie 数组的值。
; 若将本指令与magic_quotes_sybase指令同时打开,则仅将单引号(')转义为(''),
; 其它特殊字符将不被转义,即( " null )将保持原样!!
; 建议关闭此特性,并使用自定义的过滤函数。
magic_quotes_runtime = off
; 是否对运行时从外部资源产生的数据使用自动字符串转义( ' " null )。
; 若打开本指令,则大多数函数从外部资源(数据库,文本文件等)返回数据都将被转义。
; 例如:用sql查询得到的数据,用exec()函数得到的数据,等等
; 若将本指令与magic_quotes_sybase指令同时打开,则仅将单引号(')转义为(''),
; 其它特殊字符将不被转义,即( " null )将保持原样!!
; 建议关闭此特性,并视具体情况使用自定义的过滤函数。
magic_quotes_sybase = off
; 是否采用sybase形式的自动字符串转义(用 '' 表示 ')
[php-core-highlight]
highlight.bg = "#ffffff"
highlight.comment = "#ff8000"
highlight.default = "#0000bb"
highlight.html = "#000000"
highlight.keyword = "#007700"
highlight.string = "#dd0000"
; 语法高亮模式的色彩(通常用于显示 .phps 文件)。
; 只要能被<font color=xxx>接受的东西就能正常工作。
[php-core-langue]
short_open_tag = on
; 是否允许使用"<? ?>"短标识。否则必须使用"<?php ?>"长标识。
; 除非你的php程序仅在受控环境下运行,且只供自己使用,否则请不要使用短标记。
; 如果要和xml结合使用php,可以选择关闭此选项以方便直接嵌入"<?xml ... ?>",
; 不然你必须用php来输出:<? echo '<?xml version="1.0"'; ?>
; 本指令也会影响到缩写形式"<?=",它和"<? echo"等价,要使用它也必须打开短标记。
asp_tags = off
; 是否允许asp风格的标记"<% %>",这也会影响到缩写形式"<%="。
; php6中将删除此指令
arg_separator.output = "&"
; php所产生的url中用来分隔参数的分隔符。
; 另外还可以用"&"或","等等。
arg_separator.input = "&"
; php解析url中的变量时使用的分隔符列表。
; 字符串中的每一个字符都会被当作分割符。
; 另外还可以用",&"等等。
allow_call_time_pass_reference = on
; 是否强迫在函数调用时按引用传递参数(每次使用此特性都会收到一条警告)。
; php反对这种做法,并在将来的版本里不再支持,因为它影响到了代码的整洁。
; 鼓励的方法是在函数声明里明确指定哪些参数按引用传递。
; 我们鼓励你关闭这一选项,以保证你的脚本在将来版本的语言里仍能正常工作。
auto_globals_jit = on
; 是否仅在使用到$_server和$_env变量时才创建(而不是在脚本一启动时就自动创建)。
; 如果并未在脚本中使用这两个数组,打开该指令将会获得性能上的提升。
; 要想该指令生效,必须关闭register_globals和register_long_arrays指令。
auto_prepend_file =
auto_append_file =
; 指定在主文件之前/后自动解析的文件名。为空表示禁用该特性。
; 该文件就像调用了include()函数被包含进来一样,因此会使用include_path指令的值。
; 注意:如果脚本通过exit()终止,那么自动后缀将不会发生。
variables_order = "egpcs"
; php注册 environment, get, post, cookie, server 变量的顺序。
; 分别用 e, g, p, c, s 表示,按从左到右注册,新值覆盖旧值。
; 举例说,设为"gp"将会导致用post变量覆盖同名的get变量,
; 并完全忽略 environment, cookie, server 变量。
; 推荐使用"gpc"或"gpcs",并使用getenv()函数访问环境变量。
register_globals = off
; 是否将 e, g, p, c, s 变量注册为全局变量。
; 打开该指令可能会导致严重的安全问题,除非你的脚本经过非常仔细的检查。
; 推荐使用预定义的超全局变量:$_env, $_get, $_post, $_cookie, $_server
; 该指令受variables_order指令的影响。
; php6中已经删除此指令。
register_argc_argv = on
; 是否声明$argv和$argc全局变量(包含用get方法的信息)。
; 建议不要使用这两个变量,并关掉该指令以提高性能。
register_long_arrays = on
; 是否启用旧式的长式数组(http_*_vars)。
; 鼓励使用短式的预定义超全局数组,并关闭该特性以获得更好的性能。
; php6中已经删除此指令。
always_populate_raw_post_data = off
; 是否总是生成$http_raw_post_data变量(原始post数据)。
; 否则,此变量仅在遇到不能识别的mime类型的数据时才产生。
; 不过,访问原始post数据的更好方法是 php://input 。
; $http_raw_post_data对于enctype="multipart/form-data"的表单数据不可用。
unserialize_callback_func =
; 如果解序列化处理器需要实例化一个未定义的类,
; 这里指定的回调函数将以该未定义类的名字作为参数被unserialize()调用,
; 以免得到不完整的"__php_incomplete_class"对象。
; 如果这里没有指定函数,或指定的函数不包含(或实现)那个未定义的类,将会显示警告信息。
; 所以仅在确实需要实现这样的回调函数时才设置该指令。
; 若要禁止这个特性,只需置空即可。
y2k_compliance = on
; 是否强制打开2000年适应(可能在非y2k适应的浏览器中导致问题)。
zend.ze1_compatibility_mode = off
; 是否使用兼容zend引擎i(php 4.x)的模式。
; 这将影响对象的复制、构造(无属性的对象会产生false或0)、比较。
; 兼容模式下,对象将按值传递,而不是默认的按引用传递。
precision = 14
; 浮点型数据显示的有效位数。
serialize_precision = 100
; 将浮点型和双精度型数据序列化存储时的精度(有效位数)。
; 默认值能够确保浮点型数据被解序列化程序解码时不会丢失数据。
[php-core-outputcontrol]
; 输出控制函数很有用,特别是在已经输出了信息之后再发送http头的情况下。
; 输出控制函数不会作用于header()或setcookie()等函数发送的http头,
; 而只会影响类似于echo()函数输出的信息和嵌入在php代码之间的信息。
implicit_flush = off
; 是否要求php输出层在每个输出块之后自动刷新数据。
; 这等效于在每个 print()、echo()、html块 之后自动调用flush()函数。
; 打开这个选项对程序执行的性能有严重的影响,通常只推荐在调试时使用。
; 在cli sapi的执行模式下,该指令默认为 on 。
output_buffering = 0
; 输出缓冲区大小(字节)。建议值为4096~8192。
; 输出缓冲允许你甚至在输出正文内容之后再发送http头(包括cookies)。
; 其代价是输出层减慢一点点速度。
; 设置输出缓冲可以减少写入,有时还能减少网络数据包的发送。
; 这个参数的实际收益很大程度上取决于你使用的是什么web服务器以及什么样的脚本。
output_handler =
; 将所有脚本的输出重定向到一个输出处理函数。
; 比如,重定向到mb_output_handler()函数时,字符编码将被透明地转换为指定的编码。
; 一旦你在这里指定了输出处理程序,输出缓冲将被自动打开(output_buffering=4096)。
; 注意0: 此处仅能使用php内置的函数,自定义函数应在脚本中使用ob_start()指定。
; 注意1: 可移植脚本不能依赖该指令,而应使用ob_start()函数明确指定输出处理函数。
; 使用这个指令可能会导致某些你不熟悉的脚本出错。
; 注意2: 你不能同时使用"mb_output_handler"和"ob_iconv_handler"两个输出处理函数。
; 你也不能同时使用"ob_gzhandler"输出处理函数和zlib.output_compression指令。
; 注意3: 如果使用zlib.output_handler指令开启zlib输出压缩,该指令必须为空。
[php-core-directory]
doc_root =
;sys
; php的"根目录"。仅在非空时有效。
; 如果safe_mode=on,则此目录之外的文件一概被拒绝。
; 如果编译php时没有指定force_redirect,并且在非iis服务器上以cgi方式运行,
; 则必须设置此指令(参见手册中的安全部分)。
; 替代方案是使用的cgi.force_redirect指令。
include_path = ".:/path/to/php/pear"
; 指定一组目录用于require(), include(), fopen_with_path()函数寻找文件。
; 格式和系统的path环境变量类似(unix下用冒号分隔,windows下用分号分隔):
; unix: "/path1:/path2"
; windows: "path1;path2"
; 在包含路径中使用'.'可以允许相对路径,它代表当前目录。
user_dir =
;sys
; 告诉php在使用 /~username 打开脚本时到哪个目录下去找,仅在非空时有效。
; 也就是在用户目录之下使用php文件的基本目录名,例如:"public_html"
extension_dir = "/path/to/php"
;sys
; 存放扩展库(模块)的目录,也就是php用来寻找动态扩展模块的目录。
; windows下默认为"c:/php5"
[php-core-http]
default_mimetype = "text/html"
default_charset = ;"gb2312"
; php默认会自动输出"content-type: text/html" http头。
; 如果将default_charset指令设为"gb2312",
; 那么将会自动输出"content-type: text/html; charset=gb2312"。
[php-core-unicode]
detect_unicode = on
; 尚无文档
[php-core-misc]
auto_detect_line_endings = off
; 是否让php自动侦测行结束符(eol)。
; 如果的你脚本必须处理macintosh文件,
; 或者你运行在macintosh上,同时又要处理unix或win32文件,
; 打开这个指令可以让php自动侦测eol,以便fgets()和file()函数可以正常工作。
; 但同时也会导致在unix系统下使用回车符(cr)作为项目分隔符的人遭遇不兼容行为。
; 另外,在检测第一行的eol习惯时会有很小的性能损失。
browscap = ;"c:/windows/system32/inetsrv/browscap.ini"
;sys
; 只有pws和iis需要这个设置
; 你可以从http://www.garykeith.com/browsers/downloads.asp
; 得到一个browscap.ini文件。
ignore_user_abort = off
; 是否即使在用户中止请求后也坚持完成整个请求。
; 在执行一个长请求的时候应当考虑打开该它,
; 因为长请求可能会导致用户中途中止或浏览器超时。
user_agent = ;"php"
; 定义"user-agent"字符串
;url_rewriter.tags = "a=href,area=href,frame=src,form=,fieldset="
; 虽然此指令属于php核心部分,但是却用于session模块的配置
extension
; 在php启动时加载动态扩展。例如:extension=mysqli.so
; "="之后只能使用模块文件的名字,而不能含有路径信息。
; 路径信息应当只由extension_dir指令提供。
;主意,在windows上,下列扩展已经内置:
; bcmath ; calendar ; com_dotnet ; ctype ; session ; filter ; ftp ; hash
; iconv ; json ; odbc ; pcre ; reflection ; date ; libxml ; standard
; tokenizer ; zlib ; simplexml ; dom ; spl ; wddx ; xml ; xmlreader ; xmlwriter
[php-core-cgi]
; 这些指令只有在将php运行在cgi模式下的时候才有效
cgi.discard_path = off
; 尚无文档
cgi.fix_pathinfo = on/off(??)
; 是否为cgi提供真正的 path_info/path_translated 支持(遵守cgi规范)。
; 先前的行为是将path_translated设为script_filename,而不管path_info是什么。
; 打开此选项将使php修正其路径以遵守cgi规范,否则仍将使用旧式的不合规范的行为。
; 鼓励你打开此指令,并修正脚本以使用 script_filename 代替 path_translated 。
; 有关path_info的更多信息请参见cgi规范。
cgi.force_redirect = on
; 是否打开cgi强制重定向。强烈建议打开它以为cgi方式运行的php提供安全保护。
; 你若自己关闭了它,请自己负责后果。
; 注意:在iis/omnihttpd/xitami上则必须关闭它!
cgi.redirect_status_env =
; 如果cgi.force_redirect=on,并且在apache与netscape之外的服务器下运行php,
; 可能需要设定一个cgi重定向环境变量名,php将去寻找它来知道是否可以继续执行下去。
; 设置这个变量会导致安全漏洞,请务必在设置前搞清楚自己在做什么。
cgi.rfc2616_headers = 0
; 指定php在发送http响应代码时使用何种报头。
; 0 表示发送一个"status: "报头,apache和其它web服务器都支持。
; 若设为1,则php使用rfc2616标准的头。
; 除非你知道自己在做什么,否则保持其默认值 0
cgi.nph = off
; 在cgi模式下是否强制对所有请求都发送"status: 200"状态码。
fastcgi.impersonate = off
; iis中的fastcgi支持模仿客户端安全令牌的能力。
; 这使得iis能够定义运行时所基于的请求的安全上下文。
; apache中的mod_fastcgi不支持此特性(03/17/2002)
; 如果在iis中运行则设为on,默认为off。
fastcgi.logging = on
; 是否记录通过fastcgi进行的连接。
[php-core-weirdy]
; 这些选项仅存在于文档中,却不存在于phpinfo()函数的输出中
async_send = off
; 是否异步发送。
from = ;"john@doe.com"
; 定义匿名ftp的密码(一个email地址)
;;;;;;;;;;;;;;;;;;
;; 近核心模块 ;;
;;;;;;;;;;;;;;;;;;
[pcre]
;perl兼容正则表达式模块
pcre.backtrack_limit = 100000
; pcre的最大回溯(backtracking)步数。
pcre.recursion_limit = 100000
; pcre的最大递归(recursion)深度。
; 如果你将该值设的非常高,将可能耗尽进程的栈空间,导致php崩溃。
[session]
; 除非使用session_register()或$_session注册了一个变量。
; 否则不管是否使用了session_start(),都不会自动添加任何session记录。
; 包括resource变量或有循环引用的对象包含指向自身的引用的对象,不能保存在会话中。
; register_globals指令会影响到会话变量的存储和恢复。
session.save_handler = "files"
; 存储和检索与会话关联的数据的处理器名字。默认为文件("files")。
; 如果想要使用自定义的处理器(如基于数据库的处理器),可用"user"。
; 有一个使用postgresql的处理器:http://sourceforge.net/projects/phpform-ext/
session.save_path = "/tmp"
; 传递给存储处理器的参数。对于files处理器,此值是创建会话数据文件的路径。
; windows下默认为临时文件夹路径。
; 你可以使用"n;[mode;]/path"这样模式定义该路径(n是一个整数)。
; n表示使用n层深度的子目录,而不是将所有数据文件都保存在一个目录下。
; [mode;]可选,必须使用8进制数,默认600(=384),表示每个目录下最多保存的会话文件数量。
; 这是一个提高大量会话性能的好主意。