zblog切换主题后打开显示错误:Allowed memory size of 123456 bytes exhausted (PHP内存溢出)

2024-2-11 / 0 评论 / 160 阅读

如果你的zblog安装了一个新的主题,并且这个主题支持显示文章缩略图功能,打开首页或列表提示:Allowed memory size of 123456 bytes exhausted (tried to allocate 1234 bytes) 这种错误,那么就说明问题是:Allowed memory size of (PHP内存溢出)错误

简单来说,你[]某个文章图片[]过大或列表页[]图片需要裁切[]的缩略图过多[],可能导致服[]务器内存溢出[],导致的错误[]

zblog版[]主隔壁老李在[]论坛提供了方[]法:

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

带有自动生成[]缩略图功能的[]主题,因为第[]一次打开页面[]会批量生成此[]页面所有的缩[]略图,部分站[]点会出现PH[]P内存溢出错[]误,此错误多[]见于有大量文[]章的采集站点[]。报错信息类[]似:Allo[]wed memory[] size of 123456[] bytes exhaus[]ted (tried[] to alloca[]te 1234 bytes)[]

新解决方案:[]

打开:

zb_sys[]tem/fu[]nction[]/lib/t[]humb.p[]hp

查找(大约414行):

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

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

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

zblog切换主题后打开显示错误:Allowed memory size of 123456 bytes exhausted (PHP内存溢出)

回到出错页面[]看是否解决,[]如果问题仍未[]解决,则继续[]参考下面旧方[]案~~&da[]rr;&da[]rr;&da[]rr;&da[]rr;&da[]rr;

 []

下面是旧方案[]~~&dar[]r;&dar[]r;&dar[]r;&dar[]r;&dar[]r;

 []

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

1.文章内图[]片体积巨大,[]超过memo[]ry_lim[]it限制。解[]决:压缩图片[]

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

3.PHP设[]置的memo[]ry_lim[]it太小,解[]决:修改PH[]P配置,加大[]memory[]_limit[](这亦是终极[]解决方案,只[]要内存够大,[]上面的两条问[]题都不是问题[]

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

 []

附宝塔面板修[]改 PHP memory[]_limit[] 步骤:

zblog切换主题后打开显示错误:Allowed memory size of 123456 bytes exhausted (PHP内存溢出)

zblog切换主题后打开显示错误:Allowed memory size of 123456 bytes exhausted (PHP内存溢出)

以上两种方法基本能解决缩略图导致内存溢出的问题,如果解决不了,那么就去排除,可能是某个列表中某篇文章中的图片质量过大,导致缩略中出错,此时可以删除或替换这个图片来解决问题,或主题如果支持关闭缩略图裁切功能,那么直接使用原图可以解决问题。

评论一下?

OωO
取消