### Apache HTTP Server

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

- Apache のダウンロード
- 導入
- APACI を使った Apache 1.3 HTTP サーバのインストール

- 必要なシステム
- ソースツリーの設定
- パッケージのビルド
- パッケージのインストール

- 伝統的な方法によるビルドとインストール

- インストールの設定
- Apache のコンパイル
- Apache のインストール

- パッケージのテスト
- 正しいシステム時間の設定

この文書は Apache を Unix システム上で、コンパイル及びインストール するためのものです。それ以外のプラットホーム上でのコンパイル及び インストールについては、以下の項目を参照してください。

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

## Apache のダウンロード

Apache の最新版は Apache ウェブサイト http://www.apache.org/dist/httpd/ または http://www.apache.org/dyn/closer.cgi にリストされた多くのミラーサイトから直接ダウンロードすることも出来ます。 これらのサイトには現在のリリース版や最新のベータ版、古いバージョンへのリンク、 いろいろなプラットホーム用のバイナリ配布がリストされます。

## 導入

すべての良い物と同様、Apache を設定、コンパイル、インストール する方法は二つあります。以下で説明する APACI プロセスを使った 3分インストール、または 'src/INSTALL' ファイルで説明されている、 以前のバージョンの Apache と同じ機構を選択することが出来ます。 それぞれに利点と欠点があります。- APACI はより新しく、 少し熟成されていませんがそれに費やす時間は最小限で済みます。 対して、"Configuration.tmpl" の機構を使った従来の方法はパワーユーザにとってはより柔軟に扱うことが出来ます。 我々は、それぞれのやり方に対する意見やフィードバックには大変興味があります

## APACI を使った Apache 1.3 HTTP サーバのインストール

### Overview for the impatient

         $ ./configure --prefix=PREFIX
         $ make
         $ make install
         $ PREFIX/bin/apachectl start

注意: `PREFIX` は "PREFIX" という文字列ではありません。代わりに Apache をインストールしたい Unix のファイルシステム上のパスを使います。たとえば上の PREFIX の部分には "`/usr/local/apache`" が入ります。

### 必要なシステム

Apache のビルドには以下に挙げるものが必要になります

ディスクスペース
  約 12 MB のディスクスペースが一時的に必要になることを確認してください。 インストール後には約 3 MB のディスクスペースが必要になります。 (実際に必要になディスクスペースは組み込まれたサードパーティーの モジュール等に依ります)。
ANSI-C コンパイラ
  ANSI-C コンパイラがインストールされていることを確認してください。 Free Software Foundation (FSF) による GNU C コンパイラ (GCC) を推奨します(バージョン 2.7.2 で大丈夫)。GCC を持っていない場合は ベンダによるコンパイラが最低限 ANSI 互換であることを確認してください。 GNU のホームページは http://www.gnu.org/ に、GCC 配布は http://www.gnu.org/order/ftp.html から見つけることが出来ます。
Perl 5 インタプリタ [オプション]
  `apxs' や `dbmmanage' のような(Perl で書かれた) サポートスクリプトの中には Perl 5 インタプリタ (バージョン 5.003 または 5.004 が望ましい) が必要なものがあります。APACI の `configure' スクリプトにそのようなインタプリタが見つからなかった場合、 害にはなりません。当然、Apache 1.3 をビルド及びインストール することができます。もし、複数の Perl インタプリタがインストール されている場合 (恐らくはベンダによる Perl 4 と自分で導入した Perl 5)、 --with-perl オプション (以下参照) を使って正しいものを選択し APACI に知らせてやることを推奨します。
