WordPress でサイト運営しているとエラーが発生してしまうことがあります。エラーメッセージに対象ファイルまでのパスが表示されるため、重要な情報が公開され取得されてしまう懸念があります。
エラーメッセージが表示されてしまった場合において、取り急ぎエラーメッセージを非表示とし、パス情報が表示されないように対応する方法をご紹介します。
目次
WordPress で表示されるエラーメッセージの例
WordPress は PHP によって作られているため、ウェブサイト上に表示されるエラーは PHP のエラーとなります。エラーメッセージにもレベルがあり、処理が続けられない程のエラーから、注意喚起程度のエラーまで様々です。
主なエラーレベル:
- Fatal error: 致命的なエラー。処理は実行されるものの、エラー発生以降は処理は停止する。
- Parse error: 構文ミスなどで発生するエラー。処理はされない。
- Warning error: 警告。エラーが発生した箇所は処理されないが、前後は処理される。
- Notice error: Warning よりもレベルの低い警告。
- Deprecated error: 非推奨エラー。過去利用できていた関数や文法が現在の PHP バージョンでは推奨されないように変わっていたり、将来的に利用できなくなることが決まっている場合に出力されるエラー。
エラー発生しても処理が続く場合と停止する場合の違い
例えば WordPress の「Twenty Twenty-two テーマ」で Warning エラーが発生した場合、このような表示になります。

処理は継続され、ヘッダーメニューやファーストビューといった以降の箇所は表示されているのがわかります。
一方、エラーレベルの高い Parse エラーの場合の見え方です。

Warning エラーの時はヘッダーメニューやファーストビュー以降が読み込まれ表示されていましたが、Parse エラーの場合は処理がされず、表示されているのはエラーメッセージのみというのがわかります。
エラーメッセージにはファイルやディレクトリのパス情報が含まれる
エラーメッセージにはエラーの発生元を知らせるため、原因となったファイルが絶対パスで表示されます。対象ファイルまでのディレクトリパスが全て記載されているのです。
このエラーメッセージはサイト管理者にとっては大変有用ですが、通常のサイト閲覧目的のユーザーがアクセスする分には表示されてもただの意味不明な文字列です。
それだけならまだいいですが、悪意をもったユーザーの場合、重要な情報を取得されてしまうリスクがあります。WordPress の場合、基本的にはファイル名もパスも固定化されているため問題ないのですが、WordPress の上位のディレクトリに重要情報を持ったファイルを保存している場合などはディレクトリ構造が知られてしまうのはリスクとなります。
WordPress のエラーメッセージを非表示にする方法
よって、エラーメッセージが表示されるとまずい場合はエラーメッセージ自体を表示させないという方法が取れます。ただし、後述しますがこれは完璧に非表示にできるわけではありません。
WordPress においてエラーメッセージを非表示にする場合、wp-config.php
ファイルに ini_set('display_errors','Off');
を記述するだけです。
前提として、define( 'WP_DEBUG', false );
としておく必要があります。デフォルトでは false
になっているので、もし true
になっている場合は false
に設定します。
wp-config.php の下段の方に define( 'WP_DEBUG', false );
の記載があるので、その直下に書いておくとわかりやすいでしょう。
define( 'WP_DEBUG', false );
ini_set('display_errors','Off');
非表示にしても場合によってはエラーメッセージが表示される
非表示に設定した上で、Warning エラー、Parse エラー、Fatal エラーを発生させ、それぞれにおいてどのような画面に表示になったか比較します。
Warning エラー

Parse エラー

Fatal エラー

このように、Warning エラーは正常と変わらず, Fatal エラーはブラウザのエラー画面となりましたが、Parse エラーはエラーメッセージが表示され、ディレクトリパスも確認できました。
実際は WordPress 環境において、本番環境で Parse エラーが発生するというのはまずないかと思いますので、この心配はしなくてもいいかと個人的に思います。WordPress のカスタマイズやオリジナルテーマ開発等の場合はローカル環境で開発するため Parse エラーがあればその時点で判明しますし、さらにテスト環境やステージング環境へ一旦反映させるため、関係者の確認も入るため多くはその時点で Parse エラーは解消できていることでしょう。
取り急ぎエラーメッセージを非表示にしたい場合等に利用する
今回のエラーメッセージを非表示にしたいというのは、利用しているプラグインが原因でどうしてもエラー表示されてしまうという場合等において利用とするといった使い方が想定の利用方法かと思います。
開発、テスト、本番環境全てをエラー非表示設定にしてしまうと、本来発見できたはずのエラーに気が付かずに、ある日突然エラーでサイト表示できないという事態にもなりえます。
非表示とするのは本番環境だけにして、開発環境やテスト環境は逆にエラーを表示させる設定とし、エラーを未然に防ぐようにすることをおすすめします。また、デバッグモードの設定方法は以下をご参考ください。
コメントを残す