首页 > 技术文章 > php.ini 配置详解【转载】

hcduguo 2016-12-03 14:49 原文

[PHP]
engine = On   #是否启用PHP解析引擎
zend.ze1_compatibility_mode = Off #是否在Last-Modified应答头中放置该PHP脚本的最后修改时间
short_open_tag = On  #使用简洁标志
asp_tags = Off  #不允许ASP类标志
precision    =  12  #浮点型数据显示的有效期
y2k_compliance = On  #是否强制打开2000年适应(可能在非Y2K适应的浏览器中导致问题)。

output_buffering = 0 #; 输出缓冲区大小(字节)。建议值为4096~8192。 
; 输出缓冲允许你甚至在输出正文内容之后再发送HTTP头(包括cookies)。 
; 其代价是输出层减慢一点点速度。 
; 设置输出缓冲可以减少写入,有时还能减少网络数据包的发送。 
; 这个参数的实际收益很大程度上取决于你使用的是什么Web服务器以及什么样的脚本

zlib.output_compression = Off  zlib输出压缩
implicit_flush = Off  #是否要求PHP输出层在每个输出块之后自动刷新数据。 
; 这等效于在每个 print()、echo()、HTML块 之后自动调用flush()函数。 
; 打开这个选项对程序执行的性能有严重的影响,通常只推荐在调试时使用。 
; 在CLI SAPI的执行模式下,该指令默认为 On 。 
unserialize_callback_func=
serialize_precision = 100  #; 将浮点型和双精度型数据序列化存储时的精度(有效位数)。 
; 默认值能够确保浮点型数据被解序列化程序解码时不会丢失数据。 
allow_call_time_pass_reference = On #是否强迫在函数调用时按引用传递参数(每次使用此特性都会收到一条警告)。 
; php反对这种做法,并在将来的版本里不再支持,因为它影响到了代码的整洁。 
; 鼓励的方法是在函数声明里明确指定哪些参数按引用传递。 
; 我们鼓励你关闭这一选项,以保证你的脚本在将来版本的语言里仍能正常工作。
safe_mode = Off        #安全模式
safe_mode_gid = Off
safe_mode_include_dir = #在安全模式下,该组目录和其子目录下的文件被包含时,将跳过UID/GID检查。 
换句话说,如果此处的值为空,任何UID/GID不符合的文件都不允许被包含。 
这里设置的目录必须已经存在于include_path指令中或者用完整路径来包含。 
 多个目录之间用冒号(Win下为分号)隔开。 
 指定的限制实际上是一个前缀,而非一个目录名, 
 也就是说”/dir/incl”将允许访问”/dir/include”和”/dir/incls” 
 如果您希望将访问控制在一个指定的目录,那么请在结尾加上斜线。
safe_mode_exec_dir =  #安全模式下的可执行文件存放目录
safe_mode_allowed_env_vars = PHP_ #在安全模式下,用户仅可以更改的环境变量的前缀列表(逗号分隔)。 
允许用户设置某些环境变量,可能会导致潜在的安全漏洞。 
 注意: 如果这一参数值为空,PHP将允许用户更改任意环境变量
safe_mode_protected_env_vars = LD_LIBRARY_PATH在安全模式下,用户不能更改的环境变量列表(逗号分隔)。 
 这些变量即使在safe_mode_allowed_env_vars指令设置为允许的情况下也会得到保护。
disable_functions = #该指令接受一个用逗号分隔的函数名列表,以禁用特定的函数。
disable_classes = #该指令接受一个用逗号分隔的类名列表,以禁用特定的类
expose_php = On #在网页头部显示php信息
max_execution_time = 30   #每个脚本最大执行秒数
max_input_time = 60     #每个脚本用来分析请求数据的最大限制时间
memory_limit = 128M     #每个脚本执行的内存限制
error_reporting = E_ALL & ~E_NOTICE
display_errors = On       #显示失误(该关闭,换成日志显示)
display_startup_errors = Off  #显示启动失误

