WordPressはオープンソースプログラム言語のPHPで動いているため、定期的にPHPのバージョンアップを行う必要があります。
記事執筆時点だと、サポートされているPHPのバージョンは以下の通りです。
- 7.4: セキュリティサポートは2022年11月28日で終了予定
- 8.0: アクティブサポート中(セキュリティサポートは2023年11月26日で終了予定)
- 8.1: アクティブサポート中(セキュリティサポートは2024年11月25日で終了予定)
7.3以下はセキュリティサポートが終了しているため、もしセキュリティリスクが新たに見つかったとしたとしてもサポートされません。WordPress本体やプラグイン、テーマを更新していたとしても、安全にWordPressを使えている、とは言えない状況です。7.4はサポート中ですが、今年の11月で終了なので今のうちに8.0へバージョンアップしておいた方が安全です。
「サイトを作ったものの、特にメンテナンスはしていない」といった場合、PHPのバージョンが古く、サーバーが提供するPHPのバージョン終了に伴い、強制的にPHPをバージョンアップしないといけない、といったことがあります。
その際に発生するエラーや注意点、デバッグの活用方法などをご紹介します。
PHPのバージョンアップでエラーが発生
程度によりますが、テーマをカスタマイズしている場合や、更新されなくなったプラグインを使っている場合など、今まで使えていた関数が使えなくなるエラーである「Deprecatedエラー」が発生することがあります。
エラーを表示していた場合はdeprecatedエラーは表示されるため修正できますが、通常のWordPressで本番環境でエラーを表示する機能は無効にしているはずなので、deprecatedエラーがでていたもののそれに気が付かず、「PHPをバージョンアップしてみたらエラーが発生してしまった」というケースがあります。
deprecatedエラーは、「今はまだ使えるけど将来的に使えなくなるよ」というエラーのため、エラーメッセージは表示されるもののウェブサイトは閲覧可能です。一方、エラーを修正せずPHPのバージョンアップを実施した場合、非推奨となった関数が実行されると Fatalエラーとなりサイトにアクセスしても何も表示されない、という恐ろしい状態になります。
ちなみに、PHP7.4や8.0で非推奨となる機能一覧が公式にまとまっています。
PHP: PHP 7.4.x で推奨されなくなる機能 – Manual
WordPressのエラーをあえて表示する
画面が真っ白だと、何が原因でエラーが起きているのかわかりません。WordPressで手っ取り早くエラーの原因を確認するには、WP_DEBUG を true に設定します。
wp-config.php ファイルを開き、 define( 'WP_DEBUG', false );
箇所を探しだし、以下のように変更します。
define( 'WP_DEBUG', true );
false
を true
に変更するだけです。
これで保存し再度画面をリロードすると、原因はテーマなのか、利用しているプラグインなのか、WordPress本体なのか、エラーメッセージが表示されているはずです。まずはPHPのバージョンをバージョンアップ前に戻します。その上で、該当箇所を確認し、修正や対応を行い、再度wp debeg を true にして確認し、エラーが表示されていなければPHPをバージョンアップしましょう。解決後は WP_DEBUG
を false
に戻しておくことも忘れずに。
デバッグモードの使い方や、画面に表示させずにログファイルに出力する方法などを以下にまとめました。
参考: テスト環境や開発環境を用意したら有効化しておきたいデバッグモード
デバッグはテスト環境で実施するのが望ましい
本来は WP_DEBUG を true に設定するのは、誰もがアクセスできるサイト上で実施することは推奨されていません。
WP_DEBUG や他のデバッグツールを本番環境で使用することは推奨されません。これらはローカルのテスト環境やステージング環境での使用を想定しています。
WordPress でのデバッグ – サポートフォーラム
公式サイトのヘルプにもある通り、テスト環境や開発環境といった限られた人だけがアクセスできる環境での実施が望ましいです。
WP_DEBUGを使って本番環境でエラーを表示させることは、エラーメッセージが表示されサイト利用者にとって想定されていない挙動となり、またパスやファイル名が晒されるリスクにも繋がります。基本的にはテスト環境や開発環境といった環境でご使用ください。
参考: WordPressのテストサイト・検証用環境の作り方
エラーが起こることを想定した環境作りを
エラーがないことが一番望ましいです。しかし、サイト公開から数年経過し、PHP、WordPress本体、プラグイン、テーマとアップデートされないまま放置され、突然エラーが発生、と困り慌てるケースを多く見てきました。
「社内で対応できない」「制作会社はデザインはできるが技術は範囲外」というようにWordPressのメンテナンスだけ見てもらいたい場合は、弊社のWordPress 保守管理サポートをご検討ください。制作外のカスタマイズされたWordPressサイトに対して、PHP・WordPress・プラグイン等のアップデートや、テスト環境の実施、各種セキュリティ対策、パフォーマンス向上、テクニカルサポートといった対応を行っています。
同一サーバー上にテスト環境を作成することで、PHPのアップデート時の不具合における検証や対応が安心して行える環境を構築します。
コメントを残す