==================================================================
Apacheの解説ならAdminWeb:http://www.adminweb.jp/ <サイト引用
==================================================================
CGI用エイリアスの設定(ScriptAlias)
CGIはサーバ側で動作するプログラムです。
通常のファイルであればクライアントから要求があればファイルの内容を返すだけですが
CGIのファイルに対して要求があった場合には
ファイルを内容を返す代わりに要求があったCGIをサーバ側で実行し、その結果をブラウザに返します。
CGIを使う場合はドキュメントルート内にCGIのプログラムをそのまま置いておくことはあまり行いません。
CGIは実行するためのものであり、プログラムファイル自体をダウンロードされたり表示したりされないようにするためです。
その為、ドキュメントルート以外の場所にCGI用のディレクトリを作成し
「ScriptAlias」を使ってCGIに対するリクエストと実際のディレクトリを対応付けます。
ScriptAlias 見た目上のディレクトリ 実際のディレクトリ(フルパス)
良く使われるのは次のような記述です。
ScriptAlias /cgi-bin/ "D:/Apache Group/Apache2.2/cgi-bin/"
この場合は「http://localhost/cgi-bin/test.pl」などのようなリクエストが合った場合には
「D:\Apache Group\Apache2.2\cgi-bin\test.pl」を実行してその結果をクライアントに返すことになります。
「Alias」と同じようなものですが「ScriptAlias」を使ってエイリアスが設定された場合には
そこに含まれる全てのファイルがCGIのプログラムであるとApacheが認識し
そして実行することが可能に設定されます。
つまりそこにあるファイルに対する要求が合った場合にはApacheはCGIプログラムの要求があったと判断して実行した結果を返そうとします。
では「httpd.conf」に記述を追加してみます。実際にはデフォルトの状態で次のような記述が既に存在します。
「httpd.conf」ファイルで「ScriptAlias」を検索してみて下さい。295行目付近に記述があります。
#
# ScriptAlias: This controls which directories contain server scripts.
# ScriptAliases are essentially the same as Aliases, except that
# documents in the target directory are treated as applications and
# run by the server when requested rather than as documents sent to the
# client. The same rules about trailing "/" apply to ScriptAlias
# directives as to Alias.
#
ScriptAlias /cgi-bin/ "D:/Apache Group/Apache2.2/cgi-bin/"
上記のようにCGI用ディレクトリが「(Apacheをインストールしたディレクトリ)\Apache2.2\cgi-bin」でよければこのまま利用することが出来ます。
またディレクトリもデフォルトで用意されています。
ScriptAliasを設定したディレクトリには次のページで説明する実行の許可や拡張子の登録は不要です。
ただ、ドキュメントルートの外にありますので外部からアクセスを許可しておく設定は必要です。