D-count: 取説のようなもの

はじめに

D-countはアクセスログを記録する機能を持ったCGIカウンタです。

特徴

主な特徴は以下のとおりです。

  • カウンタ表示と共にアクセスログを残すことができます。
  • 複数のページを調査対象にできます。
  • パーミッション変更スクリプト付き。
  • ソースがShiftJis。内部処理はEUC。

機能説明

カウンタの機能は以下のとおりです。

  • トータル、本日、昨日のカウンタが表示できます。
  • 表示するフォントを指定できます。
  • 表示する桁数を指定できます。

アクセス解析の機能は以下のとおりです。

  • 日別:日にどれだけのアクセスがあったのか集計します。
  • 時間別:1時間ごとのアクセス数を集計します。
  • IP別:IPアドレスごとのアクセス数を集計します。
  • ドメイン別:ドメインごとのアクセス数を集計します。
  • リンク元:リンクされているサイトを解析します。
  • 検索ワード:(対応済みの)検索エンジンにおいて、どのような検索ワードでページにたどり着いたのか解析します。
  • 被参照ページ:複数ページを調査対象とした場合、どのページがどれだけ参照されたか集計でします。
  • 訪問回数:個人IDごとの訪問回数を集計します。
  • 簡易ログ:カウント対象としたアクセスのみの簡易ログモードです。
  • 生ログ:ログをとっている全要素を表示します。

また、調査対象を絞る手段として、以下の方法があります。

  • 件数:解析するログの件数を絞ります。少ないと軽く、多いと重くなります。
  • 参照日:調査する対象日を「今日、昨日、二日前」というように絞ります。
  • 個人ID:個人を特定するためのIDによって絞ります。
  • 名前付け:個人IDに対して名前を付ける事ができます。
  • IP:IPによって参照ログを絞ります。(正規表現)
  • 被参照ページ:被参照ページによって参照ログを絞ります。

動作環境

特に特定しません。ソースの文字コードはShiftJisです。ノートパッド等で編集できます。


設置方法

アーカイブの展開

ダウンロードしたdcount.lzhを展開ツールで展開します。 ディレクトリ「dcount」に展開された、dcount.cgiがカウンタ部、logview.cgiがアクセス解析部、 tagmaker.cgiが動作チェック&タグ自動生成CGI、setup.cgiが設置用CGIです。 ディレクトリ「lib」には、ライブラリとして使用するスクリプトが格納されています。

Perlのパスの設定

展開した各cgiのうち、まず setup.cgiを開き、先頭行のperlのパスを設置するサーバの環境に合わせて修正します。 具体的な値については、各プロバイダのサポートページ等を参照して下さい。

CGIのパーミッション設定

修正したCGIおよび、その他のファイルをFTPツールなどで、サーバーに転送します。 各cgiファイルはアスキーモードで、gifファイルはバイナリモードで転送します。 その後、まずは setup.cgiのパーミッションを変更します。 CGIのパーミッションについては、各プロバイダのサポートページ等を参考にして下さい。 setup.cgiに実行属性をつけ、ディレクトリlog及び、その配下のファイルには書きこみ属性を付けて下さい。

setup.cgiを起動すると、各ファイルのパーミッション設定を調査して、 適切と思われるパーミッションが表示されるので、FTPツール等で変更して下さい。

setup.cgiによる設定

サーバによっては、FTPのユーザーと同じ権限でCGIが動きます。 そのようなサーバでは、setup.cgiによって一括してパーミッション設定することができます。 まずはとにかく setup.cgiに実行権、logディレクトリに書き込み権をつけて set.cgiを起動しましょう。 運がよければあとは自動で出来ます。

FTPのユーザーと、CGIのユーザーが異なるサーバであっても、各CGIに書き込み属性をつければ setup.cgiによりカスタマイズが行えます。

perlのパス、解析するアドレス、ログの件数、IP重複チェックをする秒数が設定できます。 欄に入力して、「カスタマイズ実施」ボタンを押して下さい。

