菜单

出现Allowed memory size of (PHP内存溢出)错误的可能原因及解决方案

本文最后更新于37天前,请注意内容是否还可用

本方法仅针对缩略图生成造成的内存溢出(调试模式下含有thumb.php字样)

带有自动生成缩略图功能的主题,因为第一次打开页面会批量生成此页面所有的缩略图,部分站点会出现PHP内存溢出错误,此错误多见于有大量文章的采集站点。

报错信息类似:Allowed memory size of 123456 bytes exhausted (tried to allocate 1234 bytes)。

解决方案

打开:

zb_system/function/lib/thumb.php

查找(大约414行):

imagefill($this->tmpRes, 0, 0, 0xffffff);

将其改为(注释或删除):

//imagefill($this->tmpRes, 0, 0, 0xffffff);

回到出错页面看是否解决,如果问题仍未解决,则继续参考下面方案

旧方案

报错可能的原因及解决方案

  1. 文章内图片体积巨大,超过memory_limit限制。解决:压缩图片

  2. 含有大量的置顶文章,导致列表页一次性加载几百篇文章同时生成缩略图。解决:取消大量文章置顶,缩略图生成完后可以再打开

  3. PHP设置的memory_limit太小,解决:修改PHP配置,加大memory_limit(这亦是终极解决方案,只要内存够大,上面的两条问题都不是问题)

  4. 另一种可能有效的解决方案:在网站设置,页面设置中将:“列表页显示文章的数量” 调小,多翻几页等缩略图生成完毕后再改回来。


有用吗?

评论(1)

剑影逍遥客
剑影逍遥客

2025-10-10 13:47:31

“本文详细解析了缩略图生成导致的PHP内存溢出问题及多种解决方案。”

发表评论

技术支持 在线客服
返回顶部