/cgi-bin/ディレクトリ以外でCGIを実行させたい

» 2001年07月11日 00時00分 公開
[木田佳克ITmedia]

この記事は会員限定です。会員登録すると全てご覧いただけます。

 通常、httpサーバ「Apache」の標準設定では、cgi-bin/と名づけられたディレクトリ下でのみCGIの実行を許可している。この設定は、httpd.confのなかで次の行に該当する。

# cat /usr/local/apache/conf/httpd.conf
〜中略〜
ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
<Directory "/usr/local/apache/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
※ディレクトリ構成は、特にパラメータを付加せずにソースからコンパイルした場合

 標準では上記のように設定されているはずだ。「/usr/local/apache/cgi-bin/」ディレクトリ下での許可と、ScriptAliasでは「http://www.xxxxx.xxx/cgi-bin/」として「/usr/local/apache/cgi-bin/」ディレクトリ下を参照できるようにする設定だ。

 通常の利用であれば、Perlスクリプトなどはcgi-bin/下に置くという基準の元使用すればよい。しかし、場合によっては任意のディレクトリ下にCGIの実行権を与えたいことがある。このような時には、次のように設定すればよい。

<Directory /usr/local/apache/htdocs/mrtg/nrg>
Options +ExecCGI
</Directory>

 httpd.confの中に上記のように記述すると、「http://www.xxxxx.xxx/mrtg/nrg/」とURL指定した際にでも、CGI実行が可能になる。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