Windows版Apache説明 日本語訳

Windows版Apacheの説明は、The Apache Software Foundation が、 http://httpd.apache.org/docs/windows.html で公開しております。2001/10/14 時点で公開されていたドキュメントをfutomiが日本語化したものです。Windows上でApacheを利用する際の理解に役立てれば幸いです。なお、緑色で記載された文章は、futomiが注釈として加筆したものです。また、一部、直訳ではなく、意訳した部分がございます。原文と表現がことなることがございますので、ご了承ください。

注意: この日本語訳は、futomiがWindows版Apacheの理解を深めるために、自分なりに日本語にしたものです。本日本語訳には、翻訳上の誤りがある可能性があります。したがって、内容について一切保証をするものではありません。正確さを求める場合には、必ず原文を参照してください。当方は、この文書によって利用者が被るいかなる損害の責任を負いません。

もし誤りなどを見つけたら、こちらからご連絡いただければ幸いです。


Apache HTTP Server
Using Apache With Microsoft Windows

この文書では、Microsoft Windows上で Apache 1.3 をインストール、設定、起動する方法を説明します。この文書では、バイナリーディストリビューションからWindowsにインストールすることを前提としています。ご自分でApacheをコンパイルしたいなら、Compiling Apache for Microsoft Windows をご覧下さい。

バグが見つかったら、バグ報告ページ で報告してください。寄付は歓迎します。どうか、バグ報告ページから、あなたのコードや提案を提出してください。またはnew-httpdメイリングリストに参加してください。

バグ報告ページと new-httpdメーリングリストは、Apacheの設定や動作に関する質問の解答を提供するものではありません。バグ報告や提案を提出する前に、まずこの文書や よくある質問ページや他の関連文書のトピックスを調べてください。それでも質問や問題があるなら、comp.infosystems.www.servers.ms-windows ニュースグループに投稿してください。多くのApache利用者や、何人かの貢献者が、WindowsでのApache利用に関して、新しい質問や、はっきりしない質問に喜んで答えてくれるでしょう。

groups.google.com's newsgroup archive では、既出の質問を簡単に調べることができます。newsgroup archivesを調べれば、たいていは貴方の質問は既に他の利用者によって質問されていたり、答えられていたりしていることが分かるでしょう。

注意: ApacheはNTではパフォーマンスに関して最適化されておりません。Apacheは、Unixプラットフォームでは、最高に動作し、最も信頼できます。徐々にNTでのパフォーマンスは改善されていくでしょう。Winodwsプラットフォーム用に、Apacheのバージョン2.0の開発が進められています。ウェブサーバのパフォーマンスの比較調査をしている方々は、まだ、Solaris、FreeBSD、LinuxのようなUnixプラットフォーム上でのApacheに対して比べることを求められています。


動作条件

Apache 1.3 は、Windows NT 4.0、Windows 2000で動作するよう設計されています。バイナリーインストーラーは、インテルのようなx86ファミリーのプロセッサーでしか動作しません。Apacheは Windows 95、Windows 98 でも動作しますが、試験がなされたわけではありません。いずれにせよ、TCP/IP ネットワーキングは必須です。

NT 4.0 で動作させる場合には Service Pack 3 または 6 をインストールすることをお勧めします。Service Pack 4 は、TCP/IP と WinSock integrity に関する既知の問題があります。これらは Service Pack 5 以降で解決しています。

注意: Apache 1.3.7 以降では、"Winsock2" が必要です。

Windows 95 で動作させる場合には、Apacheを動作させる前に、"Winsock2" をアップグレードする必要があります。Windows 95 用の "Winsock2" はこちら、またはこちら経由で入手できます。Dialup Networking 1.2 (MS DUN) updates に含まれる Winsock は不完全です。そしてWinsock2 update は、Windows 95 dialup networking をインストールした後に、インストールしなければいけません。Windows 98, NT (Service Pack 3 以降) そして 2000 は、Winsock2を実装していますので、特別なアクションはまったく不要です。

Windows版Apacheのダウンロード

Apacheの最新バージョン情報は、http://httpd.apache.org/ で公開されています。現バージョンやアルファ、ベータテストリリースを、ミラーサイト、anonymous FTP サイトの詳細とともに、公開しています。

Windows版Apacheのバイナリービルドをダウンロードして下さい。ソースコードが必要な場合には、apache_1_3_#-win32-src.msiを、ソースコードを使って何かする予定がない場合には、apache_1_3_#-win32-no_src.msi をダウンロードしてください。これらのファイルには、完全な Apache のランタイムが含まれます。Apache ランタイムディストリビューションをインストールする前に、Microsoft Installer version 1.10 をインストールしてください。Windows 2000 と Windows ME はともに Microsoft Installer support を実装しておりますが、それ以外はMicrosoft Installer をダウンロードする必要があります。Microsoft Installer の配布場所の説明は、Apache のバイナリーディストリビューションと同様、http://httpd.apache.org/dist/httpd/binaries/win32/ をご覧下さい。

ソースコードは、-src.msi ディストリビューション、または、.zip ファイルのように http://httpd.apache.org/dist/httpd/ ディストリビューションディレクトリから入手可能です。ご自分で Apache をコンパイルする場合には、.msi パッケージをインストールする必要はありません。.zip ファイルには、MS-DOS改行のソースコードのみが含まれます。

.tar.gz .tar.Z アーカイブからもソースコードは入手可能ですが、これらには Windows利用者にとっては悲しみを引き起こす UNIXのLF改行が含まれています。頭痛の種から開放されるためにも、.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 が既に存在している場合には、上書きされません(no index.html.default file will be installed either)。これは、Apacheの上書きインストールは安全であることを意味します(しかし、インストールする前に、起動してる Apache を停止し、インストール後に Apache を起動する必要があります。)。

Apache をインストールした後、conf ディレクトリにある設定ファイルを編集してください。これらのファイルは、インストールされたディレクトリから Apache を起動できるように、そしてサブディレクトリ htdocs. からHTML文書が提供できるように、インストール中に設定されます。Apache を利用する前に設定しなければいけないオプションが他にも多数あります。しかしながら、すぐに動作するようにするために、インストールされた時点で設定ファイルが有効になっているのです。(必要最低限の設定だけがなされているということです。)

Apache をアンインストールする場合には、設定やログファイルは削除されてしまいます。設定や他のウェブファイルを残しておく必要がない場合には、インストールされたディレクトリツリー(デフォルトでは、"C:\Program Files\Apache Group")をご自分で削除して下さい。httpd.conf ファイルは、Apache 運用の努力の賜物ですから、それを削除する勇気も必要です。Apacheが生成したログファイルと同様、同じことが、貴方が作成したすべての他のファイルにも当てはまります。

Windows版Apacheの起動

Apache の起動方法は2通りあります。

Windows "サービス" として Apache を起動しようとする前に、以下のステップを完了してください!

コンソールウィンドウから Apache を起動するためには、"Start Apache as console app" オプションを、スタートメニュー(in Apache 1.3.4 and earlier, this option was called "Apache Server")から選択して下さい。コンソールウィンドウがオープンし、Apache が起動し始めます。ウィンドウは、Apache を停止するまで残りつづけます。起動している Apache を停止するには、スタートメニュー(これは Apache 1.3.4 以前では利用できません。)から "Shutdown Apache console app" アイコンオプションを選択して下さい。コンソールウィンドウ Apache を制御するコマンドは、コンソールウィンドウからApacheを制御する を参照してください。

Apache 1.3.13 以上では、コンソールウィンドウで Ctrl+C or Ctrl+Break を押して Apache を停止してもまったく大丈夫です。Windows NT/2000 で、Apache のバージョンが 1.3.13 の場合、システムメニュー(コンソールウィンドウの画面左上隅のアイコンをクリック)から '閉じる' を選択しても、Apache を停止することができます。また、コンソールウィンドウ右上隅の閉じる(X)ボタンを押しても Apache を停止することができます。「閉じる」メニューや「閉じる(X)」ボタンは、Apache のバージョンが 1.3.15 であれば、Windows 95/98 でも有効です。しかし、Apache サーバのバージョンがそれ前である場合、これらのアプローチは試さないで下さい。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 を見れば、おそらく、何が問題なのかが分かり、問題を解決できるでしょう。そして再度挑戦してください。うまくいかないなら、この文書のはじめに掲載された guidelines for assistance に従ってください。または FAQ を見てください。多くの利用者は、httpd.conf ファイルの性質は、設定ダイアログボックスのページの後のページより扱いやすいと分かるでしょう。

Apache を起動した後、(設定ファイルの Port, Listen or BindAddress 指示子を変更していなければ)port 80 にリッスンされるでしょう。サーバに接続し、デフォルトページにアクセスするには、ブラウザーを起動し、このURLを入れて下さい。

  http://localhost/

ウェルカムページが返ってくるはずです。そして Apache マニュアルへのリンクがあります。何も起こらなかったり、エラーが出たりした場合には、logs ディレクトリ内の error.log ファイルを見てください。貴方のホストがネットに接続されていない場合には、このURLを入力してみてください。

  http://127.0.0.1/

基本インストールが完了したら、confディレクトリのファイルを編集して、適切な設定をして下さい。

Apache は他の TCP/IP アプリケーションと同じポートを共有することができないため、はじめにそのサービスを停止するかアンインストールする必要があります。他のウェブサーバやBlackIceのようなファイアーウォール製品が当てはまります。それらが同じ TCP/IP ポートをリッスンしないように、Apache と他の製品を再設定して下さい。Windows の "netstat -an" コマンドを使って、今使われているポート番号を調べることができます。

Windows版Apacheの設定

Apache は、conf ディレクトリ内のファイルで設定します。これらは、Unixバージョンの設定に使われるファイルと同じものです。しかし、いくつか違いがあります。すべての利用可能な指示子については、Apache documentation をご覧下さい。

