我正在使用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作业可以用来定期释放这个内存吗?
答案 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,
如果您在共享服务器上运行此操作,可能在尝试解决此问题时遇到一些问题,因为您无法编辑设置文件,您可以尝试在实际脚本中设置设置,但这通常不会