WordPress ヘルスチェックエラー対応 (imagickがインストールされていないか無効化)
久しぶりにWordpressでヘルスチェックをおこなうと下記のようjに、「オプションのモジュール imagickがインストールされていないか、無効化されています。」と表示されています。
imagick は以前の記事「WordPressに必要なPHPモジュール「imagick」をインストールする」でインストールしていますが、何故か最近にヘルスチェックでエラーになりました
SSHでログインして、CUIで「php -v」でバージョンで確認すると「PHP Warning: PHP Startup: Unable to load dynamic library 'imagick’~」とエラーが表示されます
$ php -v PHP Warning: PHP Startup: Unable to load dynamic library 'imagick' (tried: /usr/lib64/php/modules/imagick (/usr/lib64/php/modules/imagick: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/imagick.so (libMagickWand-6.Q16.so.6: cannot open shared object file: No such file or directory)) in Unknown on line 0 PHP 8.0.21 (cli) (built: Jul 6 2022 10:13:53) ( NTS gcc x86_64 )
エラーの内容をGoogleで検索すると、ImageMagickを更新すると解決する記事が多かったので、ImageMagickを再インストールしてみます
再インストールですが、以前の記事「WordPressに必要なPHPモジュール「imagick」をインストールする」でインストール方法があるので、「pecl install imagick」と叩いてインストールしてみますがエラーとなります
$ sudo pecl install imagick PHP Warning: PHP Startup: Unable to load dynamic library 'imagick' (tried: /usr/lib64/php/modules/imagick (/usr/lib64/php/modules/imagick: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/imagick.so (libMagickWand-6.Q16.so.6: cannot open shared object file: No such file or directory)) in Unknown on line 0 pecl/imagick is already installed and is the same as the released version 3.7.0
「pecl uninstall imagick」とコマンドを叩いて、アンインストールしても同じくエラーとなります
$ sudo pecl uninstall imagick PHP Warning: PHP Startup: Unable to load dynamic library 'imagick' (tried: /usr/lib64/php/modules/imagick (/usr/lib64/php/modules/imagick: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/imagick.so (libMagickWand-6.Q16.so.6: cannot open shared object file: No such file or directory)) in Unknown on line 0 Unable to remove "extension=imagick.so" from php.ini uninstall ok: channel://pecl.php.net/imagick-3.7.0
「imagick.so」が読み込まれているのでインストールやアンインストールでエラーとなるかも知れないので、「imagick.so」を読み込まないように「20-imagick.ini」の設定ファイルの箇所をコメントアウトします
# imagick.soを読み込んでいる箇所をコメントアウトします $ sudo vim /etc/php.d/20-imagick.ini ;extension=imagick.so # コメントアウトしたので、php-fpmを再起動します $ sudo systemctl restart php-fpm
「imagick.so」を読み込まなくしたので、ImageMagickを再インストールしてみます
# エラーなくアンインストールできるか確認してみます $ sudo pecl uninstall imagick # 削除できたのでインストールしてみます $ sudo pecl install imagick
「imagick.so」を読み込まなくしたら、ImageMagickを再インストールできたので、「imagick.so」を読み込んでphp-fpmを再起動します
# imagickを読み込むように変更します $ sudo vim /etc/php.d/20-imagick.ini ;extension=imagick.so # php-fpmを再起動 $ sudo systemctl restart php-fpm
今回は、「pecl uninstall imagick」→「pecl install imagick」との手順で再インストールしましたが、「pecl upgrade imagick」とupgradeで1回のコマンドでも再インストールできるかと思います。
$ pecl upgrade imagick
また、「dnf」,「yum」を利用して「imagick」をインストールした場合は、下記のように再インストールすればいいかと思います
# yum の場合 $ yum update php-pecl-imagick # dnf の場合 $ dnf update php-pecl-imagick
ディスカッション
コメント一覧
まだ、コメントがありません