知识大全 php.ini 文件配置详解
Posted 指令
篇首语:再冷的石头,坐上三年也会暖。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 php.ini 文件配置详解相关的知识,希望对你有一定的参考价值。
;;;;;;;;;;;;;;;; ;; 作者 金步国 ;; 日期 ;;;;;;;;;;;;;;;; ;; 版权声明 ;; ;;;;;;;;;;;;;;;; ; 本文作者是一位自由软件爱好者 所以本文虽然不是软件 但是本着 GPL 的精神发布 ; 任何人都可以自由使用 转载 复制和再分发 但必须保留作者署名 ; 亦不得对声明中的任何条款作任何形式的修改 也不得附加任何其它条件 ; 您可以自由链接 下载 传播此文档 但前提是必须保证全文完整转载 包括完整的版权信息和作译者声明 ; ; 本文作者十分愿意与他人共享劳动成果 如果你对我的其他翻译作品或者技术文章有兴趣 ; 可以在如下位置查看现有作品的列表 ; ; ;;;;;;;;;;;;;;;;;;;;;;;;; ;; BUG报告 切磋与探讨 ;; ;;;;;;;;;;;;;;;;;;;;;;;;; ; 由于作者水平有限 因此不能保证作品内容准确无误 请在阅读中自行鉴别 ; 如果你发现了作品中的错误 请您来信指出 哪怕是错别字也好 任何提高作品质量的建议我都将虚心接纳 ; 如果你愿意就作品中的相关内容与我进行进一步切磋与探讨 也欢迎你与我联系 ; 联系方式 Email: csfrank@citiz net QQ: MSN: csfrank @hotmail ; ;;;;;;;;;;;;;; ;; 简介 ;; ;;;;;;;;;;;;;; ; 本文并非是对英文版 php ini 的简单翻译 而是参考了众多资料以后 结合自己的理解 ; 在原有 php ini 基础上增加了一些实用模块的配置说明 同时对文件内容的安排进行了调整 ; 由于作者不喜欢 no free 的玩意儿 所以删除了除 MySQL 和 PostgreSQL 以外的其他数据库模块配置选项 ;;;;;;;;;;;;;;;;; ;; 关于php ini ;; ;;;;;;;;;;;;;;;;; ; 这个文件必须命名为 php ini 并放置在中的PHPIniDir指令指定的目录中 ; 最新版本的php ini可以在下面两个位置查看 ; ; ;;;;;;;;;;;; ;; 语法 ;; ;;;;;;;;;;;; ; 该文件的语法非常简单 空白字符和以分号开始的行被简单地忽略 ; 章节标题(例如: [php])也被简单地忽略 即使将来它们可能有某种意义 ; ; 设置指令的格式如下 ; directive = value ; 指令名(directive)是大小写敏感的!所以"foo=bar"不同于"FOO=bar" ; 值(value)可以是 ; 用引号界定的字符串(如 "foo") ; 一个数字(整数或浮点数 如 ) ; 一个PHP常量(如 E_ALL M_PI) ; 一个INI常量(On Off none) ; 一个表达式(如 E_ALL & ~E_NOTICE) ; ; INI文件中的表达式仅使用 位运算符 逻辑非 圆括号 ; | 位或 ; & 位与 ; ~ 位非 ; ! 逻辑非 ; ; 布尔标志用 On 表示打开 用 Off 表示关闭 ; ; 一个空字符串可以用在等号后不写任何东西表示 或者用 none 关键字 ; foo = ; 将foo设为空字符串 ; foo = none ; 将foo设为空字符串 ; foo = "none" ; 将foo设为字符串 none ; ; 如果你在指令值中使用动态扩展(PHP扩展或Zend扩展)中的常量 ; 那么你只能在加载这些动态扩展的指令行之后使用这些常量 ;;;;;;;;;;;;;;;;;; ;; ;;;;;;;;;;;;;;;;;; ; 还可以在中覆蓋php ini的值 以进行更灵活的配置 ; php_value name value ;设置非bool型的指令 将value设为none则清除先前的设定 ; php_flag name on|off ;仅用于设置bool型的指令 ; ; PHP常量(如E_ALL)仅能在php ini中使用 在中必须使用相应的掩码值 ; 带"SYS"标志的指令只能在中的全局配置部分使用 ; 带"ini"标志的指令不能在中使用 它们仅能用于php ini中 ;========================================================================================== ;;=====================================配置指令详解======================================== ;========================================================================================== ; 以下每个指令的设定值都与 PHP 内建的默认值相同 ; 也就是说 如果 php ini 不存在 或者你删掉了某些行 默认值与之相同 ;;;;;;;;;;;;;; ;; Apache ;; ;;;;;;;;;;;;;; [Apache] ; 仅在将PHP作为Apache模块时才有效 engine = On ; 是否启用PHP解析引擎 ; 可以在中基于目录或者虚拟主机来打开或者关闭PHP解析引擎 last_modified = Off ; 是否在Last Modified应答头中放置该PHP脚本的最后修改时间 xbithack = Off ; 是否不管文件结尾是什么 都作为PHP可执行位组来解析 child_terminate = Off ; PHP脚本在请求结束后是否允许使用apache_child_terminate()函数终止子进程 ; 该指令仅在UNIX平台上将PHP安装为Apache 的模块时可用 其他情况下皆不存在 ;;;;;;;;;;;;;;; ;; PHP核心 ;; ;;;;;;;;;;;;;;; [PHP Core DateTime] ; 前四个配置选项目前仅用于date_sunrise()和date_sunset()函数 date default_latitude = ; 默认纬度 date default_longitude = ; 默认经度 date sunrise_zenith = ; 默认日出天顶 date sunset_zenith = ; 默认日落天顶 date timezone = ; 未设定TZ环境变量时用于所有日期和时间函数的默认时区 ; 中国大陆应当使用"PRC" ; 应用时区的优先顺序为 ; 用date_default_timezone_set()函数设定的时区(如果设定了的话) ; TZ 环境变量(如果非空的话) ; 该指令的值(如果设定了的话) ; PHP自己推测(如果操作系统支持) ; 如果以上都不成功 则使用 UTC [PHP Core Assert] assert active = On ; 是否启用assert()断言评估 assert bail = Off ; 是否在发生失败断言时中止脚本的执行 assert callback = ; 发生失败断言时执行的回调函数 assert quiet_eval = Off ; 是否使用安静评估(不显示任何错误信息 相当于error_reporting= ) ; 若关闭则在评估断言表达式的时候使用当前的error_reporting指令值 assert warning = On ; 是否对每个失败断言都发出警告 [PHP Core SafeMode] ; 安全模式是为了解决共享服务器的安全问题而设立的 ; 但试图在PHP层解决这个问题在结构上是不合理的 ; 正确的做法应当是修改web服务器层和操作系统层 ; 因此在PHP 中废除了安全模式 并打算使用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被安装在服务器上的事实(在头中加上其签名) ; 它不会有安全上的直接威胁 但它使得客户端知道服务器上安装了PHP open_basedir = ;SYS ; 将PHP允许操作的所有文件(包括文件自身)都限制在此组目录列表下 ; 当一个脚本试图打开一个指定目录树之外的文件时 将遭到拒绝 ; 所有的符号连接都会被解析 所以不可能通过符号连接来避开此限制 ; 特殊值 指定了存放该脚本的目录将被当做基准目录 ; 但这有些危险 因为脚本的工作目录可以轻易被chdir()改变 ; 对于共享服务器 在中灵活设置该指令将变得非常有用 ; 在Windows中用分号分隔目录 UNIX系统中用冒号分隔目录 ; 作为Apache模块时 父目录中的open_basedir路径将自动被继承 ; 指定的限制实际上是一个前缀 而非一个目录名 ; 也就是说"/dir/incl"将允许访问"/dir/include"和"/dir/incls" ; 如果您希望将访问控制在一个指定的目录 那么请在结尾加上一个斜线 ; 默认是允许打开所有文件
[PHP Core Error] error_reporting = E_ALL & ~E_NOTICE ; 错误报告级别是位字段的叠加 推荐使用 E_ALL | E_STRICT ; E_ERROR 致命的运行时错误 ; E_WARNING 运行时警告(非致命性错误) ; E_PARSE 编译时解析错误 ; E_NOTICE 运行时提醒(经常是bug 也可能是有意的) ; E_CORE_ERROR PHP启动时初始化过程中的致命错误 ; E_CORE_WARNING PHP启动时初始化过程中的警告(非致命性错) ; E_PILE_ERROR 编译时致命性错 ; E_PILE_WARNING 编译时警告(非致命性错) ; E_USER_ERROR 用户自定义的致命错误 ; E_USER_WARNING 用户自定义的警告(非致命性错误) ; E_USER_NOTICE 用户自定义的提醒(经常是bug 也可能是有意的) ; E_STRICT 编码标准化警告(建议如何修改以向前兼容) ; E_RECOVERABLE_ERROR 接近致命的运行时错误 若未被捕获则视同E_ERROR ; E_ALL 除E_STRICT外的所有错误(PHP 中为 即包含所有) 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 ; 尚无说明文档 _errors = On ; 是否在出错信息中使用HTML标记 ; 注意: 不要在发布的站点上使用这个特性! docref_root = ;"//localhost/phpmanual/" docref_ext = ;" " ; 如果打开了_errors指令 PHP将会在出错信息上显示超连接 ; 直接链接到一个说明这个错误或者导致这个错误的函数的页面 ; 你可以从下载php手册 ; 并将docref_root指令指向你本地的手册所在的URL目录 ; 你还必须设置docref_ext指令来指定文件的扩展名(必须含有 ) ; 注意: 不要在发布的站点上使用这个特性 error_prepend_string = ;"<font color=#f >" ; 用于错误信息前输出的字符串 error_append_string = ;"</font>" ; 用于错误信息后输出的字符串 xmlrpc_errors = Off xmlrpc_error_number = ; 尚无文档 [PHP Core Logging] define_syslog_variables = Off ; 是否定义各种系统日志变量 如 $LOG_PID $LOG_CRON 等等 ; 关掉它以提高效率的好主意 ; 你可以在运行时调用define_syslog_variables()函数来定义这些变量 error_log = ; 将错误日志记录到哪个文件中 该文件必须对Web服务器用户可写 ; syslog 表示记录到系统日志中(NT下的事件日志 Unix下的syslog( )) ; 如果此处未设置任何值 则错误将被记录到Web服务器的错误日志中 log_errors = Off ; 是否在日志文件里记录错误 具体在哪里记录取决于error_log指令 ; 强烈建议你在最终发布的web站点时使用日志记录错误而不是直接输出 ; 这样可以让你既知道那里出了问题 又不会暴露敏感信息 log_errors_max_len = ; 设置错误日志中附加的与错误信息相关联的错误源的最大长度 ; 这里设置的值对显示的和记录的错误以及$php_errormsg都有效 ; 设为 可以允许无限长度 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地址 仅用于win smtp_port = ; SMTP服务器的端口号 仅用于win sendmail_from = ; 发送邮件时使用的"From:"头中的邮件地址 仅用于win ; 该选项还同时设置了"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()的第 个参数 即使在安全模式下也是如此 [PHP Core ResourceLimit] default_socket_timeout = ; 默认socket超时(秒) max_execution_time = ; 每个脚本最大允许执行时间(秒) 表示没有限制 ; 这个参数有助于阻止劣质脚本无休止的占用服务器资源 ; 该指令仅影响脚本本身的运行时间 任何其它花费在脚本运行之外的时间 ; 如用system()/sleep()函数的使用 数据库查询 文件上传等 都不包括在内 ; 在安全模式下 你不能用ini_set()在运行时改变这个设置 memory_limit = M ; 一个脚本所能够申请到的最大内存字节数(可以使用K和M作为单位) ; 这有助于防止劣质脚本消耗完服务器上的所有内存 ; 要能够使用该指令必须在编译时使用" enable memory limit"配置选项 ; 如果要取消内存限制 则必须将其设为 ; 设置了该指令后 memory_get_usage()函数将变为可用 max_input_time = ; 每个脚本解析输入数据(POST GET upload)的最大允许时间(秒) ; 表示不限制 post_max_size = M ; 允许的POST数据最大字节长度 此设定也影响到文件上传 ; 如果POST数据超出限制 那么$_POST和$_FILES将会为空 ; 要上传大文件 该值必须大于upload_max_filesize指令的值 ; 如果启用了内存限制 那么该值应当小于memory_limit指令的值 realpath_cache_size = K ;SYS ; 指定PHP使用的realpath(规范化的绝对路径名)缓冲区大小 ; 在PHP打开大量文件的系统上应当增大该值以提高性能 realpath_cache_ttl = ;SYS ; realpath缓冲区中信息的有效期(秒) ; 对文件很少变动的系统 可以增大该值以提高性能
[PHP Core FileUpLoad] file_uploads = On ;SYS ; 是否允许HTTP文件上传 ; 参见upload_max_filesize upload_tmp_dir post_max_size指令 upload_max_filesize = M ; 允许上传的文件的最大尺寸 upload_tmp_dir = ;SYS ; 文件上传时存放文件的临时目录(必须是PHP进程用户可写的目录) ; 如果未指定则PHP使用系统默认的临时目录 [PHP Core MagicQuotes] ; PHP 将取消魔术引号 相当于下列指令全部为 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 ment = "#FF " highlight default = "# BB" highlight = "# " highlight keyword = "# " highlight string = "#DD " ; 语法高亮模式的色彩(通常用于显示 phps 文件) ; 只要能被<font color=xxx>接受的东西就能正常工作 [PHP Core Langue] short_open_tag = On ; 是否允许使用"<? ?>"短标识 否则必须使用"<?php ?>"长标识 ; 除非你的php程序仅在受控环境下运行 且只供自己使用 否则请不要使用短标记 ; 如果要和XML结合使用PHP 可以选择关闭此选项以方便直接嵌入"<?xml ?>" ; 不然你必须用PHP来输出 <? echo <?xml version=" " ; ?> ; 本指令也会影响到缩写形式"<?=" 它和"<? echo"等价 要使用它也必须打开短标记 asp_tags = Off ; 是否允许ASP风格的标记"<% %>" 这也会影响到缩写形式"<%=" ; PHP 中将删除此指令 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指令的影响 ; PHP 中已经删除此指令 register_argc_argv = On ; 是否声明$argv和$argc全局变量(包含用GET方法的信息) ; 建议不要使用这两个变量 并关掉该指令以提高性能 register_long_arrays = On ; 是否启用旧式的长式数组(HTTP_*_VARS) ; 鼓励使用短式的预定义超全局数组 并关闭该特性以获得更好的性能 ; PHP 中已经删除此指令 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_Inplete_Class"对象 ; 如果这里没有指定函数 或指定的函数不包含(或实现)那个未定义的类 将会显示警告信息 ; 所以仅在确实需要实现这样的回调函数时才设置该指令 ; 若要禁止这个特性 只需置空即可 y k_pliance = On ; 是否强制打开 年适应(可能在非Y K适应的浏览器中导致问题) zend ze _patibility_mode = Off ; 是否使用兼容Zend引擎I(PHP x)的模式 ; 这将影响对象的复制 构造(无属性的对象会产生FALSE或 ) 比较 ; 兼容模式下 对象将按值传递 而不是默认的按引用传递 precision = ; 浮点型数据显示的有效位数 serialize_precision = ; 将浮点型和双精度型数据序列化存储时的精度(有效位数) ; 默认值能够确保浮点型数据被解序列化程序解码时不会丢失数据 [PHP Core OutputControl] ; 输出控制函数很有用 特别是在已经输出了信息之后再发送HTTP头的情况下 ; 输出控制函数不会作用于header()或setcookie()等函数发送的HTTP头 ; 而只会影响类似于echo()函数输出的信息和嵌入在PHP代码之间的信息 implicit_flush = Off ; 是否要求PHP输出层在每个输出块之后自动刷新数据 ; 这等效于在每个 print() echo() HTML块 之后自动调用flush()函数 ; 打开这个选项对程序执行的性能有严重的影响 通常只推荐在调试时使用 ; 在CLI SAPI的执行模式下 该指令默认为 On output_buffering = ; 输出缓冲区大小(字节) 建议值为 ~ ; 输出缓冲允许你甚至在输出正文内容之后再发送HTTP头(包括cookies) ; 其代价是输出层减慢一点点速度 ; 设置输出缓冲可以减少写入 有时还能减少网络数据包的发送 ; 这个参数的实际收益很大程度上取决于你使用的是什么Web服务器以及什么样的脚本 output_handler = ; 将所有脚本的输出重定向到一个输出处理函数 ; 比如 重定向到mb_output_handler()函数时 字符编码将被透明地转换为指定的编码 ; 一旦你在这里指定了输出处理程序 输出缓冲将被自动打开(output_buffering= ) ; 注意 : 此处仅能使用PHP内置的函数 自定义函数应在脚本中使用ob_start()指定 ; 注意 : 可移植脚本不能依赖该指令 而应使用ob_start()函数明确指定输出处理函数 ; 使用这个指令可能会导致某些你不熟悉的脚本出错 ; 注意 : 你不能同时使用"mb_output_handler"和"ob_iconv_handler"两个输出处理函数 ; 你也不能同时使用"ob_gzhandler"输出处理函数和zlib output_pression指令 ; 注意 : 如果使用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: "/path :/path " ; Windows: "path ;path " ; 在包含路径中使用 可以允许相对路径 它代表当前目录 user_dir = ;SYS ; 告诉php在使用 /~username 打开脚本时到哪个目录下去找 仅在非空时有效 ; 也就是在用户目录之下使用PHP文件的基本目录名 例如 "public_" extension_dir = "/path/to/php" ;SYS ; 存放扩展库(模块)的目录 也就是PHP用来寻找动态扩展模块的目录 ; Windows下默认为"C:/php " [PHP Core HTTP] default_mimetype = "text/" default_charset = ;"gb " ; PHP默认会自动输出"Content Type: text/" HTTP头 ; 如果将default_charset指令设为"gb " ; 那么将会自动输出"Content Type: text/; charset=gb " [PHP Core Unicode] detect_unicode = On ; 尚无文档 [PHP Core Misc] auto_detect_line_endings = Off ; 是否让PHP自动侦测行结束符(EOL) ; 如果的你脚本必须处理Macintosh文件 ; 或者你运行在Macintosh上 同时又要处理unix或win 文件 ; 打开这个指令可以让PHP自动侦测EOL 以便fgets()和file()函数可以正常工作 ; 但同时也会导致在Unix系统下使用回车符(CR)作为项目分隔符的人遭遇不兼容行为 ; 另外 在检测第一行的EOL习惯时会有很小的性能损失 browscap = ;"c:/windows/system /inetsrv/browscap ini" ;SYS ; 只有PWS和IIS需要这个设置 ; 你可以从 ; 得到一个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 ; _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 rfc _headers = ; 指定PHP在发送HTTP响应代码时使用何种报头 ; 表示发送一个"Status: "报头 Apache和其它web服务器都支持 ; 若设为 则PHP使用RFC 标准的头 ; 除非你知道自己在做什么 否则保持其默认值 cgi nph = Off ; 在CGI模式下是否强制对所有请求都发送"Status: "状态码 fastcgi impersonate = Off ; IIS中的FastCGI支持模仿客户端安全令牌的能力 ; 这使得IIS能够定义运行时所基于的请求的安全上下文 ; Apache中的mod_fastcgi不支持此特性( / / ) ; 如果在IIS中运行则设为On 默认为Off fastcgi logging = On ; 是否记录通过FastCGI进行的连接 [PHP Core Weirdy] ; 这些选项仅存在于文档中 却不存在于phpinfo()函数的输出中 async_send = Off ; 是否异步发送 from = ;"john@doe " ; 定义匿名ftp的密码(一个email地址)
;;;;;;;;;;;;;;;;;; ;; 近核心模块 ;; ;;;;;;;;;;;;;;;;;; [Pcre] ;Perl兼容正则表达式模块 pcre backtrack_limit = ; PCRE的最大回溯(backtracking)步数 pcre recursion_limit = ; PCRE的最大递归(recursion)深度 ; 如果你将该值设的非常高 将可能耗尽进程的栈空间 导致PHP崩溃 [Session] ; 除非使用session_register()或$_SESSION注册了一个变量 ; 否则不管是否使用了session_start() 都不会自动添加任何session记录 ; 包括resource变量或有循环引用的对象包含指向自身的引用的对象 不能保存在会话中 ; register_globals指令会影响到会话变量的存储和恢复 session save_handler = "files" ; 存储和检索与会话关联的数据的处理器名字 默认为文件("files") ; 如果想要使用自定义的处理器(如基于数据库的处理器) 可用"user" ; 有一个使用PostgreSQL的处理器 [url][/url] session save_path = "/tmp" ; 传递给存储处理器的参数 对于files处理器 此值是创建会话数据文件的路径 ; Windows下默认为临时文件夹路径 ; 你可以使用"N;[MODE;]/path"这样模式定义该路径(N是一个整数) ; N表示使用N层深度的子目录 而不是将所有数据文件都保存在一个目录下 ; [MODE;]可选 必须使用 进制数 默认 (= ) 表示每个目录下最多保存的会话文件数量 ; 这是一个提高大量会话性能的好主意 ; 注意 : "N;[MODE;]/path"两边的双引号不能省略 ; 注意 : [MODE;]并不会改写进程的umask ; 注意 : php不会自动创建这些文件夹结构 请使用ext/session目录下的mod_files sh脚本创建 ; 注意 : 如果该文件夹可以被不安全的用户访问(比如默认的"/tmp") 那么将会带来安全漏洞 ; 注意 : 当N> 时自动垃圾回收将会失效 具体参见下面有关垃圾搜集的部分 session name = "PHPSESSID" ;用在cookie里的会话ID标识名 只能包含字母和数字 session auto_start = Off ; 在客户访问任何页面时都自动初始化会话 默认禁止 ; 因为类定义必须在会话启动之前被载入 所以若打开这个选项 你就不能在会话中存放对象 session serialize_handler = "php" ; 用来序列化/解序列化数据的处理器 php是标准序列化/解序列化处理器 ; 另外还可以使用"php_binary" 当启用了WDDX支持以后 将只能使用"wddx" session gc_probability = session gc_divisor = ; 定义在每次初始化会话时 启动垃圾回收程序的概率 ; 这个收集概率计算公式如下 session gc_probability/session gc_divisor ; 对会话页面访问越频繁 概率就应当越小 建议值为 / ~ session gc_maxlifetime = ; 超过此参数所指的秒数后 保存的数据将被视为 垃圾 并由垃圾回收程序清理 ; 判断标准是最后访问数据的时间(对于FAT文件系统是最后刷新数据的时间) ; 如果多个脚本共享同一个session save_path目录但session gc_maxlifetime不同 ; 那么将以所有session gc_maxlifetime指令中的最小值为准 ; 如果使用多层子目录来存储数据文件 垃圾回收程序不会自动启动 ; 你必须使用一个你自己编写的shell脚本 cron项或者其他办法来执行垃圾搜集 ; 比如 下面的脚本相当于设置了"session gc_maxlifetime= " ( 分钟) ; cd /path/to/sessions; find cmin + | xargs rm session referer_check = ; 如果请求头中的"Referer"字段不包含此处指定的字符串则会话ID将被视为无效 ; 注意 如果请求头中根本不存在"Referer"字段的话 会话ID将仍将被视为有效 ; 默认为空 即不做检查(全部视为有效) session entropy_file = ;"/dev/urandom" ; 附加的用于创建会话ID的外部高熵值资源(文件) ; 例如UNIX系统上的"/dev/random"或"/dev/urandom" session entropy_length = ; 从高熵值资源中读取的字节数(建议值 ) session use_cookies = On ; 是否使用cookie在客户端保存会话ID session use_only_cookies = Off ; 是否仅仅使用cookie在客户端保存会话ID ; 打开这个选项可以避免使用URL传递会话带来的安全问题 ; 但是禁用Cookie的客户端将使会话无法工作 session cookie_lifetime = ; 传递会话ID的Cookie有效期(秒) 表示仅在浏览器打开期间有效 session cookie_path = "/" ; 传递会话ID的Cookie作用路径 session cookie_domain = ; 传递会话ID的Cookie作用域 ; 默认为空表示表示根据cookie规范生成的主机名 session cookie_secure = Off ; 是否仅仅通过安全连接()发送cookie session cookie_only = Off ; 是否在cookie中添加Only标志(仅允许HTTP协议访问) ; 这将导致客户端脚本(javascript等)无法访问该cookie ; 打开该指令可以有效预防通过XSS攻击劫持会话ID session cache_limiter = "nocache" ; 设为nocache|private|public以指定会话页面的缓存控制模式 ; 或者设为空以阻止在应答头中发送禁用缓存的命令 session cache_expire = ; 指定会话页面在客户端cache中的有效期限(分钟) ; session cache_limiter=nocache时 此处设置无效 session use_trans_sid = Off ; 是否使用明码在URL中显示SID(会话ID) ; 默认是禁止的 因为它会给你的用户带来安全危险 ; 用户可能将包含有效sid的URL通过email/irc/QQ/MSN 途径告诉给其他人 ; 包含有效sid的URL可能会被保存在公用电脑上 ; 用户可能保存带有固定不变sid的URL在他们的收藏夹或者浏览历史纪录里面 ; 基于URL的会话管理总是比基于Cookie的会话管理有更多的风险 所以应当禁用 session bug_pat_ = On session bug_pat_warn = On ; PHP 之前的版本有一个未注明的"BUG" ; 即使在register_globals=Off的情况下也允许初始化全局session变量 ; 如果你在PHP 之后的版本中使用这个特性 会显示一条警告 ; 建议关闭该"BUG"并显示警告 session hash_function = ; 生成SID的散列算法 SHA 的安全性更高一些 ; : MD ( bits) ; : SHA ( bits) ; 建议使用SHA session hash_bits_per_character = ; 指定在SID字符串中的每个字符内保存多少bit ; 这些二进制数是hash函数的运算结果 ; : a f ; : a v ; : a z A Z " " " " ; 建议值为 url_rewriter tags = "a=href area=href frame=src form= fieldset=" ; 此指令属于PHP核心部分 并不属于Session模块 ; 指定重写哪些HTML标签来包含SID(仅当session use_trans_sid=On时有效) ; form和fieldset比较特殊 ; 如果你包含他们 URL重写器将添加一个隐藏的"<input>" 它包含了本应当额外追加到URL上的信息 ; 如果要符合XHTML标准 请去掉form项并在表单字段前后加上<fieldset>标记 ; 注意 所有合法的项都需要一个等号(即使后面没有值) ; 推荐值为"a=href area=href frame=src input=src form=fakeentry"
;;;;;;;;;;;;;;;; ;; 其他模块 ;; ;;;;;;;;;;;;;;;; [APC] ; Alternative PHP Cache 用于缓存和优化PHP中间代码 apc cache_by_default = On ;SYS ; 是否默认对所有文件启用缓冲 ; 若设为Off并与以加号开头的apc filters指令一起用 则文件仅在匹配过滤器时才被缓存 apc enable_cli = Off ;SYS ; 是否为CLI版本启用APC功能 仅用于测试和调试目的才打开此指令 apc enabled = On ; 是否启用APC 如果APC被静态编译进PHP又想禁用它 这是唯一的办法 apc file_update_protection = ;SYS ; 当你在一个运行中的服务器上修改文件时 你应当执行原子操作 ; 也就是先写进一个临时文件 然后将该文件重命名(mv)到最终的名字 ; 文本编辑器以及 cp tar 等程序却并不是这样操作的 从而导致有可能缓冲了残缺的文件 ; 默认值 表示在访问文件时如果发现修改时间距离访问时间小于 秒则不做缓冲 ; 那个不幸的访问者可能得到残缺的内容 但是这种坏影响却不会通过缓存扩大化 ; 如果你能确保所有的更新操作都是原子操作 那么可以用 关闭此特性 ; 如果你的系统由于大量的IO操作导致更新缓慢 你就需要增大此值 apc filters = ;SYS ; 一个以逗号分隔的POSIX扩展正则表达式列表 ; 如果源文件名与任意一个模式匹配 则该文件不被缓存 ; 注意 用来匹配的文件名是传递给include/require的文件名 而不是绝对路径 ; 如果正则表达式的第一个字符是"+"则意味着任何匹配表达式的文件会被缓存 ; 如果第一个字符是" "则任何匹配项都不会被缓存 " "是默认值 可以省略掉 apc ttl = ;SYS ; 缓存条目在缓冲区中允许逗留的秒数 表示永不超时 建议值为 ~ ; 设为 意味着缓冲区有可能被旧的缓存条目填满 从而导致无法缓存新条目 apc user_ttl = ;SYS ; 类似于apc ttl 只是针对每个用户而言 建议值为 ~ ; 设为 意味着缓冲区有可能被旧的缓存条目填满 从而导致无法缓存新条目 apc gc_ttl = ;SYS ; 缓存条目在垃圾回收表中能够存在的秒数 ; 此值提供了一个安全措施 即使一个服务器进程在执行缓存的源文件时崩溃 ; 而且该源文件已经被修改 为旧版本分配的内存也不会被回收 直到达到此TTL值为止 ; 设为零将禁用此特性 apc include_once_override = Off ;SYS ; 关于该指令目前尚无说明文档 参见 [url][/url] ; 请保持为Off 否则可能导致意想不到的结果 apc max_file_size = M ;SYS ; 禁止大于此尺寸的文件被缓存 apc mmap_file_mask = ;SYS ; 如果使用 enable mmap(默认启用)为APC编译了MMAP支持 ; 这里的值就是传递给mmap模块的mktemp风格的文件掩码(建议值为"/tmp/apc XXXXXX") ; 该掩码用于决定内存映射区域是否要被file backed或者shared memory backed ; 对于直接的file backed内存映射 要设置成"/tmp/apc XXXXXX"的样子(恰好 个X) ; 要使用POSIX风格的shm_open/mmap就需要设置成"/apc shm XXXXXX"的样子 ; 你还可以设为"/dev/zero"来为匿名映射的内存使用内核的"/dev/zero"接口 ; 不定义此指令则表示强制使用匿名映射 apc num_files_hint = ;SYS ; Web服务器上可能被包含或被请求的不同源文件的大致数量(建议值为 ~ ) ; 如果你不能确定 则设为 此设定主要用于拥有数千个源文件的站点 apc optimization = ; 优化级别(建议值为 ) ; 正整数值表示启用优化器 值越高则使用越激进的优化 ; 更高的值可能有非常有限的速度提升 但目前尚在试验中 apc report_autofilter = Off ;SYS ; 是否记录所有由于early/late binding原因而自动未被缓存的脚本 apc shm_segments = ;SYS ; 为编译器缓冲区分配的共享内存块数量(建议值为 ) ; 如果APC耗尽了共享内存 并且已将apc shm_size指令设为系统允许的最大值 ; 你可以尝试增大此值 apc shm_size = ;SYS ; 每个共享内存块的大小(以MB为单位 建议值为 ~ ) ; 有些系统(包括大多数BSD变种)默认的共享内存块大小非常少 apc slam_defense = ;SYS(反对使用该指令 建议该用apc write_lock指令) ; 在非常繁忙的服务器上 无论是启动服务还是修改文件 ; 都可能由于多个进程企图同时缓存一个文件而导致竞争条件 ; 这个指令用于设置进程在处理未被缓存的文件时跳过缓存步骤的百分率 ; 比如设为 表示在遇到未被缓存的文件时有 %的概率不进行缓存 从而减少碰撞几率 ; 鼓励设为 来禁用这个特性 apc stat = On ;SYS ; 是否启用脚本更新检查 ; 改变这个指令值要非常小心 ; 默认值 On 表示APC在每次请求脚本时都检查脚本是否被更新 ; 如果被更新则自动重新编译和缓存编译后的内容 但这样做对性能有不利影响 ; 如果设为 Off 则表示不进行检查 从而使性能得到大幅提高 ; 但是为了使更新的内容生效 你必须重启Web服务器 ; 这个指令对于include/require的文件同样有效 但是需要注意的是 ; 如果你使用的是相对路径 APC就必须在每一次include/require时都进行检查以定位文件 ; 而使用绝对路径则可以跳过检查 所以鼓励你使用绝对路径进行include/require操作 apc user_entries_hint = ;SYS ; 类似于num_files_hint指令 只是针对每个不同用户而言 ; 如果你不能确定 则设为 apc write_lock = On ;SYS ; 是否启用写入锁 ; 在非常繁忙的服务器上 无论是启动服务还是修改文件 ; 都可能由于多个进程企图同时缓存一个文件而导致竞争条件 ; 启用该指令可以避免竞争条件的出现 apc rfc = Off ;SYS ; 打开该指令后 对于每个恰好在file字段之前含有APC_UPLOAD_PROGRESS字段的上传文件 ; APC都将自动创建一个upload_<key>的用户缓存条目(<key>就是APC_UPLOAD_PROGRESS字段值)
cha138/Article/program/PHP/201311/20873相关参考
Struts中配置文件的详解 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Struts应用采用
Web.config配置文件详解 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 花了点时间整理了
知识大全 Structs2.0配置文件propertits详解
Structs2.0配置文件propertits详解 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Struts2的properties配置文件详解 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!##
PHPWeb开发学习实录:php.ini的路径问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
[PHP] ;PHP还是一个不断发展的工具其功能还在不断地删减 ;而phpini的设置更改可以反映出相当的变化 ;在使用新的PHP版本前研究一下phpini会有好处的
提供一点资料给你 display_errors=On php缺省是打开错误信息显示的我们把它改为 display_errors=Off 关闭错误显示后php函数执行错误的信息将不会再显示给
知识大全 基于php使用memcache存储session的详解
web服务器的phpsession都给memcached这样你不管分发器把ip连接分给哪个web服务器都不会有问题了配置方法很简单就在php的配置文件内增加一条语句就可以了不过前提你需要装好mem
Tomcat配置技巧精华详解分析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 配置系统管理(A
Tomcat配置技巧精华详解分析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 配置系统管理(A