始めに:
諸事情あって新規の執筆を中断して、WordPress とプラグイン、テーマのみの更新を実施していたが、とうとう「PHP を更新しないと WordPress の更新ができないよ」というメッセージを頂いてしまった。それで PHP を XServer の推奨するバージョンに更新した結果が、表題の通りという訳だ。
PHPのバージョンとデータベース:
- PHP を7.x .x から PHP8.22.2 へ更新
- データベースは MySQL5.0 に据え置き
※PHP の古いバージョンは 7.1.x だったと思うが、7.2.x だったような気もするし、全然違っていたような気もする・・・実は忘れてしまったのですよ。ほんの数日前のことなのに。
問題解決に至った処置:
この問題は、XServer のサーバーパネル上でデータベースのパスワードを再設定することで解決した。変更ではなく、現在使用中のパスワードを設定しなおしただけ、という点に留意して頂きたい。
パスワード再設定手順:
- XServer にログイン後、左サイドのメニューから[データベース]を展開し、トップに表示されている[MySQL設定]を選択する。
- 画面中央に表示される三個のタブから[MySQLユーザー設定]を選択する。
- wp-config.php に記載されているデータベース名を見つけ、そのデータベース名の右側にある[詳細]ボタンをクリックする。
- パスワードフィールドに wp-config.php に記載されているパスワードを入力して[変更する]ボタンをクリックする。
問題解決に至るまでの経緯:
PHP をバージョンアップする前は正常に動作していたのだから、データベース接続に関する wp-config.php の記載内容に問題がないのは明らかだ。
その事を確認するのは必須として、データベースをアップグレードすれば問題は解決するのではないか、などと思いながら考えた作業手順は次の通り。
- WordPress を介さないデータベースアクセスをテストする。
- データベースをアップグレードする。
- WordPress をマニュアル更新する。
実際に試行したのは、WordPress のマニュアル更新を除いた二つの手順だ。
そして両方ともに失敗に終わり、それぞれ次のようなメッセージが表示された。
データベースアクセスのエラーメッセージ:
mysqlnd は、古い安全でない認証を使用して MySQL 4.1+ に接続できません。管理ツールを使用して、コマンド SET PASSWORD =PASSWORD(‘your_existing_password’) でパスワードをリセットしてください。(以下省略:原文は英語。翻訳は Google)
データベースアップグレードのエラーメッセージ:
下記のMySQLユーザのパスワード情報は、MySQL5.7に移行することができない形式で保存されており、MySQL移行ツールを開始することができません。
username
「MySQL設定」の[MySQLユーザ一覧]タブより、各ユーザのパスワード情報を更新してください。該当MySQLユーザのパスワード変更の手順により、MySQL5.7へ移行可能な形式に更新されます。
※データベースアクセスのエラーメッセージは、WordPress の接続試行ではこのとおりに表示されない。wp-config.php のチェックを促す内容が表示されるのみだ。
※[MySQLユーザ一覧]は、サーバーパネルのデザインを旧タイプに切り替えると見ることができる。データベースの更新(正式には[移行])は旧デザインに切り替えて試行した。
上記の二つのメッセーの根本は同じ内容だ。
現在のパスワードの設定は、古くて問題があるから設定をやり直せ、と言っているのだ。
パスワード再設定の簡単な方法が二番目のメッセージに明示されているので、自然に「問題解決に至った処置」にたどり着く。
私は PHP の新しいバージョンと WordPress の古いバージョンとの不適合を疑っていたので、最初のテストが失敗したのは、正直に言って予想外だった。
参考リンク:
本当はデータベースアクセスに使用した PHP ファイルのソースコードを載せたかったのだが、ソースコード表示用のプラグインが使えなくなったので、代わりに参考にしたリンクを載せておく。
参考リンク:データベース接続関数リファレンス
- リンク先のサンプルコードを適当なテキストエディタにコピペする。
- mysqli 関数の引数のホスト名、ユーザー名、パスワード、データベース名に、 wp-config,php に記載されている内容を指定する。サンプルの 文字列[localhost]をそのまま使用してはいけない。
- テキストエディタの内容をローカルに保存する。ファイル名は何でも良いが、英文小文字にすること。エンコードは必ず utf8 に設定し、ファイル拡張子は[php]を指定する。
- 保存したファイルを FTP サーバーにアップロードする。WordPress のコード類と同じディレクトリが良いだろう。
- [WordPressドメイン名]/samplefile.php を URL ボックスに入力して Return キーを押す。
- テストに使用したファイルが不要になったら、削除するのを忘れないようにしましょう。
終わりに:
今回の PHP アップグレードに伴う問題は、wp-config のシンタックスエラーから始まった。
それは何とか修正したが、私が普段使用している[秀丸エディタ]でコピペや保存にショートカットキーを多用すると、どうもエラーが発生し易いような気がしている。
コピペに起因すると思われるシンタックスエラーは、稀ではあるが「おや、またですかい」といった頻度では発生する。これは Visual Studio でも確認しているので、注意が必要だ。
データベース接続に関する問題の解決にあたっては、パスワードに関する二つのエラーメッセージが助けになった。二つのうち、認証について言及したメッセージは特に重要だ。
もし、そのメッセージを表出した”WordPress を介さないデータベースアクセス”を思いつかなかったら、解決までもっと時間がかかったに違いない。
今回はこの問題を独力で解決したが、後で調べてみたら、同じ内容の記事が結構存在しているのを見つけた。なので、先に検索していたらもっと楽に解決できたんだろうなぁ・・・などと思っている。