ScriptAliasディレクティブやAddHandlerディレクティブなどを設定して、CGIプログラムの実行を許可します。
ディレクトリ/拡張子を設定してCGIプログラムの実行を許可する設定例を以下に示します。
CGIプログラム用のディレクトリを作成する場合
CGIプログラム用のディレクトリを設定し、そのディレクトリ配下に格納されたファイルをCGIプログラムとして実行します。
拡張子によりCGIプログラムを特定する場合
CGIプログラム用の拡張子を設定し、その拡張子のファイルをCGIプログラムとして実行します。
注意
CGIプログラムに対するリクエストを受信すると、Windows(R)の場合はデーモンプロセス、Solaris/Linuxの場合はCGIデーモンプロセスから新たにCGI用プロセスを生成し、そのプロセス上でCGIプログラムを実行します。なお、CGIプログラムが終了すると、CGI用プロセスも終了します。
CGIプログラムから標準エラー出力されたメッセージは、エラーログ(ログレベル「error」)に出力されます。
ScriptAliasディレクティブまたはScriptAliasMatchディレクティブのディレクトリパスにネットワーク上の共有フォルダを指定する場合は、UNCパス(//コンテンツ格納先のホスト名/共有フォルダ名/)で指定してください。なお、ネットワーク上の共有資源にアクセスするためには、事前にWebサーバおよび共有資源を格納するマシンの設定を行う必要があります。詳細については、「3.30 ネットワーク上の共有資源へのアクセス設定 」を参照してください。
CGIプログラムは、標準入力からリクエストメッセージ本文を受信してください。受信するリクエストメッセージ本文のサイズは、環境変数CONTENT_LENGTHに設定されているサイズです。
リクエストメッセージ本文を受信しない場合は、エラーログに以下のメッセージが出力されて、レスポンスが遅延する可能性があります。
(104)Connection reset by peer: ap_content_length_filter: apr_bucket_read() failed
CGIプログラムには、Userディレクティブで設定したユーザ、またはGroupディレクティブで設定したグループの実行権限を設定する必要があります。
■CGIプログラム用のディレクトリを作成する場合
例
CGIプログラム用のディレクトリとしてディレクトリ「C:\Interstage\F3FMahs\cgi-bin」を設定して、Webブラウザ(クライアント)から「/cgi-bin」配下のURLが指定された際に、ディレクトリ「C:\Interstage\F3FMahs\cgi-bin」配下のファイルをCGIプログラムとして動作させる場合
LoadModule cgi_module "C:/Interstage/F3FMahs/modules/mod_cgi.so" ScriptAlias /cgi-bin/ "C:/Interstage/F3FMahs/cgi-bin/"
CGIプログラム用のディレクトリとしてネットワーク上の共有フォルダ(UNCパス)「//hostname/directory」(コンテンツ格納先のホスト「hostname」、共有フォルダ「directory」)を設定して、Webブラウザ(クライアント)から「/cgi-bin」配下のURLが指定された際に、ネットワーク上の共有フォルダ「//hostname/directory」配下のファイルをCGIプログラムとして動作させる場合
LoadModule cgi_module "C:/Interstage/F3FMahs/modules/mod_cgi.so" ScriptAlias /cgi-bin/ "//hostname/directory/" <Directory "//hostname/directory"> Require all granted </Directory>
CGIプログラム用のディレクトリとしてディレクトリ「/opt/FJSVahs/cgi-bin」を設定して、Webブラウザ(クライアント)から「/cgi-bin」配下のURLが指定された際に、ディレクトリ「/opt/FJSVahs/cgi-bin」配下のファイルをCGIプログラムとして動作させる場合
LoadModule cgid_module "/opt/FJSVahs/modules/mod_cgid.so" ScriptAlias /cgi-bin/ "/opt/FJSVahs/cgi-bin/"
■拡張子によりCGIプログラムを特定する場合
例
CGIプログラム用の拡張子として拡張子「cgi」を設定して、Webブラウザ(クライアント)からファイル名の拡張子「cgi」のURLが指定された際に、そのファイルをCGIプログラムとして動作させる場合
LoadModule cgi_module "C:/Interstage/F3FMahs/modules/mod_cgi.so" <Directory C:/Interstage/F3FMahs/htdocs> Options ExecCGI AddHandler cgi-script .cgi </Directory>
CGIプログラム用の拡張子として拡張子「cgi」を設定して、Webブラウザ(クライアント)からファイル名の拡張子「cgi」のURLが指定された際に、そのファイルをCGIプログラムとして動作させる場合
LoadModule cgid_module "/opt/FJSVahs/modules/mod_cgid.so" <Directory /opt/FJSVahs/htdocs> Options ExecCGI AddHandler cgi-script .cgi </Directory>
参考
関連ディレクティブ
AddHandler
<Directory>
LoadModule
Options
ScriptAlias
SetHandler
Require