Apache:環境設定と利用方法
Apache for Windows95/NT
ディレクトリの配置構造
インストール後のディレクトリ構造は以下のようになります。
apache\cgi-bin CGIスクリプトを格納
apache\cgi-src CGIプログラムのソースコードを格納
apache\conf コンフィグレーションファイルを格納
(access.conf、httpd,srm、srm.conf、など)
apache\htdocs HTMLドキュメントを格納
apache\htdocs\manual HTML形式のマニュアルが格納されている
apache\icons イメージファイルを格納
apache\logs ログファイルを格納
apache\support ユーティリティファイルを格納
apache\modules モジュールを格納
環境設定
環境設定の詳細については、apache\htdocs\manual に格納されてい
るマニュアルを読んで下さい。
特に、CGIやSSIに関する設定、CGIスクリプトが実行されるディレクトリ、
などです。
CGIおよびSSI機能を有効にするための環境設定
CGIおよびSSIを使用するための最低限の注意
まず、必要なDirectiveのコメント記号 ”#”を取り去ります。
次に、必要に応じてフラグなどを変更します。
具体的に示しますと、
(1) access.conf の編集
SSIのためには、access.confファイルにおいて、
Option Directive に Includes フラグを追加します。
Options Indexes FollowSymLinks Includes
-----------------------------------
(注意)
ExecCGI フラグを付け、
Options Indexes FollowSymLinks Includes ExecCGi
のようにすると、実行ファイル(EXEファイル)も実行可能になります。
この場合、セキュリティ面でリスクが大きくなります。
C言語でCGIスクリプトを作成(コンパイルしEXEファイルで実行)す
るなどの実験の場合は別として、設定を有効にしないことを勧めます。
-----------------------------------
(2) srm.confの編集
CGIのためには、srm.confファイルにおいて、ディレクトリ、
拡張子を指定します。
(a) CGIについては、ScriptAlias の Directiveにおいて、
ScriptAlias /cgi-bin/ /apache/cgi-bin/
上のように、CGIスクリプトを格納するディレクトリを指定します。
このように設定すると、スクリプトはcgi-binのディレクトリのみで
実行されます。
-----------------------------------
(注意)
ディレクトリを問わず、指定した拡張子がついていればCGIスクリ
プトとして実行したいなら、AddHandler のDirective において、
AddHandler cgi-script .pl
というように設定します。
ここでは、スクリプトの拡張子を pl としています。
Windowsでは 拡張子を、pl とする方が多いようです。
UNIX系のサーバでは、拡張子を cgi とするのが一般的です。
メリット
・CGIスクリプトをどこにでも置ける。
デメリット
・どこででも実行され得るわけですから、セキュリティ上で危
険が生じ易くなる。
・どこにCGIスクリプトがあるのか分からなくなり、整理と管理
が面倒になる。
特に、セキュリティ確保の観点から、AddHandler のDirective は
なるべく、
#AddHandler cgi-script .pl
のようにコメントのままに設定することを勧めます。
-----------------------------------
(b) SSIについては、AddType, AddHandler の各Directiveにおいて、
AddType text/html .shtml
AddHandler server-parsed .shtml
上のように、HTMLファイルの拡張子を .shtmlとするのが一般的です。
CGIスクリプトの書き方
CGIスクリプトの1行目で、perl.exeへのパスを指定します。
具体的には、
#! /perl/bin/perl
のように指定します。自分のパソコンにインストールしたPerlの
ディレクトリを覚えておいて下さい。
上のパス指定は、perl.exeが、例えばドライブCの
C:\perl\bin
にインストールされていることに対応しています。。
これはUNIXサーバを利用する場合で、#!/usr/local/bin/perl
と指定するのと対応しています。