管理しているサイトで、wp-content の debug.log が 100MB を超えていました。
外からは開けない設定になっていましたが、記録が止まらないまま、サーバーの容量を使い続けていました。
この記事では、debug.log の中身の見方と、記録を止めるまでの手順をまとめます。
debug.log ができる設定
wp-config.php に次の 3 行が入っていると、PHP のエラーや注意が wp-content/debug.log に書かれます。
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
作っているときや、不具合を調べるときに入れて、そのままになっていることが多い設定です。
まず外から開けないかをチェックする
curl -s -o /dev/null -w '%{http_code}\n' https://(ドメイン)/wp-content/debug.log
200 が返ると、だれでも中身を読めます。中身には、サーバーの上のファイルの場所などが入っているので、すぐに止めます。
今回は 403 で、外からは開けない状態でした。
中身は種類ごとに数える
100MB を超えるファイルは、丸ごと開かずに、種類ごとの数を数えました。
grep -oE '^\[[^]]+\] PHP [A-Za-z ]+:' debug.log | sed -E 's/^\[[^]]+\] //' | sort | uniq -c | sort -rn
| 種類 | 意味 | 見るか |
|---|---|---|
| Fatal error | 処理が止まった | 必ず見る |
| Warning | 動いたが、おかしなところがある | 中身を見る |
| Notice・Deprecated | 今は動くが、書き方が古い・呼ぶ順番が早い など | 多いものだけ見る |
今回の 2 つのサイトでは、ほとんどが Notice と Deprecated でした。
- テーマが、翻訳を読み込むのが早すぎるという注意(13 万件)
- PHP 8.2 で古くなった書き方(動的なプロパティ)の注意
- WP-CLI を cron で動かしたときに出る、WP-CLI の中の注意
Fatal error は 2 件だけで、テーマを直している途中の数分に出たものでした。今のテーマには、その処理はありませんでした。
記録を止める
- debug.log を手元に取ってきて、圧縮してバックアップする(100MB が 1MB ほどになった)
- wp-config.php の
WP_DEBUG_LOGをfalseにする(WP_DEBUG_DISPLAYは false のまま。画面にエラーを出さない) - サーバーの debug.log を消す
- サイトが今までどおり表示されるかを確かめる
不具合を調べるときは、そのときだけ WP_DEBUG_LOG を true に戻します。
まとめ
- debug.log は、作っているときの設定のまま残っていると、ずっと大きくなり続ける
- まず外から開けないかをチェックし、中身は種類ごとに数えて、Fatal error と Warning を先に見る
- バックアップを取ってから、記録を止めてファイルを消す


