传一张八兆左右的手机原图,进度条走完弹出这句报错,同一台机器传小图一切正常,换台服务器提示还是一模一样。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,解码一张两千万像素的图要按宽乘高乘四字节开内存,默认一百二十八兆的上限直接被顶穿,图像处理库拿不到资源只能返回失败,日志里却只留这一句话。
碰到「图片处理内存」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。
define('WP_MEMORY_LIMIT', '256M');
add_filter('wp_image_editors', 'use_imagick');
权限不要一口气开到最大,先加到够用再往上试,范围小才好收。
具体做法是,把内存上限提到两百五十六兆以上 然后再传一次;限制上传图片的最大边长 从源头减少解码内存;换成图像处理扩展 并单独给它设一个资源上限。
最后用这个标准收尾,同一张原图能正常生成全部尺寸,日志里也不再出现这条报错。
