突然得到ImageMagick“;无解码委托”;错误


Suddenly getting ImageMagick "no decode delegate" errors?

我运行了一个网站,让人们上传JPEGS,然后调整其大小,并在其顶部应用.png水印。

截至今天,很多上传都失败了。

Uncaught ImagickException: no decode delegate for this image format `PNG' @ error/constitute.c/ReadImage/501

奇怪的是,有些仍然运行良好,带有水印。

前几天我做了一个yum update,它安装了一个新版本的ImageMagick和-devel和-last libs,我猜这破坏了一些东西。至于一些上传仍然有效的事实——也许我的一些php-fpm进程仍在以某种方式使用旧版本?

我在CentOS 6上。

有人能给我一个快速的解决方案吗?我的网站现在有数百名访客,如果我不能解决这个问题,我会很伤心的!

谢谢。

convert -version给了我这个:

Version: ImageMagick 6.8.9-1 Q16 x86_64 2014-05-28 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC
Features: DPC OpenMP
Delegates: bzlib freetype jpeg lcms tiff x zlib

(尽管我不知道事情发生之前它显示了什么)。

这些是我目前安装的软件包:

ImageMagick-6.7.2.7-4.el6_7.x86_64
ImageMagick-devel-6.7.2.7-4.el6_7.x86_64
ImageMagick-last-libs-6.9.4.1-1.el6.remi.x86_64
php70-php-pecl-imagick-3.4.2-1.el6.remi.x86_64

升级后是否重新启动服务器(apache或fpm)?

对于每个新版本,编码器的路径都会发生变化(因为版本是路径的一部分),因此需要重新启动服务器。

请参阅:https://github.com/remicollet/remirepo/issues/33