動的共有オブジェクト (DSO) サポート [オプション]

  現在、最大限の柔軟性のために Apache は dlopen()/dlsym() システムコールを利用した DSO 機構を経由させたランタイムにより、 モジュールをロードすることが出来ます。これらのシステムコールはすべての OS で有効なわけではないのでどのプラットホームでも DSO 機構を使えるとは限りません。シェアードオブジェクトのコンパイルは 非常にプラットフォームに依存したものであるため、Apache は現時点では いくつかのプラットフォームに関してのみその方法を知っています。 現在の状況はこのようになります。

  - サポートされているプラットフォーム:

    Linux | SunOS | UnixWare | Darwin/Mac OS
    FreeBSD | Solaris | AIX | OpenStep/Mach
    OpenBSD | IRIX | SCO | DYNIX/ptx
    NetBSD | HPUX | ReliantUNIX | BSDI
    Digital Unix | DGUX

  - 完全にサポート外のプラットフォーム:

    Ultrix

  あなたのシステムがこのリストにないけれど、dlopen 形式のインタフェースがある場合、適切なコンパイラとリンカフラグ (CFLAGS_SHLIB, LDFLAGS_SHLIB 及び LDFLAGS_SHLIB_EXPORT 参照) を手動で与えてやるか、最低限 Apache がオプションを推察できるように、 Perl 5 インタプリタがどこにインストール されているかを指定する必要があります。

  Apache 1.3 での DSO サポートに関する、より細部の情報については htdocs/manual/dso.html の文書をよく読んでください。 十分に注意しないで DSO 機構を使うと妙な副作用が発生することがあるため、 特に "Advantages & Disadvantages" と名付けられた節は 注意して読んでください。警告はしましたよ!

### ソースツリーの設定

次の段階は Apache ソースツリーを特定のプラットホームや 個々の必要に合わせて設定します。この設定で最も重要なことは後で Apache がインストールされる位置の決定です。というのは Apache が正しく動作するためにこの位置に合わせて設定されるからです。 他にも希望に応じて多くのオプションが有効です。

どんなことが出来るのか簡単に感じてもらうため、ここでは 標準的な例として、インストールツリーを /sw/pkg/apache, 特定のコンパイラ及びフラグ、そして 2 つの追加モジュール mod_rewrite 及び mod_proxy を後で DSO 機構によりロードさせるように Apache をコンパイルするものとします>。

         $ CC="pgcc" OPTIM="-O2" \
           ./configure --prefix=/usr/local/apache \
                       --enable-module=rewrite --enable-shared=rewrite \
                       --enable-module=proxy   --enable-shared=proxy

有効なオプションの完全なリストは以下のコマンドを打ち込んでください。

`./configure --help`

設定例のリストは `README.configure` ファイルも見てください。

### パッケージのビルド

これで Apache パッケージの各部分をコマンド

            $ make

を実行することによりビルドすることが出来ます。 これには有効にしたモジュールの量にもよりますが Pentium-166/FreeBSD-2.2 システムの場合で約 2 分かかります。じっと待ってください。

### パッケージのインストール

インストールの `PREFIX` (上の `--prefix` オプション参照)設定によりパッケージをインストールする時です。

            $ make install

以下の例では `PREFIX` はそのまま "PREFIX" ではなく、`--prefix` オプションにより与えられた引数になります。

## 伝統的な方法によるビルドとインストール

APACI が出てくる以前は Apache のビルド及びインストールの方法は 1 つしかありませんでした。APACI は 人によってはよりわかりやすい設定のインターフェースを提供しますが、 従来からの方法は大量のコマンドライン オプションを打ち込むことなくインストールの設定を 出来る方法が用意されています。

### インストールの設定

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

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

1. `Configuration` ファイル `src/Configuration.tmpl` の中で 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 ファイルを読み込むようにオプションを付けるといいでしょう。)

### Apache のコンパイル

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` ファイルを使うことによって、 ディレクトリ毎に設定できます。

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

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

        make

## パッケージのテスト

ここで、以下のコマンドを実行することで、Apache HTTP をすぐに 実行できるようになっています。

            $ PREFIX/bin/apachectl start

それから URL http://localhost/ (Apache を root としてあるいは --without-confadjust オプションを使ってビルド、インストールした場合) または http://localhost:8080/ (Apache を普通のユーザでビルド、 インストールした場合) により最初の文書をリクエストできます。 それから以下によりサーバを止めてください。

            $ PREFIX/bin/apachectl stop

## 正しいシステム時間の設定!

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

### Apache HTTP Server