コンパイルとインストール - Apache HTTP サーバ

Apache HTTP サーバ バージョン 2.0

Apache > HTTP サーバ > ドキュメンテーション > バージョン 2.0

# コンパイルとインストール

Available Languages: de | en | es | ja | ko | ru

This translation may be out of date. Check the English version for recent changes.

この文書で扱う範囲は、Unix や Unix に類似したシステムでの Apache のコンパイルとインストールです。 Windows における コンパイルとインストールに関しては「Microsoft Windows で Apache を使う」をご覧下さい。 その他のプラットホームに関しては「プラットホーム」をご覧下さい。

Apache 2.0 の設定とインストールの環境は、Apache 1.3 とは 完全に異なるものになりました。簡単にインストールできるように、 Apache 1.3 では特製スクリプトを使っていました。 Apache 2.0 では他の Open Source プロジェクトと同様の環境に するために `libtool` と `autoconf` を使うようになっています。

マイナーバージョンからその次のバージョンにアップグレードする (2.0.50 から 2.0.51 へ等) 場合は、まず アップグレードをご覧下さい。

### 参照

- ソースツリーの設定
- Apacheの起動
- Apacheの停止と再起動

## 概要 (せっかちな人向け)

ダウンロード | `$ lynx http://httpd.apache.org/download.cgi`
展開 | `$ gzip -d httpd-2_0_NN.tar.gz $ tar xvf httpd-2_0_NN.tar`
設定 | `$ ./configure --prefix=PREFIX`
コンパイル | `$ make`
インストール | `$ make install`
カスタマイズ | `$ vi PREFIX/conf/httpd.conf`
テスト | `$ PREFIX/bin/apachectl start`

NN は最新のマイナーバージョンナンバーに、 PREFIX はインストールするサーバでのファイルシステムのパスに、 置き換えてください。PREFIX を指定しなかった場合は、 デフォルトの `/usr/local/apache2` になります。

Apache HTTPD のコンパイルとインストールに必要なものをはじめとして、 編集とインストールプロセスでのそれぞれの項は 次に詳しく記述されています。

## 必要なもの

Apache のビルドには次のものが必要です:

ディスクスペース
  ディスクに少なくとも 50 MB の一時的な空き容量があるように 気を付けてください。インストール後は Apache は 10 MB 程度の ディスクスペースを占めます。実際に必要になるディスクスペースは、 設定オプションやサードパーティー製モジュールをどう選択するかによって 大きく変わるでしょう。
ANSI-C コンパイラとビルドシステム
  ANSI-C コンパイラをインストールしておいて下さい。お薦めは Free Software Foundation (FSF) による GNU C compiler (GCC) です (バージョン 2.7.2 で大丈夫です)。GCC がない場合は、 少なくとも提供されているコンパイラが ANSI 準拠であることを確認しておいて下さい。 それから、変数 `PATH` には `make` といった基本的なビルドツールが含まれている必要があります。
時刻を正確にする
  HTTP プロトコルの要素は日時の時刻で表現されています。ですから、 正確な時刻にシンクロさせる機能をシステムに設定することを吟味してみて下さい。 Network Time Protocol (NTP) をベースとした ntpdate や xntpd プログラムが この目的によく用いられます。NTP ソフトウェアや公開 NTP サーバに関する詳細は、Usenet ニュースグループ comp.protocols.time.ntp や NTP ホームページ をご覧下さい。
Perl 5 [オプション]
  提供されているスクリプト幾つか、例えば apxs や dbmmanage は Perl で書かれているので、Perl 5 インタプリタが必要になります (5.003 以降)。 "configure"スクリプトでこのようなインタプリタが見つからなくても、 別に不具合はありません。もちろん、Apache 2.0 のコンパイルとインストールはできます。 これらのサポートスクリプトが使えなくなるだけです。 Perl インタプリタを複数インストールしている場合 (ベンダーの Perl 4 と自分で入れた Perl 5 がある場合など) は、 --with-perl オプション (下記参照) を使って ./configure が適切なものを確実に選ぶようにすると良いでしょう。

## ダウンロード

Apache は Apache HTTP サーバダウンロードサイトからダウンロードできますし、 同じ場所に幾つかのミラーサイトもリストしています。 UNIX に類似するシステムで Apache を使うユーザは、ソースを ダウンロードしてビルドしたほうが良いでしょう。 ビルドの手順（下記）は簡単ですし、そのおかげでニーズに 見合ったカスタマイズを簡単にできます。 さらに、バイナリのリリースはソースリリースよりも 遅れていることがよくあります。 それでもバイナリをダウンロードしたのであれば、 ディストリビューションの中にある `INSSTALL.bindist` ファイルの説明に従ってください。

ダウンロード後、ダウンロードしたものが Apache HTTP サーバの完全で改竄されていないバージョンであることを 検証することが重要です。これはダウンロードした tarball の PGP 署名を テストすることによって検証します。 この手順の詳細は ダウンロード ページ にあり、さらに詳しい例は PGP の使用 に記載されています。

## 展開

Apache HTTPD の tarball からソースファイルを展開して取り出すとは、 単なる圧縮の解除と tar の展開です:

`$ gzip -d httpd-2_0_NN.tar.gz
$ tar xvf httpd-2_0_NN.tar`

配布用のソースコードがある現在いるディレクトリの下に、 新しいディレクトリが作られます。 サーバをコンパイルする段階に進む前に、そのディレクトリに `cd` で移動してください。

## ソースツリーを設定する

次のステップは、あなたのプラットホームと 個人的な要求に合うように Apache ソースツリーを設定することです。 これは配布ディレクトリのルートディレクトリにある、 `configure` スクリプトで行ないます。 (Apache ソースツリーの CVS 版をダウンロードした開発者は、次のステップに進む前に `autoconf` と`libtool` をインストールして `buildconf` を実行する必要があるでしょう。 公式リリースではこの作業は必要ありません。)

デフォルトオプションを使ってソースツリーを全て設定する のであれば、単純に `./configure` とタイプしてください。 デフォルトオプションを変更できるように、`configure` には様々な変数やコマンドラインオプションが用意されています。

最も重要なオプションは、Apache がこの後でインストールされる位置 `--prefix` です。Apache は、このインストール位置に おいて正常に動作するように設定しなければならないからです。 さらに詳細なファイル位置の制御は追加の 設定オプション でできます。

この時点で、モジュール を有効にしたり 無効にしたりすることで Apache 本体に含まれる 機能 を指定できます。Apache 本体にはデフォルトで、モジュールの Base セットが 含まれます。その他のモジュールは `--enable-module` オプションで 有効になります。ここで module はモジュールの名前で、 つまりそれはモジュールの名前から `mod_` 文字列を取り除いた後に アンダースコアをダッシュで置換した文字列です。 これとは別の方法で `--enable-module=shared` オプションを使って、モジュールを シェアードオブジェクト (DSO) -- 実行時にロードしたり アンロードしたりできる形式 -- としてコンパイルすることもできます。 同様に、`--disable-module` オプションで Base モジュールを無効化することもできます。 これらのオプションを使っているときに、もし指定したモジュールが存在しなくても `configure` は警告を上げることなく、単純にオプションを 無視することに気をつけてください。

上記に加えて、`configure` スクリプトに、 コンパイラ、ライブラリ、ヘッダファイルの位置を追加情報として渡す 必要がある場合があります。このような場合には、環境変数あるいは コマンドラインオプションで `configure` に渡します。 詳細に関しては configure マニュアルページ をご覧ください。

ちょっとどんなことができるかを見せましょう。 ここで典型的な例として、`/sw/pkg/apache` というインストールツリーでコンパイラとフラグを指定して、 さらに二つの追加モジュール `mod_rewrite` と `mod_speling` を後で DSO メカニズムでロードするようにコンパイルしてみます:

`$ CC="pgcc" CFLAGS="-O2" \
./configure --prefix=/sw/pkg/apache \
--enable-rewrite=shared \
--enable-speling=shared`

