php7.ini 配置完全解析

php xiaogua 1251℃ 0评论
[PHP]

;;;;;;;;;;;;;;;;;;;
 ; About php.ini ;
 ;;;;;;;;;;;;;;;;;;;
 ; PHP's initialization file, generally called php.ini, is responsible for
 ; configuring many of the aspects of PHP's behavior.

; PHP attempts to find and load this configuration from a number of locations.
 ; The following is a summary of its search order:
 ; 1. SAPI module specific location.
 ; 2. The PHPRC environment variable. (As of PHP 5.2.0)
 ; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0)
 ; 4. Current working directory (except CLI)
 ; 5. The web server's directory (for SAPI modules), or directory of PHP
 ; (otherwise in Windows)
 ; 6. The directory from the --with-config-file-path compile time option, or the
 ; Windows directory (C:\windows or C:\winnt)
 ; See the PHP docs for more specific information.
 ; http://php.net/configuration.file

; The syntax of the file is extremely simple. Whitespace and lines
 ; beginning with a semicolon are silently ignored (as you probably guessed).
 ; Section headers (e.g. [Foo]) are also silently ignored, even though
 ; they might mean something in the future.

; Directives following the section heading [PATH=/www/mysite] only
 ; apply to PHP files in the /www/mysite directory. Directives
 ; following the section heading [HOST=www.example.com] only apply to
 ; PHP files served from www.example.com. Directives set in these
 ; special sections cannot be overridden by user-defined INI files or
 ; at runtime. Currently, [PATH=] and [HOST=] sections only work under
 ; CGI/FastCGI.
 ; http://php.net/ini.sections

; Directives are specified using the following syntax:
 ; directive = value
 ; Directive names are *case sensitive* - foo=bar is different from FOO=bar.
 ; Directives are variables used to configure PHP or PHP extensions.
 ; There is no name validation. If PHP can't find an expected
 ; directive because it is not set or is mistyped, a default value will be used.

; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one
 ; of the INI constants (On, Off, True, False, Yes, No and None) or an expression
 ; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a
 ; previously set variable or directive (e.g. ${foo})

; Expressions in the INI file are limited to bitwise operators and parentheses:
 ; | bitwise OR
 ; ^ bitwise XOR
 ; & bitwise AND
 ; ~ bitwise NOT
 ; ! boolean NOT

; Boolean flags can be turned on using the values 1, On, True or Yes.
 ; They can be turned off using the values 0, Off, False or No.

; An empty string can be denoted by simply not writing anything after the equal
 ; sign, or by using the None keyword:

; foo = ; sets foo to an empty string
 ; foo = None ; sets foo to an empty string
 ; foo = "None" ; sets foo to the string 'None'

; If you use constants in your value, and these constants belong to a
 ; dynamically loaded extension (either a PHP extension or a Zend extension),
 ; you may only use these constants *after* the line that loads the extension.

;;;;;;;;;;;;;;;;;;;
 ; About this file ;
 ;;;;;;;;;;;;;;;;;;;
 ; PHP comes packaged with two INI files. One that is recommended to be used
 ; in production environments and one that is recommended to be used in
 ; development environments.

; php.ini-production contains settings which hold security, performance and
 ; best practices at its core. But please be aware, these settings may break
 ; compatibility with older or less security conscience applications. We
 ; recommending using the production ini in production and testing environments.

; php.ini-development is very similar to its production variant, except it is
 ; much more verbose when it comes to errors. We recommend using the
 ; development version only in development environments, as errors shown to
 ; application users can inadvertently leak otherwise secure information.

; This is php.ini-production INI file.

;;;;;;;;;;;;;;;;;;;
 ; Quick Reference ;
 ;;;;;;;;;;;;;;;;;;;
 ; The following are all the settings which are different in either the production
 ; or development versions of the INIs with respect to PHP's default behavior.
 ; Please see the actual settings later in the document for more details as to why
 ; we recommend these changes in PHP's behavior.
 ; php 是否展示错误的开关 设置错误是否作为输出的一部分显示
 ; display_errors
 ; Default Value: On
 ; Development Value: On
 ; Production Value: Off
 ; php启动阶段的错误
 ; display_startup_errors
 ; Default Value: Off
 ; Development Value: On
 ; Production Value: Off
 ; 选择什么错误级别设置,
 ; error_reporting
 ; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
 ; Development Value: E_ALL
 ; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
 ;错误的展示模样 。 设置错误信息是否采用html格式
 ; html_errors
 ; Default Value: On
 ; Development Value: On
 ; Production value: On
 ; 设置是否将错误信息记录到日志
 ; log_errors
 ; Default Value: Off
 ; Development Value: On
 ; Production Value: On
 ;脚本解析输入数据(类似 POST 和 GET)允许的最大时间,单位是秒。 它从接收所有数据到开始执行脚本进行测量的。
 ; max_input_time
 ; Default Value: -1 (Unlimited)
 ; Development Value: 60 (60 seconds)
 ; Production Value: 60 (60 seconds)
 ; 输出缓存允许你甚至在输出正文内容之后发送 header(标头,包括cookies)行
 ; 其代价是输出层减慢一点点速度。你可以使用“输出缓存”在运行时打开“输出缓存”,
 ; 或者在这里将指示设为 On 而使得所有文件的输出缓存打开。
 ; output_buffering
 ; Default Value: Off
 ; Development Value: 4096
 ; Production Value: 4096

; 这条指示告诉 PHP 是否声明 argv和argc 变量
 ; (注:这里argv为数组,argc为变量数)
 ; (主要用于脚本传入)。
 ; 若你不想用这些变量,你应当关掉它以提高性能。
 ; 参考php的三种接参数方式http://www.jb51.net/article/54015.htm
 ;https://secure.php.net/manual/zh/reserved.variables.argv.php
 ;https://secure.php.net/manual/zh/reserved.variables.argc.php
 ; register_argc_argv
 ; Default Value: On
 ; Development Value: Off
 ; Production Value: Off
 ;这个是php针对这个$_REQUEST 的设置,以后面的覆盖前面。也就是GET POST都有值,这里规定了以谁优先。 http://www.jb51.net/article/65810.htm
 ; reqest_order
 ; Default Value: None
 ; Development Value: "GP"
 ; Production Value: "GP"
 ; divisor 除数。用于session的回收概率处理
 ;http://www.jb51.net/article/52309.htm
 ; session.gc_divisor
 ; Default Value: 100
 ; Development Value: 1000
 ; Production Value: 1000
 ; 不知道是啥
 ; session.sid_bits_per_character
 ; Default Value: 4
 ; Development Value: 5
 ; Production Value: 5
 ; 打开短标记也就是 <? 包着的也会认为是php代码。
 ; short_open_tag
 ; Default Value: On
 ; Development Value: Off
 ; Production Value: Off
 ; 说的是如果开启,错误将被记录在$php_errormsg https://secure.php.net/manual/zh/reserved.variables.phperrormsg.php
 ; track_errors
 ; Default Value: Off
 ; Development Value: On
 ; Production Value: Off
 ;register_globals 这个指令在5.4的时候已经被废弃了,本来是用原来让EGPCS里面的key自动的渲染成变量。看起来这个功能很美丽。
 ;不需要自己再设置变量了。但是啊。这样意味着把改变变量值的权利给了入参。很危险。最后被去掉了。结合着variables_order就是了,解决在变量赋值的时候以谁优先。应对
 ;传入的key相同的情况
 ;但是离开了register_globals,这个variables_order仍然可以继续工作。这个变量仍然在指导$_REQUEST中GPC的变量覆盖顺序。他是属于总部级别的设置。
 ;也就是如果request_order有设置顺序了,就没有variables_order什么事情了。
 ;另外的,variables_order 还决定着,EGPCS的产生。就好像是一个生命清单,在这里面的全局变量将被产生,也就是如下说法
 ;variables_order string
 ;Sets the order of the EGPCS (Environment, Get, Post, Cookie, and Server) variable parsing.
 ;For example, if variables_order is set to "SP" then PHP will create the superglobals $_SERVER and $_POST,
 ;but not create $_ENV, $_GET, and $_COOKIE. Setting to "" means no superglobals will be set.
 ;同时建议别包含E因为$_ENV消耗着性能,而使用getenv来获取环境变量比较好。
 ; variables_order
 ; Default Value: "EGPCS"
 ; Development Value: "GPCS"
 ; Production Value: "GPCS"

;;;;;;;;;;;;;;;;;;;;
 ; php.ini Options ;
 ;;;;;;;;;;;;;;;;;;;;
 ; 解说:https://secure.php.net/manual/zh/configuration.file.per-user.php
 ; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini"
 ;除了主 php.ini 之外,PHP 还会在每个目录下扫描 INI 文件,从被执行的 PHP 文件所在目录开始一直上升到 web 根目录
 ;user_ini.filename = ".user.ini"
 ;user_ini.filename 设定了 PHP 会在每个目录下搜寻的文件名;如果设定为空字符串则 PHP 不会搜寻。默认值是 .user.ini。
 ;user_ini.cache_ttl 控制着重新读取用户 INI 文件的间隔时间。默认是 300 秒(5 分钟)。
 ;https://baike.baidu.com/item/PECL/61524?fr=aladdin
 ; To disable this feature set this option to empty value
 ;user_ini.filename =

; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes)
 ;user_ini.cache_ttl = 300

;;;;;;;;;;;;;;;;;;;;
 ; Language Options ;
 ;;;;;;;;;;;;;;;;;;;;

; Enable the PHP scripting language engine under Apache.
 ; http://php.net/engine
 engine = On

; This directive determines whether or not PHP will recognize code between
 ; <? and ?> tags as PHP source which should be processed as such. It is
 ; generally recommended that <?php and ?> should be used and that this feature
 ; should be disabled, as enabling it may result in issues when generating XML
 ; documents, however this remains supported for backward compatibility reasons.
 ; Note that this directive does not control the <?= shorthand tag, which can be
 ; used regardless of this directive.
 ; Default Value: On
 ; Development Value: Off
 ; Production Value: Off
 ; http://php.net/short-open-tag
 ; 支持<?
 short_open_tag = Off

; The number of significant digits displayed in floating point numbers.
 ; http://php.net/precision
 ; 小数点显示的位数,是可控的。
 precision = 14

; Output buffering is a mechanism for controlling how much output data
 ; (excluding headers and cookies) PHP should keep internally before pushing that
 ; data to the client. If your application's output exceeds this setting, PHP
 ; will send that data in chunks of roughly the size you specify.
 ; Turning on this setting and managing its maximum buffer size can yield some
 ; interesting side-effects depending on your application and web server.
 ; You may be able to send headers and cookies after you've already sent output
 ; through print or echo. You also may see performance benefits if your server is
 ; emitting less packets due to buffered output versus PHP streaming the output
 ; as it gets it. On production servers, 4096 bytes is a good setting for performance
 ; reasons.
 ; Note: Output buffering can also be controlled via Output Buffering Control
 ; functions.
 ; Possible Values:
 ; On = Enabled and buffer is unlimited. (Use with caution)
 ; Off = Disabled
 ; Integer = Enables the buffer and sets its maximum size in bytes.
 ; Note: This directive is hardcoded to Off for the CLI SAPI
 ; Default Value: Off
 ; Development Value: 4096
 ; Production Value: 4096
 ; http://php.net/output-buffering
 ;https://www.cnblogs.com/saw2012/archive/2013/01/30/2882451.html
 ;https://blog.csdn.net/fwkjdaghappy1/article/details/25402809
 ;该配置直接影响的是php本身的缓冲区,有3种配置参数.on/off/xK(x为某个整型数值);
 output_buffering = 4096

; You can redirect all of the output of your scripts to a function. For
 ; example, if you set output_handler to "mb_output_handler", character
 ; encoding will be transparently converted to the specified encoding.
 ; Setting any output handler automatically turns on output buffering.
 ; Note: People who wrote portable scripts should not depend on this ini
 ; directive. Instead, explicitly set the output handler using ob_start().
 ; Using this ini directive may cause problems unless you know what script
 ; is doing.
 ; Note: You cannot use both "mb_output_handler" with "ob_iconv_handler"
 ; and you cannot use both "ob_gzhandler" and "zlib.output_compression".
 ; Note: output_handler must be empty if this is set 'On' !!!!
 ; Instead you must use zlib.output_handler.
 ; http://php.net/output-handler
 ;可以对缓冲区内容做统一处理。
 ;output_handler =

