WordPressのプラグイン更新でComposerエラーが発生した(対応方法含む)

タイトルの通り、WordPressのプラグインを更新したところ、WordPressが以下メッセージを出してエラーになりました。

Composer detected issues in your platform: Your Composer dependencies require the following PHP extensions to be installed: bcmath

どうしよう・・・

WordPressのプラグイン更新に失敗した場合、対応方針としては2通りあります。

  1. サーバ上のプラグインのフォルダを削除あるいはリネームする。
  2. プラグインが使えるように対応する。

他の方の事例を見てみると、1.の対応をしているケースが多いですが、サイトの性質上緊急性は高くないので、私のブログでは2.の対応をやってみたいと思います。

対応しよう

前提として以後紹介する手順については、

  • サーバのOSにsshでログインできる事
  • パッケージのインストール権限を持っている事

が前提となります。もし上記前提を満たしていない方や、よくわからないという方は違う方のサイトを当たっていただけると助かります。(そのうちこちらの手順も書きたい)

メッセージの通り、PHPの拡張モジュールである「bcmath」がインストールされていないと言われているので、まずは現状調査。phpコマンドを使って、インストールされているモジュールを確認します。

$ php -m
[PHP Modules]
calendar
Core
ctype
curl
date
dom
exif
FFI
fileinfo
filter
ftp
gd
gettext
hash
iconv
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
readline
Reflection
session
shmop
SimpleXML
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zlib
[Zend Modules]
Zend OPcache

たしかにbcmathは存在していません。

次にbcmathをインストールしますが、具体的にどのパッケージをインストールすればいいのか確認するためにパッケージを検索します。

$ apt search bcmath
Sorting... Done
Full Text Search... Done
php-bcmath/unknown 2:7.4+79+0~20201020.27+debian9~1.gbp95ec92 all
  Bcmath module for PHP [default]

php5.6-bcmath/unknown 5.6.40-38+0~20201103.42+debian9~1.gbpb211e0 amd64
  Bcmath module for PHP

php5.6-bcmath-dbgsym/unknown 5.6.40-38+0~20201103.42+debian9~1.gbpb211e0 amd64
  Debug symbols for php5.6-bcmath

php7.0-bcmath/unknown 7.0.33-37+0~20201103.43+debian9~1.gbp25a3d7 amd64
  Bcmath module for PHP

php7.0-bcmath-dbgsym/unknown 7.0.33-37+0~20201103.43+debian9~1.gbp25a3d7 amd64
  Debug symbols for php7.0-bcmath

php7.1-bcmath/unknown 7.1.33-24+0~20201103.44+debian9~1.gbp50e805 amd64
  Bcmath module for PHP

php7.1-bcmath-dbgsym/unknown 7.1.33-24+0~20201103.44+debian9~1.gbp50e805 amd64
  Debug symbols for php7.1-bcmath

php7.2-bcmath/unknown 7.2.34-8+0~20201103.52+debian9~1.gbpafa084 amd64
  Bcmath module for PHP

php7.2-bcmath-dbgsym/unknown 7.2.34-8+0~20201103.52+debian9~1.gbpafa084 amd64
  Debug symbols for php7.2-bcmath

php7.3-bcmath/unknown 7.3.24-3+0~20201103.72+debian9~1.gbp945915 amd64
  Bcmath module for PHP

php7.3-bcmath-dbgsym/unknown 7.3.24-3+0~20201103.72+debian9~1.gbp945915 amd64
  Debug symbols for php7.3-bcmath

php7.4-bcmath/unknown,now 7.4.12-3+0~20201103.32+debian9~1.gbpa97e22 amd64 [installed]
  Bcmath module for PHP

php7.4-bcmath-dbgsym/unknown 7.4.12-3+0~20201103.32+debian9~1.gbpa97e22 amd64
  Debug symbols for php7.4-bcmath

php8.0-bcmath/unknown 8.0.0~rc3-4+0~20201103.4+debian9~1.gbp19d1d8 amd64
  Bcmath module for PHP

php8.0-bcmath-dbgsym/unknown 8.0.0~rc3-4+0~20201103.4+debian9~1.gbp19d1d8 amd64
  Debug symbols for php8.0-bcmath

PHPのバージョン毎にパッケージが存在しており、どのパッケージをインストールすべきか見極める必要があります。今回稼働しているPHPのバージョンは7.4ですので、「php7.4-bcmath」をインストールします。

$ sudo apt install php7.4-bcmath

確認してみよう

では実際にbcmathがインストールされたか確認します。

$ php -m
[PHP Modules]
bcmath <---
calendar
Core
ctype
curl
date
dom
exif
FFI
fileinfo
filter
ftp
gd
gettext
hash
iconv
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
readline
Reflection
session
shmop
SimpleXML
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zlib

[Zend Modules]
Zend OPcache

bcmathが無事にインストールされ、WordPressも無事復旧しました!

同様の事象が出た方の参考になれば!

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA