futomi's CGI Cafe

高機能アクセス解析CGI Standard版 Ver 3.0



あなたのホームページにどれだけアクセスがあったか、どのような人が見に来たかを統計的に見ることができるCGIです。月指定、日付指定での解析も可能。またアクセスしてきた方のプラットフォーム・プラットフォームバージョン、ブラウザー・ブラウザーバージョンまで解析できる、高機能CGI! また、DoCoMo、J-PHONE、au、TU-KA、ASTEL にも対応!
 アクセスログのローテーション機能付きですので、プロバイダーとの契約容量を気にすることなくお使いいただけます。
 
■ 目次
■ 主な機能

● アクセス解析レポート内容

  • 国別ドメイン名レポート
  • アクセス元ドメイン名レポート
  • アクセス元ホスト名レポート
  • ブラウザー表示可能言語レポート
  • ブラウザーレポート
  • プラットフォームレポート
  • 月別アクセス数レポート
  • 日別アクセス数レポート(月指定解析モード時)
  • 時間別アクセス数レポート
  • 曜日別アクセス数レポート
  • リクエストレポート
  • リンク元サイトレポート
  • リンク元URLレポート
  • 検索エンジンの検索キーワード レポート
  • クライアント画面解像度レポート
  • クライアント画面色深度レポート
  • クライアントビデオメモリサイズレポート

● 月指定・日指定解析モード

月や日を指定して、該当するログのみを解析し表示します。

● ログローテーション機能

アクセスログが指定したサイズになると、アクセスログを新しく作り直す機能です。古いログは、削除するか別名で保存するかを指定することができます。

● パスワード認証機能

他人に解析結果を見られないようにするために、パスワード認証機能を使うかを選択することができます。

● 解析可能なプラットフォームとブラウザー

ほとんどのプラットフォーム、ブラウザー、そして携帯電話を認識しレポートすることが可能です。詳細は、こちらをご覧ください。

● 解析可能な検索エンジン

以下の検索サイトよりアクセスのあったリクエストから、検索キーワードを解析します。

■ CGI利用規定の同意

CGI利用規定をご覧になり、同意した上でご利用ください。

■ ファイルの一覧と機能

CGIをダウンロードし、解凍してください。それぞれのファイルについて解説します。

ファイル名 Permission 転送モード ファイルの機能
 acc/
(705) 本CGI用ディレクトリ
 acc.cgi
(704) [ASCII] 解析結果表示CGI
 acclog.cgi
(704) [ASCII] ロギング用CGI
 accconfig.cgi
(604) {ASCII] 設定ファイル
 acclogo.gif
(604) [BINARY] ロギング用イメージファイル
 acclogo.png
(604) [BINARY] ロギング用イメージファイル(J-PHONE用)
 header.temp
(604) [ASCII] 解析結果のヘッダーテンプレート
 footer.temp
(604) [ASCII] 解析結果のフッターテンプレート
 country_code.dat
(604) [ASCII] 国コードデータファイル
 language.dat
(604) [ASCII] 言語コードデータファイル
 jcode.pl
(604) [ASCII] 日本語コード変換ライブラリー
 logs/
[ASCII] ログ格納ディレクトリ※1
 images/
[BINARY] イメージファイル用ディレクトリ※2
Readme
ReadMe※3
※1 ログ は、「logs」ディレクトリ内に作成されます。解析ページにアクセスがあると、自動的に作成されます。ファイル名は、「accss_log」もしくは「access_log.YYYYMMDD」です。YYYYMMDDは年月日です。
※2 CGIを設置が、「cgi-bin」などの専用のディレクトリを指定しているプロバイダーをお使いの方の場合、イメージファイル用ディレクトリ「images]は、通常のホームページファイルを設置する場所にアップロードしてください。CGI用のディレクトリにアップロードしても、画像が表示されませんので、ご注意ください。
※3 HTML形式のReadMeファイルです。このホームページが入っています。このフォルダは、サーバへアップロードする必要がありません。

 括弧内は、パーミッションを表します。サーバへアップロードした際には、それぞれのファイルのパーミッションを正しく設定してください。ここで掲載されているパーミッションは、あくまでも参考です。お使いのプロバイダーの指示に従い、正しくパーミッションを設定してください。またサーバへのアップロードは、上表のとおりの転送モードで転送してください。

 CGIファイルと、HTMLファイルを何処に設置してもよいプロバイダーの場合には、本CGIを解凍したディレクトリ構成のまま、サーバへアップロードしてください。
 CGIファイルは、専用のディレクトリ(cgi-bin等)に設置しなければいけないプロバイダー(WebARENA等)の場合には、ディレクトリ「images」を除いて、CGI専用のディレクトリへアップロードしてください。「images」は、通常のHTMLファイル等ををアップロードする場所へアップロードしてください。ただし、この場合、後述する「accconfig.cgi」のイメージディレクトリのURL設定で、アップロードした場所のURLを記述していただく必要があります。

 
