いつから発生していたのか不明だけど、PHPStanやpeclなどを実行した時に次のような警告が出るようになった。
PHP Warning: Version warning: Imagick was compiled against ImageMagick version 1692 but version 1693 is loaded. Imagick will run but may behave surprisingly in Unknown on line 0
コンパイルされたImageMagickのバージョン(1692)とロードされたImageMagickのバージョン(1693)が異なるという事らしい。
環境は以下の通り。
AlmaLinux8
PHP 7.4.33
PHPのimagickはpeclを利用、imagickライブラリはdnfで導入したもの
imagickはpeclで追加していたので、現状を確認
# pecl list PHP Warning: Version warning: Imagick was compiled against ImageMagick version 1692 but version 1693 is loaded. Imagick will run but may behave surprisingly in Unknown on line 0 Installed packages, channel pecl.php.net: ========================================= Package Version State imagick 3.7.0 stable
peclのアップグレードを試しても、既に最新らしい
# pecl upgrade imagick PHP Warning: Version warning: Imagick was compiled against ImageMagick version 1692 but version 1693 is loaded. Imagick will run but may behave surprisingly in Unknown on line 0 Nothing to upgrade
peclインストール時と関連ライブラリのバージョンが不整合になっているのが原因ぽいので、再インストールしてみることにした。
ひとまずアンインストール
# pecl uninstall imagick PHP Warning: Version warning: Imagick was compiled against ImageMagick version 1692 but version 1693 is loaded. Imagick will run but may behave surprisingly in Unknown on line 0 Unable to remove "extension=imagick.so" from php.ini uninstall ok: channel://pecl.php.net/imagick-3.7.0
再びインストール
# pecl install imagick PHP Warning: PHP Startup: Unable to load dynamic library 'imagick.so' (tried: /usr/lib64/php/modules/imagick.so (/usr/lib64/php/modules/imagick.so: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/imagick.so.so (/usr/lib64/php/modules/imagick.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 ・・・ Build process completed successfully Installing '/usr/lib64/php/modules/imagick.so' Installing '/usr/include/php/ext/imagick/php_imagick_shared.h' install ok: channel://pecl.php.net/imagick-3.7.0 configuration option "php_ini" is not set to php.ini location You should add "extension=imagick.so" to php.ini
手抜きして、アンインストール前にPHPで .soをロードする設定を消さずに作業したため別な警告が出ているが、無視。
再インストールで、最初に出ていた警告も出なくなった。