思うこと
 OCNエコノミーとは
 DNSサーバの構築(WindowsNT BIND 4.9.7)
 メールサーバのインストール(WindowsNT+IMS)
 Webサーバのインストール(WindowsNT+IIS)
 セカンダリDNSサーバ(WindowsNT Bind)の構築
 ルータ(MN128-SOHO)の設定
 ちょっと一休み
 NATの導入
 NATの導入 その2
 NT+IISにPerlの導入
 namazuの導入
 namazuの導入 その2
 Windows版Apacheの導入
 11 Windows版Apacheの導入

Windows版Apacheについて

ApacheはUNIXプラットフォームでのWebサーバ(HTTPサーバ)として世界中で知られていますが、Windows98/NTでも動作するようになっています。ここでは、Win32版の「Apache 1.3.4 for Windows」のインストールとその設定方法などについて説明します。

残念ながら、Windows版のApacheは、UNIXプラットフォームのApacheと比較するとパフォーマンスの面で劣るとされています。各種のテストでも、NT上のApacheはかんばしい成績を残していません。とくにアクセスが集中したとき、そのパフォーマンスは決していいものとは言えません。しかし、LinuxなどのUNIXパフォーマンスがない環境で、WindowsNT、いやWindows95/98しかなくてもApacheを動作させることができるというメリットがあります。

WindowsNTにはIISというWebサーバが標準で添付されています。IISは設定が楽で、Webサーバ初心者にはありがたいサーバソフトですが、決して高機能とは言えません。ましてPersonal Web ServerのようなWebサーバソフトしかないWindows95/98で、まがりなりにもApacheが動作することは心強いことです。

Apacheのダウンロード

Apache for Windowsは、UNIXプラットフォームのように、ソースファイルでダウンロードして、コンパイルする必要はありません。ソースファイルも公開されているため、自分でコンパイルすることもできますが、わざわざそうすることもないでしょう。

ApacheをWindowsNT4.0にインストールする場合には、ServicePack2をインストールしてあることが推奨されています。あらかじめインストールしておきましょう。

では、Apacheをダウンロードします。本家からなら、「http://www.apache.org/」にWebブラウザでアクセスします。

表示されるページの「Download!」をクリックします。表示される画面から、目的のApacheをダウンロードします。ダウンロードページには、バージョン1.3.2のapache_1_3_2_win32.exe、バージョン1.3.3のapache_1_3_3.exe(2.7M)、バージョン1.3.4のapache_1_3_4_win32.exe(2.8M)の3種類が登録されています。ここでは最新のバージョンの「1.3.4」をダウンロードすることにします。

(この部分追加 99年3月に「1.3.6」が発表になっています)

「apache_1_3_4_win32.exe」をクリックしてダウンロードします。InternetExplorerの場合、ダウンロードを確認するダイアログボックスが表示されますので、「OK」ボタンをクリックして、続けて表示される「名前を付けて保存」ダイアログボックスで保存先を指定します。ダウンロードが始まります。

国内にあるApache配布サイト
http://ring.aist.go.jp/archives/net/apache/
http://ring.asahi-net.or.jp/archives/net/apache/
http://www.happysize.co.jp/apache/
http://SunSITE.sut.ac.jp/pub/apache/
http://japache.infoscience.co.jp/apache/
http://www.meisei-u.ac.jp/mirror/apache/

ダウンロードが終了すると自己解凍形式のファイルが、ダウンロード先にアイコンとして表示されるはずです。

Apacheのインストール

このアイコンをダブルクリックするとインストールが始まりますが、インストールするマシンのOSがWindowsNTの場合には、とくにことわらなければAdministratorの権限のあるユーザで操作してください。

インストールでは、インストール先ディレクトリを指定することと、Apacheのなにをインストールするか、インストールしたApacheをメニューに登録するにあたって、どんな名前のフォルダに登録するかを指定します。

まず最初に、インストール開始のダイアログボックスが表示されます。

「はい」ボタンをクリックします。ファイルの解凍があり、続けてセットアップが始まります。

ライセンスに関するドキュメントが表示されます。

読んだ上で承諾するなら「Yes」ボタンをクリックします。「No」ボタンをクリックするとインストールは中断されます。続いて、注意書きが表示されます。

「Windows版Apacheには、すでにバグが発見され、セキュリティホールもある。UNIX版ほどの完成度にはいたっていない」といった旨の警告メッセージです。「Next」ボタンをクリックするとインストール先ディレクトリを指定するダイアログボックスが表示されます。