■ Perlパスの編集

プロバイダーによって、Perlパスが異なります。デフォルトでは「#!/usr/local/bin/perl」と設定しております。プロバイダーの指示に従い、以下のファイルのPerlパスを書き換えてください。

  • acc.cgi
  • acclog.cgi
 
■ 設定内容

お使いになる環境に合わせて、またお好みに合わせて、設定を変更してください。設定の変更は、すべて「accconfig.cgi」を編集することにより実現します。

################################################################################
# 高機能アクセス解析CGI Standard版(設定ファイル)
# Ver 3.0
# Copyright(C) futomi 2001
# http://www.futomi.com/
###############################################################################

#--------------------------------------------------------------------
#■イメージディレクトリのURL
# 最後に「/」を入れないでください。CGIファイルを専用のディレクトリ
# (cgi-bin等)に設置しなければいけないプロバイダーの場合には、ディ
# レクトリ「images」を設置した場所のURLを「http://」から記載してくだ
# さい。
#--------------------------------------------------------------------
$IMAGE_URL = './images';


#--------------------------------------------------------------------
#■棒グラフの100%における長さの指定
# 単位はピクセルです。
#--------------------------------------------------------------------
$GRAPHMAXLENGTH = 300;


#--------------------------------------------------------------------
#■アクセス制限機能
# 「acc.cgi」にアクセスしたときに、パスワード認証をさせるかどうかを
# 定義します。パスワード認証をする場合には、「1」、しない場合には
# 「0」を指定して下さい。パスワード認証をする場合には、$PASSWORD に
# パスワードを設定してください。
#--------------------------------------------------------------------
$AUTHFLAG = 1;

$PASSWORD = 'password';


#--------------------------------------------------------------------
#■ランキング表示順位設定
# 各レポートの表示するランキング順位を設定してください。
#--------------------------------------------------------------------
$ROW = 20;


#--------------------------------------------------------------------
#■ログのローテーション設定
# 通常は、1 または 2 に設定にして下さい。「しない」にすると、CGIのレ
# スポンスが非常に悪くなると同時に、プロバイダーでご契約の容量を圧迫
# してしまいます。非常にアクセスが多いサイトの場合には、「日ごとにロ
# ーテーション」を選択して下さい。
# 0:ローテーションしない
# 1:ログサイズでローテーション
# 2:日ごとにローテーション
#--------------------------------------------------------------------
$LOTATION = 1;


#--------------------------------------------------------------------
#■ログローテーションのログファイルサイズ
# 単位は バイト です。アクセスログが、指定のファイルサイズをこえた時
# に、現在のログをローテーションします。上の「ログのローテーション指
# 定」で「1:ログサイズでローテーション」を選択した場合にのみ有効です。
#--------------------------------------------------------------------
$LOTATION_SIZE = 307200;


#--------------------------------------------------------------------
#■過去アクセスログの保存設定
# アクセスログをローテーションする際に、古いログを削除するか、それと
# も別名で保存するかを設定します。
# 「保存する」設定にした場合、古いログは「access_log.YYYYMMDD」と別名
# 保存されます。(YYYY:西暦, MM:月, DD:日)
# 0:削除する
# 1:保存する
#--------------------------------------------------------------------
$LOTATION_SAVE = 1;


#--------------------------------------------------------------------
#■リンク元解析対象外URL設定
# リンク元解析において、自サイトからリンクされたデータを除外します。
# 除外する場合には、自サイトのURLを設定してください。
#
# 例:
# http://www.futomi.com と http://futomi.com を除外する場合
# @MY_SITE_URLs = ('http://www.futomi.com', 'http://futomi.com');
# と設定します。もし、設定しない場合には、
# @MY_SITE_URLs = ();
# としてください。
#--------------------------------------------------------------------
@MY_SITE_URLs = ();


#--------------------------------------------------------------------
#■解析対象から除外するホストの指定
# ここで指定したホストからのアクセスは、ログに出力されません。
# もし、ご自分がアクセスする際のホスト名がわかっている場合には、
# ここに指定しておくと、解析対象から外すことができます。
# IPアドレスでの指定、ホスト名での指定どちらでも可能です。
# またホスト名で指定した場合、後方一致ですのでドメインごと対象外にす
# ることも可能です。IPアドレスでの指定の場合には、逆に前方一致となり
# ます。
#
# 例:
# @REJECT_HOSTS = ('hoge.com', '10.1.1.');
# この場合、ドメインhoge.comからのアクセスはすべて対象外となります。
# またIPアドレスが 10.1.1.* からのアクセスもすべて対象外となります。
# 何も指定しない場合には、
# @REJECT_HOSTS = ();
# としてください。
#--------------------------------------------------------------------
@REJECT_HOSTS = ();