define_syslog_variables  = Off  #是否定义各种系统日志变量,如:$LOG_PID, $LOG_CRON 等等。 
; 关掉它以提高效率的好主意。 
; 你可以在运行时调用define_syslog_variables()函数来定义这些变量。 
log_errors = Off  #该改为on
log_errors_max_len = 1024  #设定error_log最大长度
ignore_repeated_errors = Off  #打开后,不记录重复的信息
ignore_repeated_source = Off  #打开后当记录重复的信息时忽略来源
report_memleaks = On  #报告内存泄露,仅在debug编译模式下有效
track_errors = Off   #在$php_errormsg中保存最后一次错误/警告消息 (逻辑值).
永远不要再生产环境中使用此特性:html_errors 会显示php错误所在的html标签
variables_order = "EGPCS"#此指令描述了PHP注册GET, POST, Cookie, 环境 和 内置变量的顺序  (各自使用G, P, C, E 和 S , 一般使用 EGPCS 或 GPC).  注册使用从左往右的顺序, 新的值会覆盖旧的值.
register_globals = Off  #是否打开register全局变量
register_long_arrays = On #是否注册老形式的输入数组, HTTP_GET_VARS 和相关数组
; 如果你不使用他们,建议为了提高性能关闭他们.
register_argc_argv = On  #此指令让PHP确认是否申明 argv&argc 变量 (这些变量会包含GET信息). 
; 如果你不使用这些变量,为了提升性能应该关闭此选项.
auto_globals_jit = On  #当打开此项, SERVER 和 ENV 变量将在第一次被使用时而不是脚本一开始时创建(运行时)
; 如果这些变量在脚本中没有被使用过, 打开此项会增加一点性能.
; 为了使此指令有效,PHP指令 register_globals, register_long_arrays,
; 以及 register_argc_argv 必须被关闭.
post_max_size = 8M   #PHP可以接受的最大的POST数据大小
magic_quotes_gpc = On  #针对GET/POST/Cookie数据打开Magic quotes.
magic_quotes_runtime = Off  #针对实时产生的数据打开Magic quotes, 例如从SQL获取的数据, 从exec()返回的数据等等.
magic_quotes_sybase = Off   #使用 Sybase 风格的 magic quotes (使用"来引导'替代\').
auto_prepend_file =  #在任何PHP文档之前或之后自动增加文件
auto_append_file =
default_mimetype = "text/html"  #PHP内建默认为text/html
file_uploads = On #是否允许http文件上传
upload_tmp_dir =  #对于http上传文件的临时目录
upload_max_filesize = 2M #允许上传的最大文件大小

doc_root =  #PHP的"根目录"。仅在非空时有效。 
; 如果safe_mode=On,则此目录之外的文件一概被拒绝。 
; 如果编译PHP时没有指定FORCE_REDIRECT,并且在非IIS服务器上以CGI方式运行, 
; 则必须设置此指令(参见手册中的安全部分)。 
; 替代方案是使用的cgi.force_redirect指令
user_dir =告诉php在使用 /~username 打开脚本时到哪个目录下去找,仅在非空时有效。 
 也就是在用户目录之下使用PHP文件的基本目录名,例如:"public_html" 
extension_dir = "./"  #存放扩展库(模块)的目录,也就是PHP用来寻找动态扩展模块的目录
enable_dl = On  #是否允许使用dl()函数。dl()函数仅在将PHP作为apache模块安装时才有效。 
禁用dl()函数主要是出于安全考虑,因为它可以绕过open_basedir指令的限制。 
在安全模式下始终禁用dl()函数,而不管此处如何设置。
file_uploads = On
upload_max_filesize = 2M  #最大可上传文件,2M
allow_url_fopen = On   #是否允许打开远程文件
allow_url_include = Off  #是否允许include/require远程文件

[PHP]
engine = On   #
是否启用PHP解析引擎
zend.ze1_compatibility_mode = Off #
是否在Last-Modified应答头中放置该PHP脚本的最后修改时间
short_open_tag = On  #
使用简洁标志
asp_tags = Off  #
不允许ASP类标志
precision    =  12  #
浮点型数据显示的有效期
y2k_compliance = On  #
是否强制打开2000年适应(可能在非Y2K适应的浏览器中导致问题)

output_buffering = 0 #; 输出缓冲区大小(字节)。建议值为4096~8192 
;
输出缓冲允许你甚至在输出正文内容之后再发送HTTP(包括cookies) 
;
其代价是输出层减慢一点点速度。 
;
设置输出缓冲可以减少写入,有时还能减少网络数据包的发送。 
;
这个参数的实际收益很大程度上取决于你使用的是什么Web服务器以及什么样的脚本

zlib.output_compression = Off  zlib输出压缩
implicit_flush = Off  #
是否要求PHP输出层在每个输出块之后自动刷新数据。 
;
这等效于在每个 print()echo()HTML之后自动调用flush()函数。 
;
打开这个选项对程序执行的性能有严重的影响,通常只推荐在调试时使用。 
;
CLI SAPI的执行模式下,该指令默认为 On  
unserialize_callback_func=
serialize_precision = 100  #;
将浮点型和双精度型数据序列化存储时的精度(有效位数) 
;
默认值能够确保浮点型数据被解序列化程序解码时不会丢失数据。 
allow_call_time_pass_reference = On #
是否强迫在函数调用时按引用传递参数(每次使用此特性都会收到一条警告) 
; php
反对这种做法,并在将来的版本里不再支持,因为它影响到了代码的整洁。 
;
鼓励的方法是在函数声明里明确指定哪些参数按引用传递。 
;
我们鼓励你关闭这一选项,以保证你的脚本在将来版本的语言里仍能正常工作。
safe_mode = Off        #
安全模式
safe_mode_gid = Off
safe_mode_include_dir = #
在安全模式下,该组目录和其子目录下的文件被包含时,将跳过UID/GID检查。 
换句话说,如果此处的值为空,任何UID/GID不符合的文件都不允许被包含。 
这里设置的目录必须已经存在于include_path指令中或者用完整路径来包含。 
 
多个目录之间用冒号(Win下为分号)隔开。 
 
指定的限制实际上是一个前缀,而非一个目录名, 
 
也就是说”/dir/incl”将允许访问”/dir/include””/dir/incls” 
 
