CGIの使い方

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 用の環境変数を次表に示します。

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 の情報


Last Modified: $Date: 2004/01/11 13:24:42 $
Copyright © 2000-2002 Kouichi ABE (WALL) / 阿部康一, All rights reserved.