2010-12-02 14 views
0

私がCURLで検索したすべてのURLをApacheがログに記録しないようにする方法を知りたいのは興味深いです。PHP CURLにより大量のApacheアクセスログが発生する

私のPHPスクリプトは数十万のURLを開き、それらをスキャンし、情報を少しずつ取り出し、閉じてから次のページを開きます。

私は、アクセスログを開いた後、CURLで開いたすべてのURLがアクセスログに書き込まれることを発見しました。

::1 - - [01/Dec/2010:18:37:37 -0600] "GET /test.php HTTP/1.1" 200 8469 "-"..." 

私のアクセスログは約45MBytesです。誰にでも助けますか?

答えて

0

あなたのカールの要求のすべてがIPの単一あるいは管理可能グループから来ている場合は、次のような構成を使用してログからそれらを除外することができます。

# Set your address here, you can do this for multiple addresses 
SetEnvIf Remote_Addr "1\.1\.1\.1" mycurlrequest 
CustomLog logs/access_log common env=!mycurlrequest 

あなたと似た何かを行うことができますユーザエージェントフィールドは、デフォルトでカールしていることを示します。

あなたがここで詳細を読むことができます: http://httpd.apache.org/docs/2.2/logs.html#accesslog(条件付きロギングは、このヘッダーの下で最後のセクションである) 、ここ http://httpd.apache.org/docs/2.2/mod/mod_setenvif.html#setenvif

をあなたは条件付きでロギングを除外したい場合は、私はそのような可能な最も正確な方法でそれをする場合とIPアドレスとして。サーバーが外部からアクセス可能な場合は、curlからの外部要求をログに記録しないことはおそらくありません。

条件付きログを使用すると、より頻繁にロールバックできる複数のファイルが必要な場合は、ログをセグメント化することもできます。その利点は、スペースを節約できると同時に、調査やデバッグに役立つログデータがあることです。

+0

私はhttpd.confにアクセスできるので、これらの行をそこに貼り付けることができると仮定していますか? – Chenelle

+0

はい、ファイルのメイン部分またはvirtualhostディレクティブに入ることができます。 –

3

これは、アクセスログの目的である - 効果的にWebサーバを管理するために任意の着信トラフィック

を記録し、活動やパフォーマンス、サーバーのだけでなく、あらゆる問題についてのフィードバックを得ることが必要です起こっている可能性があります。 Apache HTTP Serverは、非常に包括的で柔軟なロギング機能を提供します。このドキュメントでは、ログ機能を構成する方法と、ログに含まれる内容を理解する方法について説明します。

ソース:もちろんhttp://httpd.apache.org/docs/trunk/logs.html

、あなたはログを無効にするオプション(好ましくない)を持っている

+0

ええと、まあ、これは誰もアクセスできないローカルホストにあります。それを無効にすると危険がありますか? – Chenelle

+1

@Chenelle - 好きなことをすることができます...走らせて傷つけることはありません。もしあなたが知っていればlog rotateを使ってください。 – ajreal

+0

@Chenelleこれをオフにするリスクはありません。あなたのPHPスクリプトが以前と同じように動作していないことに気付いた場合は、再度有効にすることができます。たとえば、フェッチしているURLが404または500を返しているとします。エラーログとともに、問題のデバッグに役立ちます。 @ajrealが示唆しているように、私はlog rotateを使用します。最高 –

0

条件付きログApache manualを参照してください。それはあなたが探しているものかもしれません。

関連する問題