debug.log が 100MB を超えていた:中身の数え方と、記録を止めるまでの手順

広告WordPress・PHP を学べる本

Amazonのアソシエイトとして、WordPress functions.phpは適格販売により収入を得ています。

管理しているサイトで、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 件だけで、テーマを直している途中の数分に出たものでした。今のテーマには、その処理はありませんでした。

記録を止める

  1. debug.log を手元に取ってきて、圧縮してバックアップする(100MB が 1MB ほどになった)
  2. wp-config.php の WP_DEBUG_LOG を false にする(WP_DEBUG_DISPLAY は false のまま。画面にエラーを出さない)
  3. サーバーの debug.log を消す
  4. サイトが今までどおり表示されるかを確かめる

不具合を調べるときは、そのときだけ WP_DEBUG_LOG を true に戻します。

まとめ

  • debug.log は、作っているときの設定のまま残っていると、ずっと大きくなり続ける
  • まず外から開けないかをチェックし、中身は種類ごとに数えて、Fatal error と Warning を先に見る
  • バックアップを取ってから、記録を止めてファイルを消す

関連機能

  1. WordPressで長い記事を書いていたら更新データが保存されなくなった時の対応 ( エックスサーバー )

  2. WordPressのRSSフィード機能を無効にする ( feed機能停止 )

  3. 対応手順解説「サイトに重大なエラーがありました」

サイドバー

よく使うカスタマイズ

最近の記事

Profile

PAGE TOP