バグ情報
呼出し直後、すぐにまた呼び出された場合、呼び出し元が同じページでも記録され、結果として2重登録される場合があります。
あと、バグと言うより仕様なのですが、HTMLの呼び出し位置やサーバーの状態などによって記録されない場合があります。
内容とはじめに
アクセスログを取るCGIは数ありますが、このソフトの売りはココ!
1.ライブラリ形式のファイルも付属しているのでCGIファイル上やCGIやSSIはディレクトリを超えて呼び出しはできないのになぜかPerlのrequire命令だけは呼び出せるという独自ドメインが貰えて年会費が福沢諭吉先生の手間をわずらわせなくてもいいという利点がなければこんなレンタルサーバーとっくに退会してやるぜ畜生ぅ!という貧乏人の方でもアクセスログが取れる!
2.ダウンロードするファイルにもHTMLファイルと同様にアクセスログが取れる!
3.[new!] <img>タグからも呼び出しが可能!
4.出力形式はCSV形式だ!Excel等を利用して自分で好きなように解析ができる!
5.当然同じページへの連続再読込み分はカウントしないぞ!(※但し2人以上が同時にアクセスした場合は対応できません)
6.Counterpagesと連携させることでデータを編集してページ別アクセスランキングの機能を取り付けることができます。
なお解析機能はこのソフト自身には殆ど備えていません。
別にCGIファイルをあんまり使わない方や変にサーバー利用に制限が掛かるレンタルサーバーを使っていない方などは、個人的にこちらとかの高機能なやつがおすすめです。
例によって他人様用には作ってないしここでもあんまり細かい解説を書かないけどプログラム短いからいいよね(^^;
なおアクセスログを取るのは以下の環境データ&時間です。
年,月,日,時,分,秒,
DOCUMENT_URI (ファイルの仮想パスをURL形式で示します※1),
HTTP_USER_AGENT (何のブラウザでアクセスされたか?),
REMOTE_ADDR (どのIPアドレスからアクセスされたか?),
REQUEST_URI (ブラウザはどのディレクトリ・ファイル名をどうアクセスしようとしたのか?),
SCRIPT_NAME (CGIスクリプトでもパス名をURL形式で示します※2),
REMOTE_HOST (どのホスト名からアクセスされたか?※3),
HTTP_REFERER (どこのリンク先から飛んで来たか?),
HTTP_REFERER (どこのリンク先から飛んで来たか?検索エンジンから飛んで来た場合などに簡易漢字変換をします※4)
※1 <a href>から呼び出された場合指定先のファイル名が入ります。
またCGIファイルから呼び出された場合は空になります。
※2 <a href>から呼び出された場合
Log_On! のファイル名が入ります。
※3 IPアドレスを表示したり空の場合もあります。
※4 変換率はあまり良くありません(T_T)
|
|
更新履歴
2004年4月28日 (ver 1.013')
入れ忘れていた バージョンアップしたreaded_page.cgi を入れました。
2004年4月23日 (ver 1.013)
HTTP_REFERERを漢字変換した際に改行が混ざることがあるバグを修正。
2003年2月21日 (ver 1.012)
ファイル復元時のバグ修正他。
2003年2月17日 (ver 1.011)
<img>タグからの呼び出しに対応他。
2002年8月4日 (ver 1.010)
バックアップの作成&古くなったデータの除去を開始する時間を指定できるようにした。
バックアップの処理軽減化他。
2002年4月13日 (ver 1.009)
ダウンロード時に古すぎるログを削除する処理を省いて高速化。
HTTP_REFERERの簡易文字化け修正強化(但し要jcode.pl)。
2001年9月27日 (ver 1.008)
設置ディレクトリの位置によっては実行されないバグを除去。
ダウンロード時にファイルの名前が変わってしまうバグを除去。
ログが破損された際にバックアップログから簡易復活。
2001年7月22日 (ver1.007)
HTTP_USER_AGENTにカンマが含まれている場合、ピリオドに変更。
REMOTE_HOSTの検索率を強化。
2001年7月11日 (ver1.006)
出力データの1行目の紹介文書き忘れ修正、及びHTTP_REFERER(簡易漢字変換)を行の最後に持ってくるなどのファイル構成一部変更。
#解析プログラムとか組まれている方いらっしゃったら度々並び順変えてすみませぬ。
2001年6月21日 (ver1.005)
HTTP_REFERERの簡易文字化け修正の他にオリジナルのHTTP_REFERERもログファイルに書き込むようにするなどファイル構成の一部変更など。
2001年6月20日 (ver1.004)
ダウンロードファイル版もつける。
2001年6月20日 (ver1.003)
とりあえず公開。
|
動作環境
Perlが動作してSSIも動くwebサーバー。
インストールとご利用方法
- ダウンロードしたファイルを解凍して適当なところに解凍する
- Log_On!のコードを適当にサイトにあわせて修正する。
readed_page.cgi
readed_page.pl
readed_page_lib.pl
|
まず、( readed_page_lib.pl を除く)冒頭部の #!/usr/bin/perl
をサーバーの設定に合わせて変更してください。
初期化のロードファイル部分にある
local($thisfile) = "./check/log_on/";
ルートディレクトリから見てどのディレクトリにこのファイル自体があるのか?
local($datafile) = "./readed_page.dat";
#ロードファイル部分
local($backupfile) = "./readed_page.bak";
#バックアップファイル保存先
local($backup_starthour) = 5;
#バックアップ&メインデータ破損時の復旧&古くなったデータの除去を開始する時間
local($backup_endhour) = 22;
#$backup_starthour以降もしばらくアクセスされなかった場合、とりあえずサーバー負担を避ける為アクセスされてもバックアップ等の処理を翌日へ持ち込み始める時間
local($checked_max_day) = 4;
#ログを保存する日数
local($outputimagefile) = "./logon_banner.gif";
#イメージファイルとして呼び出した際に表示する画像ファイル
(対応しているのはgif形式のみです)
等を各自の環境に合わせて書き直してください。初期値は僕自身の設定です。
たとえば少し複雑な
root
|
|--test
| |--readed_page
| | | readed_page.pl
| | | readed_page.bak
| |
| | readed_page.dat
| | その他表示するHTMLファイル
というディレクトリ構成の場合でしたら
local($thisfile) = "./test/readed_page/";
local($datafile) = "../readed_page.dat";
(↑ここのピリオドは2つです。)
local($backupfile) = "./readed_page.bak";
といった具合に修正してください。
#ちなみに"./"(ピリオドは1つです)は省略可能です。
なお、iswebとかプロバイダーが提供するレンタルサーバーによっては例えば
http://isweb39.infoseek.co.jp/play/testrion/
とかですと、最初の設定は
local($thisfile) = "./play/testrion/cgi-bin/ad_changer/";
のような感じで適当にディレクトリ位置をいじらないといけない場合があります。Can't open
data file エラーが存在しないはずのディレクトリを勝手に示していて意味不明に動かない場合時などは適当にいじってみてください。
|
readed_page.bak
readed_page.dat
|
空にして何も書かないで下さい。
※初期値は単なるサンプルです。 |
load_c01f.pl
|
CGIやSSIはディレクトリ超えて呼び出しはできないのになぜかPerlのrequire命令だけは呼び出せるといったレンタルサーバーのみ使用します。
まず、( readed_page_lib.pl を除く)冒頭部の #!/usr/bin/perl
をサーバーの設定に合わせて変更してください。
require '../readed_page_lib.pl';
のところを設置先のディレクトリ階層に合わせて修正してください。
|
jcode.pl
(圧縮ファイルには含まれていません)
|
なくても動きます。
が、これを別途適当なサイトからダウンロードしてLog_On!に組み込むことで漢字変換能力がもうちょいマシになります。
なお標準の設定では『使用する』になっていますので、利用しない方はお手数ですが
local($jcodepl_call) = 1;
local($jcodepl_folder) = "./jcode.pl";
これを local($jcodepl_call) = 0; に指定してください。$jcodepl_folderはそのままでもOKです!
|
logon_banner.gif |
<img>タグから呼び出した場合に、デフォルトで表示されるバナーです。
宜しければ、こちらへのリンクも絡めて表示していただきますと僕は嬉しいです(希望であって義務ではありません)。 |
readme.html |
大体ココと同じ説明ファイル。
使用しません。 |
icon_log_on.gif |
readme.html で用いるアイコンデータ
使用しません。 |
- SSIやCGIのrequireコードなどをこのプログラムを実行できるように調べたいwebサイトを書き直す。
Dreamweaverユーザーならサイト一斉置換機能等を使ってやると楽かも。
<img>タグから呼び出す場合で、サーバーがSSI対応なら <!--#echo var='DOCUMENT_URI'-->
を使うのもお勧めです。
- ログファイル・ログファイルバックアップ(前日の12時までのデータが残しています)用の保存先空きファイルをつくる。
初期値はただのサンプルなので、削除してください。
- webにあげる。
- 各ファイル属性を変える。保存先のファイルなどにも忘れずに!
サーバーによって違う所もあるかもしれませんが、多分これでいけると思います。
readed_page.cgi
readed_page.pl
load_c01f.pl
|
705 (使用しないコマンドの場合は604) |
readed_page.bak
readed_page.dat
|
606 |
その他 |
604 |
- 動作チェックしてみて動作がおかしかったら、2からもう一度見直す。
使い方
- 調べたいページのページのどこかに
HTMLなら
<!-- #exec cmd="readed_page.pl" -->
CGIなら
require '../readed_page_lib.pl';
&readed_page();
の一文を(ディレクトリ位置はそれぞれ変えて)どこかに加えることでこのプログラムを呼び出すことができます。
- ダウンロードファイルの場合、
<a href="../../readed_page.cgi
?write=/tools/log_on/log_on.lzh
&load=http://kuze.tsukaeru.jp/tools/log_on/log_on.lzh">
※長いので見やすいように改行していますが、別に改行しなくてもOKです。念の為。
-
- ../../readed_page.cgi
- ->HTMLの文法に従ってLog_on!本体を呼び出します。
呼び出し元からreaded_page.cgiまでの相対パスで指定してください。
- ?write=/tools/log_on/log_on.lzh
- ->Log_on!からこのファイルをどのディレクトリにあるファイルとして記録するか?
どう書いても問題なしですが、推奨は他の出力結果とデータが揃うようにreaded_page.cgi からロードファイルまでの相対パスを指定することです。
- &load=http://kuze.tsukaeru.jp/tools/log_on/log_on.lzh"
- ->呼び出すファイルがどこにあるのか?
http://からすべてフルパスで指定してください。
- <img>から呼び出す場合は、
<img src="/check/log_on/readed_page.cgi
?write=
/tools/log_on/index.shtml
" width="44" height="19" alt="Analyzed by Log_on!">
※長いので見やすいように改行していますが、別に改行しなくてもOKです。念の為。
-
- /check/log_on/readed_page.cgi
- ->HTMLの文法に従ってLog_on!本体を呼び出します。
呼び出し元からreaded_page.cgiまでの相対パスで指定してください。
- ?write=/tools/log_on/log_on.lzh"
- ->Log_on!からこのファイルをどのディレクトリにあるファイルとして記録するか?
どう書いても問題なしですが、推奨は他の出力結果とデータが揃うようにreaded_page.cgi からロードファイルまでの相対パスを指定することです。
といった具合にアンカー文を修正してください。
- すると readed_page.pl ・ readed_page_lib.pl ・ readed_page.cgi の頭に書いた位置にて自動的にCSV形式でログを出力しますのでそのデータは煮るなり焼くなり好きにしてください。
- CGIやSSIはディレクトリを超えて呼び出しはできないのになぜかPerlのrequire命令だけは呼び出せるといったレンタルサーバーをお使いの方は付属の
load_b01f.pl を Log_on! ファイルのあるディレクトリからのディレクトリ階層の差にあわせて改造してセットして下さい。
アンインストール方法
- Log_On!を本体部分およびログファイルを削除する。
- このプログラムを呼び出さないように関係するアンカー文やSSI、CGIのrequireコードなどを取り除く。
#Dreamweaverユーザーならサイト一斉置換機能等を使ってやると楽かも
- webサーバーにあげる、もしくは消す。
- 動作チェックしてみて動作がおかしかったら2からもう一度見直す。
著作権について
「Log_on!」についての一切の著作権は久世浩史にあります。
でも再配布は自由にやっちゃってください>でも一言いってくれると嬉しいな。
プログラムの改造は一目見てわからないぐらいまでいじってあったらOKです。
重要:このソフトを使用する事における一切の責任
このソフトを使用する事によっていかなる損害も久世浩史は補償しません。ご利用の際は全てを覚悟の上でお願いします。
#誠に身勝手ですが、ソフト中にバグがありましたら報告をしてくれると嬉しいです。
|