デフォルトでは、Windowsがインストールしてあるドライブの「\Program Files\Apache Group\Apache\」以下にすべてインストールするようになっています。インストール先ディレクトリを変更したいときは、「Browse」ボタンをクリックすると「Choose Directory」ダイアログボックスが表示されますから、ここでディレクトリを指定します。

「Next」ボタンをクリックするとインストールのタイプを指定するダイアログボックスが表示されます。

「Typical」は標準インストール、「Compact」は最小インストール、Custom」はカスタムインストールです。「Typical」を選ぶとソースファイル以外のものがインストールされます。ソースファイルをインストールして、あとで自分でコンパイルするというときは、「Custom」を選んでください。インストールするものを選ぶダイアログボックスが表示されます。

「Next」ボタンをクリックすると、スタートメニューの「プログラム」に登録するときのフォルダの名前を設定するダイアログボックスが表示されます。

デフォルトでは、「Apache Web Server」になっています。「Next」ボタンをクリックするとインストールが始まります。

インストールが終了すると再起動をうながすメッセージが表示されます。

ApacheではVC++のダイナミックリンクライブラリ(DLL)を使っているようで、そのファイルをインストールしたために再起動するようです。一度、Apacheをインストールすると2度目からは、「README」ファイルを読むかどうかを確認するダイアログボックスが表示されます。

どちらのダイアログボックスでも「Finish」ボタンをクリックします。また、一度、Apacheをインストールすると環境設定ファイルやログファイルなどが残っている場合があります。再インストールすると、警告メッセージが表示され、すでにあるファイルに上書きはしないでインストールされます。

インストールに失敗したら

筆者も体験したのですが、WindowsNTにインストールしたあと、プログラムメニューの「Apache Web Server」の「Apache Server」を選んでもApacheが起動しないことがあります。そのときは、インストール先ディレクトリを確認してください。「.temp」という名前のフォルダができ、「-nt」で終わる名前のファイルがあるはずです。筆者の調べたかぎりでは、なんらかの理由によって、環境設定ファイルを作り、confディレクトリに収録するというインストールの最終段階で、インストーラが失敗している場合があるようです。そのため、環境設定ファイルがなく、Apacheが起動できないわけです。

こうなったときは、インストール先ディレクトリを「c:\Apache」として再度インストールしてみてください。それでもうまくいかないときは、環境設定ファイルhttpd.confを作り、confディレクトリに入れるようにします。ただし、「-nt」で終わっている名前のファイルは、環境設定ファイルのテンプレートファイルになっているようで、そのままではconfディレクトリに入れても正しく設定されません。テンプレートファイル「-nt」の中の「%%ServerRoot%%」をインストール先ディレクトリに書きなおして、confディレクトリに入れて起動するようにしてください。

このインストール中のトラブルは、VC++のダイナミックリンクライブラリ(.DLL)に原因があるようです。つまり、WindowsNTにあるDLLとApache(のインストーラ)が使うDLLでバージョンが違うために、インストール最終段階で失敗するようです。そのため、一度、インストールに成功するとその後はかならず問題なくインストールできるようになりました。筆者も原因追及に努めましたが、確認はできませんでした。ただし、Windowsのsystem32ディレクトリにある「msvcrt.dll」がバージョン「6.00」に上書きされていたことを記しておきます。

インストールされるディレクトリとファイルについて

無事にインストールがすむと、指定したディレクトリに次のようなディレクトリとファイルがインストールされます。

Apachecg-bincgi用ディレクトリだが、インストール直後にはなにもなし
conf環境設定ファイル用ディレクトリ
htdocshtmlファイル用ディレクトリ。ドキュメントルートにあたる。この中には、「It Worked!」という例のメッセージ用HTMLと画像ファイル(Powered by Apache)、そしてマニュアル関連のHTMLファイルがあるmanualディレクトリがある。
iconsアイコン用画像ファイル
logsログファイルと「httpd.pid」(プロセスIDが書きこまれる)ファイルがここに作られる
modulesApacheのモジュール用ディレクトリ。Windows版の場合は、「.DLL」形式になっている。

ソースファイルもインストールした場合には、ここに「src」という名前のディレクトリが作られます。

以上のように、Windows版とUNIX版でそれほど大きな違いはありません。環境設定ファイルの記述の仕方もそれほど違いもないため、以下では、Windows版特有のことにかぎって説明します。

