附录A php.ini配置项说明

588 阅读21分钟

下面给出的配置项仅为核心配置项,其他模块的配置项请参考官方文档。默认值均为PHP源码中定义配置项时的默认值,不是php.ini文件的默认值。

A.1 [PHP]相关配置

  1. engine

    配置项:on、off。

    默认值:on。

    可修改范围:PHP_INI_ALL。

    说明:设置打开或关闭PHP解析。本指令仅在使用PHP的Apache模块版本时才有用。可以基于目录或者虚拟主机来打开或者关闭PHP。例如:

    php_admin_flag engine on
    

    下面几个Apache指令可以使用户在Apache配置文件内部修改PHP的配置。

    1. php_value name value:设定指定的值,只能用于PHP_INI_ALL或PHP_INI_PERDIR类型的指令。要清除先前设定的值,把value设为none。不要用php_value设定布尔值,应该用php_flag。
    2. php_flag name on|off:用来设定布尔值的配置指令,仅能用于PHP_INI_ALL和PHP_INI_PERDIR类型的指令。
    3. php_admin_value name value:设定指定的指令的值,不能用于.htaccess文件。任何用php_admin_value设定的指令都不能被.htaccess或virtualhost中的指令覆盖。要清除先前设定的值,把value设为none。
    4. php_admin_f lag name on|off:用来设定布尔值的配置指令,不能用于.htaccess文件。任何用php_admin_flag设定的指令都不能被.htaccess或virtualhost中的指令覆盖。
  2. short_open_tag

    配置项:on、off。

    默认值:on。

    可修改范围:PHP_INI_ALL。

    说明:设置是否允许使用PHP代码开始标志的缩写形式<?? >,默认开启。这个特性是为了保持对前兼容而留下来的特性,除非为了兼容老版本的代码,否则不要使用该特性。Zend引擎在编译PHP代码的时候和使用readline扩展进行可交互命令行程序开发的时候会做这个检测。

  3. precision

    配置项:integer。

    默认值:14。

    可修改范围:PHP_INI_ALL。

    说明:设置浮点型数据显示的有效位数,默认14位。代码如下:

    ini_set('precision', 3);
    echo 1.11111;
    1.11
    
  4. output_buffering

    配置项:on、off、integer(bytes)。

    默认值:0。

    可修改范围:PHP_INI_PERDIR。

    说明:该选项设置为on时,将在所有的脚本中使用输出控制并且buffer无限制大小。如果要限制输出缓冲区的最大值,可将该选项设定为指定的最大字节数,如果输出的内容超过限制的大小,那么PHP将按照限制的大小分块输出,CLI下强制关闭。

  5. output_handler

    配置项:其值只能设置为一个内置的函数名,如mb_output_handler,函数只能设置一个。

    默认值:null。

    可修改范围:PHP_INI_PERDIR。

    说明:该选项可将脚本所有的输出重定向到一个函数。

  6. zlib.output_compression

    配置项:on、off、integer。

    默认值:off。

    可修改范围:PHP_INI_ALL。

    说明:设置是否开启gzip压缩,开启的时候默认为4KB。

  7. zlib.output_compression_level

    配置项:integer。

    默认值:-1。

    可修改范围:PHP_INI_ALL。

    说明:设置gzip压缩级别,默认为-1,最高为9,数字越大,压缩比越高,也越消耗CPU。

  8. zlib.output_handler

    配置项:string。

    默认值:null。

    可修改范围:PHP_INI_ALL。

    说明:作用同output_handler,但是不能同时开启。

  9. implicit_flush

    配置项:on、off。

    默认值:off。

    可修改范围:PHP_INI_ALL。

    说明:若该选项改为true, PHP将使输出层在每段信息块输出后自动刷新。这等同于在每次使用print、echo等函数或每个HTML块之后,调用PHP中的flush函数,CLI下强制开启。

  10. unserialize_callback_func

    配置项:string。

    默认值:null。可修改范围:PHP_INI_ALL。

    说明:当设置了该选项时,在反序列化一个字符串的时候,如果反序列化后的数据为一个对象,那么可以把当前对象还原成特定的class对象。例如:

    test1.php
    $serialized = 'O:1:"a":1:{s:5:"value"; s:3:"100"; }';
    ini_set('unserialize_callback_func', 'mycallback');
    function mycallback($classname)
    {
        require "./{$classname}.php";
    }
    $res = unserialize($serialized);
    print_r($res);
    
    a.php
    class A{
        public $test = 1;
    }
    
  11. serialize_precision

    配置项:integer。

    默认值:-1。

    可修改范围:PHP_INI_ALL。

    说明:控制序列化浮点数时候的精度,默认为-1,表示数据保持不变,类似precision。

  12. open_basedir

    配置项:string。

    默认值:null。

    可修改范围:PHP_INI_ALL。

    说明:限制PHP打开文件的目录。定义该配置后,PHP将只能打开限定目录下的文件,包括文件本身;多个目录使用冒号(Windows中使用分号)间隔。该配置只匹配前缀,如果配置项为/data,那么/data1或者/data2都是可以访问的,如果要限定某个特定目录,请使用“/”结尾,如/data/。

  13. disable_functions

    配置项:string。

    默认值:''。

    可修改范围:PHP_INI_SYSTEM。

    说明:禁止执行某些函数,多个函数可以使用逗号间隔。PHP扩展加载完成后,会根据这个配置项修改函数对应的handler为zif_display_disabled_function,当执行这个函数的时候就会输出%s() has been disabled forsecurity reasons。对应代码如下:

    ZEND_API ZEND_FUNCTION(display_disabled_function)
    {
        zend_error(E_WARNING, "%s() has been disabled for security reasons", get_active_
            function_name());
    }
    
  14. disable_classes

    配置项:string。

    默认值:''。

    可修改范围:PHP_INI_SYSTEM。

    说明:禁止执行某些类,多个类可以使用逗号间隔。PHP扩展加载完成后,会根据这个配置项修改class对应的create_handler为display_disabled_class,同时清空该class的function_table,当初始化这个class的时候就会输出%s() has been disabled for security reasons。对应代码如下:

    static zend_object *display_disabled_class(zend_class_entry *class_type) /* {{{ */
    {
            zend_object *intern;
    
            intern = zend_objects_new(class_type);
            zend_error(E_WARNING,  "%s()  has  been  disabled  for  security  reasons",
                ZSTR_VAL(class_type->name));
            return intern;
    }
    
  15. highlight.string

    配置项:string十六进制颜色码。

    默认值:'#DD0000'。

    可修改范围:PHP_INI_ALL。

    说明:PHP字符串语法高亮颜色配置。

  16. highlight.comment

    配置项:string十六进制颜色码。

    默认值:'#FF8000'。

    可修改范围:PHP_INI_ALL。

    说明:PHP注释语法高亮颜色配置。

  17. highlight.keyword

    配置项:string十六进制颜色码。

    默认值:'#007700'。

    可修改范围:PHP_INI_ALL。

    说明:PHP关键字语法高亮颜色配置。

  18. highlight.default

    配置项:string十六进制颜色码。

    默认值:'#0000BB'。

    可修改范围:PHP_INI_ALL。

    说明:PHP默认文本语法高亮颜色配置。

  19. highlight.html

    配置项:string十六进制颜色码。

    默认值:'#000000'。

    可修改范围:PHP_INI_ALL。

    说明:PHP HTML语法高亮颜色配置。

  20. ignore_user_abort

    配置项:on、off。

    默认值:'0'。

    可修改范围:PHP_INI_ALL。

    说明:如果该选项设置为true,在客户端断开连接后,脚本不会被中止运行。默认为false。

  21. realpath_cache_size

    配置项:integer。

    默认值:'4096K'。

    可修改范围:PHP_INI_SYSTEM。

    说明:指定realpath cache的大小。PHP为了防止过多的include/require造成频繁去include_path中寻找路径,把引用到的文件的真实路径都缓存到了realpath_cache,以减少路径查找。

  22. realpath_cache_ttl

    配置项:integer。

    默认值:120。

    可修改范围:PHP_INI_SYSTEM。

    说明:指定realpath cache过期时间,单位为秒。

  23. zend.enable_gc

    配置项:integer。

    默认值:1。

    可修改范围:PHP_INI_ALL。

    说明:开启或关闭垃圾回收。

  24. zend.multibyte

    配置项:integer。

    默认值:0。

    可修改范围:PHP_INI_PERDIR。

    说明:开启或关闭多字符集编码。开启这个特性的时候必须要开启mbstring。

    <?php
    declare(encoding="cp936");
    echo("PHP是最好的语言");
    
    // 设置为
    mbstring.internal_encoding=cp936
    $ php test.php
    
  25. zend.script_encoding

    配置项:string。

    默认值:null。

    可修改范围:PHP_INI_ALL。

    说明:开启多字符集编码时的默认文件编码。若用declare声明编码,则优先使用declare声明的编码。

    <? php
    declare(encoding='ISO-8859-1'); // 优先ISO-8859-1 编码
    
  26. expose_php

    配置项:boolen。

    默认值:1。

    可修改范围:PHP_INI_SYSTEM。

    说明:设置是否对外暴露PHP的版本信息,在开启的情况下会在输出的header头中添加如下信息,不想开启的时候关闭即可。X-Powered-By:PHP/7.1.4

  27. max_execution_time

    配置项:integer。

    默认值:30。

    可修改范围:PHP_INI_ALL。

    说明:设置PHP的最大执行时间,默认为30秒,CLI下强制为0,超时返回致命错误。当通过set_time_limit函数修改运行时间的时候,计数器从零重新开始计算超时时间,也就是说如果超时时间默认为30秒,在脚本执行的第15秒的时候设置脚本超时时间为10秒,那么脚本可运行25秒。

  28. max_input_time

    配置项:integer。

    默认值:-1。

    可修改范围:PHP_INI_PERDIR。

    说明:设置脚本解析输入数据(类似POST和GET)允许的最大时间,单位为秒,CLI下强制为-1,表示不限制。

  29. max_input_nesting_level

    配置项:integer。

    默认值:64。

    可修改范围:PHP_INI_PERDIR。

    说明:设置输入变量的最大深度。例如,当这个值为2时,输入变量的最大深度为2,也就是二维数组。超过最大深度,该参数丢弃。

  30. max_input_vars

    配置项:integer。默认值:1000。

    可修改范围:PHP_INI_PERDIR。

    说明:设置输入变量的最大个数。例如,当这个值为2时,输入变量的最大个数为2。超过最大个数的参数将被忽略,该参数不做解析。

  31. memory_limit

    配置项:integer。

    默认值:“128M”。

    可修改范围:PHP_INI_ALL。

    说明:设置脚本运行时占用的最大内存,设置为-1时表示不限制所占用内存。该参数实际控制的是AG(mm_heap)->limit的大小,当该参数小于2M时,会强制限制为2M,否则为实际指定的大小。

  32. error_reporting

    配置项:string。

    默认值:null。

    可修改范围:PHP_INI_ALL。

    说明:设置错误报告的级别,设置为0时表示关闭所有错误报告,设置为-1或者E_ALL将显示所有错误。设置的时候可以通过PHP内置的错误级别常量来进行位运算,例如:

    E_ALL & ~E_NOTICE  // 报告除了E_NOTICE以外的所有错误
    E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
    // 报告所有的错误
    

    PHP的错误级别有以下几个。

    1. E_ERROR:运行时的致命错误,会中断代码执行,用1表示。
    2. E_WARNING:运行时的警告,不影响代码执行,用2表示。
    3. E_PARSE:编译时的语法错误,用4表示。
    4. E_NOTICE:运行时的错误提示,不影响代码执行,用8表示。
    5. E_CORE_ERROR:PHP初始化时的致命错误,类似E_ERROR,用16表示。
    6. E_CORE_WARNING:PHP初始化时的警告,类似E_WARNING,用32表示。
    7. E_COMPILE_ERROR:编译时的致命错误,类似E_ERROR,用64表示。
    8. E_COMPILE_WARNING:编译时的警告,类似E_WARNING,用128表示。
    9. E_USER_ERROR:用户产生的错误信息,类似E_ERROR,但是是由用户自己在代码中使用PHP函数trigger_error来产生的,用256表示。
    10. E_USER_WARNING:用户产生的警告信息,类似E_WARNING,但是是由用户自己在代码中使用PHP函数trigger_error来产生的,用512表示。
    11. E_USER_NOTICE:用户产生的错误提示,类似E_NOTICE,但是是由用户自己在代码中使用PHP函数trigger_error来产生的,用1024表示。
    12. E_STRICT:启用PHP对代码的修改建议,以确保代码具有最佳的互操作性和向前兼容性,用2048表示。
    13. E_RECOVERABLE_ERROR:可被捕获的致命错误,如果没有被自定义错误捕捉器捕捉,则错误将升级为E_ERROR,用4096表示。
    14. E_DEPRECATED:运行时通知。启用后将会对在未来版本中可能无法正常工作的代码给出警告,用8192表示。
    15. E_USER_DEPRECATED:用户产生的警告信息,类似E_DEPRECATED,但是是由用户自己在代码中使用PHP函数trigger_error来产生的,用16384表示。
    16. E_ALL:所有错误,用32767表示。
  33. display_errors

    配置项:integer、string,可设置为仅输出到strout或者stderr。

    默认值:"1"。

    可修改范围:PHP_INI_ALL。

    说明:设置是否输出错误到stderr/stdout,由于在错误输出中有可能会暴露服务器的敏感信息,所以生产环境下请勿开启该选项。

  34. display_startup_errors

    配置项:integer、string,可设置为仅输出到strout或者stderr。

    默认值:"0"。

    可修改范围:PHP_INI_ALL。

    说明:设置是否输出PHP启动阶段的错误信息。打开该选项的时候将会输出很多PHP启动阶段的敏感信息,除非是为了调试,否则不建议开启该选项。

  35. log_errors

    配置项:integer。

    默认值:"0"。

    可修改范围:PHP_INI_ALL。

    说明:设置是否把获取到的错误输出到日志文件中,强烈建议开启该选项,在事故发生后排除错误的时候非常有帮助。

  36. log_errors_max_len

    配置项:integer。

    默认值:"1024"。

    可修改范围:PHP_INI_ALL。

    说明:设置错误信息的最大长度,设置为0时表示不限制。例如:

    ini_set('log_errors_max_len', 2);
    substr();
    
    // 输出:
    // Warning: su in /data/htdocs/www.local/index.php on line 4
    
  37. ignore_repeated_errors

    配置项:boolen。

    默认值:"0"。

    可修改范围:PHP_INI_ALL。

    说明:设置是否忽略重复的错误信息,默认不忽略。重复的错误必须出现在同一个文件中的同一行代码上。例如:

    substr(); substr();
    // 在开启的时候,只会记录一条错误,关闭的时候会记录两条
    
  38. ignore_repeated_source

    配置项:boolen。

    默认值:"0"。

    可修改范围:PHP_INI_ALL。

    说明:设置忽略重复信息时,也忽略信息的来源,默认不忽略。当该设置开启时,重复信息将不会记录它是由不同的文件还是不同的源代码行产生的。

  39. report_memleaks

    配置项:boolen。

    默认值:"1"。

    可修改范围:PHP_INI_ALL。

    说明:设置在编译调试并且error_reporting中有E_WARNING的时候内存泄漏信息是否显示(在stdout或者日志中),默认显示。注意,编译调试指--enable-debug,下同。

  40. report_zend_debug

    配置项:boolen。

    默认值:"1"。

    可修改范围:PHP_INI_ALL。

    说明:设置在编译调试时,输出zend debug信息。当错误级别为E_ERROR、E_CORE_ERROR、E_COMPILE_ERROR、E_USER_ERROR时,会执行DebugBreak()暂停程序执行,打开调试器,进入调试模式。

  41. track_errors

    配置项:boolen。

    默认值:"0"。

    可修改范围:PHP_INI_ALL。

    说明:当该设置开启时,会把运行时候的最后一个错误保存在预定义变量$php_errormsg中。

  42. xmlrpc_errors

    配置项:boolen。

    默认值:"0"。

    可修改范围:PHP_INI_SYSTEM。

    说明:当该设置开启时,PHP输出的错误信息为XML-RPC格式。例如:

    <?xml version="1.0" encoding="utf-8"? >
    <methodResponse>
        <fault>
            <value>
                <struct>
                    <member>
                        <name>faultCode</name>
                        <value>
                              <int>0</int>
                        </value>
                    </member>
                    <member>
                        <name>faultString</name>
                        <value>
                              <string>Warning:substr() expects at least 2 parameters, 0
                                  given in /data/htdocs/www.local/test.php on line 4</string>
                        </value>
                    </member>
                </struct>
            </value>
        </fault>
    </methodResponse>
    
  43. xmlrpc_error_number

    配置项:boolen。

    默认值:"0"。

    可修改范围:PHP_INI_ALL。

    说明:用作XML-RPC faultCode元素的值。

  44. html_errors

    配置项:boolen。

    默认值:"1"。

    可修改范围:PHP_INI_ALL。

    说明:设置是否在错误输出中启用HTML标签,关闭的时候输出文本格式的错误信息。CLI下强制关闭。

  45. docref_root

    配置项:string。

    默认值:""。

    可修改范围:PHP_INI_ALL。

    说明:设置帮助文档的地址,可以是一个URL或本地路径,仅在开启html_errors的时候生效。当发生一个错误的时候,会在错误信息中带上一个错误说明或函数说明页面的链接。例如:

    docref_root = "http://php.net/manual/zh/"
    
    Warning: include(a.php) [function.include]: failed to open stream: No such file
        or directory in /data/htdocs/www.local/test.php on line 3
    

    文档可以从http://php.net/download-docs.php

  46. docref_ext

    配置项:string。

    默认值:""。

    可修改范围:PHP_INI_ALL。

    说明:设置本地帮助文档的文件扩展名,必须包含“. ”。

  47. error_prepend_string

    配置项:string。

    默认值:null。

    可修改范围:PHP_INI_ALL。

    说明:设置错误信息之前输出的内容。例如:

    error_prepend_string = 'php erroes:'
    
    php errors:
    Warning: include(a.php): failed to open stream: No such file or directory in /
        data/htdocs/www.local/test.php on line 3
    
  48. error_append_string

    配置项:string。

    默认值:null。

    可修改范围:PHP_INI_ALL。

    说明:设置错误信息之后输出的内容。

  49. error_log

    配置项:string。

    默认值:null。

    可修改范围:PHP_INI_ALL。

    说明:设置错误日志的保存位置,该文件必须是服务器可写的文件。例如:

    error_log = "/data/log/php/php-error.log"
    

    也可以指定为syslog,当代码运行在Linux时,PHP的错误将被记录在操作系统的日志中。例如:

    $ sudo cat /var/log/messages |tail
    Oct 15 07:16:21 centos7_192_168_33_10 al: PHP Warning:  include(a.php): failed to
        open stream: No such file or directory in /data/htdocs/www.local/test.php on
        line 3
    

