PHP5.4系でのImagickコンパイルエラーの対処法 (CentOS 5)

PHPを5.4系にアップデートしたところ、PECL拡張モジュールであるImagickが動作しなくなってしまい、下記のようなロードエラーが出るようになってしまいました。

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

ImageMagickを入れなおしたり色々と奮闘した結果、最終的にはなんとも簡単な方法で解決はしたのですが、自分のためにもここにメモとして残しておきたいと思います。

対処方法

まず、通常のインストール方法は下記となります。

pecl install imagick

このやり方ですと、下記のようなコンパイルエラーとなってしまいます。

     :
make: *** [imagick_class.lo] Error 1

: Function eregi() is deprecated in PEAR/Registry.php on line 735

: Function eregi() is deprecated in PEAR/Registry.php on line 735
ERROR: `make' failed

対処方法はいたって簡単。
「imagick」を「imagick-beta」にして実行してください。

pecl install imagick-beta

PHPが5.4にアップデートされて10ヶ月ほど経ちますが、少なくとも今回作業した私の環境では、Imagickはまだ通常のpecl installでは5.4に対応されていないため、peclではこう対処するしかなさそうです。
facedetectも同じようにロードエラーとなりましたが、こちらはアンインストール後、最新のソースコードを入手し、再度 phpize && ./configure && make && make install することで解決しました。
環境によっては他にも5.4系にして発生するエラーがありそうですね。ご注意を。

この投稿が何かしらのお役に立てれば何よりです。

 
    このエントリーをはてなブックマークに追加  

  • コメントを残す