Apacheの起動と終了 MS-DOSプロンプトから

Windows版Apacheを起動する方法は、プラットフォームが、Windows95/98か、WindowsNTかによって違いがあります。WndowsNTではサービスとして起動させる方法があるからです。ここでは、Windows95/98やWindowsNTでApacheをMS-DOSプロンプトから起動する方法を説明します。

まず、プログラムメニューに登録されたアイコンから起動してみます。スタートメニューのプログラムメニューに、インストールしたときに指定した名前のフォルダがあり、そこに「Apache Web Server」というアイコンが登録されています。このアイコンはショートカットになっていて、実態は「"C:\Program Files\Apache Group\Apache\Apache.exe" -d C:\PROGRA~1\APACHE~1\APACHE」というコマンドで、Apache本体のApache.exeに実行ディレクトリを指定して実行しています。

このアイコンを選ぶだけでApacheは起動します。MS-DOSプロンプトが起動して、「Apache/1.3.4 (Win32) running...」というメッセージが表示されれば、Apacheが起動しています。Apacheが起動しているマシンでなら、WebブラウザのURL欄に「http://localhost/」と入力してみてください。例のApache起動メッセージが表示されるはずです。ネットワーク上の別のマシンからなら、Apache稼動マシンのIPアドレスを、名前の解決ができているならそのApache稼動マシンの名前を、WebブラウザのURL欄に入力します。

Apacheを終了するときは、「ctrl」キーを押しながら「c」キーは押さないでください。正常に終了しないため、プロセスIDが書きこまれたhttpd.pidファイルが残り、次にApacheを起動したときに警告メッセージが表示されてしまいます。

C:\Program Files\Apache Group\Apache\Apache.exe: [Fri Feb 19 17:37:46 1999] [war
n] pid file c:/program files/apache group/apache/logs/httpd.pid overwritten -- U
nclean shutdown of previous Apache run?
Apache/1.3.4 (Win32) running...

Apacheを正しく終了するには、もうひとつ別のMS-DOSプロンプトを起動して、Apacheのディレクトリに移動し、「apache -k shutdown」と入力します。ディレクトリの移動には、「cd」コマンドを入力してから、移動先のフォルダをMS-DOSプロンプトまでドラッグ&ドロップすると簡単にできます。

Microsoft(R) Windows 98
   (C)Copyright Microsoft Corp 1981-1998.

C:\WINDOWS>cd C:\PROGRA~1\APACHE~1\APACHE

C:\Program Files\Apache Group\Apache>apache -k shutdown

C:\Program Files\Apache Group\Apache>

すると、Apacheが起動していたほうのMS-DOSプロントも、自動的に終了します。

終了コマンドはめんどうなので、ショートカットを作っておいたほうがいいでしょう。その場合のコマンドは、「"C:\Program Files\Apache Group\Apache\Apache.exe" -d C:\PROGRA~1\APACHE~1\APACHE -k shutdown」とします。

Apacheを再起動することもでき、その場合には、「apache -k restart」とします。

Apacheの起動と終了 WindowsNTのサービスとして

WindowsNTでは、Windows95/98と同じようにMS-DOSプロンプトからApacheを起動する方法とNTのサービスとして起動する方法のふたつの方法があります。

WindowsNTのサービスとして起動するには、Apacheをサービスとしてインストールします。インストールは、「Apache Web Server」の「Install Apache as Service (NT only)」アイコンから行ないます。このアイコンもコマンドのショートカットで、実態は「"C:\Program Files\Apache Group\Apache\Apache.exe" -d C:\PROGRA~1\APACHE~1\APACHE -i」というようにApache.exeに「-i」オプションを付けて実行します。メニューからこのアイコンを選んで実行すると、コントロールパネルのサービスに追加され、アイコンをダブルクリックすると「サービス」欄に「Apache」が追加されます。

サービスから起動するには、Apacheをクリックして選んでから「開始」ボタンをクリックします。終了するときは、「停止」ボタンをクリックします。「一時停止」ボタンや「続行」ボタンを使えません。

いちいちコントロールパネルから操作するのはめんどうです。WindowsNT起動時に自動的にApacheが起動するようにするときは、スタートアップをクリックします。設定画面が表示されますが、「スタートアップの種類」を「自動」を指定しておきます。