`configure` を実行したら、システムの機能を テストしたり、後でサーバをコンパイルするために必要な Makefile を生成したりするのに数分間かかるでしょう。

個々の `configure` オプションの詳細に関しては configure マニュアルページ をご覧ください。

## ビルド

これで Apache の様々なパーツをビルドすることができます。 次のコマンドを単純に実行するだけです:

`$ make`

基本的な設定をするのに、Pentium III/Linux 2.2 のシステムでおおよそ 3 分程度かかりますが、 あらかじめご了承下さい。 また、時間はハードウェアや有効にしたモジュールの数に 大きく依存するでしょう。

## インストール

さて、設定したインストール PREFIX (前述の `--prefix` オプションを参照) 以下にパッケージをインストールする段階になりました。 次のコマンドを実行してください:

`$ make install`

アップグレードする場合は、インストールでは設定ファイルや ドキュメントファイルの上書きは行いません。

## カスタマイズ

次に `PREFIX/conf/` 以下にある 設定ファイルを編集して、 Apache HTTP サーバをカスタマイズします。

`$ vi PREFIX/conf/httpd.conf`

docs/manual/ の Apache マニュアルをざっと見てください。 または、http://httpd.apache.org/docs/2.0/ にあるマニュアル最新版、設定ディレクティブに当たってみてください。

## テスト

次のコマンドを実行して Apache HTTP サーバを開始できます:

`$ PREFIX/bin/apachectl start`

URL `http://localhost/` を通して最初のドキュメントに対する リクエストを発行する事ができるはずです。これで見える ウェブページは `DocumentRoot` 以下に置かれたもので、通常は `PREFIX/htdocs/` でしょう。 サーバを再び停止するには、 次のコマンドを実行します:

`$ PREFIX/bin/apachectl stop`

## アップグレード

アップグレードでまず行なうべきことは、リリースアナウンスと ソースディストリビューションに入っている `CHANGES` を読んで、 自身のサイトに対して影響を及ぼす変更点を探すことです。 メジャーリリース間の変更をする場合 (例えば 1.3 から 2.0 へ、2.0 から 2.2 へ) は、コンパイル時や実行時の設定に大きな差異があるでしょうから、 手動の調整が必要になるでしょう。モジュールも全て、API の変更に合わせるためにアップグレードが必要になるでしょう。

マイナーバージョンから次のバージョンにアップグレードする場合 (例えば 2.0.55 から 2.0.57 へ) は、もっと簡単です。 `make install` を実行しても今あるドキュメント、 ログファイル、設定ファイルは上書きされません。 さらに、マイナーバージョン間では `configure` オプション、 実行時の設定、モジュール API に不整合が起こらないように、 開発者は最大限の努力をしています。 大抵の場合、同一の `configure` コマンドライン、 同一の設定ファイル、モジュール全てが正常に動作するはずです。 (2.0.41 以降ではそのようになっています。それ以前のバージョンには 不整合が存在します。)

前回のインストール時のソースツリーが残されているのであれば、 アップグレードはさらに簡単です。古いソースツリーのルートに存在する `config.nice` ファイルには、前回ソースツリーを設定した時の `configure` コマンドラインが入っています。 次のバージョンにアップグレードする場合は、`config.nice` ファイルを新しいバージョンのソースツリーにコピーし、 それを編集し必要な変更を行なって、次のように実行します。

`$ ./config.nice
$ make
$ make install
$ PREFIX/bin/apachectl stop
$ PREFIX/bin/apachectl start
`

新しいバージョンを使用する場合は、 実際に運用を始める前に、必ず自分用の環境でテストすべきです。 最終的にアップグレードする前に、非互換性がないかをテストするために、 例えば、異なる `--prefix` と異なるポート (`Listen` ディレクティブで設定します) を使用することで、古いバージョンに影響を与えずに新しいバージョンを インストールし、実行できます。

Available Languages: de | en | es | ja | ko | ru