最終更新日:2002/09/25
大変お待たせしました。Ver2.0xです。バージョン番号から「β」をはずしました。自分では一応完成版のつもりです。いくつかバグを直しましたが、まだ問題は残っているかもしれません。特に最大解析件数に関しましては、Ver1.0xとさほど違いが無いとのご指摘を受けております。
Ver.1.01はアクセス記録ファイルが一つだけであったため、処理速度の維持とHP容量の制限を考慮してセッション数1000件ないし2000件を上限としていました。このため一日の平均ヒット数が数百ページビューに及ぶサイトでは、充分な記録集計ができないという欠点がありましたが、本バージョンでは一日ごとに記録ファイルを切り替えることで少なくとも記録に関しては上限問題をクリアしたつもりです。指定期間を経た記録ファイルを自動削除することで、HP容量制限にも対応しています。前日の記録ファイルをセッション単位でまとめあげ、ファイルサイズを小さくできます。sendmailが使用できる環境では、前日の記録ファイルを添付して指定メールアドレスに自動発信することもできます。
Ver.2.0xの記録ファイル形式は、Ver.1.xxと互換ですが、ファイル名の命名規則がVer.1.xxと異なります。CGIファイル名もイメージタグ書式もVer.1.xxと同じですので、基本的には、Ver.1.xxのスクリプトファイルをVer.2.0xのもので置き換えるだけで移行できます。(※ 記録ファイルを日別に分割し、Ver2.xxの命名規則でファイル名をつければ、記録ファイルも再利用できます。)
以下のファイルが必要になります。設定の仕方は後述します。 ピンク色のファイル名が新たに加わったファイルです。 灰色のファイル名は削除されたファイルです。この他にいくつかの標準ライブラリファイルが必要になります。(ディレクトリ構成の表を参照してください。)
ファイル名 |
内容 | パーミッション |
accdata/ |
記録ディレクトリ | 707 |
access.csv | Ver1.x 記録データ(2.xでは使用しません) | --- |
lock2.dat | ロックファイル(記録データへの多重書込みを防止するためのファイル) | 606 |
index.html | ダミーHTML(ディレクトリの中身を他人に見られないため) | 604 |
access/ |
実行ディレクトリ | 705 |
jcode.pl | Ver1.x 日本語コード変換ルーチン(2.xでは使用しません) | 604 |
config.pl | Ver1.x 各種オプション設定ファイル(2.xでは使用しません) | --- |
accimg.cgi | 記録(&ダミーイメージ出力)CGI | 705 |
accview.cgi | 記録集計表示CGI | 705 |
accgate.cgi | 集計期間指定、集計表示項目設定およびパスワード入力CGI | 705 |
jumper.cgi | 記録集計表示CGIからリンク元にジャンプするためのCGI | 705 |
configA.pl | アクセス記録時の各種オプション設定ファイル(自動アップデート時刻の設定などは、この中にあります) | 604 |
configB.pl | 記録集計表示時および自動アップデート時の各種オプション設定ファイル(パスワードの設定などは、この中にあります) | 604 |
access.pl | 記録ルーチン | 604 |
accviewsub.pl | HTML&パスワード関連ルーチン | 604 |
index.html | ダミーHTML(ディレクトリの中身を他人に見られないため) | 604 |
bar1.gif | 記録表示CGI用棒グラフ(横)画像(サンプル) ......Ver1.xx同様、デフォルト設定では使用しません | 604 |
bar1v.gif | 記録表示CGI用棒グラフ(縦)画像(サンプル) ......Ver1.xx同様、デフォルト設定では使用しません | 604 |
圧縮ファイルを解凍すると、以下のディレクトリ構造が出来るはずです。Ver.1.xxのディレクトリ構造と同じですので、設置する際ディレクトリ構造を変えていない場合は、FTPソフトを使って、この構成のままサーバーにアップロードするようにしてください。古い同名のファイルに上書きされますが、問題ないはずです。(ただし、念のためVer.1.xx自体は、バックアップしておくことをお奨めします。)
(Ver.1.xxを設置する際ディレクトリ構造を変えている場合でも、いったんこのディレクトリ構造のままアップロードすることをお薦めします。動作確認後、ディレクトリ構成を変え、「configA.pl」および「configB.pl」の該当箇所を書き換えてください。)
cgi-bin(ディレクトリ) | |----accdata(ディレクトリ) | | | |----index.html | | | |----lock2.dat | | |----access(ディレクトリ) | | | |----access.pl | | | |----accgate.cgi | | | |----accimg.cgi | | | |----accupdate.pl | | | |----accview.cgi | | | |----accviewsub.pl | | | |----bar1.gif | | | |----bar1v.gif | | | |----configA.pl | | | |----configB.pl | | | |----index.html | | | |----jumper.cgi | | |----lib(ディレクトリ※) | |----Jcode.pm | | |----Jcode(ディレクトリ) | | | |----Constants.pm | | | |----H2Z.pm | | | |----Tr.pm | | | |----Unicode.pm | | | | | |----Unicode(ディレクトリ) | | | |----Constants.pm | | | |----NoXS.pm | | |----MIME(ディレクトリ) | |----Base64.pm※「lib」ディレクトリ以下は、CPANで配布されている標準モジュールです。既に導入されているサーバーの場合は、 「lib」ディレクトリ以下のアップロードは不要です。
まず、現在動いているVer.1.xxのスクリプトおよび記録データをディレクトリ名を変えるとかディレクトリごとコピーをとるなどしてバックアップしておくことをお奨めします。サーバーによってはうまく動かない場合もありますし、設置ミスもありえますから。特に記録データ「access.csv」はバックアップしておいたほうが良いでしょう。
ERROR:指定期間(20XX年X月X日までのX日間)のアクセス記録ファイルを読み込めません。
※注: 一行目のperlのパスについて:
libディレクトリを使用する場合は、一行目のperlのパスには、以下の例のように「-I../lib」をつけるようにして下さい。
例: #!/usr/local/bin/perl -I../lib #!/usr/bin/perl -I../lib
基本的に、Perlのパス以外は設定不要のはずですが、お好みに合わせ、多少の設定が比較的楽に変更できます。Ver.1.xxでは、主な設定は全て 「config.pl」に入っていましたが、本バージョンでは「configA.pl」・「configB.pl」の二つのファイルに分かれました。メモ帳(Notepad.exe) などのテキストエディタで必要な箇所を編集して下さい。編集が可能な箇所は、ファイルの中に書いてあります。
やりかたは基本的にVer.1.xxと同じです。方法1〜方法3を使用している場合は、まったく同じですので、特に改造の必要はありません。
例) #!/usr/local/bin/perl …(各種処理)… ##### ヘッダ表示(一例) print "Content-type: text/html\n\n"; print <<"_EOL_"; <html lang="ja-JP"> <head><title>$title</title></head> <body> _EOL_ #### アクセス集計ファイル更新タグ表示 my $asRef = $ENV{'HTTP_REFERER'}; print <<"_EOL_"; <img SRC="http://www02.so-net.ne.jp/~organ/suga-cgi/access.pro/cgi-bin/access/accimg.cgi?id=BBS&img=1&ref=$asRef" BORDER=0 height=1 width=1> _EOL_
赤字が、リンク元の記録をとる処理です。CGIから呼び出す場合は、JavaScriptなしで、リンク元が記録できます。
緑字が記録される単語です。適宜変更してください。
Ver.1.xxとは記録ファイル名の命名規則が異なるだけなので、日別にファイルを分け、Ver.2.xxの命名規則でファイル名を付け直せば、Ver.1.xxの記録ファイルをVer.2.xxで読み込めるようになります。