#--------------------------------------------------------------------
#■サイトトップURLとHTMLファイルのマッピング
# アクセスページのタイトルは、多くのサーバにおいて自動的に取得できま
# すが、URLに「~(チルダ)」が含まれている場合や、一部のサーバ環境で
# は自動的に取得できません。その場合には、ここにURLとCGIからのパスと
# のマッピングを定義して下さい。CGIからの相対パス、サーバルートから
# の絶対パスどちらでも結構です。
# ここでマッピングをマニュアル設定する場合には、
# $URL2PATH_FLAG = 1;
# としてから、%URL2PATH にマッピングを定義して下さい。
#
# 例:
# サイトのトップURL : http://www.hoge.com/~foo/
# acc.cgiからの相対パス : ../
# の場合、
#
# $URL2PATH_FLAG = 1;
# %URL2PATH = ('http://www.hoge.com/~foo/' => '../');
#
# とします。もしサーバルートからの絶対パスが分かっていれば、
#
# $URL2PATH_FLAG = 1;
# %URL2PATH = ('http://www.hoge.com/~foo/' => '/home/foo/');
#
# のように設定します。/home/ の部分は、サーバによって異なりますので、
# サービス事業者にお問い合わせください。
#
# 注意:
# 必ず、URLとパスの最後には、「/(スラッシュ)」を入れて下さい。
#--------------------------------------------------------------------
$URL2PATH_FLAG = 0;

%URL2PATH = ('http://www.hoge.com/~foo/' => '/home/foo/');



#####################################################################
#これ以降の設定は、通常変更する必要はありません。もしうまく動作しない
#場合に見直してください。
#####################################################################

#--------------------------------------------------------------------
#■アクセス解析用のイメージファイル
# このCGIからの相対パスで記述してください。
#--------------------------------------------------------------------
$LOGO = './acclogo.gif';


#--------------------------------------------------------------------
#■アクセス解析用のイメージファイル(J-PHONE専用)
# このCGIからの相対パスで記述してください。
#--------------------------------------------------------------------
$JLOGO = './acclogo.png';


#--------------------------------------------------------------------
#■アクセスログ
# このCGIからの相対パスで記述してください。
#--------------------------------------------------------------------
$LOG = './logs/access_log';


#--------------------------------------------------------------------
#■時差の調整
# 海外のサーバを利用されている場合、解析結果の時間が日本時間とはずれ
# ます。日本時間に調整するために、その時差を設定します。単位は、時間
# (hour)です。
# 国内のサーバを利用の場合には、「0」のままにして下さい。
# 例:9時間進める場合には、$TIMEDIFF = 9;
# 9時間遅らす場合には、$TIMEDIFF = -9;
#--------------------------------------------------------------------
$TIMEDIFF = 0;


#--------------------------------------------------------------------
#■ディレクトリインデックスファイル名の指定
# URIにファイル名要素が含まれておらず、ディレクトリに対してのアクセ
# スであった場合に、代わりに表示さえるファイルの名前を指定します。
# たとえば、URLが http://www.futomi.com/test/ の場合に、表示される
# HTMLが、「index.html」である場合には、
# @DIRECTORYINDEX = ('index.html');
# と指定します。ほとんどの場合、index.htmlとindex.htmがサーバ側で指定
# されていますので、
# @DIRECTORYINDEX = ('index.html', 'index.htm');
# としてください。
#--------------------------------------------------------------------
@DIRECTORYINDEX = ('index.html', 'index.htm');


#--------------------------------------------------------------------
#■このCGIのURLマニュアル設定
# 「acc.cgi」は、自分のURLを自動認識しますが、一部のサーバ環境におい
# ては正しく認識しない場合があります。その場合には、マニュアルで、
# 「acc.cgi」のURLを設定して下さい。
# 自動認識で正しく動作する場合には、
# MANUAL_THIS_URL = '';
# として下さい。
# 指定する場合には、http:// から正しく設定して下さい。
# 例: $MANUAL_CGIURL = 'http://www.hoge.com/cgi-bin/acc.cgi';
#--------------------------------------------------------------------
$MANUAL_CGIURL = '';


