PHP内存错误


PHP Memory error

我正在使用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,

如果你在共享服务器上运行这个,你可能会遇到一些问题,试图解决这个问题,因为你不能编辑设置文件,你可以尝试在实际的脚本中设置设置,但是这通常不会。