底线:
我需要关心设置post_max_filesize>> memory_limit的?
原文链接:/php/139554.html我需要关心设置post_max_filesize>> memory_limit的?
细节:
This answer建议上传的文件不需要适应PHP的memory_limit. php docs表明整个帖子应该符合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文件到服务器B.我也希望:>使用上载到服务器A的10个文件中的任何一个是一个问题(100M的文件在50M包…)使用上载到服务器B的100个文件中的任何一个可以使用(10< 50).在尝试使用较少圆形但相当相关的数字时,我发现这些期望是正确的. 这个经验会导致我说“通常memory_limit应该大于upload_max_filesize”;相反,PHP docs说:
generally speaking,memory_limit should be larger than
post_max_size
.
为什么会发生什么呢?
当我的PHP代码执行时,我没有看到所有发布的文件都在内存中的证据.在我看来,我所拥有的只是一个$_FILES数组的路径,专门在磁盘上找到的文件.在我能反思环境的能力之前,PHP是否在某个时候把整个文章放在内存中?我需要关心设置post_max_filesize>> memory_limit的?
在旁边:
违反手册的规则并不会导致服务器严重破坏(w / PHP5.3 apache2.2 debian 6).