当代码运行在Windows时,错误将被记录在事件日志,这里不再演示。

  1. windows.show_crt_warning

    配置项:boolen。

    默认值:"0"。

    可修改范围:PHP_INI_ALL。

    设置在Windows下是否显示C++动态链接库的错误(待确认)。

  2. arg_separator.output

    配置项:string。

    默认值:"&"。

    可修改范围:PHP_INI_ALL。

    说明:指定PHP生成链接时的分隔符,默认为&。例如:

    arg_separator.output = "|"
    
    $data = array('foo'=>'bar', 'baz'=>'boom', );
    echo http_build_query($data);
    // foo=bar|baz=boom
    
  3. arg_separator.input

    配置项:string。

    默认值:"&"。

    可修改范围:PHP_INI_ALL。

    说明:指定PHP解析链接时的分隔符,默认为&。例如:

    arg_separator.input = "|"
    
    $ curl http://www.local/test.php? foo=bar|baz=boom
    print_r($_GET);
    // Array ( [foo] => bar [baz] => boom )
    
  4. variables_order

    配置项:string。

    默认值:"EGPCS"。

    可修改范围:PHP_INI_PERDIR。

    说明:确定PHP注册的超全局变量,5个字母分别对应$_ENV、$_GET、$_POST、$_COOKIE、$_SERVER。当request_order为空时,该配置项也包含了request_order的功能。

  5. request_order

    配置项:string。

    默认值:null。

    可修改范围:PHP_INI_PERDIR。

    说明:确定哪些超全局变量注册到$_REQUEST,以及注册参数的解析顺序,当存在同名参数的时候,后边的参数将覆盖前边的。例如:

    $ curl -d "a=2" http://www.local/test.php? a=1
    print_r($_REQUEST);
    // Array ( [a] => 2 )
    

    因此,$_REQUEST的值是不可信的。

  6. register_argc_argv

    配置项:boolen。

    默认值:"1"。

    可修改范围:PHP_INI_PERDIR

    说明:设置是否注册$argc和$argv, CLI下强制开启。$argv是调用脚本的时候传递的参数数组,其第一个元素始终为调用的脚本,其他元素为参数列表;$argc为调用脚本的时候传递的参数个数。例如:

    $ php test.php 1 2 3
    print_r($argv);
    var_dump($argc);
    
    Array([0] => test.php [1] => 1 [2] => 2 [3] => 3)
    int(4)
    
  7. auto_globals_jit

    配置项:boolen。

    默认值:"1"。

    可修改范围:PHP_INI_PERDIR。

    说明:设置是否延迟注册$_ENV、$_REQUEST、$_SERVER,开启后,这3个超全局变量将在第一次被使用的时候创建,而不是脚本一运行就创建,当确定代码不会用到这3个变量时,可以开启此选项以带来轻微的性能提升。

  8. enable_post_data_reading

    配置项:boolen。

    默认值:"1"。

    可修改范围:PHP_INI_PERDIR。

    说明:控制PHP是否会读取POST数据。关闭该设置的时候,$_POST和$_FILES始终为空,可以通过php://来读取。

  9. post_max_size

    配置项:string。

    默认值:"8M"。

    可修改范围:PHP_INI_PERDIR。

    说明:控制post提交的最大值,若其为0则表示无限制。当enable_post_data_reading关闭时,该值将被忽略。该设置也会影响文件上传,当有文件上传时,该选项的值必须大于upload_max_size,当实际post的数据超过该限制时,$_POST和$_FILE将为空。

  10. auto_prepend_file

    配置项:string。

    默认值:null。

    可修改范围:PHP_INI_PERDIR。

    说明:在主文件执行前自动记载执行的文件。

  11. auto_append_file

    配置项:string。

    默认值:null。

    可修改范围:PHP_INI_PERDIR。

    说明:在主文件执行后自动记载执行的文件。

  12. default_mimetype

    配置项:string。

    默认值:"text/html"。

    可修改范围:PHP_INI_ALL。

    说明:指定PHP输出时的默认MIME类型。

  13. default_charset

    配置项:string。

    默认值:"utf-8"。

    可修改范围:PHP_INI_ALL。

    说明:指定PHP的默认编码,指定的时候将会在header的content-type中输出默认编码。

  14. internal_encoding

    配置项:string。

    默认值:null。

    可修改范围:PHP_INI_ALL

    说明:指定PHP内部编码。其为空时,内部编码为default_charset的值。

  15. input_encoding

    配置项:string。

    默认值:null。

    可修改范围:PHP_INI_ALL。

    说明:指定PHP输入编码。其为空时,内部编码为default_charset的值。

  16. output_encoding

    配置项:string。

    默认值:null。

    可修改范围:PHP_INI_ALL。

    说明:指定PHP输出编码。其为空时,内部编码为default_charset的值。

  17. include_path

    配置项:string。

    默认值:".:/usr/local/php7/lib/php"。

    可修改范围:PHP_INI_ALL。

    说明:指定require、include、fopen、file、readfile和file_get_contents函数查找文件的目录列表。有多个目录时,Linux下使用冒号间隔,Windows下使用分号间隔。默认值为当前目录和编译安装PHP的目录。

    PHP在查找要包含的文件时,有3种情况:

    1. 绝对路径,即直接引用对应文件,找不到则结束。
    2. 相对路径,即根据实际代码目录引用对应文件,找不到则结束。
    3. 从include_path的目录开始查找,再到当前目录,直到找到为止,找不到则结束。
  18. doc_root

    配置项:string。

    默认值:null。

    可修改范围:PHP_INI_SYSTEM。

    说明:指定了该选项,则PHP将只能运行该目录下的代码,其他目录下的代码无法被执行。

  19. user_dir

    配置项:string。

    默认值:null。

    可修改范围:PHP_INI_SYSTEM。

    说明:作用待确定。

  20. extension_dir

    配置项:string。

    默认值:"/usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303"。

    可修改范围:PHP_INI_SYSTEM。

    说明:指定动态扩展加载目录,默认值为PHP安装目录下的lib/extensions下的一个目录,最后的目录表示非budeg版本,非线程安全,引擎版本为20160303。

  21. sys_temp_dir

    配置项:string。

    默认值:null。

    可修改范围:PHP_INI_SYSTEM。

    说明:指定PHP临时文件的保存目录。

  22. enable_dl

    配置项:boolen。

    默认值:"1"。

    可修改范围:PHP_INI_SYSTEM。

    说明:仅对Apache有效,可以针对每个虚拟机或每个目录开启或关闭dl()动态加载PHP模块;在多线程服务器上(如IIS)无法工作,会强制关闭。

  23. cgi.force_redirect

    配置项:boolen。

    默认值:"1"。

    可修改范围:PHP_INI_SYSTEM。

    说明:仅对Apache有效,防止通过如http://my.host/cgi-bin/php/secretdir/script.php这样的URL直接调用PHP。PHP在此模式下只会解析已经通过了Web服务器的重定向规则的URL。

  24. cgi.nph

    配置项:boolen。

    默认值:"0"。

    可修改范围:PHP_INI_ALL。

    说明:开启该配置后,CGI对于每个请求都强制返回200状态码。

  25. cgi.redirect_status_env

    配置项:string。

    默认值:null。

    可修改范围:PHP_INI_SYSTEM。

    说明:在cgi.force_redirect开启并且没有运行在Apache或者Netscape下时,需要设置一个环境变量名称,PHP将会根据这个环境变量来决定是否继续运行。该设置可能会带来一些安全问题,请谨慎使用。

  26. cgi.fix_pathinfo

    配置项:boolen。

    默认值:"1"。

    可修改范围:PHP_INI_SYSTEM。

    说明:为CGI提供真正的PATH_INFO / PATH_TRANSLATED支持。PHP以前的行为是将PATH_TRANSLATED设置为SCRIPT_FILENAME,并且弄不清楚PATH_INFO是什么。有关PATH_INFO的更多信息,请参阅CGI规范。将其设置为1将导致PHP CGI修复其路径以符合规范;设置为0会导致PHP的行为像以前一样。默认开启。

  27. cgi.discard_path

    配置项:boolen。

    默认值:"0"。

    可修改范围:PHP_INI_SYSTEM。

    说明:如果启用cgi.discard_path, PHP CGI二进制文件可以安全地放置在Web树之外,并且人们将无法规避.htaccess安全性。

  28. fastcgi.impersonate

    配置项:boolen。

    默认值:"0"。

    可修改范围:PHP_INI_SYSTEM。

    说明:IIS下的FastCGI支持模拟主叫客户端的安全令牌的能力。这允许IIS定义请求的安全上下文。Apache下的mod_fastcgi目前不支持此功能(03/17/2002),如果在IIS下运行,请设置为1。默认为0。

  29. fastcgi.logging

    配置项:boolen。

    默认值:"1"。

    可修改范围:PHP_INI_SYSTEM。

    说明:使用FastCGI时打开SAPI日志记录。默认启用日志记录。

  30. cgi.rfc2616_headers

    配置项:boolen。

    默认值:"0"。

    可修改范围:PHP_INI_ALL。

    说明:告诉PHP发送HTTP响应代码时要使用什么类型的标头。如果该选项设置为0,则PHP将发送一个由Apache和其他Web服务器支持的Status头;如果该选项设置为1,则PHP将发送符合RFC 2616的标头。

  31. cgi.check_shebang_line

    配置项:boolen。

    默认值:"1"。

    可修改范围:PHP_INI_ALL。

    说明:控制CGI PHP是否检查脚本顶部以“#! ”开头的行(shebang)。果脚本需要支持作为独立脚本或者通过PHP CGI < 运行,则需要打开这个设置。打开的时候,CGI PHP将会跳过此行并忽略其内容。

  32. file_uploads

