この章では UNIX系のOSでもっとも利用されている 『Apache』 ウェブサーバの設定方法を中心に、CGI を利用するための環境作りを解説します。
章の最後に Apacheのダウンロード場所や、インストール手順や設定方法のドキュメントのリンクを掲載しているので、まだ導入されていない方はこれを機会にぜひチャレンジしてみてください。
ウェブサーバとCGIの関係
ウェブサーバの主要な機能は、ブラウザがリクエストしたURLに該当するファイルを送信することです。リクエストがHTMLではなくCGIプログラムの場合は、プログラムの内容を表示する代わりにCGIプログラムを実行して、その出力を送信します。
この章の目的はウェブサイトを立ち上げ、CGIプログラムを起動できるようにするまでです。ウェブサーバがブラウザからのリクエストに正しく応答するには、あらかじめウェブサーバ用の設定ファイルが用意されている必要があります。
ウェブサーバの設定は複雑な面もありますが、必要最低限の設定は実はそれほど多くありません。最初にHTMLファイルを表示できるように設定し、あとからCGIプログラムの起動やそのほかさまざまな機能を設定していくのも手です。
Apache のより詳しい情報は、「Apacheの導入」を参照してください。
指示子について
Apacheの設定は、「httpd.conf」というテキスト形式の設定ファイルで行います。サーバの環境によって設定ファイルの置かれている場所が違いますから、正しい場所がわからないときは、サーバ管理者に聞きましょう。
Apache の設定ファイルは指示子とコメントで成り立っています。
- 指示子
- 指示子はウェブサーバの動作を指定するコマンドを設定します。
- コメント
- コメントは不要な指示子をコメントアウトしたり、注釈を記述するのに便利です。
指示子の記述方法
指示子は次のような形式になっています。
<指示子> 引数 引数
ウェブサーバのルートディレクトリの設定を例にすると、以下のような記述方法になります。指示子と引数の間はスペースかタブで区切ります。
ServerRoot /usr/local/apache
指示子は大文字・小文字の区別はありません。以下のどれでも正しく認識されます。
ServerRoot /usr/local/apache
SERVERROOT /usr/local/apache
serverroot /usr/local/apache
引数にスペースが含まれている場合は、引数をダブルクォーテーション( " )の引用符で囲む必要があります。
BrowserMatch "RealPlayer 4\.0"
force-response-1.0
コメント
指示子を削除したいときは、次のようにシャープ記号( # )でコメントアウトします。
# ServerRoot /usr/local/apache
コンテナ指示子
指示子には特殊な使い方があります。HTMLのタグのように前タグと終わりタグで指示子を囲むことができます。コンテナタグの中で設定した指示子は、Apache
全体には影響されません。タグで指定したサーバ内のファイルやディレクトリだけに適用されます。
たとえば、任意のディレクトリのみに設定を行いたい場合、<Directory>タグを使って次のように設定します。
#
CGIを実行させたいディレクトリ領域に、オプション「ExecCGI」を追加
<Directory "/home/httpd/cgi-bin">
Options Indexes FollowSymLinks ExecCGI
AllowOverride None
Order allow,deny
Allow from all
</Directory>
これで「cgi-bin」ディレクトリとそのサブディレクトリに設定が反映されます。
コンテナタグの中にさらにコンテナタグをネストすることができます。タグをネストする場合は、インデントを使って見栄えをよくしたほうがいいでしょう。
<VirtualHost 123.123.123.12>
ServerName www.domain.co.jp
DocumentRoot /home/httpd/ssl/
<Location /client>
DirectoryIndex
secound.html
</Location>
</VirtualHost>