PHP Imagick Segementation Fault



我有一个便宜的5美元/月的服务器,1G ram为我的网站处理一些图像。在将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的内存。需要事先检测到这一点。

Segmentation fault是一般的操作系统级错误。作为PHP的最终用户,您既无法控制它,也无法修复它。这是需要在php-src级别修复的东西(在这种情况下,特别是imagick扩展代码(。

简单地说,这可能是PHP本身的错误,而不是你的代码。


你可以做的是用PHP提交错误报告。并提供回溯和错误报告,让其中一位扩展开发人员研究解决此问题。

最新更新