配置项:boolen。

默认值:"1"。

可修改范围:PHP_INI_SYSTEM。

说明:设置是否允许上传文件。

  1. upload_tmp_dir

    配置项:string。

    默认值:null。

    可修改范围:PHP_INI_SYSTEM。

    说明:设置用于在进行文件上传时存储文件的临时目录,该目录必须可写。如果没有指定,PHP将使用系统的默认值。如果此处指定的目录不可写,则PHP将返回系统默认的临时目录。如果open_basedir为on,则系统默认目录必须可写以确保上传成功。

  2. upload_max_filesize

    配置项:string。

    默认值:"2M"。

    可修改范围:PHP_INI_PERDIR。

    说明:设置上传文件的最大值,当其置为integer时,单位为字节。

  3. max_file_uploads

    配置项:integer。

    默认值:20。

    可修改范围:PHP_INI_SYSTEM。

    说明:设置单个请求同时上传文件的最大个数。

  4. allow_url_fopen

    配置项:boolen。

    默认值:"1"。

    可修改范围:PHP_INI_SYSTEM。

    说明:设置是否允许打开远程文件(如http://或ftp://),关闭的时候无法通过fopen、file_get_contents等函数打开远程连接。注意,CURL不受此配置的影响。

  5. allow_url_include

    配置项:boolen。

    默认值:"0"。

    可修改范围:PHP_INI_SYSTEM。

    说明:设置是否允许引用远程文件(如include、include_onec、require、require_once),该选项依赖allow_url_fopen,强烈建议关闭。

  6. from

    配置项:string

    默认值:“ ”。

    可修改范围:PHP_INI_ALL。

    说明:定义匿名FTP的密码。

  7. user_agent

    配置项:string。

    默认值:null。

    可修改范围:PHP_INI_ALL。

    说明:定义PHP发送的User-Agent。

  8. default_socket_timeout

    配置项:string。

    默认值:"60"。

    可修改范围:PHP_INI_ALL。

    说明:设置基于Socket流的默认超时时间(秒)。全流程时间。

  9. auto_detect_line_endings

    配置项:boolen。

    默认值:"0"。

    可修改范围:PHP_INI_ALL。

    说明:当其设为on时,PHP将检查通过fgets和file取得的数据中的行结束符号是符合UNIX、MS-DOS及Macintosh的习惯。默认值是off,因为在检测第一行的EOL习惯时会有很小的性能损失,而且在UNIX系统下使用回车符号作为项目分隔符的人们会遭遇向下不兼容的行为。

A.2 [Date]相关配置

  1. date.timezone

    配置项:string。

    默认值:" "。

    可修改范围:PHP_INI_ALL。

    说明:指定适用于所有日期/时间函数的默认时区。

  2. date.default_latitude

    配置项:float。

    默认值:"31.7667"。

    可修改范围:PHP_INI_ALL。

    说明:指定默认维度。

  3. date.default_longitude

    配置项:float。

    默认值:"35.2333"。

    可修改范围:PHP_INI_ALL。

    说明:指定默认经度。

  4. date.sunrise_zenith

    配置项:float。

    默认值:"90.583333"。

    可修改范围:PHP_INI_ALL。

    说明:指定默认日出天顶。

  5. date.sunset_zenith

    配置项:float。

    默认值:"90.583333"。

    可修改范围:PHP_INI_ALL。

    说明:指定默认日出天顶。

A.3 [Opcache]相关配置

  1. opcache.enable

配置项:boolen。

默认值:"1"。

可修改范围:PHP_INI_ALL。

说明:指定是否开启opcache。

  1. opcache.enable_cli

    配置项:boolen。

    默认值:"1"。

    可修改范围:PHP_INI_SYSTEM。

    说明:指定是否在CLI下开启opcache。

  2. opcache.memory_consumption

    配置项:integer。

    默认值:"128"。

    可修改范围:PHP_INI_SYSTEM。

    说明:指定opcache的共享内存大小,单位为M。

  3. opcache.interned_strings_buffer

    配置项:integer。

    默认值:"8"。

    可修改范围:PHP_INI_SYSTEM。

    说明:指定临时字符串的内存大小,单位为M。

  4. opcache.max_accelerated_files

    配置项:integer。

    默认值:"10000"。

    可修改范围:PHP_INI_SYSTEM。

    说明:指定OPcache缓存文件的最大数量,取值为200~1000 000。

  5. opcache.max_wasted_percentage

    配置项:integer。

    默认值:"5"。

    可修改范围:PHP_INI_SYSTEM。

    说明:指定浪费内存的上限,以百分比计。如果达到此上限,那么opcache将产生重新启动续发事件。

  6. opcache.use_cwd

    配置项:boolen。

    默认值:"1"。

    可修改范围:PHP_INI_SYSTEM。

    说明:如果启用,opcache将在哈希表的脚本键之后附加改脚本的工作目录,以避免同名脚本冲突的问题。禁用此选项可以提高性能,但是可能会导致应用崩溃。

  7. opcache.validate_timestamps

    配置项:boolen。

    默认值:"1"。

    可修改范围:PHP_INI_ALL。

    说明:如果启用该选项,那么opcache会每隔opcache.revalidate_freq设定的秒数来检查脚本是否更新。如果禁用该选项,必须使用opcache_reset函数或者opcache_invalidate函数来手动重置opcache,也可以通过重启Web服务器来使文件系统更改生效。

  8. opcache.revalidate_freq

    配置项:integer。

    默认值:"2"。

    可修改范围:PHP_INI_ALL。

    说明:检查脚本时间戳是否有更新的周期,以秒为单位。该选项设置为0,会导致针对每个请求都要检查脚本更新。

  9. opcache.revalidate_path

    配置项:boolen。

    默认值:"1"。

    可修改范围:PHP_INI_ALL。

    说明:如果禁用此选项,在同一个include_path已存在的缓存文件会被重用。因此,将无法找到不在包含路径下的同名文件。

  10. opcache.save_comments

    配置项:boolen。

    默认值:"1"。

    可修改范围:PHP_INI_SYSTEM。

    说明:如果禁用该选项,脚本文件中的注释内容将不会被包含到opcache缓存文件,这样可以有效减小优化后的文件体积。

  11. opcache.fast_shutdown

    配置项:boolen。

    默认值:"0"。

    可修改范围:PHP_INI_SYSTEM。

    说明:如果启用该选项,则会使用快速停止续发事件。所谓快速停止续发事件是指依赖Zend引擎的内存管理模块一次释放全部请求变量的内存,而不是依次释放每一个已分配的内存块。

  12. opcache.enable_file_override

    配置项:boolen。

    默认值:"0"。

    可修改范围:PHP_INI_SYSTEM。

    说明:启用该选项后,当调用file_exists、is_file和is_readable函数时,无论文件是否被缓存都将检查opcache,如果禁用了opcache.validate_timestamps,则会有返回失效数据的风险。

  13. opcache.optimization_level

    配置项:integer。

    默认值:"0x7FFFBFFF"。

    可修改范围:PHP_INI_SYSTEM。

    说明:控制优化级别的二进制位掩码。

  14. opcache.dups_fix

    配置项:boolen。

    默认值:"0"。

    可修改范围:PHP_INI_ALL。

    说明:仅作为针对“不可重定义类”错误的一种解决方案。

  15. opcache.blacklist_filename

    配置项:string。

    默认值:" "。

    可修改范围:PHP_INI_SYSTEM。

    说明:指定opcache黑名单文件位置。黑名单文件为文本文件,包含了不进行预编译优化的文件名,每行一个文件名。黑名单中的文件名可以使用通配符,也可以使用前缀。此文件中以分号(;)开头的行将被视为注释。

  16. opcache.max_file_size

    配置项:integer。

    默认值:"0"。

    可修改范围:PHP_INI_SYSTEM。

    说明:以字节为单位的缓存的文件大小上限。该选项设置为0,表示缓存全部文件。

  17. opcache.consistency_checks

    配置项:integer。

    默认值:"1"。

    可修改范围:PHP_INI_ALL。

    说明:指定每N次请求后检查opcache,设置为0表示不检查。

  18. opcache.force_restart_timeout

    配置项:integer。

    默认值:"180"。

    可修改范围:PHP_INI_SYSTEM。

    说明:设定缓存处于非激活状态时,等待多少秒之后计划重启。如果超出了设定时间,则opcache模块将杀掉持有缓存锁的进程,并进行重启。

  19. opcache.error_log

    配置项:string。

    默认值:" "。

    可修改范围:PHP_INI_SYSTEM。

    说明:指定opcache的错误日志文件,为空则输出到strerr。

  20. opcache.log_verbosity_level

    配置项:integer。

    默认值:"1"。

    可修改范围:PHP_INI_SYSTEM

    说明:指定opcache模块的日志级别。默认情况下,仅致命级别(0)及错误级别(1)的日志会被记录。其他可用的级别有警告(2)、信息(3)和调试(4)。

  21. opcache.preferred_memory_model

    配置项:string。

    默认值:" "。

    可修改范围:PHP_INI_SYSTEM。

    说明:指定OPcache的共享内存方式,为空时将由系统决定,可选值包括mmap、shm、posix以及win32。

  22. opcache.protect_memory

    配置项:boolen。

    默认值:"0"。

    可修改范围:PHP_INI_SYSTEM

    说明:保护共享内存,以避免执行脚本时发生非预期的写入;仅用于内部调试。

  23. opcache.restrict_api

    配置项:string。

    默认值:" "。

    可修改范围:PHP_INI_SYSTEM。

    说明:指定仅允许路径是以指定字符串开始的PHP脚本调用opcache API函数。该选项为空,表示不做限制。

  24. opcache.mmap_base

    配置项:string。

    默认值:null。

    可修改范围:PHP_INI_SYSTEM。

    说明:设置在Windows平台上共享内存段的基地址。所有的PHP进程都将共享内存映射到同样的地址空间。使用此配置指令可避免“Unable to reattachto base address”的错误。

  25. opcache.file_cache

    配置项:string。

    默认值:null。

    可修改范围:PHP_INI_SYSTEM。

    说明:配置二级缓存目录并启用二级缓存。启用二级缓存可以在SHM内存满了、服务器重启或者重置SHM的时候提高性能。默认值为空字符串"",表示禁用基于文件的缓存。

  26. opcache.file_cache_only

    配置项:boolen。

    默认值:"0"。

    可修改范围:PHP_INI_SYSTEM。

    说明:启用或禁用在共享内存中缓存opcode。

  27. opcache.file_cache_consistency_checks

    配置项:boolen。

    默认值:"1"。

    可修改范围:PHP_INI_SYSTEM。

    说明:当从文件缓存中加载脚本时,是否对文件的校验和进行验证。

  28. opcache.file_cache_fallback

    配置项:boolen。

    默认值:"1"。

    可修改范围:PHP_INI_SYSTEM。

    说明:在Windows平台上,当一个进程无法附加到共享内存时,需要显示的启用文件缓存即opcache.file_cache_only=1。

  29. opcache.huge_code_pages

    配置项:boolen。

    默认值:"0"。

    可修改范围:PHP_INI_SYSTEM。

    说明:启用或禁用PHP代码(文本段)复制到HUGE PAGES。

  30. opcache.validate_permission

    配置项:boolen。

    默认值:"0"。

    可修改范围:PHP_INI_SYSTEM。

    说明:针对当前用户,验证缓存文件的访问权限。

  31. opcache.validate_root

    配置项:boolen。

    默认值:"0"。

    可修改范围:PHP_INI_SYSTEM。

    说明:在chroot环境中避免命名冲突。为了防止进程访问chroot环境之外的文件,应该在chroot环境下启用这个选项。