パスワード変更欄により、パスワードが変更できます。 旧パスワード、新パスワードを入力して「パスワード実施」ボタンを押して下さい。

V1.3以降より、パスワードが暗号化されているので、 setup.cgiを使用しないとパスワードの変更ができなくなっています。 初期のパスワードは「dcount」です。勝手にログを見られると何かと不都合があるでしょうから、 パスワードは変更しておきましょう。

tagmaker.cgiによる動作確認とタグ作成

setup.cgiによってカスタマイズを行ったら、そのまま「設置タグ作成」ボタンを押して下さい。 自動的にtagmaker.cgiが起動されます。表示例が表示されれば、cgiの設置は完了です。

CGI設置URL欄には、dcount.cgiを設置したURLが記入されているはずです。もし誤った内容が記入されている場合は、 修正して下さい

チェック対象URL欄には、カウンタを貼り付けるページのURLを記入します。空欄の場合は、JavaScriptを利用して、 貼り付けられたページを取得するタグが作成されます。

カウンタ種別には、作成するタグの種別を指定します。カウント表示なしは、カウンタを表示せず、 アクセス解析のみ行うタグを作成する場合に使用します。

アクセス解析欄では、カウンタでアクセス解析も行うか、カウンタ値の表示のみかを選択します。

フォント欄は、カウンタのフォントを使い分ける場合に指定します。詳しくは後術します。

「設定項目を反映」ボタンを押すと、設定した内容に従った、表示例、設置用タグが表示されます


その他

フォントについて

カウンタを表示するGifファイルを切り替える事ができます。 カウンタのGifファイルはdcount/imageフォルダに「0〜9.gif」として格納されています。 これを差し替えることによって標準のカウンタ表示を変更する事ができます

また、カウンタ呼び出し時にフォントを指定する事により、表示時に切り替える事も可能です。

フォント名を指定しなかった場合は「0.gif〜0.gif」、指定した場合は「0フォント名.gif〜9フォント名.gif」 が使用されます。

例えば、「0hoge.gif〜0hoge.gif」というファイルをdcount/imageフォルダに格納すれば、 フォント名として「hoge」が指定可能です。

漢字コードについて

配布時のソースの漢字コードはV1.3.0からShiftJisになりました。設置のしやすさを優先した状態です。 内部的にはEUCを使用しており、出力される内容はEUCになっています。EUCに変換して設置する方は、 内部文字列をShiftJisからEUCに変換している部分を取ると良いでしょう。

生ログ表示について

生ログの各要素は次のとおりです。

  • カウンタがAならアクセス解析、Cならカウントアップ、続けてその時のトータルカウント数
  • アクセス日時
  • IPアドレス
  • 個人ID
  • 訪問数 その個人IDの人が訪れた数
  • 参照ページ アクセスされたページ
  • リンク元

ログファイルについて

ログは「dcount/log」に保存されます。ログの1行目はバージョン情報で、 2行目が最終ログ情報になっています。最終ログ情報の前から3要素は、

  • トータルカウント数
  • 今日のカウント数
  • 昨日のカウント数

となっているので、カウンタに任意の値を設定したい方はここを書き換えて下さい。

$LogMaxに設定する値によって、1ログファイルあたりの保存ログ件数を変更できます。 デフォルトは1000件です。ログファイルがいっぱいになると、現在のログファイルをコピーして、 新たなログファイルを作成します。何世代コピーを残すかは$LogPagesの設定値に従います。 解析にはコピーされたログファイルも使用されます。$LogMaxや$LogPagesを大きくすると、 より多くのログを残せますが、それだけ処理が重くなります。

複数のページに解析タグを埋め込むことにより、それぞれのページの被参照数などがわかりますが、 調査対象のページが増えると、それだけログが埋まるスピードも早くなります。 ログが早く埋まるということは短期間の情報しか残らないということです。 バランスを考えて設置して下さい。

dcount.cgiのエラーコード

