数年前に構築して納品後特に保守等は行わないでお客様側で管理していたサイトがありました。先日担当の方より「ウェブサイトにトラブルが発生している」とご連絡。
確認すると、データベース接続エラーが発生しており、サイトにアクセスできない状態です。エラー通知のメールは担当者へ届いたことで、すぐにエラーが発生したことがわかったのは不幸中の幸いでした。
確認したところ、今回は古いPHPを利用し、なおかつページビルダープラグインの「Elementor」を利用していた際に発生したエラーでした。
今回のケースにおいての修正方法をご紹介します。
目次
突然のデータベース接続エラー
担当者から連絡があり、エラー通知のメールを転送してもらいました。
エラー詳細には発生したエラータイプや、エラーがどのファイルで発生しているのかなどの具体的な情報が示されています。
エラー発生のファイルは利用中の親テーマを示していたため、テーマに関係するファイルかと思ったのですが、それが原因でデータベース接続エラーというのはあまり経験のないことです。そのため他の原因がありそうです。
管理画面にログインすると使っているPHPが古すぎるという情報
フロントにはアクセスできないものの、幸いログイン画面は表示され、管理画面にログインできました。ダッシュボードが表示されると、エラーの原因を伝えるメッセージが目に入ってきました。
Update to PHP version 7.3 and get back to creating!
このWordPressはElementorプラグインが有効化されています。Elementorの最低PHPバージョンが7.3以上へ変更となったとのメッセージです。調べてみると、公式ページにもそのように記載がありました。
System Requirements To Use Elementor | Elementor
WordPress公式プラグインディレクトリからリンクされているプラグインのリリースノートを見ると、2023年10月25日に公開されたバージョン「3.17.0」から、PHPの最低バージョンが7.3に引き上げられたと記載があるのを見つけました。
raw.githubusercontent.com/elementor/elementor/main/changelog.txt
要は古いPHPはもう使わないでね、ってことなんでしょうね。
PHP 7.3以上にすることで解決
今回のエラー発生の原因は、Elementorのバージョンを更新した後に発生したとみて間違い有りません。エラー発生時に利用していたPHPのバージョンは7.2だったため、対応外のバージョンです。
サーバーコントロールパネルからPHPのバージョンを7.3以上に更新することで、データベース接続エラーは無事解決しました。
各種レンタルサーバーにはPHP更新の方法がマニュアルで用意されていることが多く、さほど難しい作業ではありません。
ただし注意。PHPのバージョンアップはテスト環境で動作確認を行い、問題ないことを確認してから更新することが推奨されます。
また、PHPを更新することで、本エラー以外の不具合が発生する懸念もあるため、ただ更新すればいいというものでもありません。
「テスト環境はなく、本番環境しかない」
その場合、リスクを承知で本番環境で更新するしかありません。問題が起こったらエラー箇所を確認し対処します。
PHPは更新し続けていく必要がある
2020年11月にPHP7.2のセキュリティサポートが終わったことを考えれば、今回のElementorプラグインがPHP7.3以上を要件とするとしたのは妥当な判断かもしれません。古いPHPに対応していくのも開発リソースを食うし、どちらかというと楽しい仕事ではないでしょうからね。
記事執筆時点でその次のバージョンの7.4や8.0まですでにセキュリティサポートは終わったため、最低でも現時点ではPHP8.1を利用するのが望ましいです。
今使っているPHPのバージョンを調べる方法
使っているPHPのバージョンがわからないという場合は、一度確認しておきましょう。確認は簡単。WordPress管理画面からツール→サイトヘルス→「情報」タブ→ドロップダウンの「サーバー」をクリックで表示されます。
テスト環境は作っておく
以上、古いPHPを使っているときに発生するエラーについてでした。今回はElementorが原因でしたが、人気国産フォームプラグインのMW WP Formプラグインなど他のプラグインでも最低利用バージョンを引き上げる動きがあります。
テスト環境がないとこういった時にリスキーなため、ぜひテスト環境を作成することをオススメします。
コメントを残す