CGI (Common Gateway Interface) プログラムは、任意の数のプログラミング言語を使って定義できます。UNIX/Linux マシン上にはおそらく、Bourne シェルや Perl スクリプトとして記述された CGI プログラムが存在しています。
UNIX/Linux の下ではさらに CGIStub プロセスも実行されますが、これらは、サーバーが CGI 実行の支援用として使用するものです。これらのプロセスは、CGI への初回アクセス時にのみ作成されます。その個数は、サーバーでの CGI 負荷に応じて変わります。これらの CGIStub プロセスを終了しないでください。これらはサーバー停止時に削除されます。
詳細については、オンラインの『Sun Java System Web Server パフォーマンスのチューニング、サイジング、およびスケーリング』に含まれている、MinCGIStub、 MaxCGIStub、および CGIStubIdleTimeout に関する説明を参照してください。
Windows コンピュータにはおそらく、C++ またはバッチファイルで記述された CGI プログラムが存在しています。Windows の場合、Visual Basic などの Windows ベースのプログラミング言語で記述された CGI プログラムは、異なる機構を使ってサーバーとの連携動作を行います。これらは Windows CGI プログラムと呼ばれます。
コマンド行ユーティリティーを実行するには、Path 変数を手動で設定して server_root/bin/https/bin を含める必要があります。
プログラミング言語にかかわらず、データを受け取ったり返したりする方法は、どの CGI プログラムでも同じです。CGI プログラムの記述方法については、次の情報源を参照してください。
『Sun Java System Web Server Developer’s Guide』
「The Common Gateway Interface」
http://hoohoo.ncsa.uiuc.edu/cgi/overview.html
次のオンラインドキュメント Web サイトで利用可能な、CGI に関する記事
http://docs.sun.com
次の図は、Web Server 7.0 での CGI 要求の処理手順を示したものです。
CGI プログラムをサーバーマシンに格納する方法は 2 つあります。
CGI プログラムだけを格納するディレクトリを指定します。拡張子にかかわらず、すべてのファイルがプログラムとして実行されます。
すべての CGI プログラムがある特定のファイルタイプを持つことを指定します。つまり、それらはすべて、ファイル拡張子 .cgi、.exe、または .bat を使用します。ドキュメントルートディレクトリの中またはその下にある任意のディレクトリに、プログラムを格納できます。
必要であれば、両方のオプションを同時に有効にすることも可能です。
どちらの実装にも利点があります。ある特定のユーザーグループだけが CGI プログラムを追加できるようにするには、CGI プログラムを特定のディレクトリ内に格納し、それらのディレクトリへのアクセスを制限します。HTML ファイルを追加できるすべてのユーザーが CGI プログラムも追加できるようにするには、ファイルタイプの選択肢を使用します。ユーザーは、HTML ファイルと同じディレクトリ内に CGI ファイルを格納できます。
ディレクトリのオプションが選択されると、サーバーはそのディレクトリ内のすべてのファイルを CGI プログラムとして解釈しようとします。同様に、ファイルタイプのオプションが選択されると、サーバーは、ファイル拡張子 .cgi、.exe、または .bat を持つファイルをすべて、CGI プログラムとして処理しようとします。あるファイルがこれらの拡張子を持つにもかかわらず、CGI プログラムではなかった場合、ユーザーがそのファイルにアクセスしようとした時点でエラーが発生します。
デフォルトでは、CGI プログラムのファイル拡張子は .cgi、.exe、および .bat. です。ただし、MIME タイプファイルを変更すれば、CGI プログラムを表す拡張子を変更できます。これを行うには、「構成」タブを選択し、「MIME タイプ」リンクをクリックします。