dcount.cgiでエラーが発生した場合、下記のカウントを表示します。

  • e0:ログファイルオープンエラー
  • e1:ログファイルクローズエラー
  • e2:ロックファイルオープンエラー
  • e3:ロックファイルクローズエラー
  • e4:新規ログファイルオープンエラー
  • e5:新規ログファイルオープンエラー
  • e6:ロック取得エラー
  • e7;DEBUGログオープンエラー

制限事項他

  • リンク元解析は、JavaScriptの機能を利用しています。アクセス者がJavaScriptをOFFに設定していた場合は、記録されません。
  • ブラウザのバグ(仕様)により、同時に見ていた無関係なページがリンク元として記録される事があります。
  • 個人IDの機能は、Cookieを利用しています。アクセス者がCookieをOFFにしていた場合は、個人の判定はできません。
  • 当D-countは正常に動作することを期待して作成していますが、動作を保証するものではありません。また、動作させた事によっていかなる不利益を被ったとしても、当方は一切の責任を負いません。
  • 当D-countはフリーソフトです。自由に配布、再利用して構いませんが、配布に際して必要経費以上の金銭を受け取る事は禁じます。また、当D-countを元に派生したものは、同様にフリーソフトととして扱うことを強制します。簡単に言うと、これによってお金もうけ(できるのか?)するのはいや〜ん。
  • 一切のサポートの義務を負いません。気が向いた時だけサポートするかもしれません(w
  • これを使ってみようという奇特な方がいらっしゃいましたら、メールか掲示板への書きこみをしていただけるとうれしいです。
  • 回答するとは限りませんが、ご質問、ご要望はVZL00652@nifty.comか、でじたる三昧の掲示板まで。

FAQ

質問なんてまだ一つも来てないですが(^^;

Q,設置してみたら、トータルと今日のカウンタが1ずれてますが?

A.カウントありとしたほうのカウンタはファイルからカウントを読み込んで1足してから表示するのに対し、 カウントなしとしたほうは表示するだけなので、結果的に1ずれてしまいます。 気になる人は、カウントありを昨日のカウントにするか、 カウンタ表示なしカウントありを別に設置して、トータルと今日はカウントなしにして下さい。


終わりに

謝辞

私のサイトでは元々、有限工房さんのefStatというアクセス解析つきカウンタを 使わせていただいておりました。しかし、efStatの開発は終了しており、google等のUnicodeによる検索ワードの解析が行えません。 googleの解析ができないのでは、どんな検索ワードで検索されているのか知りたかった私の目的がほとんど達成されません。 しょうがないから自分で作っちゃえと行き当たりばったりで作ったのが当D-countです。 efStatは同様の機能を持つCGIとして、大変参考になりました。

また、D-countが動作するために必要な、jcode.pl, gifcat.pl, simaguni.pl,それぞれの作者の方々に感謝いたします。


変更履歴

V1.3.0以降の変更履歴

  • '05/02/21 tagmaker.cgi 1.4.1 imgサイズ出力を追加
  • '05/02/19 dcount.cgi 1.4.0 対応するサーチエンジンを追加
  • '05/02/19 logview.cgi 1.4.0 XHTML,CSSに対応 googleのイメージ検索に対応
  • '05/02/19 tagmaker.cgi 1.4.0 XHTML,CSSに対応
  • '05/02/19 setup.cgi 1.4.0 check.cgi より名称変更 XHTML,CSSに対応 password変更のインタフェースを変更
  • '03/11/14 check.cgi 1.3.2 パーミッションとカスタマイズを別々に実施できるよう変更 書き込みパーミッション付加ボタンを追加 ログ閲覧ボタンを追加
  • '03/11/13 logview.cgi 1.3.1 デザイン変更
  • '03/11/13 tagmaker.cgi 1.3.1 デザイン変更
  • '03/11/13 check.cgi 1.3.1 ファイル名を check.cgi に変更 デザイン変更
  • '03/11/10 1.3.0 初版作成。パスワードの暗号化。スクリプト自動書き換え機能追加。ソースをShiftJisに変更

Digi-Zo