<back> <home>

CGI-カウンターの作り方

製造 03年7月27日(*access count*)

SSIーカウンターが、TeX4htで働かなかったので、CGI-カウンターを試みた。

方法は、坂田健二著「Windows で学ぶ CGI & Perl」技術評論社: 第4章第4節をそのまま持ってきた。

1.方 法: 

ブラウザーは、画像を表示せよとの指示(<img src="URL">)を見ると、サーバーに対しそれを送るように要請する。この"URL"の代わりにcgiプログラム(cgi_count_foo.cgi)のURLを書いておくと、そのcgi_count_foo.cgi が実行されることを利用してアクセスカウンターを作る。cgi_count_foo.cgi は、カウンター(count_foo.log)を持ち、呼び出すたびに数を1ずつ増やす。得たx桁(xは指示可能)の数字を、"fly"というアプリケーションを使って、画像に合成し、それを表示させる。

2.必要パッケージ

(2.1) cgi_count_foo.cgi: アクセス回数を計算し、”fly”等を呼び出して数字の画像を製作させ、標準出力に出力する。

(2.2) fly: GIF画像をその場で作るプログラム。

flyのサイトからダウンロードできる。ウインドウズ版は、実行可能なバイナリーfly.exeを持ってこれる。サーバーのOSがリナックスの場合 fly-1.6.5.Linux-2.1.125-i686.tar.gz をダウンロードし、

gunzip fly fly-1.6.5.Linux-2.1.125-i686.tar.gz

を実行すると、tar ファイルができるので

tar xvf fly-1.6.5.Linux-2.1.125-i686.tar

を実行すると、fly-1.6.5 ディレクトリーが作られその中にflyの実行ファイルができる。これを、上記の

cgi_count_foo.cgi と同じディレクトリーに置く。

(2.3) gifcmb.pl: 画像を合成する Perl スクリプト

(2.4) sub_lock.pl: 計数を処理している間カウンターをロックしておく Perl スクリプト

(2.5) counnter_foo.log: カウンター数保管場所

(2.5) 数字(0~9)の画像ファイル

手続きを簡単にするため、上記のファイルを全て に置いた。

3. インストール手順

(3.1) パッケージを置く場所: ~/cgi-bin/cgi-counter/

    カウンターを置く場所: ~/cgi-bin/cgi-counter/counters

    数字画像を置く場所: ~/cgi-bin/cgi-counter/images

○カウンターはエディターで空のファイルを作り、初期値数字"0"を入れておく。

(3.2) gifcmb.pl の設定: 「CGI & Perl」の付属CDROMより持ってくる。

○$fly_cmd="./fly"; # fly のパス(格納場所)

に、flyの格納場所のパスを記入する。

なお、ファイル名はウインドウズの場合は "fly.exe"と書き、リナックスの場合は単に"fly"と書く。

(3.3) cgi_count_foo.cgi: 「CGI & Perl」の付属CDROMより持ってくる。

1行目: #!/usr/bin/perl と記入: 大抵のリナックスの場合

       #!d:/perl/bin/perl と記入: ウインドウズの場合( Perl を格納した所)

○4行目: require "./gifcmb.pl";  gifcmb.pl のパスを指定。

○5行目: require "./sub_lock.pl"; sub_lock.pl のパスを指定。

○7行目: $countfile="./counters/count_foo.log ; カウンターのパス指定

注: 8行目の lockdir は作らない。これは sub_lock.pl により自動的に作られる。

○10,11行目: $width="11";  数字の画像ファイル(数字一桁)のサイズを指定。

           $height="14";

判らないときは、「Image Size for HTML」というプログラム(imgsize.exe)を使って調べる(フォトショップでも可能)。アイコンに画像ファイルをドラッグすればよい。

30行目: $count_img=sprintf("%04d",$count);  表示桁数の指定(6桁の場合4->6)

(3.4) html ファイルの中のアクセスカウンターを表示したい 場所に

<p align="center"><img src="http://・・・・・~/cgi-count/cgi-count/cgi_count_foo.cgi></p>

を記入する。

4。 まとめ

 全てのパッケージは、~/cgi-bin/cgi-counter/ の中に置いてあり、多くは共通である。

 サイト製作毎に最低限作らなければならないのは

(4.1) 新サイトのアクセスカウンターを表示したいところに

<p align="center"><img src="http://・・・・・/~/cgi-count/cgi-count/cgi_count_bar.cgi></p>

記入し、

(4.2) cgi-count_foo.cgi: の名前(foo)を付け替え(foo --> bar)、中の○7行目で

$countfile="./counters/count_bar.log ;

カウンターのパスを指定し、

(4.3) counter_bar.log ファイルを作り、~/cgi-bin/cgi-counter/counters に置く。

 だけである。

<back> <home>