https://haydenjames.io/understanding-php-memory_limit/ 很好地解释了memorylimit设置。
注意 :
此处列出的默认值用于以下情况 php.ini公司 未加载; 生产和发展的价值 php.ini公司 可能会有所不同。
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
短开标记
注意 :
该指令不影响速记
<?= ,始终可用。
精度
-1
序列化精度
-1
曝光_马力
disable_functions(禁用函数)
禁用类
zend.断言
1
0
-1
注意 :
如果流程以生产模式启动, zend.断言 无法在运行时更改,因为没有生成断言的代码。
如果流程以开发模式启动, zend.断言 无法设置为
-1 在运行时。
zend.exception_string参数最大值
"0"
"1000000"
硬超时
致命错误:第0行未知中超过(终止)30+2秒的最大执行时间
zend.exception_ignore_args
zend.多字节
zend.script_编码
zend.detect_unicode
zend.signal_check(信号检查)
退出超时
|
内存限制
|
|
||
|
注意 :
使用 open_base目录 将 使残废 realpath缓存。
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
arg_分离器输出
参数分隔符输入
注意 :
此指令中的每个字符都被视为分隔符!
variables_order(变量_顺序)
注意 :
的内容和顺序 $_请求 也是 受此指令的影响。
请求订单
自动全局jit
寄存器argc_argv
启用后数据读取
最大后尺寸
最大后尺寸
<form action=“edit.php?processed=1”>
注意 :
PHP允许字节值的快捷方式,包括K(千)、M(兆) 和G(千兆)。 如果您 使用这些中的任何一个。 注意不要超过32位有符号整数 限制(如果您使用32位版本),因为它会导致您的脚本 失败。
|
|
|
自动重复文件
自动添加文件
注意 : 如果脚本以终止 退出() , 自动附加遗嘱 不 发生。
默认时间类型
默认字符集
输入_编码
输出_编码
内部编码
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
包含路径(_P)
include_path=“.:/php/includes”
include_path=“.;c:\php\includes”
注意 :
ENV公司 变量也可以在.ini文件中访问。 因此,可以使用以下命令引用主目录
${登录} 和
${用户} .
环境变量在服务器API之间可能会有所不同,因为这些环境 可能会有所不同。
include_path=“.:${USER}/pear.php”
open_base目录
注意 :
open_basedir可以在运行时收紧。 这意味着 如果open_basedir设置为
/网址:www/ 在里面 php.ini公司 脚本可以将配置严格到
/网址:www/tmp/ 在运行时使用 ini_set() 。列出多个目录时 可以使用
路径_分离器 作为分隔符的常量 无论操作系统如何。
注意 :
使用open_basedir将设置 实路径缓存大小 到
0 因此 使残废 realpath缓存。
doc_root
用户_ ini.cache_ttl
用户输入文件名
用户目录(_D)
扩展目录
延伸
zend_扩展
cgi.check_shebang_line公司
cgi.discard_p路径
cgi.fix路径信息
cgi.力直接
注意 :
Windows用户:使用IIS时此选项 必须 对于OmniHTTPD或Xitami,同样适用。
cgi.nph
cgi.重定向状态
注意 :
设置此变量 可以 导致安全问题, 先知道你在做什么 .
cgi.rfc2616_标题
fastcgi.模拟
快速cgi.logging
|
|||
|
|||
|
|||
|
|||
|
|||
|
|
sql.safe_mode(安全模式)
|
windows.show_crt_警告
使用auto_prepend_file时要小心。
当set_exception_handler()设置的自定义异常处理程序处理未捕获的异常时,它会中断每个脚本的执行。
但是,如果带有未处理异常的脚本已自动添加前缀或包含在自动添加前缀的脚本中,则主脚本仍将继续运行。
这可能会导致几个问题:当我们认为抛出异常会自动中断当前应用程序时,整个代码块都会运行。
关于upload_tmp_dir设置和UNC路径的注意事项:
在Windows OS和IIS FastCGI上使用PHP时,如果需要使用网络驱动器上文件夹的UNC路径进行upload_tmp_dir设置,则必须在UNC路径的前面使用三个\字符。
Windows和PHP使用第一个斜杠作为转义符,所以如果只使用两个斜杠,那么它会通过一个只有一个反斜杠的UNC路径。 这对于UNC路径无效,您在上传文件时会遇到很多问题,例如错误提示“PHP缺少临时文件夹”。
对的:
upload_tmp_dir=“\\path\to\your\folder”
不正确:
upload_tmp_dir=“\\path\to\your\folder”
这可能有助于防止有人使用utf-8以外的字符集维护旧应用程序。
根据文档,如果使用`header()`,则可以覆盖默认字符集。
假设php.ini将default_charset设置为“UTF-8”,但您需要一个遗留字符集,如ISO-8859-1。
尽管如此,
<? php标头 ( '内容类型:text/html; 字符集=ISO-8859-1' ); ?>
不会覆盖字符集,只需添加它和结果
是这样的响应头(注意两个字符集):
内容类型:“text/html;Charset=ISO-8859-1;Charset=UTF-8”
我觉得很奇怪,默认的字符集是小写的`c`
与我的带有大写“C”的自定义字符集相反。
解决的办法是使用所有小写字母覆盖字符集
对于单词“charset”:
<? php标头 ( '内容类型:text/html; charset=ISO-8859-1' ); ?>
然后,响应头中的双字符集消失了,只剩下单个自定义字符集。
“如果发布数据的大小大于post_max_size…”
似乎更优雅的方式是比较post_max_size和$_SERVER['CONTENT_LENGTH']。 请注意,后者不仅包括上传文件的大小和发布数据,还包括多部分序列。 狮子座
如果使用Microsoft IIS Windows并希望对多个目录使用open_basedir限制,则必须在IIS的主配置xml文件(C:\Windows\System32\inetsrv\config\applicationHost.config)中将其设置为单引号。 在IIS 10中工作正常。
带有单引号和的多个文件; 对于windows:
“C:\php\php-cgi.exe |-d open_basedir='C:\Windows\Temp\;d:\mywebsite1\'”
只有一个目录在没有单引号的情况下工作正常:
“C:\php\php-cgi.exe|-d open_basedir=d:\mywebsite1\”
在我的IIS主配置xml文件中,每个网站有两个要设置的节点,定义必须相等:
configuration\Location\system.webServer\handlers\add
configuration\system.webServer\fastCgi
如果您同时使用“include_path”指令和“open_basedir”,则文件搜索将在本地文件之前先到达include路径*。 但如果未使用“open_basedir”,则首先会找到本地文件。 例如,假设您在“/var/www/myfile.php”中有代码,它可以:
<? php(电话)
需要一次( '配置.php' );
?>
此外,假设有一个本地文件“/var/www/config.php”,还有一个文件“/war/local/php/config/php”。
接下来,如果您的php.ini有:
include_path=/var/local/php/
通常,这将首先查找“/var/www/config.php”,如果找不到,则尝试使用“/var/local/php/config/php”。
但是如果你在php.ini中也有这个:
open_basedir=/var/www/:/var/local/php/
然后,require将颠倒搜索顺序,并加载“/var/local/php/config.php”,即使本地“config.php”文件存在。
此外,如果include_path包含不在open_basedir中的目录,则可能会导致致命错误。 例如,将指令更改为:
open_basedir=/var/www/:/var/local/includes/php/
现在,require将首先从include_path中找到“/var/local/php/config.php”,尝试将其包含在内,但由于open_basedir的限制而无法包含。