ここで「ログオン」を「システムアカウント」にしておかないで、「アカウント」をユーザ名に設定しておくとそのユーザでないとApacheサービスの開始や停止を行なえなくなります。

Apacheサービスの実行と停止は、MS-DOSプロンプトからも行なえます。サービスを開始するときは、どこのディレクトリでもかまいませんが、「net start apache」と入力し、サービスを終了するときは、「net stop apache」と入力します。

Microsoft(R) Windows NT(R)
(C) Copyright 1985-1996 Microsoft Corp.

C:\>net start apache
Apache サービスを開始します.
Apache サービスは正常に開始されました。

C:\>net stop apache
Apache サービスを停止中です..
Apache サービスは正常に停止されました。

C:\>

Apacheをサービスからはずすときは、「Apache -u」として「-u」オプションを付けて実行します。

Apacheの環境設定ファイルについて

Windows版Apacheの設定の仕方と方法は、UNIX版Apacheのものと基本的は変わりません。設定ファイルをエディタで読み込んで修正し、Apacheを再起動します。ただし、ディレクトリの指定は、Windows環境であるため、

ServerRoot "D:/Program Files/Apache Group/Apache"

というように、「/」(スラッシュ)を使ってUNIXライクな指定をします。「\」やバックスラッシュは使いません。また、モジュールの指定は、モジュールが「.DLL」ファイルであるため、

#LoadModule anon_auth_module modules/ApacheModuleAuthAnon.dll
#LoadModule cern_meta_module modules/ApacheModuleCERNMeta.dll
#LoadModule digest_module modules/ApacheModuleDigest.dll
#LoadModule expires_module modules/ApacheModuleExpires.dll
#LoadModule headers_module modules/ApacheModuleHeaders.dll
#LoadModule proxy_module modules/ApacheModuleProxy.dll
#LoadModule rewrite_module modules/ApacheModuleRewrite.dll
#LoadModule speling_module modules/ApacheModuleSpeling.dll
#LoadModule status_module modules/ApacheModuleStatus.dll
#LoadModule usertrack_module modules/ApacheModuleUserTrack.dll

という指定になっています。

Apacheは、Windowsのレジストリにはほとんど設定を書き込みませんが、唯一、ServerRootだけはレジストリの「HKEY_LOCAL\MACHINE\Software\Apache Group\Apache\1.3.4」に値の名前「ServerRoot」、値のデータ「C:\PROGRA~1\APACHE~1\APACHE」と書きこまれています。Apacheは起動時にこのディレクトリの下にあるconfディレクトリ内のhttpd.confを読み込んでから起動しています。Apacheのインストール先ディレクトリを変更するときは、このレジストリキーを修正してもいいのですが、インストールしなおしたほうが安全です。

また、コマンドラインから起動するときは、次のオプションを指定することもできます。

-CServerRootを指定するとき
     例 Apache -C c:\apache
-dApacheの実行ディレクトリを指定するとき
     例 Apache -d c:\apache
-f環境設定ファイルのあるディレクトリを指定するとき
     例 Apache c:\apache\conf

Windows版Apacheの実際

Windows版Apacheは、UNIX版と同じように、CGIやSSI、プロキシ、Virtual Hostなどをサポートし、「.htaccess」ファイルを使ったりなどもできるようです。バグも発見され、うまく動作しない機能もあるようですが、マイクロソフト製IISにない機能も豊富に持っているため、捨てがたい魅力があります。とくにPHPやnamazuなどUNIXプラットフォームからWindows版に移植された魅力的なソフトたちと相性がいいのが、魅力的です。Windows版のPerlもあります。

一番いいのは、IISのいいところとApacheのいいところを両方使ってしまうことでしょう。ApacheのようなHTTPサーバは、ポートを変えることができるようになっていますので、IIS側とApache側のポートを変えて起動しておけば、1台のマシンで共存させることもできます。たとえば、IIS側のポートを一般的な「80」とすれば、Apache側を「8080」とするわけです。

HTTPサーバは通常、「80」番を使うようRFC1340で記載されています。そのため、Webブラウザ側もとくに指定しなければ、ポート番号80でHTTPサーバにアクセスします。「8080」をポート番号として設定されたApacheには、たとえば「http://www.hyperdyne.co.jp:8080/」とポート番号を指定してアクセスする必要があります。ポート番号には、RFCで使われていない番号を使ってください。

(C) 1998 HyperDyne Inc.