CGIモジュール

CGI(Common Gateway Interface)機能を提供します。 本モジュールを利用する場合は、 同時に、 環境変数設定モジュールもロードする必要があります。 CGI プログラムは、Wyvernの設定で説明した 設定ファイル(wyvern.conf)中の ScriptAlias パラメータで指定したディレクトリに置きます。

たとえば、サーバの環境変数の一覧を表示させるプログラム(printenv.cgi)は 次のように記述します。

#!/bin/sh
# printenv.cgi

echo "Content-Type: text/html"
echo

echo "<pre>"
printenv
echo "</pre>"

上記の CGI プログラムを ScriptAlias で 指定したディレクトリに置き、プログラムに実行許可を与えます。

Example:
% chmod a+x printenv.cgi

CGI プログラムへのアクセスは、 http://localhost/cgi-bin/printenv.cgi となります。

また、CGI モジュールが組み込まれていない場合は、CGI は使用できません。 その場合、ブラウザからの要求に対しては "400 Bad Request" が返されます。 CGI プログラムで利用できる環境変数の一覧は、 環境変数設定モジュールにあります。


Rapid-CGI モジュール

Rapid-CGI モジュールは、 mod_rcgi.so を導入することにより利用可能になります。 CGI モジュールとの違いは、NPH(No-Parsed Header)型の CGI プログラム専用の処理を行う点です。NPH 型の CGI プログラムはウェブサーバでのレスポンスヘッダの加工を行いません。 つまり、CGI プログラム自身が HTTP のレスポンスヘッダを作成する必要があります。

さらに、 Rapid-CGI モジュールはプログラム実行後はウェブサーバを介せず、 直接ブラウザに応答します。 すなわち、SSI モジュールGZip モジュールなどのフィルタリングは行われません。

たとえば、サーバの環境変数の一覧を表示させるプログラム(nph-printenv.cgi)は 次のように記述します。

#!/bin/sh
# printenv.cgi

echo "HTTP/1.0 200 OK"
echo "Server: $SERVER_SOFTWARE"
echo "Content-Type: text/html"
echo

echo "<pre>"
printenv
echo "</pre>"

Rapid-CGI モジュールは、 "ServerRoot/rcgi-bin/" 以下のプログラム、あるいは、 接尾辞が ".rcgi" であるプログラムを実行します。