php.ini 配置介绍

[PHP]
; 使 PHP scripting language engine(PHP 脚本语言引擎)在 Apache下有效
engine = On
; 是否开启短标识被识别。 <?= ?> 等价于 <?php echo ?>  从 PHP 5.4.0 起, <?= 总是可用的
short_open_tag = Off
; 允许ASP-style tags 是否可以识别asp 格式的标识符 <% %>
asp_tags = Off
; 浮点类型数显示时的有效位数
precision = 14
; 是否打开 2000年适应 (可能在非Y2K适应的浏览器中导致问题)
y2k_compliance = On
; 当缓存被写满之后才会被输出到浏览器或者使用内置函数 flush 强制输出 ,完整线路 echo/print -> php buffer -> tcp buffer -> browser
output_buffering = 4096

; 你可以重定向你的脚本的所有输出到一个函数,
; 那样做可能对处理或以日志记录它有用。
; 例如若你将这个output_handler 设为" ob_gzhandler" ,
; 则输出会被透明地为支持gzip或deflate编码的浏览器压缩。
; 设一个输出处理器自动地打开输出缓冲。
; output_handler =


; 强制flush(刷新)让PHP 告诉输出层在每个输出块之后自动刷新自身数据。
; 这等效于在每个 print() 或 echo() 调用和每个 HTML 块后调用flush()函数。
; 打开这项设置会导致严重的运行时冲突,建议仅在debug过程中打开。
; implicit_flush = Off


; 是否让强迫函数调用时按引用传递参数。这一方法遭到抗议,
; 并可能在将来版本的PHP/Zend里不再支持。受到鼓励的指定哪些参数按引用传递的方法是在函数声明里。
; 你被鼓励尝试关闭这一选项并确认你的脚本仍能正常工作,以保证在将来版本的语言里它们仍能工作。(你将在每次使用该特点时得到一个警告,而参数将按值而不是按引用传递)。
; allow_call_time_pass_reference = On

; Safe Mode 安全模式
safe_mode = Off
;当安全模式被启用,启用safe_mode_gid选项打开文件时强制执行的GID(组ID)检查。safe_mode_gid选项被禁用,当一个更严格的UID(用户ID)实施检查
safe_mode_gid = Off
;从指定的目录的文件不必被GID/UID检查
safe_mode_include_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

;是否开启压缩,使用zlib库透明地压缩脚本输出结果
zlib.output_compression = Off
;zlib.output_compression_level前面的;去掉,后面的-1改成1~5的数值,6以实际压缩效果提升不大,cpu占用却是几何增长
;zlib.output_handler ;在打开"zlib.output_compression"指令的情况下,除这里以外,你不能另外指定输出处理程序

; 这个指令告诉PHP输出层在每个输出块之后自动刷新自身数据。默认为 FALSE
; 这等效于在每个print()、echo()、HTML块之后自动调用flush()函数。
; 打开这个选项对程序执行的性能有严重的影响,通常只推荐在调试时使用。
; 在CLI SAPI的执行模式下,该标记默认为 TRUE
implicit_flush = Off

;反序列化回调方法
unserialize_callback_func =
; 将浮点型和双精度型数据序列化存储时,序列化精度指明了有效位数。
; 默认值能够确保浮点型数据被解序列化程序解码时不会有数据丢失。
serialize_precision = 100

; 强迫函数调用时按引用传递参数。
; php反对使用这一方法,并可能在将来版本的PHP/Zend里不再支持。
; 鼓励的方法是在函数声明里指定哪些参数按引用传递。
; 我们鼓励你尝试关闭这一选项并确认你的脚本仍能正常工作,以保证你的脚本在将来版本的语言里仍能正常工作。
; (每次使用此特性都会收到一条警告:参数会被按值传递而不是按照引用传递)
allow_call_time_pass_reference = Off

;是否启用短别名
swoole.use_shortname = off
;swoole.enable_coroutine ;On, Off 开关内置协程, 默认开启
;swoole.display_errors ;关闭/开启Swoole错误信息,默认开启
;swoole.socket_buffer_size ;设置进程间通信的Socket缓存区尺寸,默认为8M


