総合説明書


アクセス解析パッケージ - efStat

■もくじ

この説明書では efStat の概要やインストールについての説明をします。

■はじめに

このソフトウェアは【『できるだけ』リンクウェア】です。
【『できるだけ』リンクウェア】とは、貴方が本プログラムを使い始めて有用だと感じ使用し続ける場合に、貴方のウェブサイトから「有限工房」へ『できるだけ』リンクしていただくという契約のソフトウェアです。
堅苦しさ抜きに書きますと、イイと思ったらウチのページを宣伝してチョ☆、ということです(^^

『できるだけ』ですので、企業サイトに採用する場合など止むを得ない場合はリンク不要です。

プログラムの性格上、efStat の存在を明らかにする必要はありませんが、せめて「ここにはお世話になってます」みたいな感じで上手く誤魔化してリンクを張ってあげて下さい。
カウンタに<A>要素でリンクを張るという方法もよく見かけます。

このスクリプトは、CGI/SSI設置の知識がある程度ある方を対象にしています。
申し訳ありませんが、この説明書を読んでもチンプンカンプンだった方は使用をご遠慮下さい。

■古いefStatを新しいefStatに差し替える際のポイント

特に注意書き(!!caution!!.txt)などがなければ、基本的に:

  1. ログファイル・旧fstat.cgi,fcount.cgiのバックアップを取っておく。
    (後者は今までの設定内容を忘れないようにするため)
  2. efStatをインストールしたディレクトリに新しいefStatを全て上書きする
    (いったん中身を全て消してしまってからコピーするとなお良し)
  3. バックアップを取っておいたログファイルを元に戻す。
  4. 前バージョンの設定を新バージョンに移植する。
    (設定方法が変更されていたりするので、説明書と照らし合わせて注意しながら行うこと)

このようにして下さい。 つまり、中身を総入れ替えしてからログと設定を引っ越しさせます。
これが一番安全・確実な方法です。

■概要

「efStat」は perl で動作する「カウンタ兼アクセスログ記録スクリプト」と「ログ解析スクリプト」のパッケージです。
fcount.cgi がログ記録・カウンタ表示、 fstat.cgi がログ解析の役割を持っています。

efCount(fcount.cgi)の特徴

カウンターの機能とアクセスロガーの機能を併せ持っている

二つ別々に設置するよりも、一つにまとまっていれば、悩むのは一回で済みますよね?(ォィォィ)
これ一つを頑張って設置すれば、カウンタの設置で悩んだり、うざったい広告バナーが付くレンタルアクセス解析を使わなくて良くなります(?)

ページ毎にログを記録することができる

一つのスクリプトで複数のログファイルを同時に記録することが出来ます。

ページ毎にログを保存しておきますと、 efStat での解析の時に大変便利です。
(efStat にはページの順位を月間・週間・当日の期間でランキングする機能があります)

きめ細かな記録

efCount で記録できる情報は以下の通りです。
おおよそクライアントから取得できる情報は網羅しています。

記念番を踏んだ人にCGを強要したりするのはやめましょうネ(^^)

プロバイダを選ばない、SSI・CGI両用の柔軟設計

CGI として動かす場合は<IMG>タグで呼び出すタイプのグラフィック表示カウンタとして。
SSI として動かす場合は<!--include virtual="~"-->形式で呼び出すテキスト表示のカウンタとして動作します。

ただし、efStat はCGI 専用なので、efCountをSSI モードで使用する場合は、プロバイダがSSI/CGI 両方に対応している必要があります。

<SSIモードの特徴>
<CGIモードの特徴>

同じ人が再読込してもカウントしない

キリ番を取りたがる人、イタズラをする人に少しだけ効果があります。

直前の訪問者のIPアドレスと、最新の訪問者のIPアドレスを比較することによって機能を実現しています。
クッキーを調べるタイプに比べると遙かにスマートな方法です。

ただし、最後に記録された IP アドレスと比較していますので、IP がコロコロ変わったりするプロキシ(大学などに多い)には効果がありません。(ただし、そういう所は殆どありません)

アクセスが何日無かろうと、カウント値が反映される

殆どのアクセスカウンタは「前回ログ記録日とログ記録日を比較し、日にちが違っていれば単純に一日分過去にずらす」という仕組みですが、このカウンタでは真面目に前回記録日時からの経過時間を計算しています。

3日ぶりにアクセスがあっても、3年ぶりにアクセスがあっても、その分だけ正確に日数がずれます。
当たり前の事だと笑うかも知れませんが、実は案外珍しいんですよ(笑)

その他特徴

efStat(fstat.cgi)の特徴

強力なログ分析・解析機能

無料でありながら、同種のシェアウェア・サービスに全く見劣りしません。
以下の項目を表示できます。

全て・本日・昨日と範囲を指定して表示できます

非常に簡易的ではありますが、解析の対象範囲を指定できます。
例えば時間別集計などは通常、「のべ来客人数」を表した物なので、「昨日のお昼頃は何人来たか」という情報は見えてきませんが、範囲指定を行うことによりそういった情報を知ることができるようになります。 (それなりに大きいログが必要)

練られたユーザ・インターフェース

一括表示モード(サイト全体の結果を表示)とログ単体表示モードを用意しています。
一括表示モードではメニュー画面を使った手軽な操作で使用できます。
ログ単体表示モードはブラウザのURL入力欄から直接操作することで軽快に使用できます。
日々の軽いチェックに持ってこい。 ブックマーク(お気に入り)から手軽に呼び出せます。

■動作環境

UNIX系OSなら多分なんでも行けると思います。
厳密には truncate 関数と flock 関数をサポートしたPerl 5以上が必要です。
動作確認は FreeBSD 2.2.7R + Apache/1.2.6 + jperl5.004_04-980303 にて行いました。

2016/08/12追記:「エックスサーバ(Perl5.8.8)」で動作確認しました。
2016/08/15追記:「さくらのレンタルサーバ(Perl5.14.4)」で動作確認しました。

Windows系/MacOS系とPerlの組み合わせでも動作する筈ですが、サポート外とさせていただきます。
私の元にはUNIX以外のOS環境がないので動作確認ができないのです。
少なくとも Win9x + MS IIS + ActivePerl の組み合わせでは修正なしには動きません。

CGI、又はSSIが使用可能になっているかどうかもご確認下さい。
プロバイダ側サーバに Perl がインストールされているかもご確認下さい。

efCount(カウンタ部)はSSI , CGIのどちらでも使えるように作られていますが、efStat(ログ解析部)はCGIでしか使えません。
つまり、efCountを SSI として使う場合は、サーバがSSI だけでなく、 CGI にも対応している必要があります。

■導入

☆解凍☆

fstat.lzh を解凍します。
こんな感じでファイルが詰まっているはずです。

<efStatディレクトリ> [プログラム本体や、周辺ツールを置きます]
fstat.cgi efStat - ログ表示部
fcount.cgi efCount - カウンタ部
sample_cgi.html efCount 導入例(CGI モード)
sample_ssi.html efCount 導入例(SSI モード)
<libディレクトリ> [プログラムの動作に必要なファイルを格納しています]
start.pl efStat 初期設定ルーチン
main.pl efStat ログ解析ルーチン
func.pl efStat 共有関数ファイル
menu.pl efStat メニュー用HTML
jacode.pl 日本語コード変換ライブラリ
gifcat.pl GIF 画像連結ライブラリ
d.gif ダミー画像 (efCcount が使います)
e.gif / 0.gif / 1.gif エラー表示用画像 (efCount が使います)
b.gif グラフ用画像 (efStat が使います)
w.jpg 壁紙用画像 (efStat が使います)
<tableディレクトリ> [各種コードを変換するテーブルを格納しています]
agent.tbl ブラウザ変換用テーブル
cctld.tbl ccTLD変換用テーブル
gtld.tbl gTLD変換用テーブル
jpdomain.tbl JPドメイン変換用テーブル
<logディレクトリ> [ログファイルを格納します]
index.log サンプルのログ。これで練習するといいでしょう
<docディレクトリ> [説明書が格納されています]
readme.html 総合説明書。これ
fcount.html efCount 取扱説明書
fstat.html efStat 取扱説明書
history_fc.html efCount バージョンアップ履歴
history_fs.html efStat バージョンアップ履歴
makehtml.html fcount.cgi を呼び出すためのタグを生成するツール。
タグがややこしすぎてワカラン! という人はどうぞ。
format.csv ログの仕様。 CSV形式に対応した表計算ソフトでご覧下さい。
default.css 説明書の表示スタイルを定義したファイル(あってもなくても無害)
fstat.gif Analyzed by efStatバナーです。宜しければお使い下さい。
<imageディレクトリ> [カウンタ用GIFファイルを格納します]
<fuksan> サンプル。 白地に黒字の丸っこい書体。
白い背景のページに馴染みます。
©不可思議絵の具
<fuksan_> サンプル。 fuksanを白黒反転させました。
黒い背景のページに馴染みます。
©不可思議絵の具
※その他にも皆さんから特別に作っていただいたサンプルがありますが、そちらは「有限工房」にて入手して下さい。

これらのファイルが出てきましたか?
ちょっと説明書が多いですけど、中身はほとんど同じです。
CGI 設置を経験済みの方なら、いつも CGI を設置しているのと同じ要領で行けますので挫けないで下さい(^^;

☆パーミッションの設定・ディレクトリ構成☆

出てきたファイルをサーバ側の任意のディレクトリ(※)へFTPアップロードします。
そのとき、ディレクトリ名は fstat が適当でしょう。
(※…WindowsやMacで言うところの「フォルダ」です。 以後、UNIXでの呼び方に合わせ「ディレクトリ」とします)

プロバイダから「CGI スクリプトは cgi-bin 以下に置きなさい」など、スクリプトの置き場所を指定されているときは、そのディレクトリの下に fstat ディレクトリを作って下さい。

最終的には、次の様になるようにします。

<標準のディレクトリ構成>
                                      (パーミッション)
/cgi-bin                              (705) drwx---r-x  [CGIスクリプト格納ディレクトリ]
   |--/fstat                          (705) drwx---r-x  [efStat格納ディレクトリ]
         |-- fcount.cgi               (705) -rwx---r-x  (カウンタ部)
         |-- fstat.cgi                (705) -rwx---r-x  (ログ表示部)
         |-- /lib                     (705) drwx---r-x  [ライブラリ用ディレクトリ]
         |     |-- start.pl
         |     |-- func.pl
         |     |-- main.pl
         |     |-- menu.pl
         |     |-- jacode.pl
         |     |-- gifcat.pl
         |     |-- e.gif
         |     |-- 0.gif
         |     |-- 1.gif
         |     |-- d.gif
         |     |-- w.jpg
         |     |-- b.gif
         |     +-- /table
         |            |-- agent.tbl
         |            |-- cctld.tbl
         |            |-- gtld.tbl
         |            +-- jpdomain.tbl
         |
         |-- /log                     (705) drwx---r-x  [ログ用ディレクトリ]
         |     |-- index.log          (606) -rw----rw-  (ログファイル(テスト用))
         |     |       :
         |
         +-- /image                   (705) drwx---r-x  [カウンタ画像用ディレクトリ]
               |-- /fuksan            (705) drwx---r-x  [フォントごとのディレクトリ]
               |      |-- 0fuksan.gif
               |      |       :
               |      +-- 9fuksan.gif
               |
               |-- /fuksan_
               |      :

()内はパーミッションの数値
備考

パーミッションを表記していない物に関しては殆どのサーバでデフォルトの 644(rw-r--r--) でOKです。
セキュリティの観点から言えば 604(rw----r--)にしておけば言うこと無いです。

なお、サーバによってはパーミッションが 705では動作しないところがあります。
その場合は 705(rwx---r-x) を 755(rwxr-xr-x)に読み替えて下さい。

ミルトクラブなど、CGI が設置したユーザの権限で動作するサーバに関しては
705(rwx---r-x) を 700(rwx------)に
606(-rw----rw-) を 600(rw-------)に
読み替えて下さい。

その他、詳しい情報については入会しているプロバイダのHowToページなどを参照下さい。

本プログラムは文字コード「UTF-8 BOM無し」を想定しており、誤りがあると正常動作しません。

ファイルを編集する場合は文字コードを「UTF-8 BOM無し」として保存することを忘れないでください。
特にWindowsの『メモ帳』で修正すると「BOM有り」になってしまうので他のエディタをお使いください。

画像ファイル(*.gif, *.jpg)以外は「アスキーモード」で「文字コードを変換せず」又は「UTF-8 BOM無しに変換」と指定して転送して下さい。
普通通りに転送してしまうと大抵「バイナリモード」で転送されてしまい、思わぬ誤動作の原因になります。
アスキーモードでの転送の仕方・パーミッションの変更の仕方は各 ftp クライアントの説明書を参照下さい。

■プログラム側の設定・使用法

冗長になりますので説明書を分けました。
設定の仕方、使用法などについては各プログラム説明書をご覧下さい。

カウンタ部 efCount については fcount.html をご覧下さい。
ログ表示部 efStat については fstat.html をご覧下さい。

■宣言

このプログラムはフリーソフトです。
著作権は放棄しません。 プログラム中のコピーライト表記を削除したり、改変しないで下さい。
(画面のレイアウトやメッセージを変更した程度で著作者名を変えられると寂しいって程度です)
大幅な改造を施した場合は問題ありません。
その辺は常識的なさじ加減ということで…(^_^;

自由に改造して使用して下さい。  改造したものを再配布する事も制限しません。
efCount のログ形式を利用した互換品を開発することも問題ありません。
ただし、改造版のサポートは改造した方が各自責任を持って行って下さい。

オリジナル版の第三者による配布は禁止します。
これは、普及に伴いバージョン管理が困難になってきたためです。
CD-ROMなど、私のページ以外の場所で掲載する場合は必ずご一報下さい。

商用・非商用にかかわらずご利用いただけます。
でも、「はじめに」で書いたとおり「リンクウェア」ですので、極力リンクを貼っていただきたいです。

このプログラムを用いた事による一切の損害について、作者は責任を負わないものとします。

■多謝

本プログラムを構成しているファイルのうち、

に著作権があります。
これらの有用なプログラムを開発して下さった方々に深く感謝いたします。

■参考資料(著者敬称略)

■最後に

本ソフトはフリーソフトではありますが、沢山の労力と時間を割いて作られております。
だからといって物質的な見返りはこれっぽっちも期待しておりませんが、皆さんに使ってもらいたい、沢山の反響が欲しい、という自己満足がプログラム製作の原動力になっております。
宣言にもありますとおり、極力私のサイトへリンクをお願いします。 (お客が増える > 反響も増える > サイトが盛り上がる > 私嬉しい☆)

もしよろしければ不可思議絵の具まで「efStat使ってるよ~」とメールでも掲示板でも何でも構いませんので教えてあげて下さい。
返事をお返し出来ないかもしれませんが、送っていただいたメールには全て目を通しております。
そんな皆様の温かいご声援メールは私の元気の源になっています。 ありがとうございます(^^)
ただ、質問は掲示板にお願いします。 近頃捌ききれないので…(^_^;


©1998-2016 不可思議絵の具