CentOS 6.6→6.7に更新後から、PHPでImageMagickの警告が発生するようになった。
$ 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の実行時にも警告が発生しない事を確認。