PHP致命错误:内存不足(分配80740352)(试图分配12352字节)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP致命错误:内存不足(分配80740352)(试图分配12352字节)相关的知识,希望对你有一定的参考价值。

当用户在我的网站上传图像时,我收到此错误。

错误消息是“php致命错误:内存不足(分配80740352)(试图分配12352字节)/ home .......”如何使用php.ini解决这个问题?

这是我目前上传的php.ini设置

upload_max_filesize = 2000M ;
post_max_size = 2000M
max_file_uploads = 8

还有什么想法我需要添加什么才能解决这个错误?

答案

最佳memory_limit值取决于您对上传文件的处理方式。您是使用file_get_contents还是GD库将文件读入内存?在这种情况下,将memory_limit增加到至少与upload_max_filesize相同,最好是更多。

如果您使用GD,请记住GD将整个图像保留在内存中未压缩。这意味着它需要width * height * bit-depth范围内的内存,例如1024*768*32 = 25 165 824 bits = 3 MB用于截屏,或者对于1400万像素图像需要55 MB。

某些操作可能需要创建映像的副本,因此请考虑将memory_limit设置为将映像保留在内存中所需的两倍。另外,如果不需要,请确保不要立即将所有图像加载到内存中。完成图像处理后,可以通过调用手柄上的imagedestroy释放GD使用的内存。

另一答案
set_time_limit(0);
ini_set('memory_limit', '20000M');

在脚本的顶部。相应地更改20000M。

另一答案

从php.ini增加内存限制

 memory_limit = ...
另一答案

上传的文件保存在内存中,因此您还应该至少增加与预期文件大小相同的内存。

memory_limit = 2000M // better 2200M or above, just in case.

以上是关于PHP致命错误:内存不足(分配80740352)(试图分配12352字节)的主要内容,如果未能解决你的问题,请参考以下文章

构建树时PHP致命错误内存不足

致命错误:X:\wamp\www\xxx 内存不足(已分配 1134559232)(试图分配 32768 字节)

致命错误:堆限制附近的无效标记压缩分配失败 - JavaScript 堆内存不足 |反应

如何修复“致命错误:堆限制附近的无效标记压缩分配失败 - JavaScript 堆内存不足”错误

致命错误:CALL_AND_RETRY_LAST 分配失败 - JavaScript 堆内存不足错误

致命错误:接近堆限制的无效标记压缩分配失败 - Ionic 3 中的 JavaScript 堆内存不足