【PHP】アクセスログ軽量化とcron設定

【PHP】アクセスログ軽量化とcron設定

★このサイトもこれで作ってます次世代サイト作成システムSIRIUS

アクセスログの軽量化の実際

アクセスログの軽量化の話の続き。

 

量産型アフィリエイターになると、数百サイトくらい作ったりするため、どのページにアクセスが来ているかを調べるのは大変になる。

 

こうした場合、それぞれのサイトにアクセス解析タグを貼って調べるが常道だろうが、数百サイトもあるわけだから、一々全部調べるのはほとんど不可能だ。

 

ということで、サーバーに残っているアクセスログ(生ログ)をダウンロードしてきて、それを統合してアクセス解析してみようという話だ。

 

ところがアクセスログの生ログって、1サイトあたり数MBもあるので、100サイト分だと数百MBにもなってしまう。

 

これをそのまま毎日ダウンロードするのも時間の無駄だから、サーバーにできたアクセスログの必要な部分だけコピーして、まとめたモノをダウンロードしたい。

 

ということでアクセスログの生ログを調べて不要なログをPHPスクリプトでカットしてみた。

 

そうすると、約140MBあったアクセスログが、約19MBまで軽量化することに成功した。

 

割合で言うと、およそ7分の1くらいだね。

 

アクセスログの軽量化の例


※一番下のファイルが、スキップを外して統合したアクセスログ。

 

具体的にどういう感じになったかというと、次のような感じだ。

  1. 画像ファイルの呼び出しログをスキップする 約140MB → 約42MB
  2. アイ・フレームで呼び出すファイルをスキップ 約42MB → 約26MB
  3. 404エラー、403エラーのページをスキップ 約26MB → 約21MB
  4. googlebotや、HEADリクエストをスキップ 約21MB → 約19MB


ということで、実際のPHPスクリプトの例を紹介する。

 

その前にまず、メモリー利用上限を拡大しておく。

 

通常、PHPの設定では、扱うメモリーの上限は128MBになっているらしい。

 

これだと、128MBを越えるファイルは処理できないため、一時的にメモリーの利用上限を拡大しておく必要がある。

 

PHPスクリプト メモリー利用上限を拡大する

 

不要なアクセスログをスキップするPHPの記述例

ドメイン別になっているアクセスログを一つ読み込んで、$log_dataという配列に入れた後、アクセスログを一行ずつ処理する。

 

パターンマッチで不要なログを見つけたらスキップし、必要なログだけ、$log_output00に書き込む。

 

アクセスログ1ファイル分の処理を完了したら、$log_output00を、$log_outputに結合していき、最後にこれを編集済みの統合ファイルとして出力する。

スポンサードリンク

ネットで稼ぐ 教材人気ランキング

★第1位★儲かるセールスレター、チラシの書き方はこれ!キャッチ・ザ・ライティング

★第2位★集客できるホームページはこれ!SEOに強い戦略的テンプレート「賢威7」

★第3位★情報企業で稼げ!和佐大輔と木坂健宣のネットビジネス大百科

★第4位★ツイッターで稼ぐ方法 集客&自動化ツールフォローマティックXY

★第5位★月収1,000万円以上!ネットで大金を稼ぐ小玉歩のノウハウザ・メールマガジン

このエントリーをはてなブックマークに追加