All
Today

■Ruby-Counter(Normal Version)設置方法

 ここでは、るび〜の作成したカウンターを配布/説明するページです。
 2003年05月05日現在のRuby-Counter(Normal Version)(rcount_normal.cgi)バージョンはVer1.06です。
 GIFファイル連結ライブラリ(gifcat.pl)のバージョンはVer1.61です。
 zip形式の物がありますので、こちらから一式ダウンロードできます。解凍には「+Lhaca」等の圧縮解凍用ソフトを使う事をお勧めします。ソフトは、窓の杜とかvector等で手に入れることができます。

 表示例は、画面の右上のカウンターとなります。


■説明

 よくホームページを訪れると、このページに何人来たかわかるようにカウンターで表示してますよね。画像や文字であったり色々ありますが、やっぱり自分のページにもカウンター付けてみたいじゃないですか。そこで、るび〜がperlで作成したカウンターを配布/説明をします。私の作成したRuby-Counter(Normal Version)は、CGIモードを使用しています。基本的にSSIはプロバイダーがサポートしていないということが多いですから(^^;

■機能

機能
機能名説明
アクセス数カウント機能ホームページに来た人をカウントします。
当日のアクセス数カウント機能当日にホームページに来た人をカウントします。
毎日のアクセス数カウント機能当日にホームページに来た人を毎日ログとして記録します。
同一IPアドレスからのカウントチェック機能同じ日に同じIPアドレスからのアクセスはカウントアップしないようにすることが出来ます。
アクセスログ取得機能REMOTE_HOST/REMOTE_ADDR/HTTP_USER_AGENT/HTTP_REFERERをログとして、ファイルに保存します。ただし、HTTP_REFERERは、相手がJava ScriptがONになっている場合のみ。
ファイル名変更機能ログファイル名を変更することで複数のカウンタを同時に動かすことができます。
画像連結機能GIF画像を連結をすることができます。gifcat.plにより実現しました。
ファイル確認機能ファイルが存在するか確認することができます。

■設置場所

 Ruby-Counter(Normal Version)を設置するために以下の場所に設置します。
  • ホームディレクトリ/cgi-bin/rcount_normal.cgi
    Ruby-Counter(Normal Version)の主な機能となります。本ファイルを修正することで、様々な設定を変更することが出来ます。詳細は初期値に記載してあります。

  • ホームディレクトリ/cgi-bin/lib/gifcat.pl
    gifcat.plは、GIF連結用ライブラリとなります。

  • ホームディレクトリ/cgi-bin/lib/ruby_count.pl
    ruby_count.plは、Ruby-Counter共通ライブラリとなります。

  • ホームディレクトリ/cgi-bin/log/rcount_normal.cnt
    rcount_normal.cntは、カウント数を記録するファイルです。最初は空ファイルとなっています。

  • ホームディレクトリ/cgi-bin/log/rcount_normal.tcnt
    rcount_normal.tcntは、本日のカウント数を記録するファイルです。最初は空ファイルとなっています。

  • ホームディレクトリ/cgi-bin/log/rcount_normal.ecnt
    rcount_normal.tcntは、毎日のカウント数を記録するファイルです。日付毎のカウンター数を記録します。最初は空ファイルとなっています。

  • ホームディレクトリ/cgi-bin/log/rcount_normal.usr
    rcount_normal.usrは、ユーザのアクセスログファイルです。内容はアクセス時間・ホスト名・IPアドレス・ブラウザ名・Refererが書かれます。このファイルは訪問者に分からないようにファイル名を変更して下さい。セキュリティ上の問題がありますから・・・最初は空ファイルとなっています。

  • ホームディレクトリ/cgi-bin/log/rcount_normal.ip
    rcount_normal.ipは、IPアドレスログファイルです。IPアドレスを記録し、本ファイルの記録されている場合は、カウントアップしないようにします。最初は空ファイルとなっています。

  • ホームディレクトリ/cgi-bin/image/0〜9.gif
    0.gif〜9.gifは、GIF画像で0〜9までの数字画像となります。

  • ホームディレクトリ/cgi-bin/image/dummy.gif
    dummy.gifは、GIF画像で1×1 pixelのダミー画像となります。


■パーミッション

 UNIX系のサーバーならば、パーミッションを設定しなければいけません。以下に個々のファイルについてのパーミッションを設定して下さい。

ファイル名パーミッション
rcount_normal.cgi755(755 or 700)
gifcat.pl644 (604 or 600)
ruby_count.pl644 (604 or 600)
rcount_normal.cnt666 (600)
rcount_normal.tcnt666 (600)
rcount_normal.ecnt666 (600)
rcount_normal.usr666 (600)
rcount_normal.ip666 (600)
0.gif〜9.gif644 (604 or 600)
dummy.gif644 (604 or 600)


 括弧「()」で表されているパーミッションは、よりセキュリティ面において安心な値となっています。括弧で表されている値でCGIが動作する場合は、それが一番良いです。
 尚、パーミッションは不適切な値を設定するとセキュリティ面に悪影響が出ます。適切なパーミッションを設定しましょう。
 ファイルをアップしているサーバーが、どの権限(owner/group/user)でCGIを動かしているのかを確認してみてください。

■設置例

 <IMG>タグでカウンターを設置する場所に以下の様に設置します。

  • 総アクセス数の画像を表示とする場合は、?の後にallを付けて下さい。ログファイル名を「log/main.cnt」とする場合は、以下のように、name+の後にファイル名を指定してください。ディレクトリを含めることも出来ます。名前を指定することで複数ページにカウンターを設置することが出来ます。


  • 本日のアクセス数の画像を表示とする場合は、?の後にtodayを付けて下さい。ログファイル名を「log/main.cnt」とする場合は、以下のように、name+の後にファイル名を指定してください。ディレクトリを含めることも出来ます。名前を指定することで複数ページにカウンターを設置することが出来ます。(本日のアクセス数の場合はカウントしません。)


  • アクセス数を画像で表示せずこっそりにアクセスログ/アクセス数を取得とすることが出来ます。?の後にhideを付けて下さい。名前を指定することで複数ページにカウンターを設置することが出来ます。


  • カウンタをセーブしている*.cntファイルのサイズが多くなった場合は、*.cntを削除しカウント値を?の後に指定して下さい。この例ですと、100000とlog/main.cntのサイズ値を足した数がカウント値となります。


  • 上記のようにカウンターファイルのあるところに"?test"を加えることによって各ファイルの存在を確認することができます。直接URLで呼び出してください。


  • 総アクセス数の画像を表示とする場合は、?の後にallを付けて下さい。ログファイル名を「log/main.cnt」とする場合は、以下のように、name+の後にファイル名を指定してください。
    そしてrefの後にリファラーを追加することで、HTTP_REFERERも取得できるようになります。呼び出し方は特殊になりますので以下をご覧下さい。

■初期値

  1. ファイル名・パス名設定
    $countfile = "rcount_normal.cnt";」は、カウンターファイル名となります。他のディレクトリに入れたい場合は、パス名も指定して下さい。相対パスでも絶対パスでも構いません。
    $tcountfile = "rcount_normal.tcnt";」は、本日のカウンターファイル名となります。他のディレクトリに入れたい場合は、パス名も指定して下さい。相対パスでも絶対パスでも構いません。
    $ecountfile = "rcount_normal.ecnt";」は、毎日のカウンターファイル名となります。他のディレクトリに入れたい場合は、パス名も指定して下さい。相対パスでも絶対パスでも構いません。
    $userfile = "rcount_normal.usr";」は、ユーザのアクセスログファイルです。他のディレクトリに入れたい場合は、パス名も指定して下さい。相対パスでも絶対パスでも構いません。
    $ipfile = "rcount_normal.ip";」は、IPアドレスログファイルです。他のディレクトリに入れたい場合は、パス名も指定して下さい。相対パスでも絶対パスでも構いません。
    $imgdir = "image/";」は、画像の格納パスとなります。(後ろに / を付けて下さい。)
    $dummyimage = "dummy.gif";」は、ダミー画像用のファイル名となります。

  2. アドレスチェック設定
    $baseurl = "http://www5e.biglobe.ne.jp/~access_r/";」は、自分のホームページ以外からの不正な呼び出しを防ぐためのURLです。自分のホームページの自分のホームまでのアドレスを設定して下さい。そうすれば、他のページから呼び出されてもエラーで動作しないようになります。

  3. 表示桁数設定
    $figure = 6;」の場合は、画像で6桁表示になります。
    $figure = 0;」の場合は、桁数を自動調整します。

  4. 同一IPアドレスチェック設定
    $ipcheck」は、同一IPアドレスをチェックする事で、当日に同一訪問者が訪れても複数回カウントしなくなります。
    $ipcheck = 0;」の場合は、同一IPアドレスチェックをしません。
    $ipcheck = 1;」の場合は、同一IPアドレスチェックをします。

  5. ログ取得設定
    $accesslog」は、アクセスログを取得有/無の設定です。セキュリティ上取得するほうが良いでしょう。
    $accesslog = 0;」の場合は、ログ取得OFF。
    $accesslog = 1;」の場合は、ログ取得ON。

    $security」は、アクセスログを取得する際のIPアドレス/ホスト名の取得方法の設定です。
    $security = 1;」の場合は、通常のREMOTE_ADDR/REMOTE_HOSTを取得します。
    $security = 2;」の場合は、漏れ串であった場合に本来のIPアドレス/ホスト名を取得します。

  6. ログ保持件数設定
    $userdatasize = 2000000;」は、ユーザデータの保持バイト数です。「$userdatasize = 200000」ならば、200Kバイトまで情報を保持します。

■注意点

 Ruby-Counter(Normal Version)は改行コードをファイルに追加書込することにより、カウンター破壊を防いでいます。
 しかし、ある程度アクセス数が増えるとファイルサイズが巨大になりますので、カウンタをセーブしている*.cntファイルのサイズが多くなった場合は、*.cntを削除し元のカウント値を?の後に指定して下さい。詳細は、設置例の4番目の項目をご覧下さい。

■変更履歴

  • 2002/06/25 Ver1.01:初版。
  • 2002/09/15 Ver1.02:アクセスログの保持方法を変更しました。
  • 2002/09/24 Ver1.03:HTTP_REFERERの\~となるのを修正。
  • 2002/09/24 Ver1.04:ダミー画像連結処理をバグを修正。
  • 2002/09/29 Ver1.05:環境変数から引数をとるように修正。
  • 2003/05/05 Ver1.06:全体的に処理を修正。

■動作しない場合は・・・

  1. 1行目のperlのパスがおかしい
    「#!/usr/local/bin/perl」は、サーバーの環境に合っていないかもしれませんので、契約しているところの環境に合わせましょう。

  2. http://〜で始まるアドレスでアクセスしていない
    file://〜 や C:\ で始まる名前でアクセスした場合は動作しません。きちんとhttp://から始まるアドレスで設定しましょう。

  3. CGIをサポートしていない
    実は自作CGIが駄目だったり、CGI自体の動作を許可していないサーバーの可能性がありませんか?そんな時は当然ながら動作しません。

  4. パーミッションがおかしい
    パーミッションは適切な値となっていますか?telnetで入って確認/変更するか、FTPソフトでもパーミッションを確認/変更することが出来ます。


■プロバイダー別CGI調査表

 あなたが契約しているプロバイダーが、CGIの設置を許可していないことには、当然ながらCGIを動作させることが出来ません。プロバイダーが用意しているカウンターやBBS等のCGIのみが使える環境では、Webで配布されているCGIの設置は出来ないことがあります。当サイトでは確認しておりませんが、以下のサイトにて自作のCGIスクリプト(Perl)を設置できるプロバイダ等についての情報を載せています。是非参考になされてはいかがでしょうか?



Webデザイナーになれる!
HTML、FLASH、CSS等様々なWeb技術やデザインに関することを学ぶことが出来ます。Webデザイナーなら、是非どうぞ!資料請求は無料!です。
Click Here!Click Here!
Copyright © 2000-2003 ACCESS R All rights reserved. Presented by Ruby