【发布时间】:2020-05-07 01:52:39
【问题描述】:
我有一台便宜的 5 美元/月服务器,1G 内存为我的网站处理一些图像。在将 GIF 图像写入磁盘时,我很少会遇到 PHP Imagick 的分段错误。
我在控制台命令上设置了内存限制,希望 PHP 会首先发现问题并抛出我可以正确处理的异常,但这不起作用。
特定的问题是某些 GIF 图像导致它在这行代码处崩溃:
echo 'Writing images to disk.' . PHP_EOL;
$file = $img->writeImages($imageOnDIsk, true);//crashes here
echo 'Finished writing images to disk.' . PHP_EOL;
具体的 GIF 是成人相关的 GIF,所以我不确定是否可以分享。
这是我的服务器日志:
Setting memory limit. Pulling URL: https://i.redd.it/gyvc8t9xdvb41.gif Coalescing Images Done Coalescing Images Processing regular image. Not comic. Deleting temp image on disk. Writing images to disk. Segmentation fault (core dumped)
似乎此图像宽度 * 高度 * 位深度 * 帧占用了超过 1G 的内存。需要事先检测到这一点。
【问题讨论】: