[APACHE DOCUMENTATION]

Apache HTTP Server

Microsoft Windows での Apache の使用

この文書は、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 が配布されているものに含まれているためここでは特にする 必要はありません。

Windows 用の Apache のダウンロード

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 が標準で サポートされていますが、他ではそれをダウンロードする必要があります。 さらなる情報はメインのダウンロードページ http://httpd.apache.org/download.cgi に行ってください。 Microsoft Installer を見つける手順は Apache のバイナリ配布と同様、 ミラーサイトの win32 ダウンロードディレクトリに見つかります

ソースコードは -src.msi の配布または 配布ディレクトリ にある .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 の形式で再パッケージされました

Windows 用の Apache のインストール

上でダウンロードした Apache .msi を実行してください。 すると以下の入力が要求されます

インストールの間に、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 が作ったログファイルも同様です。

Windows 用の 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 サーバではきれいに終了しないのでそういった手段は 採らないでください

Windows 用の 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" コマンドが便利かも知れません。

Windows 用の Apache を設定する

Apache は conf ディレクトリ中のファイルにより設定されます。これらは、Unix バージョンの設定用ファイルと同じですが、Windows の Apache はいくらか異なるディレクティブがあります。 有効なディレクティブを知るためには Apache ドキュメントを見てください。

httpd.conf とそのディレクティブを読むことから Apache サーバの設定をはじめてください。access.confsrm.conf は存在はしていますが、 現在ではほとんどの管理者に使われない古いファイルで、 その中にはディレクティブが全く書かれていないことが分かるでしょう。

httpd.conf にはそれ自体にドキュメントがたくさん含まれていて、 Apache サーバを開始する時に推奨されるデフォルト設定のディレクティブが続いています。 設定ファイルを理解するにはそれらのコメントを読むことから始めて、 少し変更をしてはコンソールウィンドウから Apache を開始し、変更を適用させてください。 間違えたときに最後に行った変更を元に戻すのはより簡単でしょう。 そうするうちにどの変更がサーバの不具合につながるのかという 知識が生まれます。

Windows 用の Apache で異なる主な点は以下の通りです

コンソールウィンドウで Apache を実行する

スタートメニューアイコン及び 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.confServerRoot を更新することが肝心です。

コンソールアプリケーションとしてコマンドラインから Apache を実行するには、以下のコマンドを使ってください

    apache 

Apache が実行され、control-C を使うことにより止められるまで動き続けます。

コンソールウィンドウの Apache をコントロールします

実行中の 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" コマンドを連想させるものとして選ばれました。


Apache HTTP Server

Index