;将PHP允许打开的所有文件都限制在此目录下。无论安全模式是否打开,该参数都将起作用。
;open_basedir = /opt/develop/webroot/:/tmp/:/var/tmp/:/proc/:/var/www/
open_basedir = /opt/develop/webroot/:/tmp/:/var/tmp/:/proc/:/var/www/:/root/:/opt/www/

; 这条指示让你可以为了安全的原因让特定函数失效。
;disable_functions = phpinfo,eval,passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,syslog,readlink,symlink,popen,stream_socket_server,fsocket,fsockopen
disable_functions = phpinfo,eval,passthru,exec,system,chroot,chgrp,chown,shell_exec,ini_alter,ini_restore,dl,pfsockopen,syslog,readlink,symlink,popen,stream_socket_server,fsocket,fsockopen

;; 这个指令让你可以出于安全原因禁用特定的类。它接受一个用逗号分隔的类名列表
disable_classes =
; 隐藏php版本信息,在header的power-by 可以查看服务器是否安装php
expose_php = off

;; 每个脚本最大允许执行时间, 按秒计
; 这个参数有助于阻止劣质脚本无休止的占用服务器资源。
; 注: "max_execution_time"仅影响脚本本身的运行时间。
; 任何其它花费在脚本运行之外的时间,如用system()/sleep()函数的使用、数据库查询、文件上传等,都不包括在内。
; 在安全模式下,你不能用ini_set()在运行时改变这个设置
max_execution_time = 60

; 每个脚本接收输入数据的最大允许时间(POST, GET, upload), 按秒计
max_input_time = 60

; 设定一个脚本所能够申请到的最大内存字节数。
; 这有助于防止劣质脚本消耗完服务器上的所有内存。
; 要使用此指令必须在编译的时候激活。
; 因此 configure 一行中应该包括:--enable-memory-limit
; 如果不需要任何内存上的限制,必须将其设为 -1
; 自php4.3.2 起,当设置了memory_limit后,memory_get_usage()函数将变为可用
memory_limit = 1G

; 显示所有的错误,除了提醒和编码标准化警告。
; 错误报告是位字段。可以将数字加起来得到想要的错误报告等级。
; 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 ; 仅显示错误
error_reporting = E_ALL & ~E_DEPRECATED

;在浏览器是否显示脚本执行的错误信息
display_errors = On
;是否显示PHP启动时的错误
display_startup_errors = Off
; 在日志文件里记录错误
log_errors = On
; 设置错误日志文件的最大长度。
log_errors_max_len = 1024

; 忽略重复的错误信息
; 如果关闭这个参数,错误信息必须出现在同一个文件的同一行才被忽略。
; 如果打开这个参数,则没有这个限制。
ignore_repeated_errors = Off
; 忽略重复的错误源
; 忽略重复的错误信息时忽略重复的错误源
; 如果打开这个参数,将不会记录不同的出错文件和对应行的错误信息。
ignore_repeated_source = Off

; 报告内存泄漏
; 如果关闭该参数,将不记录或者显示内存泄漏
; 这个参数只在调试编译中起作用,并且必须在错误报告中包含 E_WARNING
report_memleaks = On

; 保存最近一个错误/警告消息于变量$php_errormsg (boolean)中
track_errors = Off

; 禁用出错信息中的HTML标记
; 注意: 不要在发布的程序中使用这个特性。
;docref_root = "/phpmanual/"
;docref_ext = .html
; 如果打开了html_errors参数,PHP将会在出错信息上显示超连接,
; 直接链接到一个说明这个错误或者导致这个错误的函数的页面。
; 你可以从http://www.php.net/docs.php下载php手册,并设置docref_root参数,将他指向你本地的手册所在目录。
; 你还必须设置"docref_ext"来指定文件的扩展名。
; 注意: 不要在发布的程序中使用这个特性。
html_errors = Off

;error_prepend_string = ""; 用于错误信息前输出的字符串
;error_append_string = "" ; 用于错误信息后输出的字符串

; 将错误日志记录到哪个文件中
error_log = /data1/logs/php/errors.log

;;;;;;;;;;;;;;
;; 数据处理 ;;
;;;;;;;;;;;;;;

;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 方法的同名变量


request_order = "GP"
;$_REQUEST这个超全局变量的值受php.ini中request_order的影响,在最新的php5.3.x系列中,request_order默认值为GP,也就是说默认配置下$_REQUEST只包含$_GET和$_POST而不包括$_COOKIE

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 = Off
;[recommended]->register_long_arrays = Off
; 是否启用旧式的长式数组(HTTP_*_VARS),推荐关闭该特性以获得更好的性能。

