efCount取扱説明書


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

■もくじ

この説明書では訪問者のカウント・アクセスログの記録を担当する efCount について説明します。

■プログラム側の設定

プログラム側で設定すべきことは、

となっていて、SSI として動かす場合とCGI として動かす場合とで設定すべき項目が違います。
SSI として設置する場合とCGI で設置する場合とで2つのパターンを用意しましたので、プロバイダに合わせて読み進めて下さい。
それでは、 fcount.cgi をテキストエディタで開いて下さい。

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

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

FTPアップロードの際は「アスキーモード」で「文字コードを変換せず」又は「UTF-8 BOM無しに変換」と指定してください。
FFFTPなど文字コード変換機能のあるFTPクライアントで特にご注意ください。

共通の設定項目

ここは SSI/CGI に関係なく、必ず設定しなければならない部分です。

perl のパス

fcount.cgi の一行目のperl へのパスををお使いのプロバイダに合わせて書き換えます。
もし、perl のパスが /usr/bin/perl だったら、

#!/usr/bin/perl

と書き換えて下さい。 頭の #! は消してはいけません。

動作モード

SSI として動作させるなら 1, CGI として動作させるなら 0(数字のゼロ) を指定します。
大概の方は 0 を指定することになると思います。

ログファイルを格納したディレクトリ

ログファイルを格納したディレクトリの名前を入力します。 (デフォルトは log )
(※仕様変更しました。 今までパスを指定していた方はご注意下さい!)

他人にブラウザからログを直接読まれたくないという人はここを変更します。
(ただし、ログ用ディレクトリは efStat をインストールしたディレクトリの中(配下)になければなりません)
特別な事情がなければ変更せずにお使い下さい。

readme.html の通りにインストールしたのなら変更しないで下さい。

アクセスログ最大保存数

無理な値を指定すると過負荷でサーバを停止させてしまう危険性があります。
注意して設定して下さい。

アクセスログを何件分保存するか指定します。
この数を超えた分のログは古い順からところてん式に押し出され、消えてゆきます。

