### Apache HTTP Server

# Apache 1.3 のコンパイル・インストール

このドキュメントは Apache を Unix システム上で、手動でのビルド ・インストールの手法によって、コンパイル、インストール するためのものです。もし、あなたが autoconf スタイルの configure インターフェイスを使いたい場合は、Apache のソース配布のルートにある INSTALL ファイルを代わりに読んでください。特定のプラットフォーム上での コンパイルとインストールについては、以下の項目を参照してください。

- Microsoft Windows 上で Apache を使用する
- Cygwin 上で Apache を使用する
- Novell Netware 上で Apache を使用する
- HP MPE/iX 上で Apache を使用する
- UnixWare 上で Apache をコンパイルする
- Apache の TPF Port の概要

## Apache のダウンロード

Apache の最新版の情報は http://www.apache.org/ の Apache ウェブサーバから入手することができます。ここには最新リリースと、 より新しいベータテストリリース、ミラーウェブサイトと anonymous ftp サイトの詳しい情報が表示されています。

もし、あなたがバイナリ配布版をダウンロードしたのであれば、Apache のインストールに移ってください。そうでなければ、 次のセクションのサーバのコンパイルについてを読んで下さい。

## Apache のコンパイル

Apache のコンパイルは三段階で構成されます: まずサーバに含めたい Apache モジュール を選択してください。 次に、あなたの OS に合わせた設定をします。 最後にコンパイルをします。

Apache の全ての設定は、Apache 配布の `src` ディレクトリで行われます。このディレクトリに入ってください。

1. `Configuration` ファイルの中で Apache にコンパイルするモジュールを選択します。実装したいオプションの モジュールの行のコメントを外すか (ファイルの終わりにある AddModule 行で) 、ダウンロードしたり、作成した追加のモジュールの 新しい行を追加します (どのように Apache モジュールを作成するのか? についてのドキュメントはAPI.html を参照してください) 。 あるモジュールが確実に必要でないことがわかっているならば、 いくつかのデフォルトモジュールをコメントアウトすることができます (ただし、デフォルトのモジュールの多くはサーバの正確な操作と セキュリティにとって重要なので注意してください) 。

   `Rule` 行のいくつかを設定する必要があるかどうかを知るために `Configuration` ファイルの指示も読んでください。

2. Apache を OS に合わせて設定します。通常はただ `Configure` スクリプトを下記の例のように実行します。 しかし、これが失敗するときや何か特殊な要求があるとき (例えば、追加したモジュールによって何らかのライブラリが 必要な場合など) には `Configure` ファイルの次のオプションのいくつかを編集する必要があるかもしれません。 `EXTRA_CFLAGS, LIBS, LDFLAGS, INCLUDES`.

   `Configure` スクリプトを実行します:

   >         % Configure
   >         Using 'Configuration' as config file
   >          + configured for <whatever> platform
   >          + setting C compiler to <whatever> *
   >          + setting C compiler optimization-level to <whatever> *
   >          + Adding selected modules
   >          + doing sanity check on compiler and options
   >         Creating Makefile in support
   >         Creating Makefile in main
   >         Creating Makefile in os/unix
   >         Creating Makefile in modules/standard

   (*: 設定内容とシステムによっては、Configure はこの通りに 表示しないことがありますが、それで問題ありません。)

   これで 3 の段階で使われる Makefile が生成されます。 また、オプションのサポートプログラムをコンパイルするために、 サポートディレクトリの中に Makefile が生成されます。

   (もし、様々な設定を管理するつもりならば、 `Configure` に `Configure -file Configuration.ai` のように、別の Configuration ファイルを読み込むようにオプションを付けるといいでしょう。)

3. `make` を実行してください。

Apache 配布にあるモジュールはApache 開発グループによってテストが行われ、 多くのメンバーによって日常的に使われているものです。 メンバーやサードパーティによって開発された特定のニーズや機能をもつ 追加モジュールは、<http://www.apache.org/dist/httpd/contrib/modules/>. から入手することができます。このページには、これらのモジュールを Apache コアコードにリンクさせるための説明が書いてあります。

## Apache のインストール

コンパイルを行うと、`httpd` というバイナリファイルが `src` ディレクトリに作成されます。Apache のバイナリ配布はこのファイルを提供します。

次のステップはプログラムをインストールし、それを設定することです。 Apache はコンパイルされたディレクトリと同じディレクトリのセットで 設定、実行されるようになっています。 もしどこか他のところから実行させたい場合は、ディレクトリを作成し、 そこに `conf` と `logs`, `icons` ディレクトリをコピーしてください。どちらの場合でも、 サーバルートのディレクトリのパーミッションをどう設定するかについて、 security 情報 を読むべきです。

次に、サーバの設定ファイルを編集します。3つの設定ファイルで ディレクティブ を設定します。標準状態では、 これらのファイルは `conf` ディレクトリに配置される、 `srm.conf`, `access.conf`, `httpd.conf` です。設定の参考になるように、配布の `conf` ディレクトリに同じ内容のファイル、`srm.conf-dist`, `access.conf-dist`, `httpd.conf-dist` があります。`-dist` なしで、 その名前のこれらのファイルをコピーするか、名前を変えてください。 それからそれぞれのファイルを編集してください。 それぞれのファイルにあるコメントを注意深く読んでください。 これらのファイルの正確な設定に失敗すると、サーバが動かなくなったり、 セキュリティ的に危険になったりします。 `conf` ディレクトリには `mime.types` という追加ファイルがあります。 通常このファイルを編集する必要はありません。

最初に `httpd.conf` を編集してください。 このファイルはサーバに関する一般的な属性を設定します; ポート番号や起動ユーザ 等々です。次に `srm.conf` ファイルを編集してください; これはドキュメントツリーのルート、 server-parsed HTML や内部的なイメージマップの解析のような特別な機能 等々 を設定します。最後にアクセスに関する基本事項を 設定するために access.conf ファイルを編集します。

これら3つのファイルに加えて、サーバの動作はアクセスされた ディレクトリにある `.htaccess` ファイルを使うことによって、 ディレクトリ毎に設定できます。

### システムタイムを正確に設定してください!

公開されるウェブサーバの適切な操作には、HTTP プロトコルの要素がその日の時間として示されるため、 正確な時間が必要とされます。ですから、これを機会に UNIX においては NTP やなんらかの時間の同期を取るシステム、NT においても何かそれと同じ働きをするものを導入してください。

## サポートプログラムのコンパイル

上記でコンパイル、設定されるメインの `httpd` サーバの他に、Apache には多数のサポートプログラムが含まれています。 これらは標準ではコンパイルされません。サポートプログラムは `support` ディレクトリにあります。 サポートプログラムをコンパイルするには、このディレクトリに入り、 以下のように入力してください :

        make

### Apache HTTP Server