当前位置:  开发笔记 > 编程语言 > 正文

php的memory_limit,upload_max_filesize和post_max_filesize之间的关系

如何解决《php的memory_limit,upload_max_filesize和post_max_filesize之间的关系》经验,为你挑选了1个好方法。

底线:
我是否需要关注设置post_max_filesize>> memory_limit

详细信息:
这个答案表明上传的文件不需要适合php的memory_limit.在PHP的文档表明,整个后应该PHP的内存限制内适应.

我发现文档令人惊讶,我希望有人可以详细说明.例如,采取以下PHP配置:

; config A
memory_limit = 50M
upload_max_filesize = 100M
post_max_filesize = 1000M
max_file_uploads = 10    

; config B
memory_limit = 50M
upload_max_filesize = 10M
post_max_filesize = 1000M
max_file_uploads = 100    

通过这些配置,我希望能够:

将10x100mb文件上传到服务器A,

和100x10mb文件服务器.

我也希望如此:

使用上传到服务器A的10个文件中的任何一个都是一个问题(50M包中的100M文件......).

使用上传到服务器B的100个文件中的任何一个都可以(10 <50).

在尝试较少但又等效相关的数字时,我发现这些期望是正确的.

这种经历会让我说"通常memory_limit应该大于upload_max_filesize"; 相反,php 文档说:

一般来说,memory_limit应该大于post_max_size.

如果不是,为什么会发生什么?

当我的PHP代码被执行时,我看不到所有发布的文件都在内存中的证据.在我看来,我所拥有的只是一个$ _FILES路径,这些路径只能在磁盘上找到文件.在我能够反省环境之前,php是否会在内存中保留整个帖子?我需要关注设置post_max_filesize>> memory_limit吗?

除此之外:
违反手册的规则不会导致严重损坏的服务器(w/php5.3 apache2.2 debian 6).



1> jmz..:

PHP将接受单独小于upload_max_filesize并且一起占用少于post_max_size字节的上载文件.PHP文档是错误的,memory_limit不需要保存发布的文件内容.

以下配置适用于Apache2模块和CGI,并接受小于1G的文件.

 upload_max_filesize = 1G
 post_max_size = 1G
 memory_limit = 32M

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有