[Up] [Next]
[Previous]
NCSA WWWサーバのコンパイル
ソースからコンパイルして使用する人は、まず、適当な場所にソースを展開し
てください。ここでは、後のインストールを考えて/usr/local/etcに
展開します。
% cd /usr/local/etc
% zcat httpd_1.5-export_source.tar.Z | tar xvf -
すると、httpd_1.5-export というディレクトリが作成されます。
この中には、次のディレクトリを含んでいます。
- cgi-bin
- CGI(コモンゲートウェイインタフェース)のスクリプトやバイナリが置
かれるディレクトリ。
- cgi-src
- CGI(コモンゲートウェイインタフェース)のソースコードが置かれるディ
レクトリ。
- conf
- WWWサーバの初期値や操作制御を行うためのコンフィギュレーションが
置かれるディレクトリ。
- icons
- ディレクトリインデックス等に使われるアイコンが置かれるディレク
トリ。
- logs
- アクセス、エラー、アクセスクライアント種別のログやWWWサーバが動
作しているプロセスID等が置かれるディレクトリ。この logsディレク
トリは使用時に作成して下さい。
- support
- アクセス制御のための便利なツールが置かれるディレクトリ。
- htdocs
- HTML文書が入るディレクトリ。このhtdocsディレクトリは使用時に作
成して下さい。
予めコンパイル済のファイルの場合、バイナリファイルも含まれていますが、
コンパイルを行いたい場合には、Makefileが準備されているので、
make systemとタイプします。単純に make をタイプすると、
system名の一覧が表示されます。
例えば、sunos の場合、
% make sunos
とします。すると httpd デーモンと cgi-bin のユーティリティが作成されま
す。次にsupport ディレクトリにあるプログラムもコンパイルしておきます。
最後に、httpd_1.5-export を httpd にシンボリックリンクしておきます。
# cd ..; ln -s httpd_1.5-export httpd
httpd には数々のオプションをコンパイル前にデフォルトととして定義できま
す。そのファイルは、srcディレクトリにある config.h ファ
イルです。
- #define SETPROCTITLE
- プロセスを表示させた時に、どのホストから利用されているかを表
示させるオプションです。IBM AIX 3やSunOS 等で使用できます。
- #define MULTI_HOST
- 仮想インタフェースまたは複数のインタフェースを持たせる場合に
指定します。
- #define MINIMAL_DNS
- ホスト名の逆引きを行なわない場合に指定します。この指定はDNSの逆
引きが接続のパフォーマンスに影響を与える場合に使用します。但し、
セキュリティ上好ましくありません。
- #define MAXIMUM_DNS
- 逆引き後、再度ホスト名を引いてよりセキュリティ効果を高めるオプ
ションです。
- #define XBITHACK
- このオプションを有効にすると、サーバはHTMLファイルの実行ビット
をチェックして、サーバサイドインクルードを実行します。
- #define SECURE_LOGS
- CGIスクリプトのログ(エラーログファイル以外)を残したくない場合に
指定します。
- #define NIS_SUPPORT
- NISサーバを使用する場合に指定します。
- #define HTTPD_ROOT
- サーバルートのディレクトリパス名を指定します。
- #define DOCUMENT_LOCATION
- ドキュメントルートのディレクトリパス名を指定します。
サーバルートはhttpdサーバプログ
ラム、コンフィグファイル、ログ、CGIスクリプトを置くディレクトリです。
ドキュメントルートはWWWの文書を置くディレクトリです。
セキュリティ上の注意
CERT Advisory CA-96.06 によると、NCSA 及び
Apache の CGI プログラムにセキュリティホールがある事が判明しました。
phf の中で使用されている関数 "escape_shell_cmd()
(cgi-src/util.c)"を使用している事が原因です。phf を削除し、この関
数を使用したプログラムも削除して下さい。
[Up] [Next]
[Previous]