#--------------------------------------------------------------------
#これ以降、絶対に削除しないで下さい。
#--------------------------------------------------------------------
return 1;


 
■ ヘッダー・フッターの編集

解析結果のページに関しては、、「header.temp」と「footer.temp」ファイルを編集することによって、お好みのページにすることができます。ただし、スタイルシートが定義されておりますので、画面構成が崩れる可能性がありますのでご注意ください。また、著作権表示部分は削除禁止です。

 
■ 解析したいページの編集

解析したいページに、以下の内容を書き加えてください。

まず、前提として本CGIのロギング用CGI「acclog.cgi」のURLが

http://www.hoge.com/foo/acc/acclog.cgi

だとします。解析したいページの何処でも結構ですので、以下の内容を書き加えてください。

<SCRIPT Language="JavaScript">
<!--
document.write("<img src='
http://www.hoge.com/foo/acc/acclog.cgi?");
document.write("referrer="+document.referrer+"&");
document.write("width="+screen.width+"&");
document.write("height="+screen.height+"&");
document.write("color="+screen.colorDepth+"'>");
// -->
</SCRIPT>

http://www.hoge.com/foo/acc/acclog.cgi」の部分は、お使いのURLに必ず変更してください。ページの一番最後にも本CGIが組み込まれていますので、ご参考ください。

● i-mode、EZ 用のページの編集

i-mode、EZ 用のページではJavaScriptがつかえない関係上、記述内容がことなります。解析したいページのURLが、

http://www.hoge.com/foo/thispage.html

だとします。このページの何処でも結構ですので、以下の内容を書き加えてください。

<img src="http://www.hoge.com/foo/acc/acclog.cgi?url=http://www.hoge.com/foo/thispage.html">

 

● J-Sky 用のページの編集

J-Sky 用のページではIMGタグ内で指定する画像の拡張子が「.png」でないとリクエストすらしないため、「acclog.cgi」のファイル名を「acclog.png」に変更してください。

また、拡張子が「.png」では、CGIとして動作しませんので、acclog.cgi(acclog.png)を入れるディレクトリ内に、「.htaccess」を用意し、その中に、以下の1行を記載してください。

AddType application/x-httpd-cgi .cgi .png

解析したいページのURLが、

http://www.hoge.com/foo/thispage.html

だとします。このJ-PHONE用HTMLファイル内の何処でも結構ですので、以下の内容を書き加えてください。

<img src="http://www.hoge.com/foo/acc/acclog.png?url=http://www.hoge.com/foo/thispage.html">

 

 
■ 解析結果を見るには

「acc.cgi」をアクセスしていたければ、アクセス解析結果を見ることができます。

 
■ バージョンアップ方法

Ver 2.3、2.4 をお使いの方は、以下のファイルを差し替えてください。

  • acc.cgi
  • acclog.cgi
  • header.temp
  • langage.dat

Ver 2.2 以前のバージョンをお使いの場合には、設定ファイル「accconfig.cgi」を環境に合わせて設定した後、すべてのファイルを差し替えてください。

 
■ 制限事項
  • 本CGIは、リンク元、画面解像度、画面色深度を調査をするにあたり、JavaScriptを利用しております。したがって、携帯電話のようにJavaScriptがつかえないクライアント、もしくは、JavaScriptをOFFにしたブラウザーからアクセスがあった場合、そのリクエストについては、リンク元調査結果は反映されません。
  • 携帯電話用のページの場合、「携帯電話用のページの編集」で記載されているとおりに、ページを編集しておかないと、リクエストレポートが正しく反映されません。つまり、どのページにアクセスしたかが分かりません。
  • クライアントビデオメモリサイズレポートは、解像度より計算されたものです。従いまして、実際にパソコンに実装されている実メモリサイズとは異なります。
  • アクセスページのページタイトル取得は、本CGIを設置した同じサーバ上で公開されている必要があります。異なるサーバ上のページタイトルは取得できません。また、一部サーバ環境によっては、ページタイトルを取得できない場合があります。
  • アクセスページのタイトルを正しく取得できるためには、該当ページの<title>と</title>タグが1行で記述されている必要があります。もし複数行にわたって、タイトルが記述されている場合には、正しく取得できません。
  • Ver1.xからアクセスログフォーマットが大幅に変更されております。したがって、Ver1.xで生成されたログを解析することはできません。ただし、解析対象のHTMLファイルに記述していただく仕様は変更されておりませんので、CGIを置き換えていただくだけで、バージョンアップ可能です。
  • 検索キーワードの解析は、各検索エンジンのトップページからキーワード検索をかけた場合のみです。また、海外の検索エンジンの場合、日本語での検索は正しく解析できない可能性があります。

 

 
■ バージョンアップ履歴

【Ver2.4 → Ver3.0】 2001/12/02

  • 解析ページが、ブラウザーキャッシュされていた場合でも、再度解析タグを呼び出されカウントされるように機能アップした。 
  • リンク元 URL に 「&」 が含まれると、それ以降が無視されてしまうバグを修正した。それに伴い、検索キーワードが一部の検索エンジンで解析できなかった不具合が改善された。 
  • 検索エンジンからのキーワード解析において、altavista (海外) , google.co.jp を追加した。 
  • OS の解析で、Windows XP を新規に追加した。 
  • ブラウザー解析で、Mozilla と Netscape6 を区別するよう改善した。 
  • ブラウザーの解析で、WmniWeb を新規に追加した。 
  • その他、OS, ブラウザー解析において、解析率を向上させた。 

【Ver2.3 → Ver2.4】 2001/11/04

  • ログローテーションを日別にしている場合、存在しない「access_log」もリストボックスに表示されているバグを改修。
  • ホスト名が大文字の場合、小文字に変換して処理することとした。
  • SSLサーバでも動作可とした。
  • 一部の海外サーバでの文字化け対策を実施。
  • ブラウザー言語データ「language.dat」を更新。

【Ver2.2 → Ver2.3】 2001/09/26

  • 過去ログを選択しても月指定、日指定解析が正しく実行されなかったバグを修正。
  • 環境変数 HTTP_HOST にIPアドレスを設定するサーバにおいて、ホスト名を取得できなかったバグを修正。
  • Netscape6のバージョンを正しく取得できるように修正。

【Ver 2.1 → Ver 2.2】 2001/09/16

  • 解析対象から除外するホストの指定で、ホスト名をIPアドレスから逆引きしないサーバでは有効にならなかったため、スクリプトで逆引きするようにして、機能を実現した。
  • 自URLは、自動認識だったが、一部のサーバにおいて正しく認識されなかったため、マニュアル設定を設けた。

【Ver 2.0 → Ver 2.1】 2001/08/06

  • ログローテーションされる際に、ファイル名がローテーションした日付になるところが、19700101となってしまうバグを改修。

【Ver 1.4 → Ver 2.0】 2001/07/22

  • ログサイズ節約のため、アクセスログフォーマットを変更(Professional版と統一)。
  • EUCで作成されたHTMLのタイトルを文字化けしないように改善。
  • トクトク、interQで動作するように改善。
  • URLに「~(チルダ)」を含むサイトや、一部サーバ環境において、ページタイトルが取得できなかったが、マニュアル設定を設けることにより、ページタイトルを取得できるように改善。

【Ver 1.3 → Ver 1.4】 2001/04/22

  • 解析結果のルック&フィールを若干変更
  • グラフのイメージ表示の仕組みを改良
  • グラフイメージの100%における長さを指定できるようにした。
  • ブラウザー・プラットフォームレポートで、バージョンごとにもグラフを表示するようにした。
  • ログローテーション機能で過去ログ保存モードの場合、過去ログを選択して解析できるようにした。
  • ログローテーションサイズに対する現在のログのサイズの割合をグラフで表示するようにした。
  • クライアントビデオメモリーサイズ レポートの単位がメガバイトではなく、メガビットで計算されていたため、メガバイトで計算するよう修正

【Ver 1.2 → Ver 1.3】 2001/04/01

  • リクエストレポート(どのページにどれだけアクセスがあったかを見る項目)で、該当ページのタイトルを表示するように仕様変更。また、ハイパーリンクも追加。
  • URLがディレクトリ名で終わっておりHTMLファイル名の指定がない場合でも、正しくHTMLファイルを検索し、解析できるよう、ディレクトリインデックス機能を追加。
  • 日指定で解析すると、各レポートのアクセス数が1ページビュー多く表示されるバグを改修。
  • J-PHONE用ページにアクセスがあってもアクセスログがロギングできないというバグを改修。

Ver1.3 をリリースするにあたり、かなめさんに、J-Sky用ページのアクセス解析の試験にご協力いただきました。この場を借りて、御礼申し上げます。

【Ver 1.1 → Ver 1.2】 2001/03/14

  • 海外のサーバにも対応できるよう、時差調整機能を追加。
  • 解析結果が文字化けする場合があるため、それを解消。
  • クライアント画面解像度レポート追加。
  • クライアント画面色深度レポート追加。
  • クライアントビデオメモリーサイズレポート追加。
  • 検索キーワード解析対象に、ODN テレコムサーチBIGLOBEサーチISIZE WEB SEARCH を追加。

 

 


futomi's CGI Cafe