PHP内存错误

时间:2011-07-31 05:49:52

标签: php memory-management

我正在使用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作业可以用来定期释放这个内存吗?

2 个答案:

答案 0 :(得分:0)

您的图片可能大于~10-15MB。 PHP对每个脚本占用的内存量有限制(memory_limit中的php.ini

在内存中加载图像(然后调整大小,创建第二张图像)会发生什么......

如果允许,请更改内存限制,或者不加载如此大的图像... AFAIK没有流图像阅读器......

如果您无法更改内存限制,则解决方法可能是调用命令行ImageMagick或GraphicsMagick工具(如果已安装...)

答案 1 :(得分:0)

这是典型的php.ini问题,如果您在VPS或专用服务器上运行此脚本,请编辑php.ini文件并将memory_limit设置为99(或更多)MB,同时注意max_run_time可以在x秒后停止脚本。

完成更改后,不要忘记重启Apache,

如果您在共享服务器上运行此操作,可能在尝试解决此问题时遇到一些问题,因为您无法编辑设置文件,您可以尝试在实际脚本中设置设置,但这通常不会