すでに時代遅れの感じもありますが、CGIでアクセスカウンタを追加する方法を説明します。(WordPress用ではありません。)
今時のWebではPHPでカウンタを追加するのが一般的なのかもしれませんが、ここではPerlを使ってCGIで実装します。以下がcgiの本体です。counter.cgi という名前で cgiディレクトリ に保存します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
#!/usr/local/bin/perl ######## 設定パラメータ ###### $count_file = './.count'; #カウンタデータファイル $digit_dir = './cgi/digit2/'; #カウンタ表示用データ $ip_file = './.ip'; #IPアドレスデータファイル $len = 5; #カウンタの桁数 ######## 接続者のIPアドレス #### $host_ip = $ENV{'REMOTE_ADDR'}; open(IP, "+<$ip_file"); flock(IP,2); $prevIP = <IP>; $prevIP =~ s/\s//g; #スペースを取り除く # 前のIPアドレスと違う場合はファイルに書き込み if($prevIP ne $host_ip){ seek(IP,0,0); print IP sprintf("%-16s", $host_ip); #16桁にして保存する } close(IP); print $cnt; ####### カウンタファイル ##### open(COUNT, "+<$count_file"); flock(COUNT,2); $cnt = <COUNT>; # 前のIPアドレスと違う場合はファイルに書き込み if($prevIP ne $host_ip){ $cnt++; seek(COUNT,0,0); print COUNT $cnt; } close(COUNT); print "Content-type: text/html; charset=utf8\n\n"; print "<html>"; print "<body>"; # カウンタ用画像ファイルのリスト @digits = ( "0.gif","1.gif","2.gif","3.gif","4.gif", "5.gif","6.gif","7.gif","8.gif","9.gif" ); $url0 = '<IMG SRC ="'; $urle = '">'; @counter = split(//,$cnt); while($#counter +1 < $len){ #$len桁数に満たない場合は0を追加する @counter = (0,@counter); } for($i = 0; $i < $len; $i++){ print $url0.$digit_dir.@digits[@counter[$i]].$urle; } print "</body>"; print "</html>" |
cgiには実行権が必要ですのでパーミッションを確認してください。UNIX系OSでは, chmod 755 counter.cgi で実行権を付加してください。
カウンタの数字は0〜9までの10個の数字をGIF形式(ブラウザで表示できれば形式は何でも良い)のファイル で用意し、./cgi/digit ディレクトリに入れます。
counter.cgiと同じディレクトリに .count と.ip という名前のファイルを作成します。.countには 0 とだけ書いて保存しておきます。もし、.から始まるファイルを作れない場合は、4行目と6行目のファイル名を変更してください。.count と .ip は書き込み権限が必要です。
カウンタの桁数を増やしたい場合は7行目の $len
の値を変更します。
同じIPアドレスから連続アクセスされた場合にカウンタがアップするのを防ぐために直前にアクセスされたIPアドレスと同じ場合はカウンタを増加しないようにしています。また、IPアドレスがは短い場合(例:192.168.0.5)と長い場合(例:192.168.100.150)にうまく書き換えられないのを防ぐために18行目で左詰めの16桁で .ip ファイルに保存します。読み出す場合は、14行目でスペースを取り除いています。
CGIの実行は、index.html または index.shtmlから行います。(どちらのファイルで動くかはサーバーの設定に依ります。)
カウンタを挿入したいところに以下の一行を追加してください。<!--#exec cgi="cgi/counter.cgi"-->
このサーバーのトップページにカウンタの実行例表示しています。
昔懐かしいニキシー管の画像は 電気機械座 なにがし某様 のwebの画像を使わせていただいてます。まだ、作成途中でカウンタしかつけていませんけど。