#080 なかなか使えるCGI

1999/09/15

<前目次次>


 私の作っているこの「電脳生活雑感」や、あるいは劇団のページなどには、ページの冒頭部分にアクセスカウンタをつけていたが、これらはフリーで提供されているものであり、本体は別のサイトに設置されているものをリンクしているだけである。また、劇団のページにはゲストブックという名前の掲示板を設置しているが、これも今までは無料レンタルしている掲示板システムを使わせてもらっていたものである。従って、リンク先のサーバが時間帯によっては混雑し、時には繋がらない状況にもなっていた。もともとこのようなフリーのカウンタや掲示板は、利用者も相当数いるため、アクセスが集中するといかに強力なサーバであってもパフォーマンスが低下してしまうのである。

 先日も8月末頃に、アクセスカウンタの部分が全く動かなくなり、カウンタを提供しているサイトにも接続できなくなっていた。カウンタが動かないからと言ってページ全体を参照することができなくなるわけでもないのだが、やっぱりカウンタが動いているのが見えない状況と言うのは淋しいものがある。

 もともとアクセスカウンタや掲示板と言ったサービスは、CGIという機能を使って実現させている場合が多い。CGIとはCommon Gateway Interfaceの略で、そんなことを言われてもますますわからないであろうから、どんなものか乱暴にではあるが説明する。

 通常WebPageというものは、参照される際、HTMLを使って書かれた文書(ソース)を送信し、受け側(ブラウザ側、もっと一般的にはエージェント側)では、HTMLの文法に従って整形して表示するという仕組になっている。しかしCGIの場合は、参照されると、サーバ側でプログラムが動き、その結果出力されたHTMLなり画像なりを送信するというものである。従って、呼ばれた時の状況に応じて異なったものを表現することが可能になる技術である。呼ばれる度に数字を1つ増やして表示すればそれはアクセスカウンタになるし、ユーザーがフォームに書込んだ内容をストックし整形して表示すれば、それは掲示板になるというわけである。

 CGIの実現は、実行可能なプログラムであればどんなものでも構わないのであるが、Perlを使って書かれることが一般的なようである。ネットワーク機能を含めた命令が豊富に在り、コンパイルなしに複雑な機能をある程度高速に処理することができるのがCGI向きであるということなのだろう。

 ただCGIは、その気になればほとんどあらゆることができるので、商用プロバイダのほとんどは独自CGIの使用を認めていない。下手をすると、サーバ内の重要なファイルを改変したり削除したり、サーバの負荷を大きくする可能性があるからである。

 というわけで、私もこれらCGIの機能を使ったアクセスカウンタや掲示板については、他所のサイトのものを提供させてもらっていたのだが、アクセスカウンタの不調を機に、自分のサイトをあれこれ調べてみたら、どうもその一つがCGI利用可能になっているらしいことを発見した。

 そこで、CGIで動くアクセスカウンタや掲示板をWebで探してきて、それらを拝借して自分のサイトに設置してみたところ、うまく動くではないか。ということで、アクセスカウンタも掲示板も出来合いのものから気に入ったものを選んで、自分のサイト内で動かすことにしてみた。レンタルして他所で動かしている場合と大して変わらないかも知れないが、お仕着せの機能しかないCGIに比べ、その気になれば機能やデザインを自分で拡張できるものの方がやはり何かと面白いものである。

 早速試しに、掲示板のCGIに、日付を読んで公演までの日数や劇団員の誕生日を紹介するしかけを作ってみた。Perlはここでも何度か書いているように、少しは心得があるので、こういう改造も割と簡単にできてしまう。

 新しいアクセスカウンタでは、アクセスログも記録することができ、その結果はメールで届くことになっている。アクセスログを見ると、どのサイトへのアクセスが多いとか、何時ごろのアクセスが多いとか、札幌や仙台や名古屋や北九州からもアクセスがあることなど、アクセス数という単なる数字ではわからなかったことが色々とわかって非常に興味深い

 というわけで、しばらくいろいろとCGIで遊ぶアイデアなどを考えていたのだが、不運なことに、程なくしてCGIを置いていたサイトにアクセスできなくなってしまった。もしかして自分のCGIがサーバに負担をかけてしまったのではないかとヒヤリとしたが、どうも偶然ハードの故障が起きてサーバそのものが立ち上がらなくなってしまったらしい。不幸な偶然であるが、復活した暁には、迷惑をかけない程度にまたぼちぼち始めてみたいと思っている。


<前目次次>