我有一个便宜的$ 5 / mo服务器,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)
A Segmentation fault
是常规操作系统级别的错误。作为PHP的最终用户,您既无法控制它,也无法修复它。这是需要在php-src级别固定的东西(在这种情况下,特别是imagick扩展代码)。
简单地将此错误放在PHP本身中,而不是在您的代码中。