先日WordPressの管理でちょっと困ったことがあり、試行錯誤の末に切り抜けられたので同じ悩みにぶち当たる人向けに記事にしておきます。
本記事の対象者
本記事が役に立つと思われる方は以下の通りです。
- WordPressダッシュボードのブログテーマのページで「PHPが古くてブログテーマのアップデートができない」メッセージが出ている
- レンタルサーバの管理ページからPHPをアップデートすると「データベース接続確立エラー」になる
- レンタルサーバの管理ページからPHPをもとに戻すと「データベース接続確立エラー」が回復し通常通りサイトが表示される
経緯
ブログをしばらく触らないで過ごしていた2022年秋のある日のこと。
記事を書かないまでも毎日更新していた一行日記を投稿するためにダッシュボードに入ったら、使用しているテーマ「Cocoon」のところでモニャモニャと「PHPが古すぎるからテーマがアップデートできない状態になっている」みたいな事が書いてあるのを見つけました。
▲上の画像の右側の「親テーマ」の方に「PHPが古すぎるため……」みたいなメッセージが表示されていました(左側の子テーマの方にはそのような表示なし)。
レンタルサーバの管理ページでPHPバージョンを確認すると、僕の場合は「PHP7.3.33」でした。
この7.3.33は2022年秋時点ですでに古いバージョンとして「推奨」ではなくなっていることがわかりました。
当面はなにもしなくてもサイトは表示されるし、いまのところ緊急性は低そう。
だけどあまり長い期間放置し続けるとセキュリティ的にもよろしくないと思われたので、まとまった時間が取れそうな年末に対処することにしました。
原因の切り分け
症状については冒頭の「本記事の対象者」のところに書いたとおりです。
いろいろググってみると、「データベース接続確立エラー」が表示されるケースで最も多いのは、wp-config.php内を不適切に書き換えた場合の認証エラーとのことでした。
でも僕の場合は
- wp-config.phpなんて触っていない
- PHPバージョンを上げてみると「データベース接続確立エラー」になる
- PHPバージョンをもとに戻すと「データベース接続確立エラー」は直る
ので、認証関係のエラーではないというところはわかりました。
原因と解決法
最終的には以下の3ステップを踏むことで解決することができました。
- MySQLバージョンを「MariaDB5.5(旧MySQL5.0)」から「MySQL5.7」にアップデート
- wp-config.phpのログイン情報を書き換え
- PHPバージョンを7.3.33からより新しいものにアップデート
以下、順番に記載します。
STEP1: MySQLバージョンを「MariaDB5.5(旧MySQL5.0)」から「MySQL5.7」にアップデート
▲(作業前)「MariaDB5.5(旧MySQL5.0)」となっている
▲(作業後)「MySQL5.7」となっている
具体的な作業手順は、各自のレンタルサーバによって違うと思います。
僕はスターサーバーで、移行ツールが用意されていたのでそれをそのまま使いました。
移行ツール実行後に上の画像の通り「MySQL5.7」になっていればOK。
STEP2: wp-config.phpのログイン情報を書き換え
移行ツールの中で、「本作業が完了したらMySQLホスト名を新しいものに修正してね」みたいなメッセージが表示されますが、その対応にあたるのがこのSTEP2です。
ためしにSTEP1完了後からSTEP2実施前の間で自分のサイトにアクセスしてみると、まだwp-config.php内のMySQLホスト名を書き換えていない(=認証エラーが起きるはず)ので「データベース接続確立エラー」となっているはずです。
▲STEP1完了時点で「MySQL5.7ホスト名」が新しいホスト名に変わっているはず(画像内赤枠)。
なので、wp-config.php内の記述を新しいホスト名に修正します。
wp-config.phpの書き換えは、僕はFTPソフトでローカルにダウンロードして編集後、再アップロードで実施しました。
言わずもがなですが、こうしたファイル書き換え操作の前はオリジナルファイルを必ず別名保存で手元に確保しておき、失敗したときに切り戻せるようにしておきましょう。
STEP2完了時点で自分のサイトにアクセスしてみると「データベース接続確立エラー」が消えて、サイトが正常に表示できているはずです。
STEP3: PHPバージョンを7.3.33からより新しいものにアップデート
最後にレンタルサーバの管理画面から、PHPバージョンのバージョンアップをします。
一気にバージョンを上げてそれで予期せぬ不具合が出たりしたら嫌なので、僕の場合はまずは「推奨」となっているうちの一番古い「PHP7.4.33」にアップデート。
この時点で再度自分のサイトにアクセスしてみると、PHPアップデート(7.3.33→7.4.33)をしたにも関わらず、「データベース接続確立エラー」にならずきちんと表示されている!
ここまでくれば問題は解決。
最終的には現状で一番新しい推奨である「PHP8.0.25」にアップデートしておきました。
まとめ:作業前にはよく調べよう。バックアップは必ず取ろう。操作は自己責任です
本記事では同じ悩みを持つ方のために参考として体験をシェアしています。
が、こういう作業はケースバイケースかもしれないしとても危険なので、大事なブログのために、まずは必ずブログ全体のバックアップを取ってから、よく調べて自分が納得してから実行するようにしましょう。
どうしてもわからなかったらお金を払って業者さんにお願いするのも手だと思います。
この記事がどこかの誰かのお役に立てれば幸いです。
関連記事:ネットオウル「ミニバード」のPHPバージョンを最新版にアップデートする方法
このトラブル解決記事、自分にとってはドンピシャでした。著者に抱きつきたい。
—【対処法】PHPを更新するとデータベース接続確立エラーになってしまう https://t.co/vKXYYFyVk6 pic.twitter.com/EJr3jbY4qD
— 煮え湯 (@nieyu365) January 1, 2023