; URL rewriter function rewrites URL on the fly by using
 ; output buffer. You can set target tags by this configuration.
 ; "form" tag is special tag. It will add hidden input tag to pass values.
 ; Refer to session.trans_sid_tags for usage.
 ; Default Value: "form="
 ; Development Value: "form="
 ; Production Value: "form="
 ;https://secure.php.net/manual/en/outcontrol.configuration.php
 ;url_rewriter.tags

; URL rewriter will not rewrites absolute URL nor form by default. To enable
 ; absolute URL rewrite, allowed hosts must be defined at RUNTIME.
 ; Refer to session.trans_sid_hosts for more details.
 ; Default Value: ""
 ; Development Value: ""
 ; Production Value: ""
 ; 参考三份资料
 ;https://secure.php.net/manual/en/outcontrol.configuration.php
 ;https://secure.php.net/manual/en/function.output-add-rewrite-var.php
 ;https://secure.php.net/manual/en/session.security.ini.php
 ;url_rewriter.hosts

; Transparent output compression using the zlib library
 ; Valid values for this option are 'off', 'on', or a specific buffer size
 ; to be used for compression (default is 4KB)
 ; Note: Resulting chunk size may vary due to nature of compression. PHP
 ; outputs chunks that are few hundreds bytes each as a result of
 ; compression. If you prefer a larger chunk size for better
 ; performance, enable output_buffering in addition.
 ; Note: You need to use zlib.output_handler instead of the standard
 ; output_handler, or otherwise the output will be corrupted.
 ; http://php.net/zlib.output-compression
 ; 相当于说php自带了压缩文本的功能。http://www.jb51.net/article/35514.htm
 zlib.output_compression = Off

; http://php.net/zlib.output-compression-level
 ; 控制压缩级别
 ;zlib.output_compression_level = -1

; You cannot specify additional output handlers if zlib.output_compression
 ; is activated here. This setting does the same as output_handler but in
 ; a different order.
 ; http://php.net/zlib.output-handler
 ;zlib.output_handler必须保持注释掉,因为此参数和前面的设置冲突——官方的说法。
 ;output_handler在前,zlib.output_handler 在后。
 ;zlib.output_handler =

; Implicit flush tells PHP to tell the output layer to flush itself
 ; automatically after every output block. This is equivalent to calling the
 ; PHP function flush() after each and every call to print() or echo() and each
 ; and every HTML block. Turning this option on has serious performance
 ; implications and is generally recommended for debugging purposes only.
 ; http://php.net/implicit-flush
 ; Note: This directive is hardcoded to On for the CLI SAPI
 ;该配置直接影响apache的缓冲区,有2种配置参数. on/off
 implicit_flush = Off

; The unserialize callback function will be called (with the undefined class'
 ; name as parameter), if the unserializer finds an undefined class
 ; which should be instantiated. A warning appears if the specified function is
 ; not defined, or if the function doesn't include/implement the missing class.
 ; So only set this entry, if you really want to implement such a
 ; callback-function.
 ;https://secure.php.net/manual/zh/function.unserialize.php
 ; 这是一个兜底的配置。如果反序列之后的类没有找到,(包括没有设置回调处理函数,或者回调处理函数没有成功处理)都会由该函数处理。
 unserialize_callback_func =

; When floats & doubles are serialized, store serialize_precision significant
 ; digits after the floating point. The default value ensures that when floats
 ; are decoded with unserialize, the data will remain the same.
 ; The value is also used for json_encode when encoding double values.
 ; If -1 is used, then dtoa mode 0 is used which automatically select the best
 ; precision.
 ; json_encode 小数点时出现的问题。问题示例。
 ;https://segmentfault.com/a/1190000008737065
 serialize_precision = -1

; open_basedir, if set, limits all file operations to the defined directory
 ; and below. This directive makes most sense if used in a per-directory
 ; or per-virtualhost web server configuration file.
 ; http://php.net/open-basedir
 ;open_basedir =

; This directive allows you to disable certain functions for security reasons.
 ; It receives a comma-delimited list of function names.
 ; http://php.net/disable-functions
 ; 调用函数黑名单,为了安全。本指令允许你基于安全原因禁止某些函数。接受逗号分隔的函数名列表作为参数。
 ;disable_functions 不受安全模式的影响。 本指令只能设置在 php.ini 中。例如不能将其设置在 httpd.conf。
 disable_functions =

; This directive allows you to disable certain classes for security reasons.
 ; It receives a comma-delimited list of class names.
 ; http://php.net/disable-classes
 ; 调用类名黑名单,为了安全。
 ;本指令可以使你出于安全的理由禁用某些类。用逗号分隔类名。disable_classes
 ;不受安全模式的影响。 本指令只能设置在 php.ini 中。例如不能将其设置在 httpd.conf。
 disable_classes =

; Colors for Syntax Highlighting mode. Anything that's acceptable in
 ; <span style="color: ???????"> would work.
 ; http://php.net/syntax-highlighting
 ;highlight.string = #DD0000
 ;highlight.comment = #FF9900
 ;highlight.keyword = #007700
 ;highlight.default = #0000BB
 ;highlight.html = #000000

; If enabled, the request will be allowed to complete even if the user aborts
 ; the request. Consider enabling it if executing long requests, which may end up
 ; being interrupted by the user or a browser timing out. PHP's default behavior
 ; is to disable this feature.
 ; http://php.net/ignore-user-abort
 ; 相当于不理会用户的终端或浏览器的终端,毅然执行完流程。
 ; https://secure.php.net/manual/zh/function.ignore-user-abort.php
 ;ignore_user_abort = On

; Determines the size of the realpath cache to be used by PHP. This value should
 ; be increased on systems where PHP opens many files to reflect the quantity of
 ; the file operations performed.
 ; http://php.net/realpath-cache-size
 ; 对路径的缓存大小。这个缓存的是文件的绝对路径地址。
 ;realpath_cache_size = 4096k
 ; 对于一个不怎么修改文件的系统,可以将缓存有效时间该大一点。
 ; Duration of time, in seconds for which to cache realpath information for a given
 ; file or directory. For systems with rarely changing files, consider increasing this
 ; value.
 ; http://php.net/realpath-cache-ttl
 ;realpath_cache_ttl = 120

; Enables or disables the circular reference collector.
 ; http://php.net/zend.enable-gc
 ; 解决循环引用问题。开启则启用循环引用垃圾回收器。
 zend.enable_gc = On

; If enabled, scripts may be written in encodings that are incompatible with
 ; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such
 ; encodings. To use this feature, mbstring extension must be enabled.
 ; Default: Off
 ; 以多字节的方式解析文件
 ;zend.multibyte = Off

; Allows to set the default encoding for the scripts. This value will be used
 ; unless "declare(encoding=...)" directive appears at the top of the script.
 ; Only affects if zend.multibyte is set.
 ; Default: ""
 ; 这个指令与multibyte配套。如果在脚本文件头部声明了declare(encoding=...) 就以这个为主。相当于说这个配置是个缺省的设置。
 ;zend.script_encoding =

;混杂的; 各种各样的; 五花八门的; 多方面的;
 ;;;;;;;;;;;;;;;;;
 ; Miscellaneous ;
 ;;;;;;;;;;;;;;;;;

; Decides whether PHP may expose the fact that it is installed on the server
 ; (e.g. by adding its signature to the Web server header). It is no security
 ; threat in any way, but it makes it possible to determine whether you use PHP
 ; on your server or not.
 ; http://php.net/expose-php
 ; 主要是避免暴露服务器的后端脚本是不是由php开发的。避免别人知道php对应版本的bug进行攻击。
 expose_php = On

;;;;;;;;;;;;;;;;;;;
 ; Resource Limits ;
 ;;;;;;;;;;;;;;;;;;;

; Maximum execution time of each script, in seconds
 ; http://php.net/max-execution-time
 ; Note: This directive is hardcoded to 0 for the CLI SAPI
 ;这个设置对cli脚本无效。这个执行时间不包括数据库请求。网络请求时间。
 ; php.ini配置max_execution_time和FPM配置request_terminate_timeout
 ; http://blog.csdn.net/lipengfeihb/article/details/55212567
 ; http://blog.csdn.net/mijar2016/article/details/53709777

max_execution_time = 30

; Maximum amount of time each script may spend parsing request data. It's a good
 ; idea to limit this time on productions servers in order to eliminate unexpectedly
 ; long running scripts.
 ; Note: This directive is hardcoded to -1 for the CLI SAPI
 ; Default Value: -1 (Unlimited)
 ; Development Value: 60 (60 seconds)
 ; Production Value: 60 (60 seconds)
 ; http://php.net/max-input-time
 ; 又一个对cli无效的指令。脚本解析输入数据(类似 POST 和 GET)允许的最大时间,单位是秒。 它从接收所有数据到开始执行脚本进行测量的。
 max_input_time = 60

;设置输入变量的嵌套深度 (例如 $_GET,$_POST……) 避免数组太深。过于复杂
 ; Maximum input variable nesting level
 ; http://php.net/max-input-nesting-level
 ;max_input_nesting_level = 64

; 控制GET/POST/COOKIE 这些输入的数据个数,为了避免哈希碰撞
 ; How many GET/POST/COOKIE input variables may be accepted
 ; max_input_vars = 1000

; Maximum amount of memory a script may consume (128MB)
 ; http://php.net/memory-limit
 ; 脚本的最大内存开销,避免内存占用过大
 memory_limit = 128M

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ; Error handling and logging ;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; This directive informs PHP of which errors, warnings and notices you would like
 ; it to take action for. The recommended way of setting values for this
 ; directive is through the use of the error level constants and bitwise
 ; operators. The error level constants are below here for convenience as well as
 ; some common settings and their meanings.
 ; By default, PHP is set to take action on all errors, notices and warnings EXCEPT
 ; those related to E_NOTICE and E_STRICT, which together cover best practices and
 ; recommended coding standards in PHP. For performance reasons, this is the
 ; recommend error reporting setting. Your production server shouldn't be wasting
 ; resources complaining about best practices and coding standards. That's what
 ; development servers and development settings are for.
 ; Note: The php.ini-development file has this setting as E_ALL. This
 ; means it pretty much reports everything which is exactly what you want during
 ; development and early testing.
 ;
 ; Error Level Constants:
 ; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0)
 ; E_ERROR - fatal run-time errors
 ; E_RECOVERABLE_ERROR - almost fatal run-time errors
 ; E_WARNING - run-time warnings (non-fatal errors)
 ; E_PARSE - compile-time parse errors
 ; E_NOTICE - run-time notices (these are warnings which often result
 ; from a bug in your code, but it's possible that it was
 ; intentional (e.g., using an uninitialized variable and
 ; relying on the fact it is automatically initialized to an
 ; empty string)
 ; E_STRICT - run-time notices, enable to have PHP suggest changes
 ; to your code which will ensure the best interoperability
 ; and forward compatibility of your code
 ; E_CORE_ERROR - fatal errors that occur during PHP's initial startup
 ; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's
 ; initial startup
 ; E_COMPILE_ERROR - fatal compile-time errors
 ; E_COMPILE_WARNING - compile-time warnings (non-fatal errors)
 ; E_USER_ERROR - user-generated error message
 ; E_USER_WARNING - user-generated warning message
 ; E_USER_NOTICE - user-generated notice message
 ; E_DEPRECATED - warn about code that will not work in future versions
 ; of PHP
 ; E_USER_DEPRECATED - user-generated deprecation warnings
 ;
 ; Common Values:
 ; E_ALL (Show all errors, warnings and notices including coding standards.)
 ; E_ALL & ~E_NOTICE (Show all errors, except for notices)
 ; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.)
 ; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors)
 ; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
 ; Development Value: E_ALL
 ; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
 ; http://php.net/error-reporting
 ; 在这里告诉php哪些错误是我们想看到的。是可以上报的。
 ; 相关介绍http://www.w3school.com.cn/php/php_error.asp

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT

; This directive controls whether or not and where PHP will output errors,
 ; notices and warnings too. Error output is very useful during development, but
 ; it could be very dangerous in production environments. Depending on the code
 ; which is triggering the error, sensitive information could potentially leak
 ; out of your application such as database usernames and passwords or worse.
 ; For production environments, we recommend logging errors rather than
 ; sending them to STDOUT.
 ; Possible Values:
 ; Off = Do not display any errors
 ; stderr = Display errors to STDERR (affects only CGI/CLI binaries!)
 ; On or stdout = Display errors to STDOUT
 ; Default Value: On
 ; Development Value: On
 ; Production Value: Off
 ; http://php.net/display-errors
 ; 显示层面的控制,决定要不要展示这个错误给用户看到。有Off stderr(affects only CGI/CLI binaries!) On stdout 这几种类型。
 ; 显然在线上是不能展示错误的。
 display_errors = Off

