libMagickWand.so.2 が無いと言われる

CentOS 6.6→6.7に更新後から、PHPImageMagickの警告が発生するようになった。

$ php hoge.php
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/imagick.so' - libMagickWand.so.2: cannot open shared object file: No such file or directory in Unknown on line 0

php -m で確認すると、imagick のモジュールがロードされていない。

設定ファイルを確認しても、コメントアウトされている訳ではない。

# cat /etc/php.d/imagick.ini
; Enable ImageMagick extension module
extension=imagick.so

CentOS 6.6→6.7へ更新した際、ImageMagickのバージョンは以下のように変更された。

CentOS 6.6

ImageMagick-6.5.4.7-7.el6_5.x86_64
ImageMagick-devel-6.5.4.7-7.el6_5.x86_64

CentOS 6.7

ImageMagick-6.7.2.7-2.el6.x86_64
ImageMagick-devel-6.7.2.7-2.el6.x86_64


このパッケージ更新により、「libMagickWand.so.2」が無くなった模様。

CentOS 6.6/ImageMagick-6.5.4.7-7

# ls /usr/lib64/libMagickWand.so*
/usr/lib64/libMagickWand.so  /usr/lib64/libMagickWand.so.2  /usr/lib64/libMagickWand.so.2.0.0

CentOS 6.7/ImageMagick-6.7.2.7-2

# ls /usr/lib64/libMagickWand.so*
/usr/lib64/libMagickWand.so  /usr/lib64/libMagickWand.so.5  /usr/lib64/libMagickWand.so.5.0.0

また、手元の環境では、PHP用のImageMagickモジュールはPECLを使っていたので、こちらもバージョンを確認。

# pecl list
Installed packages, channel pecl.php.net:
=========================================
Package Version State
imagick 3.0.1   stable


PECLのパッケージが古いのかと思い、PECLでパッケージを更新。

# pecl upgrade imagick


バージョンが新しくなった。

# pecl list
Installed packages, channel pecl.php.net:
=========================================
Package Version State
imagick 3.1.2   stable


Apacheを再起動して、imagickモジュールをロードさせる。

# /etc/init.d/httpd restart


php -m でimagick モジュールがロードされている事を確認し、PHPの実行時にも警告が発生しない事を確認。


参考
https://bugzilla.redhat.com/show_bug.cgi?id=1249876

PECL :: Package :: imagick