Debian GNU/Linux 11.2上でのWordPress 5.9への更新

はじめに

Debian GNU/Linux 11.2上でソフトウェアの更新(apt upgrade)とWordPress 5.9への更新をほぼ同時に行ったら「お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。」というメッセージがでて動かなくなってしまった。

原因はapt upgrade時にPHPが8.0系から8.1系へ切り替わったため。WordPressは関係ないエラーだったが、WordPressがPHP 8.1でも動いている例として記録しておく。

環境

% cat /etc/debian_version 
11.2

% mysql --version
mysql  Ver 15.1 Distrib 10.5.12-MariaDB, for debian-linux-gnu (x86_64) using  EditLine wrapper

% php -v
PHP 8.1.3 (cli) (built: Feb 23 2022 16:07:16) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.3, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.3, Copyright (c), by Zend Technologies

% apache2ctl -v
Server version: Apache/2.4.52 (Debian)
Server built:   2022-01-03T21:27:14

現象

ソフトウェアの定期アップグレードをしたら、WordPressで「お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。」というメッセージがでてログインできなくなってしまった。

定期アップグレードは以下の通り。

% sudo apt update
% sudo apt upgrade -y

原因

Apache 2.4でPHP8.1のモジュール(libapache2-mod-php8.1)を有効化する必要があった。以下のようにしてPHP 8.1のモジュールを有効化し、PHP 8.0のモジュールを無効化した。

(インストール済みなのか確認)
% dpkg -l | grep libapache2-mod-php8
ii  libapache2-mod-php8.0             8.0.16-1+0~20220221.30+debian11~1.gbp8b91a5      amd64        server-side, HTML-embedded scripting language (Apache 2 module)
ii  libapache2-mod-php8.1             8.1.3-1+0~20220223.13+debian11~1.gbp7757b9       amd64        server-side, HTML-embedded scripting language (Apache 2 module)

% sudo a2enmod php8.1
% sudo a2dismod php8.0
% sudo systemctl restart apache2

WordPress5.9への更新にともなう追加インストール

WordPressのサイトヘルスステータスの機能でいくつかの推奨PHPモジュールが足りないというメッセージがでていたので追加した。

  • curl
  • dom
  • imagick
  • zip
  • intl

以下のコマンドでインストールできた。インストール後にApacheを再起動し、サイトヘルスステータスの機能で当該モジュールがインストールできている(足りないというメッセージがでていない)ことを確認する。

% apt install php-curl
% apt install php-dom (注:php8.1-xmlがインストールされる)
% apt install php-imagick
% apt install php-zip
% apt install php-intl
% sudo systemctl restart apache2