基本Google Gemini にエラー内容、エラー.logを貼り付けて修復した。

多分今後も php関連のアップデートがあると同じ問題が発生すると思われる。

下記のマトメもAIで生成してますw

WordPress 復旧作業レポート

1. 発生していた問題

  1. 接続拒否 (Connection Refused): Webサーバー(Apache)が正常に応答していない、または通信が遮断されていた。
  2. データベース接続エラー: Webサーバー起動後、「MySQL拡張を利用できない」というエラーが発生。
  3. PHPモジュールの不一致: PHP 8.4 を使用しているにもかかわらず、システムが古いパスの mysqli.so を探してしまい、データベースへの接続に失敗していた。

2. 実行した修復手順

ステップ1:データベース状態の確認

  • sudo systemctl status mariadb で MariaDB 自体は起動していることを確認。
  • mysql -u root -p でデータベースに直接ログインできることを確認し、DB側の不具合ではないことを切り分け。

ステップ2:PHP 8.4 への対応

  • モジュールの導入: PHP 8.4 で MySQL を扱うためのパッケージをインストール。Bashsudo apt install php8.4-mysql
  • 依存関係の再構築: ログから判明した「ライブラリの読み込み失敗」を解消するため、PHP 8.4 の共通ファイルを再インストール。
Bash$ sudo apt install --reinstall php8.4-common php8.4-mysql libapache2-mod-php8.4

ステップ3:Apacheの設定反映

  • PHP 8.4 モジュールを確実に有効化し、古いバージョンの干渉を防止。
  • Apache を再起動して、新しくインストールした mysqli 拡張を認識させた。Bashsudo a2enmod php8.4 sudo systemctl restart apache2
Bash$ sudo a2enmod php8.4 sudo systemctl restart apache2

3. 最終結果

  • PHP が正しいパスにある mysqli.so を読み込めるようになり、WordPress から MariaDB への接続が確立。
  • サイトが正常に表示されることを確認。

💡 今後のためのアドバイス

今後、OSのアップデート(apt upgrade)などで PHP のマイナーバージョンが上がった際、今回のように「モジュールが見つからない」という警告が出ることがあります。その際は、「現在動いているPHPのバージョン」と「インストールされている拡張モジュールのバージョン」が一致しているかをまず確認するのが解決の近道です。


あなたのプロンプト

php関連のアップデートは止めるべきか?

Gemini の回答

結論から言うと、**「アップデート自体は止めるべきではないが、自動更新は慎重にするべき」**です。

セキュリティの観点からは最新の状態を保つのが正解ですが、今回のように「OSが勝手にPHPを上げてしまい、設定が追いつかずにサイトが止まる」というのは、自前サーバー(Lubuntu)を運用する上で最も避けたい事態です。

今後の運用のために、以下の3つの戦略を検討してみてください。


1. 「マイナーバージョン」を固定する(推奨)

今回、PHP 8.4 へのアップデートでトラブルが起きました。UbuntuなどのLinuxでは、勝手にバージョンが上がらないように「ホールド(固定)」という操作ができます。

  • メリット: apt upgrade をしても PHP だけは今のまま維持されるので、サイトがいきなり止まるのを防げます。
  • やり方:
  • ※これで、自分が「よし、手動で更新しよう」と思うまで 8.4 のまま固定されます。
Bash$ sudo apt-mark hold php8.4*

2. アップデート前の「予習」を習慣にする

PHP のアップデートは、今回のようにモジュール(mysqli など)のパスが変わることがあります。

  • アップデートを実行する前に、apt list --upgradable で何が更新されようとしているか確認する。
  • PHP の更新が含まれている場合は、時間に余裕がある時に実行し、今回のように systemctl restart apache2 をセットで行う。

3. セキュリティアップデートだけは受け入れる

PHP のアップデートには「新機能の追加(バージョンアップ)」と「脆弱性の修正(パッチ)」の2種類があります。

  • パッチ(例: 8.4.18 → 8.4.19)は、設定を壊すことは稀ですが、セキュリティ上非常に重要です。
  • バージョンアップ(例: 8.3 → 8.4)は、今回のように設定の再構築が必要になることが多いため、慎重に行うべきです。

💡 まとめ:どうすべきか?

「勝手に上がるのを防ぎ、自分のタイミングで更新する」 のがベストです。

以下のコマンドで PHP 関連を固定しておけば、普段の sudo apt upgrade でサイトが壊れる心配がなくなります。

Bash

# PHP 8.4 関連のパッケージを固定
sudo apt-mark hold php8.4 php8.4-common php8.4-mysql libapache2-mod-php8.4

もし、数ヶ月後にセキュリティ情報を見て「そろそろ新しくしないとな」と思ったら、unhold して手動で更新すればOKです。


セキュリティアップデートだけするにはどうする?

Gemini の回答

「パッケージを固定(hold)」した状態で、セキュリティ修正だけを適用するのは少し工夫が必要です。なぜなら、固定したパッケージは apt upgrade の対象から完全に外れてしまうからです。

セキュリティアップデートを安全に取り入れるには、以下の2つの方法があります。


方法1:手動で固定を解除して更新(推奨)

数ヶ月に一度など、メンテナンスの時間を決めて手動で更新する方法です。これが最も確実で、トラブルにもすぐ対処できます。

  1. 一時的に固定を解除するBash$ sudo apt-mark unhold php8.4*
  2. 更新があるか確認し、適用するBash$ sudo apt update sudo apt install --only-upgrade php8.4*
  3. 終わったらすぐに再度固定するBash$ sudo apt-mark hold php8.4*