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

Apache HTTP サーバ バージョン 2.4

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

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

翻訳済み言語: de | en | es | fr | ja | ko | tr

この日本語訳はすでに古くなっている 可能性があります。 最近更新された内容を見るには英語版をご覧下さい。

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

Apache 2.0 では他の Open Source プロジェクトと同様、 ビルド環境構築に `libtool` と `autoconf` を使うようになっています。

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

### 参照

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

- コメント

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

ダウンロード | `$ lynx http://httpd.apache.org/download.cgi`
展開 | `$ gzip -d httpd-NN.tar.gz $ tar xvf httpd-NN.tar $ cd httpd-NN`
設定 | `$ ./configure --prefix=PREFIX`
コンパイル | `$ make`
インストール | `$ make install`
カスタマイズ | `$ vi PREFIX/conf/httpd.conf`
テスト | `$ PREFIX/bin/apachectl -k 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) です。GCC がない場合は、 少なくとも提供されているコンパイラが ANSI 準拠であることを確認しておいて下さい。 それから、変数 `PATH` には `make` といった基本的なビルドツールが含まれている必要があります。
時刻を正確にする
  HTTP プロトコルの要素は日時の時刻で表現されています。ですから、 正確な時刻にシンクロさせる機能をシステムに設定することを吟味してみて下さい。 Network Time Protocol (NTP) をベースとした ntpdate や xntpd プログラムが この目的によく用いられます。NTP ソフトウェアや公開 NTP サーバに関する詳細は、NTP ホームページ をご覧下さい。
Perl 5 [オプション]
  提供されているスクリプト幾つか、例えば `apxs` や `dbmmanage` は Perl で書かれているので、Perl 5 インタプリタが必要になります (5.003 以降)。 Perl インタプリタを複数インストールしている (たとえば全体のシステムの一部 としてインストールされている Perl 4 と、自分で追加でインストールした Perl 5 があるなどの) 場合、`--with-perl` オプション (下記参照) を使って `configure` が意図したものを使うように 明示的に指定すると良いでしょう。 `configure` スクリプトで Perl 5 インタプリタが 見つからない場合は、この影響を受けるサポートスクリプトが使えなくなります。 もちろん、Apache httpd のコンパイルとインストールは問題なく行えます。

## ダウンロード

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

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

## 展開

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

`$ gzip -d httpd-NN.tar.gz
$ tar xvf httpd-NN.tar`

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

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

次のステップは、あなたのプラットホームと 個人的な要求に合うように Apache ソースツリーを設定することです。 これは配布ディレクトリのルートディレクトリにある、 `configure` スクリプトで行ないます。 (Apache ソースツリーの未リリース 版をダウンロードした開発者は、次のステップに進む前に `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` マニュアルページ をご覧ください。あるいは `--help` オプションつきで `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`

基本的な設定をするのに数分かかりますが、 あらかじめご了承ください。 また、時間はハードウェアや有効にしたモジュールの数に 大きく依存するでしょう。

## インストール

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

`$ make install`

通常 PREFIX は書き込みパーミッションが制限されている ディレクトリになっているので、このステップは通常は ルート権限が必要です。

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

## カスタマイズ

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

`$ vi PREFIX/conf/httpd.conf`

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

## テスト

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

`$ PREFIX/bin/apachectl -k start`

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

`$ PREFIX/bin/apachectl -k stop`

## アップグレード

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

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

マイナーバージョンでアップグレードする場合は、 既にインストールされているサーバの `build` ディレクトリ内か、 以前インストールに使ったソースコードツリーの最上位ディレクトリ内にある、 `config.nice` ファイルを探してください。 このファイルにはソースツリーを設定した時に使った `configure` コマンドラインが、そのまま入っています。 次のバージョンにアップグレードする場合は `config.nice` ファイルを新しいバージョンのソースツリーにコピーし、 必要であればそれを編集した後に、次のように実行します。

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

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

もとの `configure` に追加する形で、 追加の引数を `config.nice` に渡すこともできます:

`$ ./config.nice --prefix=/home/test/apache --with-port=90`

翻訳済み言語: de | en | es | fr | ja | ko | tr

## コメント

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.