Wyvern では、 CGI モジュールを使用することで、 CGI 機能が利用可能となります。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 動作確認用として "printenv.cgi" プログラムがインストールされます)。
また、CGI モジュールが組み込まれていない場合は、CGI は使用できません。 その場合、ブラウザからの要求に対しては "400 Bad Request" が返されます。
Wyvern で設定される CGI 用の環境変数を次表に示します。
環境変数 | 説明 |
---|---|
PATH | コマンド検索用パス |
SERVER_SOFTWARE | ウェブサーバのソフトウェア名 |
SERVER_NAME | ウェブサーバの名称とバージョン |
GATEWAY_INTERFACE | CGI のバージョン |
SERVER_PROTOCOL | HTTP のバージョン |
SERVER_PORT | ウェブサーバのサービスポート番号 |
DOCUMENT_ROOT | ウェブサーバの HTML ファイル用トップディレクトリ名 |
SERVER_ROOT | ウェブサーバのシステムファイル用トップディレクトリ名 |
SERVER_ADMIN | ウェブサーバの管理者メールアドレス |
REQUEST_METHOD | ブラウザから送られたメソッド |
SCRIPT_NAME | 実行しようとしている CGI ファイル名 |
PATH_INFO | CGI ファイルに対する付加パス情報 |
PATH_TRANSLATED | ウェブサーバ内の CGI ファイルのためのの絶対パス |
QUERY_STRING | CGI ファイルに対する引数(GET メソッド時のみ) |
REMOTE_HOST | クライアントのホスト名 |
REMOTE_ADDR | クライアントの IP アドレス |
REMOTE_PORT | クライアントとの通信ポート番号 |
AUTH_TYPE | ユーザ認証方法(現在は Basic認証のみ) |
REMOTE_USER | ユーザ認証で許可されたユーザ名 |
REMOTE_IDENT | RFC 1413 による識別プロトコルで取得したユーザ名 |
CONTENT_TYPE | データの種類 |
CONTENT_LENGTH | POST メソッド時のデータの長さ |
HTTP_ACCEPT | ブラウザが許可している Content-Type |
HTTP_ACCEPT_ENCODING | ブラウザが受け入れ可能なコンテンツのコーディング |
HTTP_ACCEPT_LANGUAGE | ブラウザが希望するコンテンツの自然言語セット |
HTTP_USER_AGENT | ブラウザの名称とバージョン |
HTTP_REFERER | 直前に参照していた URL |
HTTP_COOKIE | ブラウザから送られた Cookie の情報 |