; The display of errors which occur during PHP's startup sequence are handled
 ; separately from display_errors. PHP's default behavior is to suppress those
 ; errors from clients. Turning the display of startup errors on can be useful in
 ; debugging configuration problems. We strongly recommend you
 ; set this to 'off' for production servers.
 ; Default Value: Off
 ; Development Value: On
 ; Production Value: Off
 ; http://php.net/display-startup-errors
 ; 这个也是展示错误,不过他针对的环节不同。是php在启动过程中发生的错误。同样的生产环境切莫打开。
 display_startup_errors = Off

; Besides displaying errors, PHP can also log errors to locations such as a
 ; server-specific log, STDERR, or a location specified by the error_log
 ; directive found below. While errors should not be displayed on productions
 ; servers they should still be monitored and logging is a great way to do that.
 ; Default Value: Off
 ; Development Value: On
 ; Production Value: On
 ; http://php.net/log-errors
 ; 除了即时的显示日志,我们还可以将错误记录到错误日志当中。这对生产环境是极大的帮助。
 log_errors = On

; Set maximum length of log_errors. In error_log information about the source is
 ; added. The default is 1024 and 0 allows to not apply any maximum length at all.
 ; http://php.net/log-errors-max-len
 ; 他实际上是指单条消息的写入长度。
 ; 参考 https://stackoverflow.com/questions/1966540/log-errors-max-len-1024-in-php-ini-but-php-log-keeps-growing
 log_errors_max_len = 1024

; Do not log repeated messages. Repeated errors must occur in same file on same
 ; line unless ignore_repeated_source is set true.
 ; http://php.net/ignore-repeated-errors
 ; 为Off 就是说会在同一行出现相同的错误。除非你设置了On。。所以还是不要忽略的好。我们要看到完整的错误。
 ignore_repeated_errors = Off

; Ignore source of message when ignoring repeated messages. When this setting
 ; is On you will not log errors with repeated messages from different files or
 ; source lines.
 ; http://php.net/ignore-repeated-source
 ; 上一个设置“ignore_repeated_errors”是关心是否忽略同一个行的错误。这个配置ignore_repeated_source实际上是关心整个脚本报错过程中如果发生了同样的
 ; 错误是否要忽略他,建议还是不要的好。
 ignore_repeated_source = Off

; If this parameter is set to Off, then memory leaks will not be shown (on
 ; stdout or in the log). This has only effect in a debug compile, and if
 ; error reporting includes E_WARNING in the allowed list
 ; http://php.net/report-memleaks
 ; 关于内存泄露的提醒,他只在php以debug模式下编译而成时,更改这个变量才有效,在这些条件都满足的情况下,还需要在error_reporting配置中包含E_WARNING类型的错误。
 report_memleaks = On

; This setting is on by default.
 ;report_zend_debug = 0

; Store the last error/warning message in $php_errormsg (boolean). Setting this value
 ; to On can assist in debugging and is appropriate for development servers. It should
 ; however be disabled on production servers.
 ; This directive is DEPRECATED.
 ; Default Value: Off
 ; Development Value: Off
 ; Production Value: Off
 ; http://php.net/track-errors
 ; 如果开启的话就可以通过$php_errormsg获取最新的错误或者警告信息
 ;track_errors = Off

; Turn off normal error reporting and emit XML-RPC error XML
 ; http://php.net/xmlrpc-errors
 ;关闭正常的错误报告,并将错误的格式设置为XML-RPC错误信息的格式。
 ;xmlrpc_errors = 0

; An XML-RPC faultCode
 ;用作 XML-RPC faultCode 元素的值。
 ;xmlrpc_error_number = 0

; When PHP displays or logs an error, it has the capability of formatting the
 ; error message as HTML for easier reading. This directive controls whether
 ; the error message is formatted as HTML or not.
 ; Note: This directive is hardcoded to Off for the CLI SAPI
 ; Default Value: On
 ; Development Value: On
 ; Production value: On
 ; http://php.net/html-errors
 ; 这个指令的作用在于美化错误提示样式,在cli模式下由于都是命令行并不需要,所以被强制关闭了。
 html_errors = On

; If html_errors is set to On *and* docref_root is not empty, then PHP
 ; produces clickable error messages that direct to a page describing the error
 ; or function causing the error in detail.
 ; You can download a copy of the PHP manual from http://php.net/docs
 ; and change docref_root to the base URL of your local copy including the
 ; leading '/'. You must also specify the file extension being used including
 ; the dot. PHP's default behavior is to leave these settings empty, in which
 ; case no links to documentation are generated.
 ; Note: Never use this feature for production boxes.
 ; http://php.net/docref-root
 ; Examples
 ; 简单来说这是给开发人员用的,更友好的提供手册,方便在出现问题的时候,给开发人员提供一个可用的手册可用下载查阅。
 ;https://secure.php.net/manual/zh/errorfunc.configuration.php#ini.xmlrpc-errors
 ;docref_root = "/phpmanual/"

; http://php.net/docref-ext
 ;https://secure.php.net/manual/zh/errorfunc.configuration.php#ini.xmlrpc-errors
 ; 简单来说这是给开发人员用的,更友好的提供手册,方便在出现问题的时候,给开发人员提供一个可用的手册可用下载查阅。
 ; 文档的文件后缀地址。
 ;docref_ext = .html

; String to output before an error message. PHP's default behavior is to leave
 ; this setting blank.
 ; http://php.net/error-prepend-string
 ; Example:
 ; 就是一个报错的描色功能。还是给开发阶段用的。更好的看清错误信息
 ;error_prepend_string = "<span style='color: #ff0000'>"

; String to output after an error message. PHP's default behavior is to leave
 ; this setting blank.
 ; http://php.net/error-append-string
 ; Example:
 ;与上一个命令error_prepend_string 成对出现,形成html标签的闭标签。
 ;error_append_string = "</span>"

; Log errors to specified file. PHP's default behavior is to leave this value
 ; empty.
 ; http://php.net/error-log
 ; Example:
 ;error_log = php_errors.log
 ; Log errors to syslog (Event Log on Windows).
 ;error_log string
 ;设置脚本错误将被记录到的文件。该文件必须是web服务器用户可写的。如果特殊值 syslog 被设置,则将错误信息发送到系统日志记录器。在Unix以及类似系统上,使用的是 syslog(3) ,而在 Windows NT 类系统上则为事件日志。Windows 95上不支持系统日志记录。参见: syslog().
 ;如果该配置没有设置,则错误信息会被发送到 SAPI 错误记录器。例如,出现在Apache的错误日志中,或者在CLI中发送到 stderr。
 ;参考地址https://secure.php.net/manual/zh/errorfunc.configuration.php#ini.error_log
 ;error_log = syslog

;抑制windows的crt错误。
 ;This directive shows the Windows CRT warnings when enabled. These warnings were displayed by default until PHP 5.4.0.
 ;windows.show_crt_warning
 ; Default value: 0
 ; Development value: 0
 ; Production value: 0

;;;;;;;;;;;;;;;;;
 ; Data Handling ;
 ;;;;;;;;;;;;;;;;;

; The separator used in PHP generated URLs to separate arguments.
 ; PHP's default setting is "&".
 ; http://php.net/arg-separator.output
 ; Example:
 ; 作用在于php生成链接时以某些字符来拼接参数,默认是a=1&b=3&c=3
 ;arg_separator.output = "&amp;"

; List of separator(s) used by PHP to parse input URLs into variables.
 ; PHP's default setting is "&".
 ; NOTE: Every character in this directive is considered as separator!
 ; http://php.net/arg-separator.input
 ; Example:
 ;从url地址栏获取参数的时候,比如index.php?a=1&b=2&c=3
 ;这个能解析出$_GET['a'],$_GET['b'],$_GET['c'], 是因为php.ini 设置了分隔符是&。这里,每个字符就是一个分隔符。
 ;arg_separator.input = ";&"

; This directive determines which super global arrays are registered when PHP
 ; starts up. G,P,C,E & S are abbreviations for the following respective super
 ; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty
 ; paid for the registration of these arrays and because ENV is not as commonly
 ; used as the others, ENV is not recommended on productions servers. You
 ; can still get access to the environment variables through getenv() should you
 ; need to.
 ; Default Value: "EGPCS"
 ; Development Value: "GPCS"
 ; Production Value: "GPCS";
 ; http://php.net/variables-order
 ; 这个在前面已经有详细的说明了。还可参考https://www.cnblogs.com/LoveJulin/p/5217042.html
 variables_order = "GPCS"

; This directive determines which super global data (G,P & C) should be
 ; registered into the super global array REQUEST. If so, it also determines
 ; the order in which that data is registered. The values for this directive
 ; are specified in the same manner as the variables_order directive,
 ; EXCEPT one. Leaving this value empty will cause PHP to use the value set
 ; in the variables_order directive. It does not mean it will leave the super
 ; globals array REQUEST empty.
 ; Default Value: None
 ; Development Value: "GP"
 ; Production Value: "GP"
 ; http://php.net/request-order
 ; 这个在前面已经有详细的说明了。
 request_order = "GP"

; This directive determines whether PHP registers $argv & $argc each time it
 ; runs. $argv contains an array of all the arguments passed to PHP when a script
 ; is invoked. $argc contains an integer representing the number of arguments
 ; that were passed when the script was invoked. These arrays are extremely
 ; useful when running scripts from the command line. When this directive is
 ; enabled, registering these variables consumes CPU cycles and memory each time
 ; a script is executed. For performance reasons, this feature should be disabled
 ; on production servers.
 ; Note: This directive is hardcoded to On for the CLI SAPI
 ; Default Value: On
 ; Development Value: Off
 ; Production Value: Off
 ; http://php.net/register-argc-argv
 ; 这个配置与变量argc 和argv有关。如果开启了,就会产生这两个变量。
 register_argc_argv = Off

; When enabled, the ENV, REQUEST and SERVER variables are created when they're
 ; first used (Just In Time) instead of when the script starts. If these
 ; variables are not used within a script, having this directive on will result
 ; in a performance gain. The PHP directive register_argc_argv must be disabled
 ; for this directive to have any affect.
 ; http://php.net/auto-globals-jit
 ; 这个指令的开启让 ERS的创建更为灵活了。一切是为了性能。用不到就不创建。
 ; 但是使用这个指令的时候也请关闭register_argc_argv,不然会有其他影响
 ; 这不影响variables_order,variables_order是总部级别配置。是可生产清单。也决定了生产相同值时的顺序。
 ; 而auto_globals_jit侧重性能优化。只有想用的时候才生成这个变量。
 auto_globals_jit = On
 ; Whether PHP will read the POST data.
 ; This option is enabled by default.
 ; Most likely, you won't want to disable this option globally. It causes $_POST
 ; and $_FILES to always be empty; the only way you will be able to read the
 ; POST data will be through the php://input stream wrapper. This can be useful
 ; to proxy requests or to process the POST data in a memory efficient fashion.
 ; http://php.net/enable-post-data-reading
 ; 如果关闭$_POST and $_FILES 将拿不到数据,只能通过 php://input 获得数据
 ;enable_post_data_reading = Off

; Maximum size of POST data that PHP will accept.
 ; Its value may be 0 to disable the limit. It is ignored if POST data reading
 ; is disabled through enable_post_data_reading.
 ; http://php.net/post-max-size
 ; 这个配置如果是enable_post_data_reading Off 那就没有这个配置什么事情了。他只是在接收数据的时候控制愿意接收的数据大小。
 post_max_size = 8M

; Automatically add files before PHP document.
 ; http://php.net/auto-prepend-file
 ; 在这里配置是全局的,给每一个执行的php脚本之前追加执行某个php文件。。这个php文件还可以继续引入多个php文件。
 ; 参考示例:http://www.jb51.net/article/55468.htm
 ; auto_prepend_file string
 ; Specifies the name of a file that is automatically parsed before the main file. The file is included as if it was called with the require function, so include_path is used.
 ;
 ; The special value none disables auto-prepending.
 ;
 ; auto_append_file string
 ; Specifies the name of a file that is automatically parsed after the main file. The file is included as if it was called with the require function, so include_path is used.
 ; 需要注意的是,他只对主文件追加。
 ; The special value none disables auto-appending. 留空就是关闭这种追加行为

auto_prepend_file =

