技術ブログ

WordPress のデバッグ情報出力

ウェブサイト/システムのオーナーや運営者など、制作側では「ない」方々に向けた技術記事です。
仕様検討、保守管理や運用などに必要な基礎知識、役立つ情報を提供することが目的です。

公開日
更新日

WordPress では PHP のデバッグ情報(エラーや警告)を出力することができます。ウェブサイトの開発中は便利ですが、本番運用開始後にも出力したままだと秘密にしたい情報が表示されてしまったりウェブサイトの弱点を見破られる可能性がありセキュリティ上とても危険です。

デバッグ情報の出力はデフォルト(インストール直後)では無効になっていますが、開発中に有効にしたまま元に戻し忘れている場合がありますのでご確認することをお薦めします。

一方、エラー発生時にはこのようなデバッグ情報が解決に役立つこともあります。この場合は公開画面には出力せずにログファイルに残すように設定するとよいでしょう。

設定方法の解説

以下、ご自分で解決できる方向けの技術情報です。

WordPress のウェブサイトを開発中に PHP のデバッグ情報をブラウザ画面に出したい場合、wp-config.php で次のように設定します。false にすればデバッグモードは無効になり出力されなくなります。

// デバッグモードを有効にする
// false にすると無効になる
define('WP_DEBUG', true);

本番環境で PHP のエラー情報をブラウザ画面には出さずログファイルに出力するためには wp-config.php に次のような設定を記述します。

// デバッグモードを有効にする
define('WP_DEBUG', true);

// 画面にはエラーを表示しない
define('WP_DEBUG_DISPLAY', false);

// エラーをログに出力する
define('WP_DEBUG_LOG', true);

エラーログはデフォルトでは次に出力されます:/wp-content/debug.log

このログファイルには適切なファイルパーミッション(例:600)を設定します。wp-content フォルダに書込み権限があることも必要です(例:750)。

さらに、.htaccess で例えば次のように設定し外部からアクセスできないようにします。

# /wp-content/.htaccess に設置した場合
<Files debug.log>
  Order allow,deny
  Deny from all
</Files>

以上でユーザー画面にはエラーを出さず、ログファイルにのみエラーの内容が出力されるようになります。