はじめに
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