この文書で扱う範囲は、Unix や Unix に類似したシステムでの Apache のコンパイルとインストールです。 Windows における コンパイルとインストールに関しては「Microsoft Windows で Apache を使う」をご覧下さい。 その他のプラットホームに関しては「プラットホーム」をご覧下さい。
Apache 2.0 の設定とインストールの環境は、Apache 1.3 とは 完全に異なるものになりました。簡単にインストールできるように、 Apache 1.3 では特製スクリプトを使っていました。 Apache 2.0 では他の Open Source プロジェクトと同様の環境に するために libtool と autoconf を使うようになっています。
ダウンロード | $ lynx
http://www.apache.org/dist/httpd/httpd-2_0_NN.tar.gz
|
展開 | $ gzip -d httpd-2_0_NN.tar.gz |
設定 | $ ./configure --prefix=PREFIX
|
コンパイル | $ make |
インストール | $ make install |
カスタマイズ | $ vi PREFIX/conf/httpd.conf |
テスト | $ PREFIX/bin/apachectl start
|
NN は最新のマイナーバージョンナンバーに、
PREFIX はインストールするサーバでのファイルシステムのパスに、
置き換えてください。PREFIX を指定しなかった場合は、
デフォルトの /usr/local/apache2
になります。
Apache HTTPD のコンパイルとインストールに必要なものをはじめとして、 編集とインストールプロセスでのそれぞれの項は 次に詳しく記述されています。
Apache のビルドには次のものが必要です:
PATH
には make
といった基本的なビルドツールが含まれている必要があります。Apache は Apache Software Foundation ダウンロードサイトや近くの ミラーサイトからダウンロードできます。
alpha
で終わるバージョン番号は、
動くか動かないかよく分からない、
早期のプリテストバージョンであることを示しています。
beta
で終わるバージョンはそれよりは信頼性のある
リリースですが、テストとバグフィックスを重ねる段階のものです。
Apache HTTP サーバの入手可能な中で最高の製品リリースを
ダウンロードしたいのであれば、ファイル名に alpha
も beta
も付かない最新のバージョンを選んでください。
ダウンロード後、特にミラーサイトを使った場合は、
ダウンロードしたものが Apache HTTP
サーバの完全で改竄されていないバージョンであることを
検証することが重要です。これはダウンロードした tarball の PGP 署名を
テストすることによって検証します。
これは二つの段階があります。
まず KEYS
ファイルを Apache 配布サイト
からダウンロードしてください。(KEYS
ファイル自体が
改竄されていないことを確実にするために、以前の Apache
配布から取り出したファイルを使ったり、
公開鍵サーバから鍵を取り込むのもいいでしょう。)
自分の個人キーホルダーに鍵を取り込むには、
次のコマンド (pgp のバージョンに依存) を使います:
$ pgp < KEYS
または、
$ gpg --import KEYS
次のステップでは、tarball を PGP 署名でテストします。
PGP 署名は必ず メインの Apache
ウェブサイトから取得してください。
署名ファイルの名前は、ソースファイルの tarball と同じ名前に
.asc
を付加したものになっています。
以下のコマンド (やっぱり pgp のバージョンに依存) のどれか一つで、
配布ファイルをチェックすることができます:
$ pgp httpd-2_0_NN.tar.gz.asc
または、
$ gpg --verify httpd-2_0_NN.tar.gz.asc
すると、こんなメッセージを受けるはずです。
Good signature from user "Martin Kraemer
<martin@apache.org>".
自分のキーホルダーに格納されている信頼関係が原因で、
"鍵とその鍵の署名者が検証できなかった"
という旨のメッセージを同時に受けるかもしれません。
しかし、KEYS
ファイルの信憑性を受け入れるならば問題ではありません。
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
には様々な変数やコマンドラインオプションが用意されています。
一般的に、環境変数が ./configure
の前に設置されて、
他のオプションはその後に設置されます。
ここで最も重要なオプションは Apache
をどこにインストールするかを決める location prefix です。
なぜなら、Apache が正しく動作するためには
この場所用に設定されていないといけないからです。
しかし、お好みにより利用できるオプションはもっと沢山あります。
ちょっとどんなことができるかを見せましょう。 ここで典型的な例として、/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 を生成したりするのに数分間かかるでしょう。
Apache の全ての設定フラグを見る最も簡単な方法は、 ./configure --help を実行する方法です。 引数や環境変数に関する簡単な記述が出力されます。
autoconf でのビルドでは幾つかの環境変数を使ってビルド環境を
設定します。一般的に、これらの変数で Apache をビルドする際の
方法が変わったりしますが、できあがるサーバの機能には影響ありません。
これらの変数は configure
を呼び出す直前の環境中に
置くことができますが、通常は上に示した例のように configure
のコマンドラインでもっと簡単に指定できます。
CC=...
CPPFLAGS=...
CFLAGS=...
LDFLAGS=...
LIBS=...
INCLUDES=...
TARGET=...
[デフォルト値:apache]NOTEST_CPPFLAGS=...
NOTEST_CFLAGS=...
NOTEST_LDFLAGS=...
NOTEST_LIBS=...
SHLIB_PATH=...
--help
--quiet
--verbose
Apache をインストールするパス名を設定するには、 現在二通りの方法があります。まず一つ目は、 ディレクトリを指定して、その下にデフォルトの配置で Apache のインストールを行う方法です。
--prefix=PREFIX
[デフォルト値:
/usr/local/apache2]アーキテクチャに依存したファイルを、 異なるディレクトリに配置するようにもできます。
--exec-prefix=EPREFIX
[デフォルト値:PREFIX]二つ目の方法は、もっと柔軟にインストールパスの配置を
設定する方法で、config.layout
ファイルを
使います。この方法を使うことによって、
Apache のインストール中に、それぞれのファイルのための配置を
個々に指定できるようになります。config.layout
ファイルには設定例が幾つか含まれていますし、
お好みの設定を次の例に従って作り出すこともできます。
このファイル中では、異なる配置は <Layout
FOO>...</Layout>
セクションでグループ化され、
FOO
といった名前で参照されます。
--enable-layout=LAYOUT
config.layout
ファイル中での、
指定された名前のレイアウトを使用します。現在は --enable-layout
と--prefix
オプションをミックスすることはできません。
また configure
コマンドライン中で、
詳しく個々のパス名を指定することもできません。
基本的なインストール作業を行いたいだけならば、単純に
--prefix
オプションをそのまま使うことができます。
インストールをカスタマイズしたいのであれば、
config.layout
ファイルを編集して
--enable-layout
オプションを使う必要が
あるでしょう。
Apache はモジュール化されたサーバです。 ごくごく基本的な機能だけが、コアサーバに含まれています。 拡張機能は様々なモジュールの形で提供されます。 設定プロセス中では、どんなモジュールをサーバで使うように コンパイルするか選ばなければなりません。このマニュアルにあるモジュールの一覧を 参照できます。 "Base" ステータスの モジュールはデフォルトで含まれますし、 使いたくないのであれば、わざと無効にしなければ なりません。他のステータスのモジュールは、 使いたければ有効にしなければなりません。
Apache と一緒にコンパイルして使うようにするには、
二通りの方法があります。一つめはモジュールを
スタティックコンパイルする方法です。この場合は、
Apache のバイナリに恒久的に組み込まれることになります。
これの代わりに、もしオペレーティングシステムが動的共有
ライブラリ (DSO) (訳注: Dynamic Shared Object) を
提供していて autoconf がそれを認識できる
場合は、モジュールをダイナミックコンパイルする方法があります。
DSO モジュールは Apache のバイナリとは別に
保存され、mod_so で提供される
実行時設定ディレクティブを使って
組み込んだり取り外したりできます。
動的モジュールを実際に一つもコンパイルすることなく
サーバが DSO をロードできるようにするには、
--enable-so
と明示的にすることができます。
--enable-MODULE[=shared]
=shared
オプションを付加してください。--disable-MODULE
--enable-modules=MODULE-LIST
--enable-mods-shared=MODULE-LIST
--enable-modules
や
--enable-mods-shared
オプションに使う
MODULE-LIST は、普通はスペース区切りの
モジュール識別子のリストです。
例えば mod_dav と mod_info を有効にする場合は、
次のどちらかが使えます。
./configure --enable-dav --enable-info
または、同等の
./configure --enable-modules="dav info"
これに加えて、特別なキーワード all
や
most
を使って、
一度に全てあるいはほとんどのモジュールを加えることができます。
その後で好きなモジュールを --disable-MODULE
オプションを使って取り除くことができます。
例えば、mod_info を除く全てのモジュールを DSO モジュールとして
組み込む場合は、次のようにします。
./configure --enable-mods-shared=all
--disable-info
標準的なモジュールに加えて、Apache 2.0 では
Multi-Processing Modules (MPM)
を選択してインクルードします。ただ一つだけの MPM
をコンパイルのプロセスで含める必要があります。
個々のプラットホーム向けのデフォルトの MPM は MPM 文書に一覧がありますが、
configure
コマンドで置き換えることができます。
--with-mpm=NAME
Apache には suexec と呼ばれる 補助プログラムがあります。 このプログラムはユーザの CGI プログラムを隔離するために 使用することができます。しかしながら、suexec を適切に設定しなければ、 セキュリティ上致命的な問題をかかえる場合があります。 そのため、この機能を実装する前に suexec 文書をよく読んで一考しておきましょう。
これで Apache の様々なパーツをビルドすることができます。 次のコマンドを単純に実行するだけです:
$ make
基本的な設定をするのに、Pentium III/Linux 2.2 のシステムでおおよそ 3 分程度かかりますが、 あらかじめご了承下さい。 また、時間はハードウェアや有効にしたモジュールの数に 大きく依存するでしょう。
さて、設定したインストール PREFIX
(前述の --prefix
オプションを参照)
以下にパッケージをインストールする段階になりました。
次のコマンドを実行してください:
$ make install
アップグレードする場合は、インストールでは設定ファイルや ドキュメントファイルの上書きは行いません。
次に PREFIX/conf/ 以下にある 設定ファイルを編集して、 Apache HTTP サーバをカスタマイズします。
$ vi PREFIX/conf/httpd.conf
設定ディレクティブの 完全なリファレンスが載っていますので、 docs/manual/ や http://httpd.apache.org/docs/ にある Apache マニュアルをざっと見てください。
次のコマンドを実行して Apache HTTP サーバを開始できます:
$ PREFIX/bin/apachectl start
URL http://localhost/ を通して最初のドキュメントに対する
リクエストを発行する事ができるはずです。これで見える
ウェブページは DocumentRoot
以下に置かれたもので、通常は
PREFIX/htdocs/
でしょう。
サーバを再び停止するには、
次のコマンドを実行します:
$ PREFIX/bin/apachectl stop