; Automatically add files after PHP document.
 ; http://php.net/auto-append-file
 ;
 ; Note: If the script is terminated with exit(), auto-append will not occur.
 ; 也就是说如果代码里有exit,那么这个指令是无效的。相当于他只对寿终正寝的请求追加引入文件。
 ;
 auto_append_file =

; By default, PHP will output a media type using the Content-Type header. To
 ; disable this, simply set it to be empty.
 ;
 ; PHP's built-in default media type is set to text/html.
 ; http://php.net/default-mimetype
 ; 默认的是输出都是文本,也因此如果要输出图片的类型,则需要在header函数里面声明文件类型。
 default_mimetype = "text/html"

; PHP's default character set is set to UTF-8.
 ; http://php.net/default-charset
 ; 将会影响http头信息的默认字符。也是php默认使用的编码
 ;default_charset string
 ; PHP always outputs a character encoding by default in the Content-type: header.
 ;To disable sending of the charset, simply set it to be empty.
 ;https://secure.php.net/manual/zh/ini.core.php
 default_charset = "UTF-8"

; PHP internal character encoding is set to empty.
 ; If empty, default_charset is used.
 ; http://php.net/internal-encoding
 ; php 内部编码格式
 ;internal_encoding =

; PHP input character encoding is set to empty.
 ; If empty, default_charset is used.
 ; http://php.net/input-encoding
 ; 输入编码
 ;input_encoding =

; PHP output character encoding is set to empty.
 ; If empty, default_charset is used.
 ; See also output_buffer.
 ; http://php.net/output-encoding
 ; 输出编码
 ;output_encoding =

;;;;;;;;;;;;;;;;;;;;;;;;;
 ; Paths and Directories ;
 ;;;;;;;;;;;;;;;;;;;;;;;;;

; 参考这篇文章,https://www.cnblogs.com/wanyakun/archive/2010/12/13/1904480.html
 ; 这里设置的是include require参考路径。不是限制路径。意义不一样。
 ; 就是说当使用include()或require()函数包含文件的时候,程序首先以include_path设置的路径作为参考点去找文件,如果找不到,则以程序自身所在的路径为参考点去找所要的文件,如果都找不到,则出错.
 ; 当include_path设置了多个参考路径(每个路径用分号隔开)时,排在前面的路径优先找.
 ; 例如: ini_set('include_path','d:\www\mysite\test;d:\www\mysite\test2');
 ; include('aaa/test.php');
 ; 程序会先以路径d:\www\mysite\test为参考去找aaa/test.php,若没有,再以d:\www\mysite\test2为参考去找,再没有,则以自身所在路径为参考去找.
 ; UNIX: "/path1:/path2"
 ;include_path = ".:/php/includes"
 ;
 ; Windows: "\path1;\path2"
 ;include_path = ".;c:\php\includes"
 ;
 ; PHP's default setting for include_path is ".;/path/to/php/pear"
 ; http://php.net/include-path

; The root of the PHP pages, used only if nonempty.
 ; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root
 ; if you are running php as a CGI under any web server (other than IIS)
 ; see documentation for security issues. The alternate is to use the
 ; cgi.force_redirect configuration below
 ; http://php.net/doc-root
 ; 决定php脚本的根路径。在路径之外的php将不能被运行,除了user_dir中定义的路径。
 doc_root =

; The directory under which PHP opens the script using /~username used only
 ; if nonempty.
 ; http://php.net/user-dir
 ; 在 web 服务器的主文档目录中包含动态内容如脚本和可执行程序有时被认为是一种不安全的实践。如果因为配置上的错误而未能执行脚本而作为普通 HTML 文档显示,那就可能导致知识产权或密码资料的泄露。所以很多系统管理员都会专门设置一个只能通过 PHP CGI 来访问的目录,这样该目录中的内容只会被解析而不会原样显示出来。
 ;
 ; 对于前面所说无法判断是否重定向的情况,很有必要在主文档目录之外建立一个专用于脚本的 doc_root 目录。
 ;
 ; 可以通过配置文件内的 doc_root 或设置环境变量 PHP_DOCUMENT_ROOT 来定义 PHP 脚本主目录。如果设置了该项,那么 PHP 就只会解释 doc_root 目录下的文件,并确保目录外的脚本不会被 PHP 解释器执行(下面所说的 user_dir 除外)。
 ;
 ; 另一个可用的选项就是 user_dir。当 user_dir 没有设置的时候,doc_root 就是唯一能控制在哪里打开文件的选项。访问如 http://my.host/~user/doc.php 这个 URL 时,并不会打开用户主目录下文件,而只会执行 doc_root 目录下的 ~user/doc.php(这个子目录以 [~] 作开头)。
 ;
 ; 如果设置了 user_dir,例如 public_php,那么像 http://my.host/~user/doc.php 这样的请求将会执行用户主目录下的 public_php 子目录下的 doc.php 文件。假设用户主目录的绝对路径是 /home/user,那么被执行文件将会是 /home/user/public_php/doc.php。
 ;
 ; user_dir 的设置与 doc_root 无关,所以可以分别控制 PHP 脚本的主目录和用户目录。
 user_dir =

; 指的是扩展的存放地址。区分window配置和linux配置。
 ; Directory in which the loadable extensions (modules) reside.
 ; http://php.net/extension-dir
 ; extension_dir = "./"
 ; On windows:
 ; extension_dir = "ext"

; 这个命令决定着零时文件将被存在哪里。通过这个函数可以知道。sys_get_temp_dir
 ; Directory where the temporary files should be placed.
 ; Defaults to the system default (see sys_get_temp_dir)
 ; sys_temp_dir = "/tmp"

; Whether or not to enable the dl() function. The dl() function does NOT work
 ; properly in multithreaded servers, such as IIS or Zeus, and is automatically
 ; disabled on them.
 ; http://php.net/enable-dl
 ; 主要是为了动态的载入扩展。对于IIS,Zeus不支持。他们是多线程服务。
 ; PHP-FPM 模式下已禁用 dl()。
 ; Note:
 ; 当 PHP 以支持 ZTS 构建时,不支持 dl()。 使用 扩展加载指令 作为替代。
 ; Note:
 ; 在某些 Unix 平台上,dl() 是大小写敏感的。
 ; Note: 当 PHP 运行在 安全模式 时,不能使用此函数。
 ; enable_dl = Off

; 安全模式介绍。https://secure.php.net/manual/zh/ini.sect.safe-mode.php#ini.safe-mode

; cgi.force_redirect is necessary to provide security running PHP as a CGI under
 ; most web servers. Left undefined, PHP turns this on by default. You can
 ; turn it off here AT YOUR OWN RISK
 ; **You CAN safely turn this off for IIS, in fact, you MUST.**
 ; http://php.net/cgi.force-redirect
 ; 在与iis对接的时候,必须设置成off,其他的建议开启。
 ;cgi.force_redirect = 1
 ; if cgi.nph is enabled it will force cgi to always sent Status: 200 with
 ; every request. PHP's default behavior is to disable this feature.
 ; 居然还有这种配置,强制发200.始终报喜。
 ;cgi.nph = 1

; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape
 ; (iPlanet) web servers, you MAY need to set an environment variable name that PHP
 ; will look for to know it is OK to continue execution. Setting this variable MAY
 ; cause security issues, KNOW WHAT YOU ARE DOING FIRST.
 ; http://php.net/cgi.redirect-status-env
 ; 似乎是在给php一个信号。
 ;cgi.redirect_status_env =

; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's
 ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
 ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting
 ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting
 ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts
 ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
 ; http://php.net/cgi.fix-c
 ;https://blog.csdn.net/zhaojindong33/article/details/68067079
 ;什么是 https://blogs.msdn.microsoft.com/david.wang/2005/08/05/what-is-path_translated/
 ;pathinfo的支持 。https://blog.csdn.net/hanzengyi/article/details/53483171
 ;cgi.fix_pathinfo=1
 ; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside
 ; of the web tree and people will not be able to circumvent .htaccess security.
 ; http://php.net/cgi.dicard-path
 ; 如果启用该选项,PHP CGI 目录可以安全的放在 web 目录树的外面,人们无法避开 .htaccess 的安全限制。
 ;
 ; PHP 5.3.0起,默认禁用并不在存在。要启用此功能,设置 cgi-redirect ini指令为1。
 ;cgi.discard_path=1

; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate
 ; security tokens of the calling client. This allows IIS to define the
 ; security context that the request runs under. mod_fastcgi under Apache
 ; does not currently support this feature (03/17/2002)
 ; Set to 1 if running under IIS. Default is zero.
 ; http://php.net/fastcgi.impersonate
 ; 给IIS用的。咱不管他,跟安全令牌有关系。不适合apache。
 ;fastcgi.impersonate = 1

; Disable logging through FastCGI connection. PHP's default behavior is to enable
 ; this feature.
 ; 在FastCGI模式下记录日志,不知道实际作用在哪里? 关闭了,fpm就没有日志吗?
 ;fastcgi.logging = 0

; cgi.rfc2616_headers configuration option tells PHP what type of headers to
 ; use when sending HTTP response code. If set to 0, PHP sends Status: header that
 ; is supported by Apache. When this option is set to 1, PHP will send
 ; RFC2616 compliant header.
 ; Default is zero.
 ; http://php.net/cgi.rfc2616-headers
 ; http1.1 的头信息
 ;cgi.rfc2616_headers = 0

; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #!
 ; (shebang) at the top of the running script. This line might be needed if the
 ; script support running both as stand-alone script and via PHP CGI<. PHP in CGI
 ; mode skips this line and ignores its content if this directive is turned on.
 ; http://php.net/cgi.check-shebang-line
 ; 关于shebang的解释,http://smilejay.com/2012/03/linux_shebang/ 相当于是#!,很熟悉吧,shell脚本开头畅游的标记
 ; 这个配置是未了让php脚本实现命令行和web程序两用时避免发生干扰。属于两栖脚本。这样在代码顶行写#!的php代码也可以在web程序下运行了。
 ;cgi.check_shebang_line=1

;;;;;;;;;;;;;;;;
 ; File Uploads ;
 ;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
 ; http://php.net/file-uploads
 ; 开启文件上传
 file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
 ; specified).
 ; http://php.net/upload-tmp-dir
 ; 文件上传过程中临时存储的目录地址,没有设置则用系统默认路径.
 ;upload_tmp_dir =

; Maximum allowed size for uploaded files.
 ; http://php.net/upload-max-filesize
 ; 可支持的上传文件大小,如果文件太大了,就改下这个.
 upload_max_filesize = 2M

; Maximum number of files that can be uploaded via a single request
 ; 控制在一次请求中,可支持的并发上传文件数量.避免一个请求里同时上传过多文件.
 max_file_uploads = 20

; Fopen 封装
 ;;;;;;;;;;;;;;;;;;
 ; Fopen wrappers ;
 ;;;;;;;;;;;;;;;;;;

; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
 ; http://php.net/allow-url-fopen
 ; 就是如果fopen传入的是http协议,或ftp协议fopen是否把他当文件去处理.
 allow_url_fopen = On

