PHPでImagickのバージョンに関する警告が発生する

いつから発生していたのか不明だけど、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をロードする設定を消さずに作業したため別な警告が出ているが、無視。

再インストールで、最初に出ていた警告も出なくなった。