如果您希望将访问控制在一个指定的目录,那么请在结尾加上斜线。
safe_mode_exec_dir =  #
安全模式下的可执行文件存放目录
safe_mode_allowed_env_vars = PHP_ #
在安全模式下,用户仅可以更改的环境变量的前缀列表(逗号分隔) 
允许用户设置某些环境变量,可能会导致潜在的安全漏洞。 
 
注意: 如果这一参数值为空,PHP将允许用户更改任意环境变量
safe_mode_protected_env_vars = LD_LIBRARY_PATH
在安全模式下,用户不能更改的环境变量列表(逗号分隔) 
 
这些变量即使在safe_mode_allowed_env_vars指令设置为允许的情况下也会得到保护。
disable_functions = #
该指令接受一个用逗号分隔的函数名列表,以禁用特定的函数。
disable_classes = #
该指令接受一个用逗号分隔的类名列表,以禁用特定的类
expose_php = On #
在网页头部显示php信息
max_execution_time = 30   #
每个脚本最大执行秒数
max_input_time = 60     #
每个脚本用来分析请求数据的最大限制时间
memory_limit = 128M     #
每个脚本执行的内存限制
error_reporting = E_ALL & ~E_NOTICE
display_errors = On       #
显示失误(该关闭,换成日志显示)
display_startup_errors = Off  #
显示启动失误

define_syslog_variables  = Off  #是否定义各种系统日志变量,如:$LOG_PID, $LOG_CRON 等等。 
;
关掉它以提高效率的好主意。 
;
你可以在运行时调用define_syslog_variables()函数来定义这些变量。 
log_errors = Off  #
该改为on
log_errors_max_len = 1024  #
设定error_log最大长度
ignore_repeated_errors = Off  #
打开后,不记录重复的信息
ignore_repeated_source = Off  #
打开后当记录重复的信息时忽略来源
report_memleaks = On  #
报告内存泄露,仅在debug编译模式下有效
track_errors = Off   #
$php_errormsg中保存最后一次错误/警告消息 (逻辑值).
永远不要再生产环境中使用此特性:html_errors 会显示php错误所在的html标签
variables_order = "EGPCS"#
此指令描述了PHP注册GET, POST, Cookie, 环境内置变量的顺序  (各自使用G, P, C, E S , 一般使用 EGPCS GPC).  注册使用从左往右的顺序, 新的值会覆盖旧的值.
register_globals = Off  #
是否打开register全局变量
register_long_arrays = On #
是否注册老形式的输入数组, HTTP_GET_VARS 和相关数组
;
如果你不使用他们,建议为了提高性能关闭他们.
register_argc_argv = On  #
此指令让PHP确认是否申明 argv&argc 变量 (这些变量会包含GET信息). 
;
如果你不使用这些变量,为了提升性能应该关闭此选项.
auto_globals_jit = On  #
当打开此项, SERVER ENV 变量将在第一次被使用时而不是脚本一开始时创建(运行时)
;
如果这些变量在脚本中没有被使用过, 打开此项会增加一点性能.
;
为了使此指令有效,PHP指令 register_globals, register_long_arrays,
;
以及 register_argc_argv 必须被关闭.
post_max_size = 8M   #PHP
可以接受的最大的POST数据大小
magic_quotes_gpc = On  #
针对GET/POST/Cookie数据打开Magic quotes.
magic_quotes_runtime = Off  #
针对实时产生的数据打开Magic quotes, 例如从SQL获取的数据, exec()返回的数据等等.
magic_quotes_sybase = Off   #
使用 Sybase 风格的 magic quotes (使用"来引导'替代\').
auto_prepend_file =  #
在任何PHP文档之前或之后自动增加文件
auto_append_file =
default_mimetype = "text/html"  #PHP
内建默认为text/html
file_uploads = On #
是否允许http文件上传
upload_tmp_dir =  #
对于http上传文件的临时目录
upload_max_filesize = 2M #
允许上传的最大文件大小

doc_root =  #PHP"根目录"。仅在非空时有效。 
;
如果safe_mode=On,则此目录之外的文件一概被拒绝。 
;
如果编译PHP时没有指定FORCE_REDIRECT,并且在非IIS服务器上以CGI方式运行, 
;
则必须设置此指令(参见手册中的安全部分) 
;
替代方案是使用的cgi.force_redirect指令
user_dir =
告诉php在使用 /~username 打开脚本时到哪个目录下去找,仅在非空时有效。 
 
也就是在用户目录之下使用PHP文件的基本目录名,例如:"public_html" 
extension_dir = "./"  #
存放扩展库(模块)的目录,也就是PHP用来寻找动态扩展模块的目录
enable_dl = On  #
是否允许使用dl()函数。dl()函数仅在将PHP作为apache模块安装时才有效。 
禁用dl()函数主要是出于安全考虑,因为它可以绕过open_basedir指令的限制。 
在安全模式下始终禁用dl()函数,而不管此处如何设置。
file_uploads = On
upload_max_filesize = 2M  #
最大可上传文件,2M
allow_url_fopen = On   #
是否允许打开远程文件
allow_url_include = Off  #
是否允许include/require远程文件

推荐阅读