; Whether to allow include/require to open URLs (like http:// or ftp://) as files.
 ; http://php.net/allow-url-include
 ; 也就是include和require也支持http和ftp协议.
 ; 参考运用地址:https://blog.csdn.net/aerchi/article/details/41849609
 allow_url_include = Off

; Define the anonymous ftp password (your email address). PHP's default setting
 ; for this is empty.
 ; http://php.net/from
 ;定义匿名 ftp 的密码(email 地址)。 使用ftp函数进行访问时
 ;from="john@doe.com"

; Define the User-Agent string. PHP's default setting for this is empty.
 ; http://php.net/user-agent
 ;定义 PHP 发送的 User-Agent。 在php发生curl请求时http头部带入的默认user_agent信息是这里的设置值.
 ;user_agent="PHP"

; Default timeout for socket based streams (seconds)
 ; http://php.net/default-socket-timeout
 ; socket的默认超时时间设置,他影响的是包括函数file_get_contents
 ; 参考地址: https://blog.csdn.net/senlin1202/article/details/50800421
 ; 通过搜索的解释和实验测试,我得到对于这个设置的结论是,default_socket_timeout是socket流的超时参数,
 ; 即socket流从建立到传输再到关闭整个过程必须要在这个参数设置的时间以内完成,如果不能完成,
 ; 那么PHP将自动结束这个socket并返回一个警告。类似的一个PHP配置是connection_timeout,不过connection_timeout是指保持连接的时间超时,
 ; 不包括创建和销毁连接。
 default_socket_timeout = 60

; If your scripts have to deal with files from Macintosh systems,
 ; or you are running on a Mac and need to deal with files from
 ; unix or win32 systems, setting this flag will cause PHP to
 ; automatically detect the EOL character in those files so that
 ; fgets() and file() will work regardless of the source of the file.
 ; http://php.net/auto-detect-line-endings
 ;当设为 On 时,PHP 将检查通过 fgets() 和 file() 取得的数据中的行结束符号是符合 Unix,MS-DOS,还是 Macintosh 的习惯。
 ;这使得 PHP 可以和 Macintosh 系统交互操作,但是默认值是 Off,
 ;因为在检测第一行的 EOL 习惯时会有很小的性能损失,
 ;而且在 Unix 系统下使用回车符号作为项目分隔符的人们会遭遇向下不兼容的行为。
 ;
 ;====这些涉及到平台移植性的问题.针对fgets() 和 file()也就是读文件的时候,做的兼容处理====
 ;If On, I can invoke fgets() on files that contain silly \r line endings.
 ;auto_detect_line_endings = Off

; done 动态的扩展配置。
 ;;;;;;;;;;;;;;;;;;;;;;
 ; Dynamic Extensions ;
 ;;;;;;;;;;;;;;;;;;;;;;

; If you wish to have an extension loaded automatically, use the following
 ; syntax:
 ;
 ; extension=modulename
 ;
 ; For example:
 ;
 ; extension=mysqli
 ;
 ; When the extension library to load is not located in the default extension
 ; directory, You may specify an absolute path to the library file:
 ;
 ; extension=/path/to/extension/mysqli.so
 ;
 ; Note : The syntax used in previous PHP versions ('extension=<ext>.so' and
 ; 'extension='php_<ext>.dll') is supported for legacy reasons and may be
 ; deprecated in a future PHP major version. So, when it is possible, please
 ; move to the new ('extension=<ext>) syntax.
 ;
 ; Notes for Windows environments :
 ;
 ; - ODBC support is built in, so no dll is needed for it.
 ; - Many DLL files are located in the extensions/ (PHP 4) or ext/ (PHP 5+)
 ; extension folders as well as the separate PECL DLL download (PHP 5+).
 ; Be sure to appropriately set the extension_dir directive.
 ;
 ;extension=bz2
 ;extension=curl
 ;extension=fileinfo
 ;extension=gd2
 ;extension=gettext
 ;extension=gmp
 ;extension=intl
 ;extension=imap
 ;extension=interbase
 ;extension=ldap
 ;extension=mbstring
 ;extension=exif ; Must be after mbstring as it depends on it
 ;extension=mysqli
 ;extension=oci8_12c ; Use with Oracle Database 12c Instant Client
 ;extension=openssl
 ;extension=pdo_firebird
 ;extension=pdo_mysql
 ;extension=pdo_oci
 ;extension=pdo_odbc
 ;extension=pdo_pgsql
 ;extension=pdo_sqlite
 ;extension=pgsql
 ;extension=shmop

; The MIBS data available in the PHP distribution must be installed.
 ; See http://www.php.net/manual/en/snmp.installation.php
 ;extension=snmp

;extension=soap
 ;extension=sockets
 ;extension=sqlite3
 ;extension=tidy
 ;extension=xmlrpc
 ;extension=xsl

; 模块设置
 ;;;;;;;;;;;;;;;;;;;
 ; Module Settings ;
 ;;;;;;;;;;;;;;;;;;;

[CLI Server]
 ; Whether the CLI web server uses ANSI color coding in its terminal output.
 ; 控制php 在cli模式下运行输出信息里面是否有颜色.
 cli_server.color = On

[Date]
 ; Defines the default timezone used by the date functions
 ; http://php.net/date.timezone
 ; 给date函数设置时区.
 ;date.timezone =
 ; http://php.net/date.default-latitude
 ;(date_sunrise() 和 date_sunset() 使用该选项)
 ;date.default_latitude = 31.7667

;(date_sunrise() 和 date_sunset() 使用该选项)
 ; http://php.net/date.default-longitude
 ;date.default_longitude = 35.2333

;http://www.runoob.com/php/func-date-sunrise.html
 ;返回葡萄牙里斯本今天的日出时间: echo(date_sunrise(time(),SUNFUNCS_RET_STRING,38.4,-9,90,1));
 ;;(date_sunrise() 和 date_sunset() 使用该选项)
 ; http://php.net/date.sunrise-zenith
 ;date.sunrise_zenith = 90.583333

;(date_sunrise() 和 date_sunset() 使用该选项)
 ; http://php.net/date.sunset-zenith
 ;date.sunset_zenith = 90.583333

[filter]
 ; http://php.net/filter.default
 ; 可选值列表:https://secure.php.net/manual/zh/filter.filters.sanitize.php
 ; 这个配置实际上会影响到: 函数:filter_input https://secure.php.net/manual/zh/function.filter-input.php
 ;filter.default = unsafe_raw

; http://php.net/filter.default-flags
 ;filter.default_flags =
 [iconv]
 ; Use of this INI entry is deprecated, use global input_encoding instead.
 ; If empty, default_charset or input_encoding or iconv.input_encoding is used.
 ; The precedence is: default_charset < intput_encoding < iconv.input_encoding
 ; iconv 使用的编码.iconv 函数的优先级, 以上的三个配置项左到右,左边为高.
 ; 以下这些函数,没有传参就用配置的编码识别
 ;iconv_strlen — 返回字符串的字符数统计
 ;iconv_strpos — Finds position of first occurrence of a needle within a haystack
 ;iconv_strrpos — Finds the last occurrence of a needle within a haystack
 ;iconv_substr —
 ;如果省略了参数 charset,string 的编码被认定为 iconv.internal_encoding。
 ;iconv.input_encoding =

; Use of this INI entry is deprecated, use global internal_encoding instead.
 ; If empty, default_charset or internal_encoding or iconv.internal_encoding is used.
 ; The precedence is: default_charset < internal_encoding < iconv.internal_encoding
 ; 内部编码 如果省略了 iconv_strlen charset 参数,假设 str 的编码为 iconv.internal_encoding。
 ;iconv.internal_encoding =

; Use of this INI entry is deprecated, use global output_encoding instead.
 ; If empty, default_charset or output_encoding or iconv.output_encoding is used.
 ; The precedence is: default_charset < output_encoding < iconv.output_encoding
 ; To use an output encoding conversion, iconv's output handler must be set
 ; otherwise output encoding conversion cannot be performed.
 ; 是给ob_iconv_handler函数使用的. https://secure.php.net/manual/zh/function.ob-iconv-handler.php
 ; 将字符编码从 internal_encoding 转换到 output_encoding。
 ;
 ; internal_encoding 和 output_encoding 应当在 php.ini 文件或 iconv_set_encoding() 中定义。
 ; 用法:
 ; <?php
 ; iconv_set_encoding("internal_encoding", "UTF-8");
 ; iconv_set_encoding("output_encoding", "ISO-8859-1");
 ; ob_start("ob_iconv_handler"); // 开始输出缓冲
 ; ?>
 ;iconv.output_encoding =

[intl]
 ;intl 扩展安装方法,https://www.cnblogs.com/boy215/p/6813873.html
 ;ICU http://www.linuxeye.com/Linux/2374.html
 ;http://www.jxbh.cn/newshow.asp?id=1300&tag=2
 ;http://www.runoob.com/php/php-intlchar.html
 ;它为应用程序的国际化提供帮助
 ;ICU(International Component for Unicode/Unicode国际化组件) 是 Unicode 支持、软件国际化、
 ;全球化的一个成熟的、广泛应用的库,是一个由 IBM 赞助、支持和使用的,基于"IBM公共许可证",
 ;用于支持软件国际化的开源项目。这个库为 C 和 Java 编程语言提供了一整套操作
 ; Unicode 数据的函数。这个库是在一种无限制的开放源码许可证下发布的,这使它可以在许多应用程序中使用。
 ;关于 ICU https://baike.baidu.com/item/ICU/8661827?fr=aladdin
 ; ICU默认的本地化设置.一般不用去处理.
 ;intl.default_locale =
 ; This directive allows you to produce PHP errors when some error
 ; happens within intl functions. The value is the level of the error produced.
 ; Default is 0, which does not produce any errors.
 ;

;intl.error_level = E_WARNING
 ;设置错误级别.和是否抛出异常 IntlException. 会根据intl.error_level 回对应的错误级别的信息
 ;通过设置为0,会抑制错误产生,但是php给了另外一个入口来了解真相.intl_get_error_code()这个可以得到真实的code
 ;intl.use_exceptions = 0

[sqlite3]
 ;sqlite3.extension_dir =

;Perl Compatible Regular Expressions是一个Perl库,包括 perl 兼容的正则表达式库。
 [Pcre]
 ;PCRE library backtracking limit.
 ; http://php.net/pcre.backtrack-limit
 ;关于回溯和递归的关系;https://blog.csdn.net/u014772862/article/details/51789015
 ;回溯是一种算法思想,可以用递归实现。
 ;递归是一种算法结构,递归会出现在子程序中自己调用自己或间接地自己调用自己。
 ;pcre.backtrack_limit=100000

;PCRE library recursion limit.
 ;Please note that if you set this value to a high number you may consume all
 ;the available process stack and eventually crash PHP (due to reaching the
 ;stack size limit imposed by the Operating System).
 ; http://php.net/pcre.recursion-limit
 ; Laruence对 深悉正则(pcre)最大回溯/递归限制 http://www.laruence.com/2010/06/08/1579.html
 ;pcre.recursion_limit=100000

;Enables or disables JIT compilation of patterns. This requires the PCRE
 ;library to be compiled with JIT support.
 ;正则表达式引擎pcre使用JIT(即时编译)后比不使用速度快了好几倍(甚至10倍),为什么这么快?
 ;https://segmentfault.com/q/1010000000366720
 ;pcre.jit=1

[Pdo]
 ;开放数据库连接(Open Database Connectivity,ODBC)是为解决异构数据库间的数据共享而产生的
 ; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off"
 ; http://php.net/pdo-odbc.connection-pooling
 ;pdo_odbc.connection_pooling=strict

;pdo_odbc.db2_instance_name

[Pdo_mysql]
 ; If mysqlnd is used: Number of cache slots for the internal result set cache
 ; http://php.net/pdo_mysql.cache_size
 pdo_mysql.cache_size = 2000

; 相当于这里可以修改pdo 链接mysql时所使用的socket地址.
 ; Default socket name for local MySQL connects. If empty, uses the built-in
 ; MySQL defaults.
 ; http://php.net/pdo_mysql.default-socket
 pdo_mysql.default_socket=

[Phar]
 ; http://php.net/phar.readonly
 ; 这个最好开启.否则可以滋生病毒,以至于与其他安全系数低的稀土对接时产生病毒.
 ; php对这个参数的处理机制就是,要设置关闭,只能通过php.ini来设置.
 ; 同时,如果原本是关闭状态,那么用户可以在脚本里面开启或者重新关闭.
 ; 而如果原本就是开启的,那么你没办法关闭.但是可以重新开启,这没关系的.
 ;phar.readonly = On

; http://php.net/phar.require-hash
 ; 也是基于安全的角度考虑,对于不包含.some kind of signature (currently MD5, SHA1, SHA256 and SHA512 are supported)
 ; 签名的包,php是拒绝处理的.
 ; 同样的要关闭该功能只能通过php.ini,相关约束与readonly一致
 ;This setting does not affect reading plain tar files with the PharData class.
 ;phar.require_hash = On

;
 ;Allows mapping phar archives to be pre-parsed at web server startup,
 ; providing a performance improvement that brings running files out of a phar archive
 ; very close to the speed of running those files from a traditional disk-based installation.
 ; 简单来说,首先这是一个系统级别的设置,只能在php.ini进行,PHP_INI_SYSTEM .
 ; 如果指定好了包路径,那么在php启动的时候就将他们加载进来了.这样之后在php代码中使用这些包里面的代码就会很快了.几乎
 ; 等于你在使用一个磁盘上某个文件.
 ;phar.cache_list =

[mail function]
 ; 实际上是针对win32
 ; For Win32 only.
 ; http://php.net/smtp
 ; mail()函数中用来发送邮件的SMTP服务器的主机名称或者IP地址。仅用于win32。
 SMTP = localhost
 ; http://php.net/smtp-port
 ;SMTP服务器的端口号。仅用于win32。
 smtp_port = 25

; For Win32 only.
 ; http://php.net/sendmail-from
 ; 邮件中的发件人
 ; http://php.net/sendmail-path
 ;发送邮件时使用的"From:"头中的邮件地址。仅用于win32
 ; 该选项还同时设置了"Return-Path:"头。
 ;sendmail_from = me@example.com

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
 ; @todo
 ;sendmail_path =

; Force the addition of the specified parameters to be passed as extra parameters
 ; to the sendmail binary. These parameters will always replace the value of
 ; the 5th parameter to mail().
 ; 他会影响mail函数的第五个参数,不管你是否传入值.
 ;mail.force_extra_parameters =

; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
 mail.add_x_header = On

; The path to a log file that will log all mail() calls. Log entries include
 ; the full path of the script, line number, To address and headers.
 ; 将发邮件的信息记录到日志里面
 ;mail.log =
 ; Log mail to syslog (Event Log on Windows).
 ;mail.log = syslog

[ODBC]
 ; 其实就是一个抽象层的数据库接口.屏蔽了各个数据库的不同.对外提供一致的访问接口
 ; http://php.net/odbc.default-db
 ;odbc.default_db = Not yet implemented

; http://php.net/odbc.default-user
 ;odbc.default_user = Not yet implemented

; http://php.net/odbc.default-pw
 ;odbc.default_pw = Not yet implemented

; Controls the ODBC cursor model.
 ; Default: SQL_CURSOR_STATIC (default).
 ;odbc.default_cursortype

; Allow or prevent persistent links.
 ; http://php.net/odbc.allow-persistent
 odbc.allow_persistent = On

; Check that a connection is still valid before reuse.
 ; http://php.net/odbc.check-persistent
 odbc.check_persistent = On

; Maximum number of persistent links. -1 means no limit.
 ; http://php.net/odbc.max-persistent
 odbc.max_persistent = -1

; Maximum number of links (persistent + non-persistent). -1 means no limit.
 ; http://php.net/odbc.max-links
 odbc.max_links = -1

; Handling of LONG fields. Returns number of bytes to variables. 0 means
 ; passthru.
 ; http://php.net/odbc.defaultlrl
 odbc.defaultlrl = 4096

; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char.
 ; See the documentation on odbc_binmode and odbc_longreadlen for an explanation
 ; of odbc.defaultlrl and odbc.defaultbinmode
 ; http://php.net/odbc.defaultbinmode
 odbc.defaultbinmode = 1

;birdstep.max_links = -1

; 不用管他. InterBase是一种关系数据管理系统(Relational database management system RDBMS)
 [Interbase]
 ; Allow or prevent persistent links.
 ibase.allow_persistent = 1

; Maximum number of persistent links. -1 means no limit.
 ibase.max_persistent = -1

; Maximum number of links (persistent + non-persistent). -1 means no limit.
 ibase.max_links = -1

; Default database name for ibase_connect().
 ;ibase.default_db =

; Default username for ibase_connect().
 ;ibase.default_user =

; Default password for ibase_connect().
 ;ibase.default_password =

; Default charset for ibase_connect().
 ;ibase.default_charset =

; Default timestamp format.
 ibase.timestampformat = "%Y-%m-%d %H:%M:%S"

; Default date format.
 ibase.dateformat = "%Y-%m-%d"

; Default time format.
 ibase.timeformat = "%H:%M:%S"
 ;简要谈谈php中mysql,mysqli,mysqlnd,pdo到底是什么. https://blog.csdn.net/u013785951/article/details/60876816
 [MySQLi]
 ; 另外参考学习MySQL的相关扩展说明: https://secure.php.net/manual/zh/set.mysqlinfo.php
 ; Maximum number of persistent links. -1 means no limit.
 ; http://php.net/mysqli.max-persistent
 mysqli.max_persistent = -1

;perspective 透镜,望远镜; 观点,看法; 远景,景色; 洞察力;
 ; 这个其实也是从安全角度考虑,是否用mysqli扩展载入load data 的数据文件,以插入数据.
 ; Allow accessing, from PHP's perspective, local files with LOAD DATA statements
 ; http://php.net/mysqli.allow_local_infile
 ;mysqli.allow_local_infile = On

; 允许或不允许持久性链接.
 ; 也就是 开启使用mysqli_connect()函数创建持久化连接的能力。
 ; Allow or prevent persistent links.
 ; http://php.net/mysqli.allow-persistent
 mysqli.allow_persistent = On

; Maximum number of links. -1 means no limit.
 ; http://php.net/mysqli.max-links
 ; 这里控制mysqli可支持的最大连接数,可以进行设置.这是进程级别的设置.避免单进程调用过多的数据库连接.
 mysqli.max_links = -1

; If mysqlnd is used: Number of cache slots for the internal result set cache
 ; 可以被缓存下来的查询结果大小
 ; http://php.net/mysqli.cache_size
 mysqli.cache_size = 2000

; Default port number for mysqli_connect(). If unset, mysqli_connect() will use
 ; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
 ; compile-time value defined MYSQL_PORT (in that order). Win32 will only look
 ; at MYSQL_PORT.
 ; http://php.net/mysqli.default-port
 ; 当没有指定其他端口号时使用的默认的用于连接数据库服务器的TCP端口号。如果没有设置默认值,
 ; 端口号将会按照顺序从环境变量MYSQL_TCP_PORT,
 ; /etc/services 文件中的mysql-tcp条目或编译期的MYSQL_PORT常量等位置获取。
 ; Win32仅使用MYSQL_PORT常量。
 mysqli.default_port = 3306

; Default socket name for local MySQL connects. If empty, uses the built-in
 ; MySQL defaults.
 ; http://php.net/mysqli.default-socket
 ; 当连接到本地数据库服务器时如果没有指定其他socket名称,使用的默认socket名称。
 mysqli.default_socket =

; Default host for mysql_connect() (doesn't apply in safe mode).
 ; http://php.net/mysqli.default-host
 ; 在安全欧式下无效.
 mysqli.default_host =

; Default user for mysql_connect() (doesn't apply in safe mode).
 ; http://php.net/mysqli.default-user
 ; 在安全模式下无效.
 mysqli.default_user =

; Default password for mysqli_connect() (doesn't apply in safe mode).
 ; Note that this is generally a *bad* idea to store passwords in this file.
 ; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw")
 ; and reveal this password! And of course, any users with read access to this
 ; file will be able to reveal the password as well.
 ; http://php.net/mysqli.default-pw
 mysqli.default_pw =

; Allow or prevent reconnect
 ; 是否允许重新连接.Off就是不重新连接.
 mysqli.reconnect = Off

[mysqlnd]
 ; Enable / Disable collection of general statistics by mysqlnd which can be
 ; used to tune and monitor MySQL operations.
 ; http://php.net/mysqlnd.collect_statistics
 mysqlnd.collect_statistics = On

; Enable / Disable collection of memory usage statistics by mysqlnd which can be
 ; used to tune and monitor MySQL operations.
 ; http://php.net/mysqlnd.collect_memory_statistics
 mysqlnd.collect_memory_statistics = Off

; Records communication from all extensions using mysqlnd to the specified log
 ; file.
 ; http://php.net/mysqlnd.debug
 ; 记录所有用了mysqlnd的扩展使用日志.
 ;mysqlnd.debug =

; Defines which queries will be logged.
 ; http://php.net/mysqlnd.log_mask
 ; 哪些查询被记录
 ;mysqlnd.log_mask = 0

; Default size of the mysqlnd memory pool, which is used by result sets.
 ; http://php.net/mysqlnd.mempool_default_size
 ; 这个会影响能承载的结果集大小.
 ;mysqlnd.mempool_default_size = 16000

; Size of a pre-allocated buffer used when sending commands to MySQL in bytes.
 ; http://php.net/mysqlnd.net_cmd_buffer_size
 ; 指令的缓冲区大小.
 ;mysqlnd.net_cmd_buffer_size = 2048

; Size of a pre-allocated buffer used for reading data sent by the server in
 ; bytes.
 ; http://php.net/mysqlnd.net_read_buffer_size
 ; 可使用的读缓冲区的大小,单位是字节.
 ;mysqlnd.net_read_buffer_size = 32768

; Timeout for network requests in seconds.
 ; http://php.net/mysqlnd.net_read_timeout
 ; 底层mysql连接超时时间
 ;mysqlnd.net_read_timeout = 31536000

; SHA-256 Authentication Plugin related. File with the MySQL server public RSA
 ; key.
 ; http://php.net/mysqlnd.sha256_server_public_key
 ;mysqlnd.sha256_server_public_key =

; oracle 不管
 [OCI8]

; Connection: Enables privileged connections using external
 ; credentials (OCI_SYSOPER, OCI_SYSDBA)
 ; http://php.net/oci8.privileged-connect
 ;oci8.privileged_connect = Off

; Connection: The maximum number of persistent OCI8 connections per
 ; process. Using -1 means no limit.
 ; http://php.net/oci8.max-persistent
 ;oci8.max_persistent = -1

; Connection: The maximum number of seconds a process is allowed to
 ; maintain an idle persistent connection. Using -1 means idle
 ; persistent connections will be maintained forever.
 ; http://php.net/oci8.persistent-timeout
 ;oci8.persistent_timeout = -1

; Connection: The number of seconds that must pass before issuing a
 ; ping during oci_pconnect() to check the connection validity. When
 ; set to 0, each oci_pconnect() will cause a ping. Using -1 disables
 ; pings completely.
 ; http://php.net/oci8.ping-interval
 ;oci8.ping_interval = 60

; Connection: Set this to a user chosen connection class to be used
 ; for all pooled server requests with Oracle 11g Database Resident
 ; Connection Pooling (DRCP). To use DRCP, this value should be set to
 ; the same string for all web servers running the same application,
 ; the database pool must be configured, and the connection string must
 ; specify to use a pooled server.
 ;oci8.connection_class =

; High Availability: Using On lets PHP receive Fast Application
 ; Notification (FAN) events generated when a database node fails. The
 ; database must also be configured to post FAN events.
 ;oci8.events = Off

; Tuning: This option enables statement caching, and specifies how
 ; many statements to cache. Using 0 disables statement caching.
 ; http://php.net/oci8.statement-cache-size
 ;oci8.statement_cache_size = 20

; Tuning: Enables statement prefetching and sets the default number of
 ; rows that will be fetched automatically after statement execution.
 ; http://php.net/oci8.default-prefetch
 ;oci8.default_prefetch = 100

; Compatibility. Using On means oci_close() will not close
 ; oci_connect() and oci_new_connect() connections.
 ; http://php.net/oci8.old-oci-close-semantics
 ;oci8.old_oci_close_semantics = Off

;PostgreSQL 数据库不管
 [PostgreSQL]
 ; Allow or prevent persistent links.
 ; http://php.net/pgsql.allow-persistent
 pgsql.allow_persistent = On

; Detect broken persistent links always with pg_pconnect().
 ; Auto reset feature requires a little overheads.
 ; http://php.net/pgsql.auto-reset-persistent
 pgsql.auto_reset_persistent = Off

; Maximum number of persistent links. -1 means no limit.
 ; http://php.net/pgsql.max-persistent
 pgsql.max_persistent = -1

; Maximum number of links (persistent+non persistent). -1 means no limit.
 ; http://php.net/pgsql.max-links
 pgsql.max_links = -1

; Ignore PostgreSQL backends Notice message or not.
 ; Notice message logging require a little overheads.
 ; http://php.net/pgsql.ignore-notice
 pgsql.ignore_notice = 0

; Log PostgreSQL backends Notice message or not.
 ; Unless pgsql.ignore_notice=0, module cannot log notice message.
 ; http://php.net/pgsql.log-notice
 pgsql.log_notice = 0

[bcmath]
 ; Number of decimal digits for all bcmath functions.
 ; http://php.net/bcmath.scale
 ; 参见 https://secure.php.net/manual/zh/function.bcscale.php
 ; 上面的操作也可以设置,bc函数的精准度.
 bcmath.scale = 0

[browscap]
 ; http://php.net/browscap
 ; 检查浏览器行为; https://secure.php.net/manual/zh/function.get-browser.php
 ; get_browser — 获取浏览器具有的功能 .通过指定ini,以此为指导检测浏览器信息
 ; Note:
 ; 为了能让该函数运作,在 php.ini 中配置的 browscap 必须指向 browscap.ini 文件的正确位置。
 ; browscap.ini 并未内置在PHP中,不过你可以在这里找到最新的 » php_browscap.ini。
 ; browscap.ini 包含的诸多浏览器信息依赖于用户更新该数据库。该文件的格式不言自明。
 ; http://browscap.org/
 ;browscap = extra/browscap.ini

[Session]
 ; 这里面说得很清楚了,可以介绍所有配置项
 ; https://secure.php.net/manual/zh/session.configuration.php#ini.session.save-handler
 ; 安全设置相关 https://secure.php.net/manual/zh/session.security.ini.php
 ; 值得再看几遍.
 ; http://blog.163.com/tfz_0611_go/blog/static/2084970842013227103347380/
 ; Handler used to store/retrieve data.
 ; http://php.net/session.save-handler
 session.save_handler = files

; Argument passed to save_handler. In the case of files, this is the path
 ; where data files are stored. Note: Windows users have to change this
 ; variable in order to use PHP's session functions.
 ;
 ; The path can be defined as:
 ;
 ; session.save_path = "N;/path"
 ;
 ; where N is an integer. Instead of storing all the session files in
 ; /path, what this will do is use subdirectories N-levels deep, and
 ; store the session data in those directories. This is useful if
 ; your OS has problems with many files in one directory, and is
 ; a more efficient layout for servers that handle many sessions.
 ;
 ; NOTE 1: PHP will not create this directory structure automatically.
 ; You can use the script in the ext/session dir for that purpose.
 ; NOTE 2: See the section on garbage collection below if you choose to
 ; use subdirectories for session storage
 ;
 ; The file storage module creates files using mode 600 by default.
 ; You can change that by using
 ;
 ; session.save_path = "N;MODE;/path"
 ;
 ; where MODE is the octal representation of the mode. Note that this
 ; does not overwrite the process's umask.
 ; http://php.net/session.save-path
 ;session.save_path = "/tmp"

; Whether to use strict session mode.
 ; Strict session mode does not accept uninitialized session ID and regenerate
 ; session ID if browser sends uninitialized session ID. Strict mode protects
 ; applications from session fixation via session adoption vulnerability. It is
 ; disabled by default for maximum compatibility, but enabling it is encouraged.
 ; https://wiki.php.net/rfc/strict_sessions
 session.use_strict_mode = 0

; Whether to use cookies.
 ; http://php.net/session.use-cookies
 session.use_cookies = 1

; http://php.net/session.cookie-secure
 ; 只有在https情况下才使用cookie.这里说的是包含session的cookie
 ;session.cookie_secure =

; This option forces PHP to fetch and use a cookie for storing and maintaining
 ; the session id. We encourage this operation as it's very helpful in combating
 ; session hijacking when not specifying and managing your own session id. It is
 ; not the be-all and end-all of session hijacking defense, but it's a good start.
 ; http://php.net/session.use-only-cookies
 session.use_only_cookies = 1

; Name of the session (used as cookie name).
 ; http://php.net/session.name
 session.name = PHPSESSID

; Initialize session on request startup.
 ; http://php.net/session.auto-start
 session.auto_start = 0

; Lifetime in seconds of cookie or, if 0, until browser is restarted.
 ; http://php.net/session.cookie-lifetime
 session.cookie_lifetime = 0

; The path for which the cookie is valid.
 ; http://php.net/session.cookie-path
 session.cookie_path = /

; The domain for which the cookie is valid.
 ; http://php.net/session.cookie-domain
 session.cookie_domain =

; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript.
 ; http://php.net/session.cookie-httponly
 session.cookie_httponly =

; Handler used to serialize data. php is the standard serializer of PHP.
 ; http://php.net/session.serialize-handler
 session.serialize_handler = php

; Defines the probability that the 'garbage collection' process is started
 ; on every session initialization. The probability is calculated by using
 ; gc_probability/gc_divisor. Where session.gc_probability is the numerator
 ; and gc_divisor is the denominator in the equation. Setting this value to 1
 ; when the session.gc_divisor value is 100 will give you approximately a 1% chance
 ; the gc will run on any give request.
 ; Default Value: 1
 ; Development Value: 1
 ; Production Value: 1
 ; http://php.net/session.gc-probability
 session.gc_probability = 1

; Defines the probability that the 'garbage collection' process is started on every
 ; session initialization. The probability is calculated by using the following equation:
 ; gc_probability/gc_divisor. Where session.gc_probability is the numerator and
 ; session.gc_divisor is the denominator in the equation. Setting this value to 1
 ; when the session.gc_divisor value is 100 will give you approximately a 1% chance
 ; the gc will run on any give request. Increasing this value to 1000 will give you
 ; a 0.1% chance the gc will run on any give request. For high volume production servers,
 ; this is a more efficient approach.
 ; Default Value: 100
 ; Development Value: 1000
 ; Production Value: 1000
 ; http://php.net/session.gc-divisor
 session.gc_divisor = 1000

; After this number of seconds, stored data will be seen as 'garbage' and
 ; cleaned up by the garbage collection process.
 ; http://php.net/session.gc-maxlifetime
 session.gc_maxlifetime = 1440

; NOTE: If you are using the subdirectory option for storing session files
 ; (see session.save_path above), then garbage collection does *not*
 ; happen automatically. You will need to do your own garbage
 ; collection through a shell script, cron entry, or some other method.
 ; For example, the following script would is the equivalent of
 ; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
 ; find /path/to/sessions -cmin +24 -type f | xargs rm

; Check HTTP Referer to invalidate externally stored URLs containing ids.
 ; HTTP_REFERER has to contain this substring for the session to be
 ; considered as valid.
 ; http://php.net/session.referer-check
 ; 在https下没有什么卵用.
 session.referer_check =

; Set to {nocache,private,public,} to determine HTTP caching aspects
 ; or leave this empty to avoid sending anti-caching headers.
 ; http://php.net/session.cache-limiter
 session.cache_limiter = nocache

; Document expires after n minutes.
 ; http://php.net/session.cache-expire
 session.cache_expire = 180

; trans sid support is disabled by default.
 ; Use of trans sid may risk your users' security.
 ; Use this option with caution.
 ; - User may send URL contains active session ID
 ; to other person via. email/irc/etc.
 ; - URL that contains active session ID may be stored
 ; in publicly accessible computer.
 ; - User may access your site with the same session ID
 ; always using URL stored in browser's history or bookmarks.
 ; http://php.net/session.use-trans-sid
 session.use_trans_sid = 0

; Set session ID character length. This value could be between 22 to 256.
 ; Shorter length than default is supported only for compatibility reason.
 ; Users should use 32 or more chars.
 ; http://php.net/session.sid-length
 ; Default Value: 32
 ; Development Value: 26
 ; Production Value: 26
 session.sid_length = 26

; The URL rewriter will look for URLs in a defined set of HTML tags.
 ; <form> is special; if you include them here, the rewriter will
 ; add a hidden <input> field with the info which is otherwise appended
 ; to URLs. <form> tag's action attribute URL will not be modified
 ; unless it is specified.
 ; Note that all valid entries require a "=", even if no value follows.
 ; Default Value: "a=href,area=href,frame=src,form="
 ; Development Value: "a=href,area=href,frame=src,form="
 ; Production Value: "a=href,area=href,frame=src,form="
 ; http://php.net/url-rewriter.tags
 session.trans_sid_tags = "a=href,area=href,frame=src,form="

; URL rewriter does not rewrite absolute URLs by default.
 ; To enable rewrites for absolute pathes, target hosts must be specified
 ; at RUNTIME. i.e. use ini_set()
 ; <form> tags is special. PHP will check action attribute's URL regardless
 ; of session.trans_sid_tags setting.
 ; If no host is defined, HTTP_HOST will be used for allowed host.
 ; Example value: php.net,www.php.net,wiki.php.net
 ; Use "," for multiple hosts. No spaces are allowed.
 ; Default Value: ""
 ; Development Value: ""
 ; Production Value: ""
 ;session.trans_sid_hosts=""

; Define how many bits are stored in each character when converting
 ; the binary hash data to something readable.
 ; Possible values:
 ; 4 (4 bits: 0-9, a-f)
 ; 5 (5 bits: 0-9, a-v)
 ; 6 (6 bits: 0-9, a-z, A-Z, "-", ",")
 ; Default Value: 4
 ; Development Value: 5
 ; Production Value: 5
 ; http://php.net/session.hash-bits-per-character
 session.sid_bits_per_character = 5
 ; 以下关于.upload_progress. 都是php5.4支持的上传进度跟踪功能 https://www.cnblogs.com/zhepama/p/3930578.html
 ; Enable upload progress tracking in $_SESSION
 ; Default Value: On
 ; Development Value: On
 ; Production Value: On
 ; http://php.net/session.upload-progress.enabled
 ;session.upload_progress.enabled = On

; Cleanup the progress information as soon as all POST data has been read
 ; (i.e. upload completed).
 ; Default Value: On
 ; Development Value: On
 ; Production Value: On
 ; http://php.net/session.upload-progress.cleanup
 ;session.upload_progress.cleanup = On

; A prefix used for the upload progress key in $_SESSION
 ; Default Value: "upload_progress_"
 ; Development Value: "upload_progress_"
 ; Production Value: "upload_progress_"
 ; http://php.net/session.upload-progress.prefix
 ;session.upload_progress.prefix = "upload_progress_"

; The index name (concatenated with the prefix) in $_SESSION
 ; containing the upload progress information
 ; Default Value: "PHP_SESSION_UPLOAD_PROGRESS"
 ; Development Value: "PHP_SESSION_UPLOAD_PROGRESS"
 ; Production Value: "PHP_SESSION_UPLOAD_PROGRESS"
 ; http://php.net/session.upload-progress.name
 ;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS"

; How frequently the upload progress should be updated.
 ; Given either in percentages (per-file), or in bytes
 ; Default Value: "1%"
 ; Development Value: "1%"
 ; Production Value: "1%"
 ; http://php.net/session.upload-progress.freq
 ;session.upload_progress.freq = "1%"

; The minimum delay between updates, in seconds
 ; Default Value: 1
 ; Development Value: 1
 ; Production Value: 1
 ; http://php.net/session.upload-progress.min-freq
 ;session.upload_progress.min_freq = "1"

; Only write session data when session data is changed. Enabled by default.
 ; http://php.net/session.lazy-write
 ;http://www.runoob.com/php/php-session-options.html
 ;session.lazy_write = On

[Assertion]
 ;https://secure.php.net/manual/zh/function.assert.php
 ; 断言其实更适合在单元测试上,以一套更为规范的方式诊断我们的代码有没有问题.
 ; https://www.cnblogs.com/nixi8/p/7147122.html
 ; 如果从实现角度来说,if else足以.这样你的代码会很长,和臭.
 ; 断言可以设置问题的集中处理方式.

; Switch whether to compile assertions at all (to have no overhead at run-time)
 ; -1: Do not compile at all
 ; 0: Jump over assertion at run-time
 ; 1: Execute assertions
 ; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1)
 ; Default Value: 1
 ; Development Value: 1
 ; Production Value: -1
 ; http://php.net/zend.assertions
 zend.assertions = -1

; Assert(expr); active by default.
 ; http://php.net/assert.active
 ;assert.active = On

; Throw an AssertationException on failed assertions
 ; http://php.net/assert.exception
 ;assert.exception = On

; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active)
 ; http://php.net/assert.warning
 ;assert.warning = On

; Don't bail out by default.
 ; http://php.net/assert.bail
 ;assert.bail = Off

; User-function to be called if an assertion fails.
 ; http://php.net/assert.callback
 ;assert.callback = 0

; Eval the expression with current error_reporting(). Set to true if you want
 ; error_reporting(0) around the eval().
 ; http://php.net/assert.quiet-eval
 ;assert.quiet_eval = 0

[COM]
 ; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs
 ; http://php.net/com.typelib-file
 ;com.typelib_file =

; allow Distributed-COM calls
 ; http://php.net/com.allow-dcom
 ;com.allow_dcom = true

; autoregister constants of a components typlib on com_load()
 ; http://php.net/com.autoregister-typelib
 ;com.autoregister_typelib = true

; register constants casesensitive
 ; http://php.net/com.autoregister-casesensitive
 ;com.autoregister_casesensitive = false

; show warnings on duplicate constant registrations
 ; http://php.net/com.autoregister-verbose
 ;com.autoregister_verbose = true

; The default character set code-page to use when passing strings to and from COM objects.
 ; Default: system ANSI code page
 ;com.code_page=

[mbstring]
 ; language for internal character representation.
 ; This affects mb_send_mail() and mbstring.detect_order.
 ; http://php.net/mbstring.language
 ;mbstring.language = Japanese

; Use of this INI entry is deprecated, use global internal_encoding instead.
 ; internal/script encoding.
 ; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*)
 ; If empty, default_charset or internal_encoding or iconv.internal_encoding is used.
 ; The precedence is: default_charset < internal_encoding < iconv.internal_encoding
 ;mbstring.internal_encoding =

; Use of this INI entry is deprecated, use global input_encoding instead.
 ; http input encoding.
 ; mbstring.encoding_traslation = On is needed to use this setting.
 ; If empty, default_charset or input_encoding or mbstring.input is used.
 ; The precedence is: default_charset < intput_encoding < mbsting.http_input
 ; http://php.net/mbstring.http-input
 ;mbstring.http_input =

; Use of this INI entry is deprecated, use global output_encoding instead.
 ; http output encoding.
 ; mb_output_handler must be registered as output buffer to function.
 ; If empty, default_charset or output_encoding or mbstring.http_output is used.
 ; The precedence is: default_charset < output_encoding < mbstring.http_output
 ; To use an output encoding conversion, mbstring's output handler must be set
 ; otherwise output encoding conversion cannot be performed.
 ; http://php.net/mbstring.http-output
 ;mbstring.http_output =

; enable automatic encoding translation according to
 ; mbstring.internal_encoding setting. Input chars are
 ; converted to internal encoding by setting this to On.
 ; Note: Do _not_ use automatic encoding translation for
 ; portable libs/applications.
 ; http://php.net/mbstring.encoding-translation
 ;mbstring.encoding_translation = Off

; automatic encoding detection order.
 ; "auto" detect order is changed according to mbstring.language
 ; http://php.net/mbstring.detect-order
 ;mbstring.detect_order = auto

; substitute_character used when character cannot be converted
 ; one from another
 ; http://php.net/mbstring.substitute-character
 ;mbstring.substitute_character = none

; overload(replace) single byte functions by mbstring functions.
 ; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),
 ; etc. Possible values are 0,1,2,4 or combination of them.
 ; For example, 7 for overload everything.
 ; 0: No overload
 ; 1: Overload mail() function
 ; 2: Overload str*() functions
 ; 4: Overload ereg*() functions
 ; http://php.net/mbstring.func-overload
 ;mbstring.func_overload = 0

; enable strict encoding detection.
 ; Default: Off
 ;mbstring.strict_detection = On

; This directive specifies the regex pattern of content types for which mb_output_handler()
 ; is activated.
 ; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml)
 ;mbstring.http_output_conv_mimetype=

[gd]
 ; Tell the jpeg decode to ignore warnings and try to create
 ; a gd image. The warning will then be displayed as notices
 ; disabled by default
 ; http://php.net/gd.jpeg-ignore-warning
 ;gd.jpeg_ignore_warning = 1

[exif]
 ; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS.
 ; With mbstring support this will automatically be converted into the encoding
 ; given by corresponding encode setting. When empty mbstring.internal_encoding
 ; is used. For the decode settings you can distinguish between motorola and
 ; intel byte order. A decode setting cannot be empty.
 ; http://php.net/exif.encode-unicode
 ;exif.encode_unicode = ISO-8859-15

; http://php.net/exif.decode-unicode-motorola
 ;exif.decode_unicode_motorola = UCS-2BE

; http://php.net/exif.decode-unicode-intel
 ;exif.decode_unicode_intel = UCS-2LE

; http://php.net/exif.encode-jis
 ;exif.encode_jis =

; http://php.net/exif.decode-jis-motorola
 ;exif.decode_jis_motorola = JIS

; http://php.net/exif.decode-jis-intel
 ;exif.decode_jis_intel = JIS

; 这是一个处理html文档的工具.可以起到整洁,美化和修正的功能.
 ; https://blog.csdn.net/beyond__devil/article/details/52856071
 ; 其实用得不多.
 [Tidy]
 ; The path to a default tidy configuration file to use when using tidy
 ; http://php.net/tidy.default-config
 ;tidy.default_config = /usr/local/lib/php/default.tcfg

; Should tidy clean and repair output automatically?
 ; WARNING: Do not use this option if you are generating non-html content
 ; such as dynamic images
 ; http://php.net/tidy.clean-output
 tidy.clean_output = Off

;简单对象访问协议是交换数据的一种协议规范
 [soap]
 ; Enables or disables WSDL caching feature.
 ; http://php.net/soap.wsdl-cache-enabled
 soap.wsdl_cache_enabled=1

; Sets the directory name where SOAP extension will put cache files.
 ; http://php.net/soap.wsdl-cache-dir
 soap.wsdl_cache_dir="/tmp"

; (time to live) Sets the number of second while cached file will be used
 ; instead of original one.
 ; http://php.net/soap.wsdl-cache-ttl
 soap.wsdl_cache_ttl=86400

; Sets the size of the cache limit. (Max. number of WSDL files to cache)
 soap.wsdl_cache_limit = 5

;进程控制扩展相关
 ;用于进程共享数据 ,参考阅读:https://www.cnblogs.com/luckcs/articles/6791377.html
 ;http://www.php.cn/php-weizijiaocheng-387740.html
 ;https://blog.csdn.net/yongcto/article/details/51984361
 ;https://www.ibm.com/developerworks/cn/opensource/os-php-shared-memory/

[sysvshm]
 ; A default size of the shared memory segment
 ;sysvshm.init_mem = 10000

[ldap]
 ; Sets the maximum number of open links or -1 for unlimited.
 ldap.max_links = -1

[dba]
 ; 属于DBA抽象层的一种.https://secure.php.net/manual/zh/refs.database.abstract.php
 ; 类似于PDO
 ;dba.default_handler=

[opcache]
 ; Determines if Zend OPCache is enabled
 ;opcache.enable=1

; Determines if Zend OPCache is enabled for the CLI version of PHP
 ;opcache.enable_cli=0

; The OPcache shared memory storage size.
 ;opcache.memory_consumption=128

; The amount of memory for interned strings in Mbytes.
 ;opcache.interned_strings_buffer=8

; The maximum number of keys (scripts) in the OPcache hash table.
 ; Only numbers between 200 and 1000000 are allowed.
 ;opcache.max_accelerated_files=10000

; The maximum percentage of "wasted" memory until a restart is scheduled.
 ;opcache.max_wasted_percentage=5

; When this directive is enabled, the OPcache appends the current working
 ; directory to the script key, thus eliminating possible collisions between
 ; files with the same name (basename). Disabling the directive improves
 ; performance, but may break existing applications.
 ;opcache.use_cwd=1

; When disabled, you must reset the OPcache manually or restart the
 ; webserver for changes to the filesystem to take effect.
 ;opcache.validate_timestamps=1

; How often (in seconds) to check file timestamps for changes to the shared
 ; memory storage allocation. ("1" means validate once per second, but only
 ; once per request. "0" means always validate)
 ;opcache.revalidate_freq=2

; Enables or disables file search in include_path optimization
 ;opcache.revalidate_path=0

; If disabled, all PHPDoc comments are dropped from the code to reduce the
 ; size of the optimized code.
 ;opcache.save_comments=1

; If enabled, a fast shutdown sequence is used for the accelerated code
 ; Depending on the used Memory Manager this may cause some incompatibilities.
 ;opcache.fast_shutdown=0

; Allow file existence override (file_exists, etc.) performance feature.
 ;opcache.enable_file_override=0

; A bitmask, where each bit enables or disables the appropriate OPcache
 ; passes
 ;opcache.optimization_level=0xffffffff

;opcache.inherited_hack=1
 ;opcache.dups_fix=0

; The location of the OPcache blacklist file (wildcards allowed).
 ; Each OPcache blacklist file is a text file that holds the names of files
 ; that should not be accelerated. The file format is to add each filename
 ; to a new line. The filename may be a full path or just a file prefix
 ; (i.e., /var/www/x blacklists all the files and directories in /var/www
 ; that start with 'x'). Line starting with a ; are ignored (comments).
 ;opcache.blacklist_filename=

; Allows exclusion of large files from being cached. By default all files
 ; are cached.
 ;opcache.max_file_size=0

; Check the cache checksum each N requests.
 ; The default value of "0" means that the checks are disabled.
 ;opcache.consistency_checks=0

; How long to wait (in seconds) for a scheduled restart to begin if the cache
 ; is not being accessed.
 ;opcache.force_restart_timeout=180

; OPcache error_log file name. Empty string assumes "stderr".
 ;opcache.error_log=

; All OPcache errors go to the Web server log.
 ; By default, only fatal errors (level 0) or errors (level 1) are logged.
 ; You can also enable warnings (level 2), info messages (level 3) or
 ; debug messages (level 4).
 ;opcache.log_verbosity_level=1

; Preferred Shared Memory back-end. Leave empty and let the system decide.
 ;opcache.preferred_memory_model=

; Protect the shared memory from unexpected writing during script execution.
 ; Useful for internal debugging only.
 ;opcache.protect_memory=0

; Allows calling OPcache API functions only from PHP scripts which path is
 ; started from specified string. The default "" means no restriction
 ;opcache.restrict_api=

; Mapping base of shared memory segments (for Windows only). All the PHP
 ; processes have to map shared memory into the same address space. This
 ; directive allows to manually fix the "Unable to reattach to base address"
 ; errors.
 ;opcache.mmap_base=

; Enables and sets the second level cache directory.
 ; It should improve performance when SHM memory is full, at server restart or
 ; SHM reset. The default "" disables file based caching.
 ;opcache.file_cache=

; Enables or disables opcode caching in shared memory.
 ;opcache.file_cache_only=0

; Enables or disables checksum validation when script loaded from file cache.
 ;opcache.file_cache_consistency_checks=1

; Implies opcache.file_cache_only=1 for a certain process that failed to
 ; reattach to the shared memory (for Windows only). Explicitly enabled file
 ; cache is required.
 ;opcache.file_cache_fallback=1

; Enables or disables copying of PHP code (text segment) into HUGE PAGES.
 ; This should improve performance, but requires appropriate OS configuration.
 ;opcache.huge_code_pages=1

; Validate cached file permissions.
 ;opcache.validate_permission=0

; Prevent name collisions in chroot'ed environment.
 ;opcache.validate_root=0

[curl]
 ; A default value for the CURLOPT_CAINFO option. This is required to be an
 ; absolute path.
 ; 关于 证书的一个小运用 http://www.it1352.com/589634.html
 ; 这里是为了发起curl请求时能自动的带上证书信息,而不需要每次都手动设置一遍
 ; $ ch = curl_init($ url);
 ; curl_setopt($ ch,CURLOPT_CAINFO,“C:\path\to\cacert.pem”);
 ; $ response = curl_exec($ ch);
 ;curl.cainfo =

[openssl]
 ; 关于开启openssl的做法:http://www.jb51.net/article/50173.htm
 ; The location of a Certificate Authority (CA) file on the local filesystem
 ; to use when verifying the identity of SSL/TLS peers. Most users should
 ; not specify a value for this directive as PHP will attempt to use the
 ; OS-managed cert stores in its absence. If specified, this value may still
 ; be overridden on a per-stream basis via the "cafile" SSL stream context
 ; option.
 ; 存放证书地址, 参考composer 报错时可修改这个配置,参考阅读 https://www.cnblogs.com/jackluo/p/4193124.html
 ; 最好是不要去设置他,因为php会自动使用系统默认管理的证书,这样更好.另外即使设置了.
 ; php也会优先使用你每次发请求时手动设置的cafile的值.
 ;openssl.cafile=

; If openssl.cafile is not specified or if the CA file is not found, the
 ; directory pointed to by openssl.capath is searched for a suitable
 ; certificate. This value must be a correctly hashed certificate directory.
 ; Most users should not specify a value for this directive as PHP will
 ; attempt to use the OS-managed cert stores in its absence. If specified,
 ; this value may still be overridden on a per-stream basis via the "capath"
 ; SSL stream context option.
 ; 这个相当于是一个备胎路径,如果上面的ssl证书地址找不到就到这里寻找
 ; 最好是不要去设置他,因为php会自动使用系统默认管理的证书,这样更好.另外即使设置了.
 ; php也会优先使用你每次发请求时手动设置的capath的值.
 ;openssl.capath=

; Local Variables:
 ; tab-width: 4
 ; End:

转载请注明:南瓜的小窝 » php7.ini 配置完全解析

喜欢 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
string(116) "No suitable servers found (`serverSelectionTryOnce` set): [connection refused calling ismaster on '127.0.0.1:27017']"