この文書は、Microsoft Windows 上での Apache 1.3 のインストール、設定、実行方法を説明します。この文書の大部分は、 バイナリ配布から Windows にインストールしていると想定しています。 もし (開発の手助けやバグ追跡のため) Apache を自分でコンパイル したい場合は、Microsoft Windows での Apache のコンパイル を見てください。
もしバグを見つけたら、バグ報告ページで報告してください。 そういった寄与は歓迎します。 コードまたは提案をバグ報告ページで報告するか、 new-httpd メーリングリストに参加してください。
バグ報告ページと new-httpd メーリングリストは、Apache の設定や実行方法について質問するために用意しているわけでは ありません。 バグ・レポートや要求を提出する前にまず、 この文書、よく出る質問 のページ、その他関連する文書を参照してください。 それでもまだ疑問や問題があるなら、comp.infosystems.www.servers.ms-windows ニュースグループに投稿してください。多くの Apache ユーザがいて Windows 上で Apache を使用するにあたっての新しい疑問、 わかりにくい疑問に対して返答をくれるでしょう。
groups.google.com のニュースグループのアーカイブにより以前の問題を 簡単に閲覧できます。ニュースグループのアーカイブを検索すれば、 ほとんどの問題は既出で、誰かが回答しているのを見つけられるでしょう。
警告: NT 上での Apache は性能面でまだ最適化されていません。 現時点では Apache は Unix プラットフォームで最高の性能を発揮し、 最も信頼できます。時とともに NT での性能は改善されて、Windows プラットフォーム上では来たるべきバージョン 2.0 において大きく進歩しています。ウェブサーバ性能の相対的なレビューを している人に対しては、まだ、Solaris、FreeBSD、Linux などの Unix プラットフォームでの Apache に対して比較するようにお願いしています。
Apache 1.3 は、WindowsNT 4.0 と Windows 2000 で動くように設計されています。バイナリのインストーラは インテル製のものなど x86 ファミリーのプロセッサでのみ動作します。 Apache は Windows 95 や 98 でも動作しますが、 これらはテストされていません。 すべての場合 TCP/IP ネットワークがインストールされていなければなりません。
NT 4.0 で実行する場合、サービスパック 3 または 6 のインストールを推奨します。サービスパック 4 には TCP/IP と WinSock の問題があり、それはサービスパック 5 以降では解決されています。
注: Apache 1.3.7 以降では "Winsock2" が必要になります。
Windows 95 で実行する場合、Apache を実行する前に "Winsock2" アップグレードをインストールしなければなりません。 Windows 95 用の "Winsock2" はここかここから入手可能です。ダイアルアップネットワーク 1.2 (MS DUN) アップデートには全く不適当な Winsock2 が含まれているので Winsock2 アップデートは、Windows 95 ダイアルアップネットワークをインストール した後に再インストールしなければならないことに注意してください。 Windows 98、NT (サービスパック 3 以降)、および 2000 のユーザは Winsock2 が配布されているものに含まれているためここでは特にする 必要はありません。
Apache の最新のバージョンについての情報は、http://httpd.apache.org/ の Apache ウェブサーバのページで見つけられます。そこには、現在のリリース、 最新のアルファ、またはベータテストリリースとともにミラーウェブサイト、 anonymous FTP サイトの詳細がリストされます。
Windows 用の Apache のバイナリ配布は、ソースコードに興味があるなら
apache_1_3_#-win32-src.msi
と名付けられたものを、
またはソースコードに対して何もするつもりがなく、
ダウンロードが早く済んだ方がいいと思うなら
apache_1_3_#-win32-no_src.msi
をダウンロードしてください。
これらのファイルはそれぞれに完全な Apache ランタイムを含んでいます。
Apache ランタイム配布をインストールする前に Microsoft Installer
version 1.10 が PC にインストールされていなければなりません。Windows
2000 および Windows Me では Microsoft Installer が標準で
サポートされていますが、他ではそれをダウンロードする必要があります。
Microsoft Installer を見つける手順は Apache のバイナリ配布と同様、
http://httpd.apache.org/dist/httpd/binaries/win32/
に見つかります
ソースコードは -src.msi
の配布または http://httpd.apache.org/dist/httpd/ 配布ディレクトリにある
.zip
ファイルから入手可能です。もし Apache
を自分でコンパイルするつもりなら、.msi
パッケージを
インストールする必要はまったくありません。.zip
ファイルは、MS-DOS の改行 (.tar.gz や .tar.Z で配布される unix
で使われる lf だけの改行の代わりに cr/lf の改行) が使われた
ソースコードだけが含まれます。
また、ソースは.tar.gz, .tar.Z のアーカイブからも入手できます。これらのファイルには、 Windows ユーザには扱いにくい unix lf 改行が含まれます。 そのアーカイブを使うためには少なくとも .mak と .dsp を MSVC が解釈できるよう、DOS 改行に変換しなければなりません。頭痛の種を作らないためにも .zip ファイルを選んでください。
注: Apache 1.3.17 より前では、InstallShield 2.0 の形式の .exe ファイルが配布されました [Windows Me や Windows 2000 で] InstallShield パッケージを使えないユーザが増大したため、 バイナリ配布は簡単に利用できる Microsoft Installer の .msi の形式で再パッケージされました
上でダウンロードした Apache .msi を実行してください。 すると以下の入力が要求されます
C:\Program Files\Apache Group\Apache
ですが
これはどのディレクトリにでも変更できます)。インストールの間に、Apache はインストールディレクトリ中の conf ディレクトリのファイルを設定します。しかし、 このディレクトリのファイルがどれか存在した場合は、それを上書き しません。代わりに、対応したファイルが .default.conf の拡張子を付けて保存されます。 つまり、例えば conf\httpd.conf が存在したなら、 それ自体は変更されないけれども、インストールされたであろうバージョンが conf\httpd.default.conf として残されます。インストール後に、 .default.conf でどこが新しくなったのか、 手動でチェックすべきで、必要に応じて既存の設定ファイルを 更新してください。
htdocs\index.html ファイルも、すでに存在すれば上書きされません (index.html.default ファイルとしてインストール されることもありません)。 これは、既存の Apache への上書きインストールが安全なことを意味します (しかし、インストールをする前に動いている既存のサーバは 止めなければなりません。 インストール完了後に新しいものを開始してください)。
Apache をインストールした後に、必要なら conf ディレクトリ内の設定ファイルを編集してください。 これらのファイルはインストールの間に、 インストールされたディレクトリから Apache が動作できるように設定され、ドキュメントはサブディレクトリ htdocs のものがクライアントに送られます。 Apache を実際に使い始める前に、 設定されるべきオプションは他にも沢山ありますが、 すぐに使い始めたい場合は、 インストールされたままの状態でも動作するでしょう。
もし Apache をアンインストールすることになった場合、設定ファイルと ログファイルは削除されません。設定ファイルや他のウェブファイルを 残したいと思わないならディレクトリツリー (デフォルトでは "C:\Program Files\Apache Group") を自分で削除する必要があります。 httpd.conf ファイルは Apache を使う上で蓄積された成果であるので、 削除するためには労力を払う必要があります。 あなたの作った可能性がある他の全てのファイルにおいても同じことが 言えます。Apache が作ったログファイルも同様です。
Apache を実行するには 2 つの方法があります
Apache を Windows サービスとして開始しようとする前に、 以下の手順を完了させてください!
コンソールウィンドウから Apache を実行するにはスタートメニューから、 "Start Apache as console app" オプションを選んでください (Apache 1.3.4 以前ではこのオプションは "Apache Server" と呼ばれていました)。 これによりコンソールウィンドウが開かれ、Apache はその中で実行されます。 ウィンドウは、Apache を止めるまで、アクティブであり続けます。Apache を止めるには、スタートメニューから、"Shutdown Apache console app" を選択するか (Apache 1.3.4 以前では使えません)、コンソールウィンドウで Apache をコントロールする を参照して、コンソールウィンドウで Apache をコントロールするコマンドを使ってください。
Apache 1.3.13 以降では、Ctrl+C または Ctrl+Break を押しても、コンソールウィンドウの Apache を安全に 止められるようになりました。そして、バージョン 1.3.13 から、 Windows NT/2000 上で使う場合は、システムメニュー (コンソールウィンドウの左上コーナーのアイコンをクリック) から「閉じる」を選ぶか、右上コーナーの終了 (X) ボタンをクリックすることにより Apache を停止させることもできます。 Apache バージョン 1.3.15 から、メニュー項目の「閉じる」や終了 (X) ボタンは Windows 95/98 でも働きます。しかし、それより前のバージョンの Apache サーバではきれいに終了しないのでそういった手段は 採らないでください。
Apache の起動においてトラブルがあれば、問題を切り離すため、 以下の手順に従ってください。これは "Start Apache as a console app" のショートカットをスタートメニューから選ぶことにより Apache を起動したらすぐに (あるいは突然) コンソールウィンドウが閉じた、または Apache をサービスとして開始するときにトラブルに遭った場合に あてはまります。
スタートメニュー - プログラム から「コマンドプロンプト」を実行してください。 Apache をインストールしたフォルダに移動し、apache コマンドを入力してエラーメッセージを読んでください。 そして、設定ミスがないか、error.log ファイルを調べてください。 Apache をデフォルトでインストールした場合は、コマンドは以下の様になります。
c: cd "\program files\apache group\apache" apache Apache が終了するのを待つか、Ctrl+C を入力 more <logs\error.log
error.log を確認することで、おそらく悪かったところを直し、 問題を解決してやり直すことができるでしょう。もし自力で 解決できなかった場合は、 この文書の冒頭の 補助のためのガイドライン や FAQ に従ってください。 多くのユーザはたくさんの設定ダイアログよりも、 httpd.conf ファイルの方が管理や検査が簡単なことに気づくでしょう。
開始後は Apache は設定ファイルで Port, Listen または BindAddress ディレクティブを変更していなければ (コンソールウィンドウでもサービスでも) 80 番ポートを Listen して実行されます。ブラウザを起動し、この URL
http://localhost/
を入力してサーバに接続し、デフォルトページにアクセスしてください
これで welcome ページが返され、Apache マニュアルへのリンクがあるはずです。もし何も起こらないか、 エラーだった場合は、logs ディレクトリ中の error.log ファイルを見てください。もしホストがネットに 接続されていない場合は、この URL
http://127.0.0.1/
を使う必要があるかもしれません
いったん基本的なインストールで動作したら、conf ディレクトリ中のファイルを編集して適切に設定してください。
Apache は同じポートを他の TCP/IP アプリケーションと共有することは 出来ない ので、まず特定のサービスを止めるかアンインストール する必要があるかもしれません。これには他のウェブサーバや BlackIce などのファイアウォール製品が (これらに限られませんが) 含まれます。 それらのサービスを使用せず Apache だけを起動させるか、 それらの製品と同じ TCP/IP ポートを listen しないように、Apache または他の製品を再設定してください。どのポートが使用されているのか を確認するには Windows の "netstat -an" コマンドが便利かも知れません。
Apache は conf ディレクトリ中のファイルにより設定されます。これらは、Unix バージョンの設定用ファイルと同じですが、Windows の Apache はいくらか異なるディレクティブがあります。 有効なディレクティブを知るためには Apache ドキュメントを見てください。
httpd.conf
とそのディレクティブを読むことから
Apache サーバの設定をはじめてください。access.conf
と srm.conf
は存在はしていますが、
現在ではほとんどの管理者に使われない古いファイルで、
その中にはディレクティブが全く書かれていないことが分かるでしょう。
httpd.conf
にはそれ自体にドキュメントがたくさん含まれていて、
Apache サーバを開始する時に推奨されるデフォルト設定のディレクティブが続いています。
設定ファイルを理解するにはそれらのコメントを読むことから始めて、
少し変更をしてはコンソールウィンドウから Apache
を開始し、変更を適用させてください。
間違えたときに最後に行った変更を元に戻すのはより簡単でしょう。
そうするうちにどの変更がサーバの不具合につながるのかという
知識が生まれます。
Windows 用の Apache で異なる主な点は以下の通りです
MaxRequestsPerChild 0
ではプロセスは消えません。ThreadsPerChild 50
です。
modules
ディレクトリにある多くの
オプションのモジュールをインストールします。それらのモジュールや
他のモジュールを有効にするには、新しい LoadModule
ディレクティブを使わなければなりません。例えば、status
モジュールを有効にするには以下 (さらに、httpd.conf
に
status を有効にするディレクティブが必要。詳細については mod_status
を参照) が必要です。
LoadModule status_module modules/mod_status.so
ロードできるモジュールの作成についての情報もあります。 サードパーティーのモジュールの中には 古い形式の名前、ApacheModuleFoo.dll で配布されていることが あることに注意してください。 LoadModule ディレクティブは常にサードパーティーのモジュール自身の ドキュメントに従って設定してください。
Apache は、Microsoft の IIS や他の Windows サーバで使われるような ISAPI 拡張 (すなわち、 インターネットサーバアプリケーション) もロードできます。 詳しい情報もあります。 Apache は ISAPI フィルタはロードできないことに注意してください。
.htaccess
のような名前のファイルは管理しにくいことが多いので、
AccessFilename
ディレクティブを使ってこのファイル名を変更すると
便利かもしれません。スタートメニューアイコン及び NT サービスマネジャーは、 Apache を管理するための簡単なインタフェースを提供します。 しかし、コマンドラインからの方が簡単な場合もあります。
Apache で何かするときには設定ファイルをどのように見つけるのかを 知っていることが重要です。コマンドラインで設定ファイルを指定するには 二つの方法があります
apache -f "c:\my server\conf\my.conf"
apache -f test\test.conf
apache -n "service name"
これらの場合、設定ファイルで適切なサーバルート が設定されている必要があります。
-f や -n で設定ファイル名を指定しない場合は、Apache は通常 "conf/httpd.conf" というサーバに組み込まれた ファイル名が使われます。Apache に -V スイッチを付けた場合、 SERVER_CONFIG_FILE と名付けられたこの値が表示されます。 Apache は、以下の順序で試してサーバルートを決定します
サーバに組み込まれるサーバルートは、通常 "/apache" になります。apache に -V スイッチを付けた場合は、HTTPD_ROOT 名付けられたこの値が表示されます。
スタートメニューからの場合は通常、Apache に引数が渡されないので コンソールの Apache でもレジストリのエントリを使うことが 推奨される方法です。
バイナリインストール中に、レジストリのキーがインストールされます。 例えば
HKEY_LOCAL_MACHINE\Software\Apache Group\Apache\1.3.13\ServerRoot
このキーはサーバに組み込まれていて、現在のバージョンに影響を 与えずに新しいバージョンをテストすることを可能にします。 もちろん、ファイルシステム上で古いバージョンの上に新しい バージョンをインストールしないように注意しなければなりません。
もしバイナリインストールをしなかった場合は、Apache はいくつかの筋書に沿って、欠落しているレジストリキーについての警告を発します。 この警告は、設定ファイルを見つけることが何らかの形で出来たなら 無視してかまいません。
このキーの値は conf ディレクトリのある "ServerRoot" ディレクトリです。Apache は開始時に httpd.conf ファイルをこのディレクトリから読みます。 上記のレジストリキーから得たディレクトリと異なるディレクトリが このファイルの ServerRoot ディレクティブで指定された場合は、 Apache はレジストリキーを忘れて設定ファイルで指示されたディレクトリを 使います。もし Apache ディレクトリや設定ファイルを別の場所に コピーする場合は httpd.conf の ServerRoot を更新することが肝心です。
コンソールアプリケーションとしてコマンドラインから Apache を実行するには、以下のコマンドを使ってください
apache
Apache が実行され、control-C を使うことにより止められるまで動き続けます。
実行中の Apache を、別のコンソールウィンドウから 以下を実行することにより止めることができます
apache -k shutdown
注: このオプションは Apache 1.3.3 以降でのみ有効です。
より以前のバージョンでは、サーバを止めるには、Apache のコンソールウィンドウで control-C を使わなければなりません。
バージョン 1.3.3 から 1.3.12 まででは、Apache のコンソールウィンドウで control-C を使う代わりにこれの方を 使うのが必要でした。それを使うと、Apache がその時点での 処理を終了してきれいに終了できることができたからです。
バージョン 1.3.13 で、動作しているウィンドウで Control-C を使っても Apache がきれいに終了するようになったので -k shutdown の別名として -k stop を使ってかまいません。 早期のバージョンでは -k stop を解釈しません。
Apache を、再スタートさせることもできます。それにより設定ファイル の再読込をします。経過中のどの処理も割込ませずに完了することが許されます。 Apache を再スタートするにはこれを実行してください
apache -k restart
注: このオプションは Apache 1.3.3 以降でのみ有効です。 早期のバージョンでは、Apache のコンソールウィンドウで Control-C によりサーバを終了させ、それから Apache コマンドによってサーバを再起動する必要があります。
他に、設定ファイルテストオプションという非常に便利な 機能があります。Apache の設定ファイルをテストするにはこれを実行してください:
apache -t
Apache がまだ実行しているときに設定ファイルの変更をしたときに 特に便利です。変更を加え、"apache -t" コマンドにより構文が正しいか確認してから "apache -k restart" により Apache を再起動するということができます。Apache は設定ファイルを読み直し、 割込みさせることなく処理を進めることが出来ます。 新しいリクエストは新しい設定に基づいて処理されます。
注: Apache の Unix
バージョンに精通した人々には、これらのコマンドは
kill -TERM pid
および kill -USR1 pid
と同等の機能を Windows
に提供する、と言った方がわかりやすいでしょう。
コマンドラインのオプションで使われる -k
は Unix における "kill" コマンドを連想させるものとして選ばれました。