我正在使用php脚本创建图像缩略图,在创建一些拇指时抛出此错误:
致命错误:允许的内存大小为31457280字节耗尽(已尝试)分配227字节)
top
显示:
top - 07:43:49 up 44 days, 22:21, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 171 total, 1 running, 170 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.2%sy, 0.0%ni, 99.7%id, 0.2%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 6097648k total, 3459060k used, 2638588k free, 566924k buffers
Swap: 4194296k total, 0k used, 4194296k free, 1991920k cached
我没有看过优化phpthumb代码。但是有没有其他方法可以释放已经使用的内存呢?也许可以使用cron作业定期释放此内存?
您的图像可能大于~10-15MB。PHP对每个脚本(memory_limit
/php.ini
)占用的内存量有限制
发生的是你加载一个图像在内存中(然后调整它的大小,创建第二个图像)…
如果允许,更改内存限制,或者不加载如此大的图像…我猜没有流图像阅读器…
如果你不能改变内存限制,一个解决办法可能是调用命令行ImageMagick或GraphicsMagick工具,如果他们已经安装…
这是一个典型的php.ini问题,如果您在VPS或专用服务器上运行这个脚本,编辑php.ini文件并将memory_limit设置为99(或更多)MB,还要注意max_run_time,因为它可以在x秒后停止脚本。
不要忘记在完成更改后重新启动Apache,
如果你在共享服务器上运行这个,你可能会遇到一些问题,试图解决这个问题,因为你不能编辑设置文件,你可以尝试在实际的脚本中设置设置,但是这通常不会。