ホームページ >バックエンド開発 >PHPチュートリアル >XDebug が自動的に PHP スタック トレースをオンにし、PHP ログが 1G_PHP を超えるようになります。
昨日の朝、突然テストサーバーの容量がいっぱいであることに気づき、duを使用して各フォルダーを確認したところ、phpデバッグログが直接1Gを占めていることがわかりました。開いてみると、非常に大きな数が見つかりました。 PHP スタック トレースの数。
すぐにメイン サーバーにアクセスして確認してください。メイン サーバーのログは 400 MB を超えています。幸いなことに、メイン サーバーには十分なスペースがあります。
スタックトレースがたくさんあるので、以前は存在しなかったはずです。ログを 1 つずつ確認すると、ある日の朝に一度に発生したことがわかります。
解決策:
1. 以前に php をアップグレードしたことが原因でしょうか? 以前インターネットで php スタック トレースを検索したところ、開く方法は示されていましたが、閉じる方法は示されていませんでした。 PHP のパラメータを慎重に検索した結果、一見関連しているように見えるものは、ignore_repeat_sources とignore_repeat_error の 2 つだけでしたが、それらを変更しても機能しませんでした。
2. PHP のアップグレードが原因でない場合は、過去数日間にどのような変更が行われたのか、どの変更が PHP トレースに関連しているのかをよく考えてください。まず xdebug を削除してみてください。問題は解決します。 。最初は xdebug の公式ドキュメントに直接アクセスせず、phpinfo を使用して xdebug のすべてのパラメータを入力しました。何度か試した後、それがどのパラメータであるかを推測しました。それはうまくいきませんでした。その後、落ち着いて xdebug の公式ドキュメントを見てみると、次のような文言が見つかりました。
スタックトレース
Xdebug がアクティブ化されると、PHP が通知、警告、エラーなどを表示することを決定したときはいつでもスタック トレースが表示されます。スタック トレースが表示する情報とその表示方法は、ニーズに合わせて構成できます。興味深いことに、検索を続けると、名前と目的が理解できない変数「xdebug.default_enable」を見つけました。実際には、次のようにこのパラメータによって制御されています。
xdebug.default_enable
タイプ: ブール、デフォルト値: 1 この設定が 1 の場合、スタックトレースはエラー イベントでデフォルトで表示されます。これは Xdebug の基本機能の 1 つであるため、コードからスタックトレースの表示を無効にすることができます。 1. 私はほぼ 1 日この問題に取り組み、学んだことは次のとおりです。予期せぬ問題に遭遇したときは落ち着いてください。これは当初の計画の多くに影響しますが、問題が深刻な場合は、すべての困難を克服して最初に解決する必要があります。習慣が形成されます。また、既製の機能モジュールを使用する場合、最後に検索してもダメだった場合は、落ち着いて公式ドキュメントをよく読む必要があります。