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 (imagick)

さて、タイトルにもいれましたが(長い)

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

これの解決方法をご紹介していきたいと思います。

ただし、これは PECL を使ってインストールしていた場合のみで、それ以外は確認していません。

手順は簡単です。

既存の ImageMagick を Uninstall して、再度 Install すればいいだけです(笑

ただ、何が原因なのかまでは解析していないので、原因を知っている方がいらっしゃったらコメントなどで教えていただけると幸いです。

まず、php -m で PHP が読み込んでいるモジュールを一覧表示してみます。

どうでしょう? ちなみに小鳥遊の環境だと以下のように表示されてしまいます。

$ php -m
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

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 Modules]
...

php -m ですらスタートアップ時にエラーが…(笑

というわけで、いい加減うざいので早速やってみましょう。

$ sudo pecl uninstall imagick

$ sudo pecl install imagick

完了です。 小鳥遊の環境では

$ pecl list | grep imagick

imagick 3.1.2 stable

だったのが、今回の再インストールで

$ pecl list | grep imagick

imagick 3.3.0RC2 beta

となりました。 beta なのは気になりますが、ひとまず動作に問題はなさそうなのでこのまま進めていこうと思います。