PHPアプデ後に「お使いのサーバーの php では wordpress に必要な mysql 拡張を利用できないようです」と表示された | ラズパイApache2

投稿者: | 2023年5月30日

状況

ラズパイ + Apache2 で運営している本ブログで、適当に sudo apt update をかけて、PHP を 8.1 から 8.2 にアップデートしました。その後ブログにアクセスすると、「お使いのサーバーの php では wordpress に必要な mysql 拡張を利用できないようです」と表示されてしまいました。

試したけどダメだったこと

  • mysqli がインストールされていないのでは?
    • → sudo apt install php-mysql を実行し、php8.2-mysql がインストールされたことを確認した
  • phpinfo の PDO drivers が no value になっているのでは?
    • → php -i | grep mysql を行い PDO drivers => mysql と出てくることを確認した
  • /etc/php/8.2/cli/php.iniの、;extension=mysqli のコメントアウトを解除したら?
    • → 効果が無かった

原因と解決策

けっきょく非常に単純で、「Apache から実行される PHP のバージョンが、アップデート前のものだった」ことが原因でした。まず、Apache で現在有効になっているモジュールを a2dismod コマンドで表示します。

$ sudo a2dismod
Your choices are: access_compat alias auth_basic authn_core authn_file authz_core authz_host authz_user autoindex deflate dir env filter mime mpm_prefork negotiation php8.1 reqtimeout rewrite setenvif socache_shmcb ssl status wsgi
Which module(s) do you want to disable (wildcards ok)?

php8.1 が有効になっています。なので、Apache2 は PHP 8.1 の MySQL 拡張を実行しようとして、それがないから怒られたのです。実際に、phpinfo() を表示させてみると、PHP 8.1 が実行されていました。コマンドラインで php -v と打ってバージョンを確認したときは PHP 8.2 が出てきたのですが、Apache が実行する PHP は コマンドラインから実行される CLI 版とは異なるそうです。

というわけで、

$ sudo a2dismod php8.1
$ sudo a2enmod php8.2
$ sudo systemctl restart apache2

で解決しました。

参考サイト

PHPアプデ後に「お使いのサーバーの php では wordpress に必要な mysql 拡張を利用できないようです」と表示された | ラズパイApache2」への1件のフィードバック

  1. ピンバック: お使いのサーバーの Php では Wordpress に必要な Mysql 拡張を利用できないようです。 ?

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です