register_argc_argv = Off
;[recommended]->register_argc_argv = Off
; 是否声明 argv和argc 变量(其中包含用GET方法传来的数据)
; 【argv为变量数组,argc为变量数组中元素个数】
; 若你不想使用这两个变量,应当关掉它以提高性能。


auto_globals_jit = On
;当启用时,服务器、请求和ENV变量在第一次使用时(及时)创建,而不是在脚本启动时创建。如果这些变量没有在脚本中使用,那么使用这个指令将会提高性能。

post_max_size = 500M
; PHP接受的POST数据最大长度。此设定也影响到文件上传。
; 要上传大文件,该值必须大于"upload_max_filesize"
; 如果配置脚本中激活了内存限制,"memory_limit"也会影响文件上传。
; 一般说来,"memory_limit"应该比"post_max_size"要大。

magic_quotes_gpc = Off
; 在输入的GET/POST/Cookie数据里使用自动字符串转义【比如,值 (It's "HP!") 会自动转换成 (It's "HP!")】
; 这里的设置自动影响$_GEST,$_POST,$_COOKIE数组的值。如果打开,值 (It's "HP!") 会自动转换成 (It's "PHP!")。
; (个人意见:关闭此特性, 因为它在处理双字节汉字的时候可能会破坏某些繁体字和特殊字符)

magic_quotes_runtime = Off
; 对运行时从外部资源产生的数据使用自动字符串转义
; 例如:用SQL查询得到的数据,用exec()函数得到的数据,等等

magic_quotes_sybase = Off
; 采用 Sybase形式的自动字符串转义( 用 '' 表示 ' 而不用 ' )

auto_prepend_file =
; 指定在主文件之前自动解析的文件名。
; 该文件就像调用了include()函数一样被包含进来,因此会使用"include_path"

auto_append_file =
; 指定在主文件之后自动解析的文件名。
; 该文件就像调用了include()函数一样被包含进来,因此会使用"include_path"
; 注: 如果脚本通过 exit() 终止,则自动后缀不会发生。

default_mimetype = "text/html"
;default_charset = "iso-8859-1"
; PHP总是默认地在"Content-type:"头中设置输出文档的MIME类型和字符集的编码方式。
; 要让输出字符集失效,只要设置为空或注释掉即可。
; PHP的默认设置会输出"Content-Type: text/html"
; 若去掉"default_charset"前的注释并将其设为"gb2312",
; 那么将会输出"Content-Type: text/html; charset=gb2312"

;always_populate_raw_post_data = On
; 总是填充$HTTP_RAW_POST_DATA变量,"HTTP_RAW_POST_DATA"意为"HTTP原始POST数据"

;;;;;;;;;;;;;;;;
;; 路径和目录 ;;
;;;;;;;;;;;;;;;;

;include_path = ".;c:phpincludes"
; 指定一组目录用于require(),include()和fopen_with_path()函数来寻找文件。
; 格式和系统的 PATH 环境变量类似:
; 一组目录的列表,在 UNIX 下用冒号分隔,在 Windows 下用分号分隔。
; 在包含路径中使用 '.' 可以允许相对路径,它代表当前目录。
; UNIX: "/path1:/path2"
; Windows: "path1;path2"

doc_root =
; PHP页面在服务器上的根目录。仅在非空时有效。
; 如果PHP被配置为安全模式,则此目录之外的文件一概不被解析。
; 如果PHP编译时没有指定FORCE_REDIRECT,并且在非IIS服务器上以CGI方式运行,
; 则必须设置此项。(参见手册中的安全部分)
; 替代方案是使用下面的"cgi.force_redirect"指令。

user_dir =
; 告诉php在使用 /~username 打开脚本时到哪个目录下去找,仅在非空时有效。
; 也就是在用户目录之下使用PHP文件的基本目录名,例如:public_html

; extension_dir = "./"
; 存放扩展库(模块)的目录,也就是PHP用来寻找动态连接扩展库的目录

enable_dl = Off
; 是否使dl()函数有效。
; dl()函数在除apache以外的多线程的服务器(如:IIS或Zeus)上不能正确地工作,并在其上默认为禁止。

