NCSA WWWサーバ概要 サーバについて目次 コンフィギュレーション・ファイルの設定

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を削除し、この関数を使用したプログラムも削除して下さい。



Copyright (C) 1996-2003 by Yasukazu Yokoi. All Rights Reserved.