httpd.conf を編集して Apache サーバを設定します。access.confsrm.conf というファイルがありますが、これらは、旧式のファイルで、ほとんどの管理者は既に使わなくなりました。これらのファイルを見ても、指示子がありません。

httpd.conf はそれ自身、非常に多くのドキュメントを含んでいます。Apache サーバを使い始めるときに推奨されるデフォルトの設定指示子に従って、説明されています。これらのコメントを読んで、設定ファイルを理解すれば、各種変更をコンソールウィンドウを使って Apache を利用できるようになるでしょう。もし、間違っていれば、最後に変更した設定に戻すことが簡単にできるでしょう。どの変更点が間違っているかが分かるでしょう。

Windows 版 Apache の主な違いは、以下の通りです。

  • MaxRequestsPerChild - Unix版の指示子のように、これは、事前にいくつのリクエストをプロセスが提供するかを制御します。しかしUnix版と違い、プロセスは一度に一つではなくすべてのリクエストを提供します。そのためこれを設定するなら、非常に大きい値にすることをお勧めします。推奨値 MaxRequestsPerChild 0, は、プロセスを終了させるわけではありません。
  • ThreadsPerChild - この指示子は新しいもので、いくつのスレッドを使うべきかを指示するものです。これは、一度にサーバが処理できる最高の接続数です。あなたのサイトに多くのアクセスがあるなら、この値を十分大きく設定して下さい。推奨デフォルトは、ThreadsPerChild 50 です。
LoadModule status_module modules/mod_status.so

creating loadable modules の情報も役に立ちます。いくつかのサードパーティー製モジュールは ApacheModuleFoo.dll のような旧式名で配布されているかもしれません。サードパーティー製モジュールのドキュメントにかかれている指示に従って、LoadModule コマンドを設定して下さい。

コンソールウィンドウからApacheを起動する

スタートメニューアイコンと NT サービスマネージャは、Apache を管理するための簡単なインターフェースを提供します。しかしいくつかのケースでは、コマンドラインのほうが簡単です。

Apache で作業をするとき、Apache がどのようにして設定ファイルを見つけるかを知ることは大事です。2つの方法で、コマンドラインから設定ファイルを特定することができます。

    apache -f "c:\my server\conf\my.conf"
    apache -f test\test.conf
    apache -n "service name"

これらのケースでは、適切な ServerRoot が設定ファイルに設定されていなければいけません。

-f や -n を使って設定ファイル名を指定しない場合、Apache はサーバにコンパイルされたファイル名を使います。通常は、"conf/httpd.conf" です。Apache を -V スイッチで呼び出すと、SERVER_CONFIG_FILE としてラベルされたこの値が表示されます。Apache はそのとき、次のことをこの順番で試みることによって ServerRoot を決定します。

サーバにコンパイルされたサーバルートは、通常、"/apache" です。-V スイッチで Apache を呼び出すと、HTTPD_ROOT としてラベルされた値が表示されます。

スタートメニューから呼び出されると、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 を停止することができます。

    apache -k shutdown

注意: このオプションは、Apache 1.3.3 以降でしか使えません。

さらに古いバージョンでは、Apache コンソールで、Control-C を使ってサーバを停止しなければいけません。

バージョン 1.3.3 から 1.3.12 までは、起動中のApacheコンソールウィンドウで Control-C を押す代わりに、apache -k shutdown コマンドを使ってください。apache -k shutdown コマンドを使うことによって、Apache は、現在の処理を終了し、正常に終了処理をすることができるのです。

バージョン 1.3.13 では、起動中のウィンドウから Control-C を押すことで、Apacheを正常に終了することができます。また、-k shutdown のエイリアスとして、-k stop も利用することができます。

Apache を再起動することもできます。これは、Apache に設定ファイルを再読み込みさせます。実行中の処理は、中断されることなく完了します。Apache を再起動するには、次のコマンドを実行してください。

    apache -k restart

注意: このオプションは、Apache 1.3.3 以降でしか利用できません。それ以前のバージョンでは、Apache コンソールウィンドウで Control-C を使って、Apache を停止してください。それから Apache コマンドでサーバを再起動してください。

ほかに、設定ファイルテストオプションの機能が非常に便利です。Apache設定ファイルをテストするには、次のコマンドを実行してください

    apache -t

これは、特に、Apache を起動したまま設定ファイルを変更をするには、便利です。"apache -t" コマンドを発行することで、文法が正しいかを確かめることができます。それから Apache を "apache -k restart" を使って再起動します。Apache は、実行中の処理を中断なく完了して、設定ファイルを再読み込みします。新しいリクエストは、新しい設定を使って提供されます。

注意: Unix版のApache を良く知っている方にはお分かりのとおり、これらコマンドは kill -TERM pidkill -USR1 pid. と同じことをWindowsに提供します。-k というコマンドラインオプションは、Unix で使われる "kill" コマンドの意味をこめて選ばれました。