;cgi.force_redirect = 1
; 打开cgi强制重定向为以CGI方式运行的php提供了必要的安全保护,php默认打开了该参数。
; 你若自己关闭了它,请自己负责后果
; 注意:在IIS/OmniHTTPD/Xitami上则必须关闭它!

;cgi.nph = 1
; 如果该参数打开,那么它会强制cgi对每个http请求始终发送状态码: 200

;cgi.redirect_status_env =
; 如果打开了cgi.force_redirect,并且你没有将php运行在Apache或Netscape(iPlanet)服务器上,
; 可能需要设定一个cgi重定向环境变量名,PHP将去寻找它来知道可以继续执行下去。
; 设置这个变量会导致安全漏洞,请务必在设置前搞清楚自己在做什么。

;fastcgi.impersonate = 1
; IIS中的FastCGI支持模仿客户端安全令牌的能力。这使得IIS能够定义运行时所基于的请求的安全上下文。
; Apache中的mod_fastcgi不支持此特性(03/17/2002)
; 如果在IIS中运行则设为1,默认为 0

;cgi.rfc2616_headers = 0
; 指定PHP在发送HTTP响应代码时使用何种报头。
; 如果设定为0,PHP发送一个"Status: "报头,Apache和其它web server都支持。
; 若设为0,则PHP使用Apache支持的头。若设为1,则PHP使用RFC2616标准的头。默认值为0
; 除非你知道自己在做什么,否则保留其值为 0


file_uploads = On
; 是否允许HTTP文件上传。参见upload_max_filesize,upload_tmp_dir,post_max_size

;upload_tmp_dir =
; 文件上传时存放文件的临时目录。必须是PHP进程用户可写的目录。如果未指定则PHP使用系统默认值。

upload_max_filesize = 500M
; 允许上传的文件的最大尺寸

