この文書は Apache を Unix システム上で、コンパイル及びインストール するためのものです。それ以外のプラットホーム上でのコンパイル及び インストールについては、以下の項目を参照してください。
Apache の最新版は Download Page から直接ダウンロードすることが出来ます。
すべての良い物と同様、Apache を設定、コンパイル、インストール する方法は二つあります。以下で説明する APACI プロセスを使った 3分インストール、または 'src/INSTALL' ファイルで説明されている、 以前のバージョンの Apache と同じ機構を選択することが出来ます。 それぞれに利点と欠点があります。- APACI はより新しく、 少し熟成されていませんがそれに費やす時間は最小限で済みます。 対して、"Configuration.tmpl" の機構を使った従来の方法はパワーユーザにとってはより柔軟に扱うことが出来ます。 我々は、それぞれのやり方に対する意見やフィードバックには大変興味があります
$ ./configure --prefix=PREFIX $ make $ make install $ PREFIX/bin/apachectl start
注意: PREFIX
は "PREFIX"
という文字列ではありません。代わりに Apache をインストールしたい
Unix のファイルシステム上のパスを使います。たとえば上の PREFIX
の部分には "/usr/local/apache
" が入ります。
Apache のビルドには以下に挙げるものが必要になります
現在、最大限の柔軟性のために 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
ディレクトリで行われます。このディレクトリに入ってください。
Configuration
ファイル src/Configuration.tmpl
の中で Apache
にコンパイルするモジュールを選択します。実装したいオプションの
モジュールの行のコメントを外すか (ファイルの終わりにある
AddModule 行で) 、ダウンロードしたり、作成した追加のモジュールの
新しい行を追加します (どのように Apache モジュールを作成するのか?
についてのドキュメントはAPI.html
を参照してください) 。
あるモジュールが確実に必要でないことがわかっているならば、
いくつかのデフォルトモジュールをコメントアウトすることができます
(ただし、デフォルトのモジュールの多くはサーバの正確な操作と
セキュリティにとって重要なので注意してください) 。
Rule
行のいくつかを設定する必要があるかどうかを知るために
Configuration
ファイルの指示も読んでください。
Configure
スクリプトを下記の例のように実行します。
しかし、これが失敗するときや何か特殊な要求があるとき
(例えば、追加したモジュールによって何らかのライブラリが
必要な場合など) には Configure
ファイルの次のオプションのいくつかを編集する必要があるかもしれません。
EXTRA_CFLAGS, LIBS, LDFLAGS, INCLUDES
.
Configure
スクリプトを実行します
(*: 設定内容とシステムによっては、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
これで 3 の段階で使われる Makefile が生成されます。 また、オプションのサポートプログラムをコンパイルするために、 サポートディレクトリの中に Makefile が生成されます。
(もし、様々な設定を管理するつもりならば、
Configure
に Configure -file
Configuration.ai
のように、別の Configuration
ファイルを読み込むようにオプションを付けるといいでしょう。)
make
を実行してください。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 においても何かそれと同じ働きをするものを導入してください。