|
|
CGIってなに? CGIとは、Common Gateway Interfaceの略です。 WEB サーバでプログラムを実行するための仕組みで、WEB サーバプログラム(たとえば apache や IIS など)と 実行したいプログラム(たとえば掲示板など)とのインターフェイスを定めたものです(詳細については RFC を参照のこと) 一般に CGI と言った場合、CGI で実行されるプログラムのことを指すようです。 サーバーサイドだけでやるもののことを SSIと言います。Server Side Includeの略です。 WEB サーバがクライアントに HTMLを送る際、自動的にデータをHTMLデータ内に埋め込んだりする 仕組みのことを、SSI と言います。 (例) index.htmlファイルに<!--#include virtual="/cgikoubou/include/lectleftmenu.html"--> などと書いてWebサーバーにアップロードしておきます。 クライアント側から Webサーバにindex.htmlのデータを送ってくれ、という要求があると、 この<!--#include virtual="/cgikoubou/include/lectleftmenu.html"-->が、Webサーバーで解釈され、 そのコマンドのところに自動的に読み込まれ、クライアント側にデータが送られます。 ちなみに、このページでもSSIを使って表示させています。 これが左メニュー これがこのhtmlソース サーバー上のHTMLファイルにはテーブルのところに先ほどのSSIコマンドが入っていますが、 実際にクライアント側に送られるデータには、Webサーバーが自動的にファイルを読み込んでくれて、 今のページがちゃんと表示されているわけですね。 SSIでCGIを実行させるコマンドは<!--#exec cmd="nantoka.pl"-->です。 SSIのexecが実行できるサーバーは限られていますが、これが使えるならば、 htmlページにアクセスカウンタを表示(アクセスカウンタのCGIを起動させてhtmlデータに埋め込む)させたり、 topページでチャットルームの参加者状況を表示(参加者状況表示のCGIを起動させてhtmlデータに埋め込む)させたり.. など、いろいろと便利に使えるようになります。 ただし、一般的なプロバイダではSSIのexecは使えないようになっているのがほとんどです。 お使いのサーバーによって変わってきますので、使えるのかどうなのかは要チェック。 ※SSIをexecだけではなく、一切許可していないサーバーもあります。 このページではSSI(で起動するCGI)とCGI(一般的に動かせるCGI)を両方取り混ぜてやっていくつもりです。 サーバーで実行できればよいので、サーバーにインストールされている言語であれば いいわけですが、ここではPerlを使用し、WebサーバーはApacheを想定しています。 CGIとなっていますが、Perlの組み方も説明しないといけませんね(^^; |