allow_url_fopen = On
; 是否允许打开远程文件( http:// or ftp://)

;from="john@doe.com"
; 定义匿名ftp的密码(一个email地址)
;user_agent="PHP"
; 定义"User-Agent"字符串

;auto_detect_line_endings = Off
; 如果的你脚本必须处理Macintosh文件,或者你运行在Macintosh上,同时又要处理unix或win32文件,
; 设置这个标志可以让PHP自动侦察文件结束符,以便fgets()和file()函数正常工作。
; 默认值是 Off,因为在检测第一行的 EOL 习惯时会有很小的性能损失,
; 而且在 Unix 系统下使用回车符作为项目分隔符的人们会遭遇向下不兼容的行为。

allow_url_include = Off
;allow_url_fopen=on
;一般的情形下使用fopen去打开远端的档案(url文件), 而不必再牵连上打开include函数所带来的风险

default_socket_timeout = 60
; socket超时,单位是秒

;XDebug 操作
;https://www.jianshu.com/p/d3295386baa0?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
xdebug.var_display_max_children=-1
;用于控制通过xdebug_var_dump(),var_dump()方法时显示数组中子数组的个数或对象中属性的个数 默认128

xdebug.var_display_max_data=-1
;整数类型,默认值521。用于控制xdebug_var_dump(),var_dump()方法时显示输出的字符串的长度,设定为-1关闭该限制
xdebug.var_display_max_depth=-1
;整数类型,默认值3。用于控制通过xdebug_var_dump(),var_dump()方法时打印数组或对象时显示的层数,即深度。可设定的最大值为1023,也可以将其设定为-1以达到设定最大值的效果

;xdebug.collect_params
;整数类型,默认值0。如果一个方法的访问记录被跟踪时,打开该选项,会同时记录传递给该方法的所有参数信息
;0 关闭
;1 记录参数的类型和长度,如 string(6), array(8)
;2 元素的类型和数量,带有完整信息的工具提示
;3 完全变量内容(受XDebug .ValuDePosixMax子,XDebug .VARYDISPLAYX MAX数据)和XDebug .VARYDISPLAYMAX深度的限制。
;4 完全变量内容和变量名。

;xdebug.collect_vars
;布而类型,默认值0。用于收集当前作用域下哪些变量被使用


[Session]
session.save_handler = files
; 用于保存/取回数据的控制方式
session.save_path = /tmp
; 在 save_handler 设为文件时传给控制器的参数; 这是数据文件将保存的路径。
session.use_cookies = 1
; 是否使用cookies

session.use_only_cookies = 1
; 只使用Cookie来承载会话,默认为0 (关闭)
; 打开这个选项可以避免用URL传递会话带来的安全问题。但是禁用Cookie的客户端将使session无法工作。

session.name = PHPSESSID
; 用在cookie里的session的名字

session.auto_start = 0
; 在请求启动时初始化session

;session.cookie_path = / ; cookie的有效路径

session.cookie_lifetime = 0
; 为按秒记的cookie的保存时间,0无限制直到浏览器被重启
session.cookie_domain =
; cookie的有效域

session.cookie_httponly = 1
;是否开启只能是通过http 获取cookie

session.serialize_handler = php
; 用于连接数据的控制器

session.gc_probability = 1
; 按百分比的'garbage collection(碎片整理)'进程
; 在每次 session 初始化的时候开始的可能性。

session.gc_divisor = 1000
session.gc_maxlifetime = 1440
; 在这里数字所指的秒数后,保存的数据将被视为
; '碎片(garbage)'并由gc 进程清理掉。

session.bug_compat_42 = Off
session.bug_compat_warn = Off
; PHP4.2之前的版本有一个未注明的"特性"(也可看作bug):
; 即使在"register_globals = Off"的情况下也允许初始化全局session变量,
; 如果你在PHP4.3之后的版本中使用这个特性,会显示一条警告。你可以分别禁用这个特性和警告。
; 若打开bug_compat_42,将只显示警告。

session.referer_check =
; 检查HTTP头中的"Referer"以判断包含于URL中的会话id是否有效
; HTTP_REFERER必须包含这个参数指定的字符串,否则URL中的会话id将被视为无效。
; 默认为空,即不检查。

session.entropy_length = 0
; 从文件中读取多少字节(entropy:平均信息量)[设定session从高熵值资源读取的位数。]
; 默认为0,表示禁用。

session.entropy_file =
; 指定创建会话id的文件夹[使用外部高熵值资源或文件来建立session代码,例如 UNIX 系统上的 /dev/random?或 /dev/urandom]

session.cache_limiter = nocache
; 设为{none/nocache/private/private_no_expire/public}以指定会话页面的缓存控制模式,
; 或者设为空以阻止在http应答头中发送禁用缓存的命令。
; 默认为"nocache"

session.cache_expire = 300
; 指定会话页面在客户端cache中的有效期限(分钟)
; "session.cache_limiter=nocache"时,此设置将失效

session.use_trans_sid = 0
; 默认是禁止用明码在URL中显示sid(session_id)的,因为它会给你的用户带来安全危险,因为:
; 1- 用户可能将包含有效sid的URL 通过email/irc/QQ/MSN...途径告诉给其他人。
; 2- 包含有效sid的URL可能会被保存在公用电脑上。
; 3- 用户可能保存带有固定不变sid的URL在他们的收藏夹或者浏览历史纪录里面。

session.hash_function = 0
;[recommended]->session.hash_function = 1
; 生成session_id的hash函数,SHA-1的安全性更高一些
; 0: MD5 (128 bits)
; 1: SHA-1 (160 bits)

session.hash_bits_per_character = 5
; 指定在session_id字符串中的每个字符内保存多少位二进制数,
; 这些二进制数是hash函数的运算结果。
; 4 bits: 0-9, a-f
; 5 bits: 0-9, a-v
; 6 bits: 0-9, a-z, A-Z, "-", ","

[Highlight]
; 语法高亮模式的色彩。
; 只要能被接受的东西就能工作。
highlight.string = #DD0000
highlight.comment = #FF8000
highlight.keyword = #007700
highlight.bg = #FFFFFF
highlight.default = #0000BB
highlight.html = #000000

;;;;;;;;;;;;;;
;; 动态扩展 ;;
;;;;;;;;;;;;;;
; 若你希望一个扩展库自动加载,可用下面的语法:
; extension=modulename.extension
; 例如,在windows上:
; extension=msql.dll
; 在UNIX上:
; extension=msql.so
; 注意,这只应当是模块的名字,不需要附带目录信息。
; 上面的extension_dir已经指示了扩展库的位置。

posted @ 2021-01-18 11:57  陈俊武  阅读(216)  评论(0编辑  收藏  举报