理論上の制限はありませんが、でかい数にしてサーバが壊れると怒られてしまいますし、ログの表示にとてつもなく時間が掛かるようになってしまいますので、程良い数にしましょう(^_^;

デフォルトは300です。 これはうちのページの場合の設定値なんですが、来客数が一日100件くらいの規模のページならこれでも余裕でしょう。
おすすめは300~500程度です。

どんなに多くても3000程度にして下さい。 それ以上は安定動作を保証できません。
これ以上増やすとログの取りこぼしやログの破損の危険があります。
最悪の場合サーバをクラッシュさせてしまうかも知れません。

詳しくはtips / ログ最大保存数の限界値を参照下さい。

再読み込み防止機構を(IPチェック)利用するか

再読み込み防止機構とは、訪問者のIPアドレスと、ログに記録された前回の訪問者のIPアドレスを比較し、

という仕組みで無駄なカウントアップを防ぐ機能です。

しかしながら、常にカウントアップしたい、という方もおられることでしょう。
そのような場合、このオプションの数値を 0 に指定してください。

再読み込み防止機構の有効期限

再読み込み防止機構を有効(1)にしている場合、「○分の間隔を置いてなら、カウントアップして良い」という指定を加える事ができます。
例えば、ここに 5 と入力すると、5分過ぎると同じIPでもカウントされます。
例外として 0 を入力すると、同じIPの場合は永遠にカウントアップしません。

カウントアップさせないホスト名・IPアドレス

自分自身など、カウントに含めたくないホスト名又はIPアドレスを指定して下さい。
但し、完全に一致させなければ効果がありません。

この欄を空欄にすると正常に動作しません。
不要な方も、必ず適当な値を入力しておいて下さい。 

カウントアップさせないブラウザ

ロボットなど、カウントに含めたくないブラウザ名を記述します。
SSI モードで動かしていて、WWWC 等のロボットが頻繁に来るようなページでは特に有効です。

ここで指定された文字列は前方一致比較の対象になります。
つまり、WWWC としておけば

などを名前に持つブラウザの場合に無視します。

この欄を空欄にすると正常に動作しません。
不要な方も、必ず適当な値を入力しておいて下さい。

CGI として動かす場合の設定項目

CGI として efCount を動かす場合に設定しなければならない部分です。
SSIとして動かす場合の設定項目は読み飛ばしても構いません。 また、設定する必要もありません。

カウンタのイメージを格納したディレクトリ

画像ファイルを格納したディレクトリの名前を入力します。 (デフォルトは image )

都合上、他のディレクトリにカウンタ用イメージを入れた場合はここを変更します。
ただし、カウンタ画像用ディレクトリは efStat をインストールしたディレクトリの中(配下)になければなりません
特別な事情がなければ変更せずにお使い下さい。

readme.html の通りにインストールしたのなら変更しないで下さい。

カウンタ用画像配布サイトからカウンタのイメージファイルをダウンロードしてきて解凍すると、フォント名の付いたディレクトリが出来るはずです。
そのディレクトリをそのまま、イメージ格納用ディレクトリ(何も変更していないなら image )の中にコピーして下さい。
そうしないと上手く動作しません。

<例>

fuksan.zip を解凍したら、 fuksan というディレクトリが出来ます。
それをそのままイメージ格納用ディレクトリに放り込んで下さい。

カウンタ画像ファイルをefStatで使うには、命名規則に合わせる必要があります。 tips / カウンタ用画像の命名規則も併せてご覧ください。

カウンタのイメージの名前

カウンタの名前を指定して下さい。
上の例では fuksan ですね。

ここで指定する名前はデフォルトの指定となり、呼び出し時にフォント指定をしなかった場合、ここで指定されたフォントが使用されます。

SSI として動かす場合の設定項目

SSI として efCount を動かす場合に設定しなければならない部分です。
CGI として動かす場合の設定項目は読み飛ばしても構いません。
また、設定する必要もありません。

efStat一式を格納したディレクトリ

efStat 一式をインストールしたディレクトリを指定します。

呼び出すHTMLから見た相対パスでも良いですが、ルートディレクトリからのフルパスが望ましいです。
相対パスで指定した場合、呼び出すHTMLが他のディレクトリにあったりすると動作しないからです。

フルパスは telnet や ftp 等を使い、各自でお調べ下さい。
プロバイダの説明ページに載っている場合があります。

表示するメッセージのカスタマイズ

fcount.cgi の(約)398行目から(約)421行目までが変更箇所です。
(おすすめ: エディタの検索機能で "sub Macro_Output" を検索してみて下さい)

@mes = (
  "<FONT FACE=\"Arial\"><B>[Counter]</B> Total:<B>${all}}</B>
  / Today:<B>${today}</B> / Yesterday:<B>${yesterday}</B></FONT>",
);

こんな部分があると思います。
メッセージを変更したいときはここを変更します。 変数などの詳しい意味はプログラム中に説明がありますので、そちらをご覧下さい。

上記の例では総ヒット数が5600、今日のヒット数が23、昨日のヒット数が56の場合、

[Counter] Total:5600 / Today:23 / Yesterday:56

と表示されます。

メッセージを複数指定しておくことでランダムに表示させることが出来ます。

@mes = (
  "メッセージ A",
  "メッセージ B",
  "メッセージ C",
);

例えばこの様に書いた場合、3つのメッセージをランダムに表示させます。

また、

@mes = (
  "メッセージ A",
);

または

@mes = (
  "メッセージ A",
  #"メッセージ B",
  #"メッセージ C",
);

このようにすると常に一つのメッセージだけを出力するようになります。

■ログファイルの準備

プログラム側の設定が済んだら、次はログファイルの準備です。

  1. log ディレクトリの中に空のファイルを作って下さい。

    Windowsなら右クリックして「新規作成」→「テキスト文書」でファイルが出来ますよね。
    それを [好きな名前].log に変更して下さい。 (拡張子は必ず .log で!)
    (UNIX だったら % touch [好きな名前].log で一発)

    例えば index.html を計測したいのであれば index.log という名前が良いでしょう。 link.html なら link.log とか。 自分が分かりやすいものを。

  2. 作ったファイルをftpでサーバにアップロードします。

    必ず「アスキーモード」でアップロードして下さい。

  3. パーミッションを 606(-rw----rw-) にします。

    これを忘れるとプログラムがログを書き込めず、カウントしてくれません。
    パーミッションに関する詳しい説明は readme.html を読んで下さい。

これで準備は完了です。

■実際の使用法

ここも、SSI として使う場合とCGI として使う場合とで違います。
それぞれの設定に基づき、読み進めて下さい。

CGI として動かす場合

ちょっと戸惑うかも知れませんけど、呼び出しの書式を示しておきます。
本当は呼び出しタグ自動生成ツールがありますが、これに甘えすぎるとトラブった時に自分で解決できないので、必ずこちらを熟読してから使って下さい。

【書式】
fcount.cgi?LOG=[ログファイル名]&MODE=[表示モード]&DIGIT=[表示桁数]&FONT=[フォント指定]&REF=[参照元URL]&SCR=[画面情報]
※すべてのオプションに順番は関係ありません。
[ログファイル名]
※時計機能の場合のみ省略可
カウントさせるログファイルの名前を指定します。
拡張子は指定する必要がありません。
(というか、指定するとエラーになります)
[表示モード]
※省略可
どういうカウンタを表示させるかを指定します。
a , t , y , w
が使用できます。
省略すると強制的に総カウント数が表示されます。

それぞれの英文字に頭に - (ハイフン)を付加すると、カウントアップを行いません。
つまり、それぞれの項目のカウント値を表示させるだけという動き方をします。
詳しくは 何故カウントアップしない指定があるのか を参照下さい。
それぞれの意味
a (-a) 総カウント数を表示 (All)
t (-t) 本日カウント数を表示 (Today)
y (-y) 昨日カウント数を表示 (Yesterday)
w [おまけ機能]:24時間表記の時計を表示させる (Watch)
(→時計機能を使うときの注意)
[表示桁数]
※省略可
カウンターの数字を何桁で表示させるか指定します。
0 から 9 までの値が指定できます。
(0 は実質的にオプションを省略したことと同じ意味になります)
9桁以上を指定するとエラーになります。
省略すると、実際の桁数に合わせて表示します。
[フォント指定]
※省略可
デフォルトで指定したフォント(カウンタ用画像の名前)を任意に変更させるにはこの項目を追加します。
省略すると、プログラムの設定項目で指定した画像が使用されます。
[参照元URL]
※省略可
参照元URLを記録します。
実際には、 JavaScript の力を借りてココを埋めます。
(よって、訪問者が JavaScript をオフにしている場合、参照元を取得できないという制限があります)
[画面横幅],[縦幅],[色数]
※省略可
画面の縦幅・横幅・色数を記録します。
実際には、 JavaScript の力を借りてココを埋めます。
(よって、訪問者が JavaScript をオフにしている場合、画面情報を取得できないという制限があります)

《まずは動くかどうか試してみましょう》

いきなりHTMLに組み込んだりせずに、動作するのを確認してからHTMLに組み込むのが賢いやり方です。
ブラウザのURL入力欄に

http://???/~username/cgi-bin/fstat/fcount.cgi?LOG=index
(ページのあるサーバが ??? で、あなたのユーザ名が usernamecgi-bin というディレクトリの中に fstat を置いている場合)

と打ち込んでみましょう。 (もちろん index は同梱の index.log の事ですネ)
あなたが既に他にログファイルを作っているのなら、その名前に置き換えて下さい。

上のように試して、数字が表示されましたか? 上手く行かなければtips / トラブルシューティングをお読み下さい。
上手く行ったなら、もう怖い物はありません。 ジャンジャン応用してみましょう。 例えば、

http://???/~username/cgi-bin/fstat/fcount.cgi?LOG=index&DIGIT=5
(index.log をカウント。表示桁数は 5 桁)

http://???/~username/cgi-bin/fstat/fcount.cgi?LOG=index&FONT=fuksan_
(index.log をカウント。表示フォントに fuksan_ を指定。)

http://???/~username/cgi-bin/fstat/fcount.cgi?LOG=index&DIGIT=5&FONT=fuksan_
(index.log をカウント。表示桁数は 5 桁。表示フォントに fuksan_ を指定。)

http://???/~username/cgi-bin/fstat/fcount.cgi?FONT=fuksan_&LOG=index&DIGIT=5
もちろん、バラバラに指定したってOK。 意味は上と同じ。

http://???/~username/cgi-bin/fstat/fcount.cgi?LOG=index&MODE=y
(index.log をカウント。昨日のカウント数を表示させます。)

http://???/~username/cgi-bin/fstat/fcount.cgi?MODE=w
(時計を表示させます。)

など、オプションを色々と組み合わせて反応を見てみましょう。
(ちなみに、この時にカウント数が増えないのは正常な動作です)
なお、書式の欄でも書きましたが、全てのオプションの順番はバラバラでも構いません。
ここまで来れば、fcount.cgi を使いこなせたも同然です(^^)
さらに応用として、JavaScript を組み合わせて参照元を記録できる状態まで持って行きましょう。 そのまま読み進めて下さい。

《実際の導入例》

呼び出しサンプル を読むと更に分かり易いでしょう。
と、いうか、サンプルをそのままパクると簡単です。
(下の例は純粋なテキストではないのでお奨めできません)

他にも有用なテクニックが載っていると思いますので、是非参考にして下さい。

なお、手動でタグを準備する自信がない方は 呼び出しタグ自動生成ツール をお使い下さい。
これでタグを作り、呼び出したいHTMLファイルにカット&ペーストすれば楽勝でしょう。
ただ、こればかりに頼っているとハマったときに原因が分からなくなりますので、退屈かとは思いますが下の説明もちゃんと読んで下さいね。

カウンターを表示させたい部分に、

<SCRIPT language="JavaScript">
<!--
  /* efStat from YugenKoubou (https://ygkb.jp/) */
  buf = escape(parent.document.referrer);
  ref = "";
  for (i = 0; i < buf.length; i++) {
    str = buf.charAt(i);
    ref += (str == "+") ? "%2B" : str;
  }
  scr = screen.width+","+screen.height+","+screen.colorDepth;

  document.write('<IMG SRC="./cgi-bin/fstat/fcount.cgi?LOG=index&MODE=h&DIGIT=5&FONT=fuksan&REF=',ref,'&SCR=',scr,'" width="60" height="16" border="0" alt="総アクセス数">');
// -->
</SCRIPT>
<NOSCRIPT>
  <IMG src="./cgi-bin/fstat/fcount.cgi?LOG=index&MODE=h&DIGIT=5&FONT=fuksan&REF=noscript&SCR=-" width="60" height="16" border="0" alt="総アクセス数">
</NOSCRIPT>

というタグを埋め込みます。 太字で色の付いた下線部分が変更箇所です。
カットアンドペーストして使うと良いでしょう。

./cgi-bin/fstat/fcount.cgi の部分は、呼び出すHTMLから見た fcount.cgi への相対パスを指定します。
また、 http://www.hoge.ne.jp/~fuka/cgi-bin/fstat/fcount.cgi のようなURLでの指定でも構いません。
HTMLの置かれたサーバとは別の場所にefStatを設置した時に有効でしょう。
(BIGLOBEのwww5aサーバやTikiTikiの様にCGIサーバが外部にあるプロバイダ、人にefStatをレンタルする場合など)

index の部分はログファイル名を指定します。

a は表示オプションを指定します。 a , t , y , w の4種類があります。
省略すると a を指定したことになります。

5 は表示桁数です。 ここでは「5桁表示する」という意味です。
省略できます。

fuksan は表示フォントを fuksan に指定する、という意味です。

ALT="総アクセス数" WIDTH="60" HEIGHT="16" BORDER="0"
ですが、これはまさしく IMG タグの指定そのままです。
お好きなように変更して下さい。
ブラウザによっては画像サイズを指定しないと読み込みが遅くなりますので、出来るだけ画像サイズは指定しておくようにして下さい。
表示桁数を指定して桁数を固定すると、画像サイズの指定がしやすくなってイイカンジです。

また、カウンタの存在を知られたくない、つまり隠しカウンタとして使いたい方は、ここで WIDTHHEIGHT1 に指定し、1ドットしかないカウンタ画像を表示するよう指定します。

SSI として動かす場合

【書式】
fcount.cgi?LOG=[ログファイル名]&MODE=[表示オプション]

※ <!--#include virtual=""--> による呼び出しにのみ対応しています。
※ オプション指定の順番は変えてはいけません。
※ 区切りには半角スペースを用います。

[ログファイル名] カウントさせるログファイルの名前を指定します。
拡張子は指定する必要がありません。
(というか、指定するとエラーになります)
[表示オプション]
※省略可
省略 通常動作します。 つまり、カウントした後にメッセージを表示します。
"-" , "h" 以外の文字を入力したときも強制的に通常動作します。
- カウント値の表示は行いますが、カウントはしません。 つまり、表示のみを行います。
フレームを使ったページで有効でしょう。 例えば、
index.html (h オプションで記録を取る)
   |----- menu.html
   +----- main.html (- オプションで表示だけさせる)
といった使い方が考えられます。
これだと参照元を正確に記録できるだけでなく、フレーム内で表示もできて美味しいとこ取りです。
h カウント値を表示せずにカウントします。 (Hidden)
つまり、隠しカウンターとして動作します。

《実際の導入例》

カウントしたいページのHTMLのどこか(出来れば<BODY>タグの直後など、ファイルの先頭の方が良いです)に、

<!--#include virtual="./cgi-bin/fcount/fcount.cgi?LOG=index"-->
(カウント値を表示させる場合)

<!--#include virtual="./cgi-bin/fcount/fcount.cgi?LOG=index&MODE=-"-->
(カウント値を表示させるだけの場合)

<!--#include virtual="./cgi-bin/fcount/fcount.cgi?LOG=index&MODE=h"-->
(カウント値を表示させない場合)

このようなタグを埋め込んで下さい。 カットアンドペーストして使うと良いでしょう。
太字で色の付いた下線部分が変更箇所です。

./cgi-bin/fstat/fcount.cgi の部分は、呼び出すHTMLから見た fcount.cgi への相対パスを指定します。
/~fuka/cgi-bin/fstat/fcount.cgi のようなドキュメントルートからの絶対パス指定でも構いません。

■ tips / トラブルシューティング

<SSI モード>

[efCount(SSI)]ログを開くことが出来ませんでした と表示される

読んで字の如くですが、ログファイルを開くことが出来ませんでした。
ファイル名の指定に誤りがないか、パーミッションは正しいかを確認して下さい。

何も表示されない、または、エラーはないがログは記録されていない

fcount.cgi を埋め込んだHTMLのソースをIEやネスケを使って表示させてみて下さい。

<!--include virtual="~"-->のタグが残っている

タグが認識されていません(つまり、プログラムは実行されていません)。

プロバイダによっては、SSI を実行可能にするために HTML ファイルの拡張子を変更する必要があります。
大抵の場合は .shtml 、 .shtm にすると良いようですが、詳細は各プロバイダへお問い合わせ下さい。

.htaccess ファイルを自分で書けば設定を変更できるプロバイダもあります。
(.html ファイルでも SSI が実行できるようになります。)
この辺を説明するのは本筋ではありませんので、先人のウェブサイトにて参照するか、ウェブサーバに関する書籍を買って勉強して下さい。

また、プロバイダによっては <!--exec cgi="~"--> でなければならない場合があります。
そんな場合は素直に諦めて CGI モードで使うのが吉でしょう。

<!--include virtual="~"-->のタグは残っていないが、ブラウザには何も表示されていない
[an error occurred while processing this directive] と表示されている(Apacheの場合)

タグは認識されていますが、何らかの原因で異常終了しました。

  1. パスを書き間違えている
  2. fcount.cgi のパーミッションは実行可能(705)ですか?
  3. ログディレクトリのパーミッションは読み取り可能(606)ですか?
  4. その他、CGIモードのトラブルシューティングも参考に原因を探して下さい。

<CGI モード>

“e0000”という画像が表示された

ログファイルを開くことが出来ませんでした。
ファイル名の指定に誤りがないか、パーミッションは正しいかを確認して下さい。

“e0001”という画像が表示された

桁数の指定が間違っています。 20桁までにして下さい。

画像が表示されない(破れたアイコンが表示される)

ERROR という文字が表示される(URL入力欄から直にカウンタを呼び出した場合)

カウンタ用の画像に何か問題があるようです。 詳しくはこちらをご覧下さい。

カウンタの数字が最初の一桁しか表示されない

ブラウザが古いとこうなります。
実はあのグラフィックはアニメGIFとして表示されています。 よって、アニメGIFに対応したブラウザが必要です。

これは gifcat.pl の仕様です。 gifcat.pl を使う以上、これはどうしようもありません。
ただし、他の方法を採るとUNISYS社の権利に抵触し、私が多額の使用料金を支払わねばなりません。
ですから、今後もずっとアニメGIF未対応のブラウザに対応することはないでしょう。

設置・設定は完璧なはずだが、どうしても動かないゾ!

様々な種類のOS やWeb サーバアプリケーション、Perl (インタプリタ型言語とはいえOSによって若干実装が異なる)と連携して動作するCGI アプリケーションは、Windows やMacintosh のような統一された環境とは違い、「あっちのプロバイダでは使えるが、こっちのプロバイダでは使えない」ということも十分に考えられます。

眠れなくなるくらい悩むよりも、サックリと捨てて他の物を試してみる、というのも一つのテだと思います。

実際、 「CGI がどれも動かなくて渡り歩いていたが、ふと拾ったefStat なら何となく動いたので使うことにした」 というメールはよく来ます。
逆はできるだけ無くしたいなぁ…(^_^;

どうしても諦めきれない人へのアドバイス:

  1. サーバの「クセ」は前もってプロバイダで告知されている場合があります。

    まずはプロバイダのFAQや会員用掲示板に目を通してみましょう。

  2. 公開されていない貴重な「クセ」は先駆者(他の会員)が調べている場合があります。

    同じプロバイダの会員でCGI の設置方法を解説している方のページを探してみましょう。

  3. 人間は「完璧だ」と思っている間が一番危険です(笑)

    比較的コンピュータに明るい人を捕まえて、客観的に状態を調べてもらいましょう。 (できれば、作業を最初からやってもらう)
    後でご飯をおごるのを忘れずに。

  4. 頭で悩むより、まずは体で試しましょう。
  5. 作者がポカミスをしていることがあります。
    「有限工房」のサポート掲示板やトップページで思わぬ情報が転がっているかもしれません。

■ tips / 何故、カウントアップしない指定があるのか

例えば、総合、本日、昨日のカウント数を一つのページに表示させるとします。 その場合、

総合:<IMG src="./fcount.cgi?LOG=index&MODE=a">
本日:<IMG src="./fcount.cgi?LOG=index&MODE=t">
昨日:<IMG src="./fcount.cgi?LOG=index&MODE=y">

このようにタグを打つはずですよね。 この時、3つのefCountはほぼ同時並行で作動します。
普通は3回同時に呼び出されたと言うことで全体で一気に3人分のカウントをしてしまうことになりますが、IPアドレスを利用した重複アクセス防止機構でその問題は回避されます。

しかし例えば、ほぼ同時にAさんとBさんがアクセスした場合、

  1. 総合分のカウンタはAさんが呼び出し(AさんのIPを記録)
  2. 本日分のカウンタはBさんが呼び出し(BさんのIPを記録)
  3. 昨日分のカウンタはAさんが呼び出す(AさんのIPをまた記録してしまう)

…といった風に、アクセス1回分が無駄に記録されてしまう困った現象が起きてしまいます。
そこで、飾りのカウンタには - (ハイフン)オプションを付けてカウントさせないように指示することを強く推奨します。

総合:<IMG src="./fcount.cgi?LOG=index&MODE=a">
本日:<IMG src="./fcount.cgi?LOG=index&MODE=-t">
昨日:<IMG src="./fcount.cgi?LOG=index&MODE=-y">

つまり、タグをこんな風に書き換えます。
記録を取るのは総合分のカウンタだけになり、その他のカウンタは記録を取らなくなります。
代表のカウンタのみにカウントアップを行わせることによってカウンタの精度が格段に向上するはずです。 是非、お試しを。

■ tips / カウンタ用画像の入手場所

本カウンタではCGIとして動作させる場合、カウンタの表示の為にカウンタ用画像を必要とします。
一応サンプルの画像が同梱されていますが、気に入らない人は自分のサイトのデザインに合う物を自力で別途入手して下さい。

■ tips / カウンタ用画像ファイルの命名規則

efStat で使うカウンタ用画像(カウンタフォント)のファイル名は、「DigitMania」に準じた命名規則を持たせる必要があります。
実例を挙げると、以下のようになります。

digit という名前のカウンタ用画像の場合のディレクトリ構成
image/
   |--- digit/
   |       |-- 0digit.gif
   |       |-- 1digit.gif
   |       |-- 2digit.gif
   |       |-- 3digit.gif
   |       |-- 4digit.gif
   |       |-- 5digit.gif
   |       |-- 6digit.gif
   |       |-- 7digit.gif
   |       |-- 8digit.gif
   |       |-- 9digit.gif
   |       |-- adigit.gif (あれば)
   |       |-- pdigit.gif (あれば)
   |       +-- cdigit.gif (あれば)
   |
   |--- other_font_a/
   |       |-- 0other_font_a.gif
   |       |       :
   |       +-- cother_font_a.gif
   |
   |--- other_font_b/
           |-- 0other_font_b.gif
           |       :
           +-- cother_font_b.gif
規則:
  1. 画像のセットは半角英数字の[名前]を持つ
  2. 画像はその[名前]が名前のディレクトリに入っている
  3. 画像は [数字][名前].gif という名前を持つ
  4. 数字以外の画像の場合、
    • a[名前].gif ("午前/am"を意味する画像)
    • p[名前].gif ("午後/pm"を意味する画像)
    • c[名前].gif ("コロン/:"を意味する画像)
    という名前を持つ
  5. 画像の一覧(表示サンプルなどに使う)は [名前].gif という名前を持つ

■ tips / カウンタ用画像の制限

GIF画像連結ライブラリの gifcat.pl の制限により、使用できる画像には以下の制限があります。
自分でカウンタ用画像をこしらえる人などは特に注意して下さい。

また、 fcount.cgi の呼び出し方は間違っていないはずなのに、上手く行かない場合はこれらの可能性も疑ってみて下さい。

■ tips / 時計機能を使う場合の注意

この時計は24時間表記でしか表示できません。

数字以外に : (コロン)を使います。 時計機能を使う場合は : の画像を用意して下さい。
: の画像は必ず c[フォント名].gif というファイル名にして下さい。(これはカウンタ画像界(?)標準の約束事です)

例えば fuksan というフォントであれば、 cfuksan.gif。 fdc というフォントであれば cfdc.gif という具合にして下さい。
これを守らないと画像が表示されません。

また、この時計の場合は24時間表記ですので、 a[フォント名].gif (am) , p[フォント名].gif (pm) は必要ありません。

■ tips / カウント数の変更方法

今まで別のカウンタを使っていたので今までのカウント数を継続したい。
そんな方にはログファイルを手直ししていただかねばなりません。

ログファイルの準備を読んでログファイルを準備し、実際の使用法を読み、カウンタを動作させて、一度ログファイルを書き込んで(フォーマットして)下さい。

とりあえず記録した、そのログファイルをテキストエディタで開いて下さい。

FC2 13Pvar 
13QSVn 5S2 client-16.test.or.jp

<注目!>
(まだ続く)
   :

このようになっていると思います(多少の違いは気にしないで下さい)。

ポイントは2行目、 空白(正確にはタブ文字)で区切られたマスの2番目の数字です。
これが総ヒット数を表しています。 半角数字で好きな値に直して下さい。

ただし、efStat ではカウント数など、冗長な数値を「62進数」(※)という物を使って表現、ログを圧縮しています。
カウント数を変更したい方は下のフォームに現在のカウント数を入力し、62進数に変換してからefStat のログに書き込んで下さい。
なお、数字以外、例えばアルファベットなどを誤って入力するとブラウザが固まります。 ご注意下さい。 (手抜き)

今までのカウント数 : 62進数カウント数 :

※この「62進数」は、私が勝手に作った基数(繰り上げ規則?)ですので、一般には通用しません。 ご注意下さい。

他の数値の意味については format.csv を参照下さい。

■ tips / ログの取りこぼしを減らすための鉄則

(基本)

  1. 極力SSI モードで使うべし

    ハッキシ言って性能が全然違います。 画像解像度を取れないのは痛いけど。

  2. 呼び出しタグは極力HTMLファイルの頭の方に持ってくるべし

    「見た目(画面配置)で上の方」ではありません。 「ソースの上の方」です。

  3. 本当に必要なログのみ取るべし
  4. ログの最大保存数を極力抑えるべし

(番外)

  1. 他のアクセス解析プログラムとの併用は控えるべし
  2. 極力軽いサーバを使うべし

    CPU性能よりもディスクアクセス性能が左右します。

  3. CGI は諦めて Analog を使うべし(ぉぃぉぃ

■ tips / ログ最大保存数の限界値

良く質問で来るのは、「efStat はどの程度の規模のサイトまで使えるのか?」というものです。
efCount は理論上、8万ヒット/日程度のサイトでも十分大丈夫だと思われますが(安全マージンをかなり持たせた計算)、 efStatの方は解析に多大なCPU時間を使いますし、ご覧の通りテーブルを多用した画面表示ですのでかなりのメモリを食いますので巨大なログを作るのは良くありません。
全ての訪問者を記録しておきたいかもしれませんが、そこはグッと我慢をして下さい。
あなたは訪問者一人一人のプライバシーには興味はなく、サイト運営に必要十分なサンプリングが行えればいいはずです。

ログの最大保存数は、一日のヒット数・設置したログファイルの数・サーバの処理能力の兼ね合いで決まります。
「カウンタが動く」という事は、その都度巨大なログを読み込むということです。
サーバは、カウンタが動作した瞬間、50KB近いサイズ(1000件くらいのログの場合)のログファイルを読み書きしているのです。
それを一日に何百~何千と繰り返すのです。 それは一人分のサイトでも凄まじい仕事量です。

このプログラムは小~中規模の比較的アクセス数の少ないサイト(一万ヒット/日程度まで)で使うのに向いています。
1000程度でも統計的に十分精度の高い結果が出ます。 普通は多くても1000程度に指定して下さい。
とりわけこだわりがなければ、デフォルトの300にしておいて下さい。 (おすすめは300~500程度)
もちろん、社内のイントラネットだったり、比較的アクセス数が落ち着いているような所だったり、殆ど自分専用で使っているようなWebサーバだったらもっと増やしてもいいとは思いますが。

それ以上の規模と精度を求める…というのであれば Web サーバのログを直接解析する方法を採ることをお勧めします。


©1998-2016 不可思議絵の具