<?xml version='1.0' encoding='iso-2022-jp' ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.ja.xsl"?>
<!-- English revision: 1.11.2.17 -->

<!--
 Copyright 2002-2004 The Apache Software Foundation

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<manualpage metafile="install.xml.meta">

  <title>コンパイルとインストール</title>

<summary>

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

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

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

</summary>

<seealso><a href="programs/configure.html">ソースツリーの設定</a></seealso>
<seealso><a href="invoking.html">Apacheの起動</a></seealso>
<seealso><a href="stopping.html">Apacheの停止と再起動</a></seealso>

<section id="overview"><title>概要 (せっかちな人向け)</title>

    <table>
      <columnspec><column width=".13"/><column width=".80"/></columnspec>
      <tr>
        <td><a href="#download">ダウンロード</a></td>

        <td><code>$ lynx http://httpd.apache.org/download.cgi</code>
        </td>
      </tr>

      <tr>
        <td><a href="#extract">展開</a></td>

        <td><code>$ gzip -d httpd-2_0_<em>NN</em>.tar.gz<br />
         $ tar xvf httpd-2_0_<em>NN</em>.tar</code> </td>
      </tr>

      <tr>
        <td><a href="#configure">設定</a></td>

        <td><code>$ ./configure --prefix=<em>PREFIX</em></code>
        </td>
      </tr>

      <tr>
        <td><a href="#compile">コンパイル</a></td>

        <td><code>$ make</code> </td>
      </tr>

      <tr>
        <td><a href="#install">インストール</a></td>

        <td><code>$ make install</code> </td>
      </tr>

      <tr>
        <td><a href="#customize">カスタマイズ</a></td>

        <td><code>$ vi <em>PREFIX</em>/conf/httpd.conf</code> </td>
      </tr>

      <tr>
        <td><a href="#test">テスト</a></td>

        <td><code>$ <em>PREFIX</em>/bin/apachectl start</code>
        </td>
      </tr>
    </table>

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

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

<section id="requirements"><title>必要なもの</title>

    <p>Apache のビルドには次のものが必要です:</p>

    <dl>
      <dt>ディスクスペース</dt>
      <dd>ディスクに少なくとも 50 MB の一時的な空き容量があるように
      気を付けてください。インストール後は Apache は 10 MB 程度の
      ディスクスペースを占めます。実際に必要になるディスクスペースは、
      設定オプションやサードパーティー製モジュールをどう選択するかによって
      大きく変わるでしょう。</dd>

      <dt>ANSI-C コンパイラとビルドシステム</dt>
      <dd>ANSI-C コンパイラをインストールしておいて下さい。お薦めは <a
      href="http://www.gnu.org/">Free Software Foundation (FSF)</a>
      による <a href="http://www.gnu.org/software/gcc/gcc.html">GNU C
      compiler (GCC)</a> です (バージョン 2.7.2 で大丈夫です)。GCC がない場合は、
      少なくとも提供されているコンパイラが ANSI 準拠であることを確認しておいて下さい。
      それから、変数 <code>PATH</code> には <code>make</code>
      といった基本的なビルドツールが含まれている必要があります。</dd>

      <dt>時刻を正確にする</dt>
      <dd>HTTP プロトコルの要素は日時の時刻で表現されています。ですから、
      正確な時刻にシンクロさせる機能をシステムに設定することを吟味してみて下さい。
      Network Time Protocol (NTP) をベースとした ntpdate や xntpd プログラムが
      この目的によく用いられます。NTP ソフトウェアや公開 NTP 
      サーバに関する詳細は、Usenet ニュースグループ <a
      href="news:comp.protocols.time.ntp">comp.protocols.time.ntp</a> や <a
      href="http://www.ntp.org">NTP ホームページ</a> をご覧下さい。</dd>

      <dt><a href="http://www.perl.org/">Perl 5</a>
      [オプション]</dt>
      <dd>提供されているスクリプト幾つか、例えば <a
      href="programs/apxs.html">apxs</a> や <a
      href="programs/dbmmanage.html">dbmmanage</a> は
      Perl で書かれているので、Perl 
      5 インタプリタが必要になります (5.003 以降)。
      "configure"スクリプトでこのようなインタプリタが見つからなくても、
      別に不具合はありません。もちろん、Apache 
      2.0 のコンパイルとインストールはできます。
      これらのサポートスクリプトが使えなくなるだけです。
      Perl インタプリタを複数インストールしている場合 (ベンダーの Perl
      4 と自分で入れた Perl 5 がある場合など) は、
      --with-perl オプション (下記参照) を使って ./configure
      が適切なものを確実に選ぶようにすると良いでしょう。</dd>
    </dl>
</section>

<section id="download"><title>ダウンロード</title>

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

    <p>ダウンロード後、ダウンロードしたものが Apache HTTP 
    サーバの完全で改竄されていないバージョンであることを
    検証することが重要です。これはダウンロードした tarball の PGP 署名を
    テストすることによって検証します。
    この手順の詳細は <a 
    href="http://httpd.apache.org/download.cgi#verify">ダウンロード
    ページ</a> にあり、さらに詳しい例は <a
    href="http://httpd.apache.org/dev/verification.html">PGP の使用
    </a> に記載されています。</p>

</section>

<section id="extract"><title>展開</title>

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

<example>
$ gzip -d httpd-2_0_<em>NN</em>.tar.gz<br />
$ tar xvf httpd-2_0_<em>NN</em>.tar
</example>

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

<section id="configure"><title>ソースツリーを設定する</title>

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

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

    <p>最も重要なオプションは、Apache がこの後でインストールされる位置
    <code>--prefix</code> です。Apache は、このインストール位置に
    おいて正常に動作するように設定しなければならないからです。
    さらに詳細なファイル位置の制御は追加の <a
    href="programs/configure.html#installationdirectories">設定オプション
    </a> でできます。</p>

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

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

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

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

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

    <p>個々の <code>configure</code> オプションの詳細に関しては
    <a href="programs/configure.html">configure マニュアルページ</a>
    をご覧ください。</p>
</section>

<section id="compile"><title>ビルド</title>

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

<example>$ make</example>

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

<section id="install"><title>インストール</title>

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

<example>$ make install</example>

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

<section id="customize"><title>カスタマイズ</title>

    <p>次に <code><em>PREFIX</em>/conf/</code> 以下にある <a
    href="configuring.html">設定ファイル</a>を編集して、
    Apache HTTP サーバをカスタマイズします。</p>

<example>$ vi <em>PREFIX</em>/conf/httpd.conf</example>

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

<section id="test"><title>テスト</title>

    <p>次のコマンドを実行して Apache HTTP サーバを<a
    href="invoking.html">開始</a>できます:</p>

<example>$ <em>PREFIX</em>/bin/apachectl start</example>

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

<example>$ <em>PREFIX</em>/bin/apachectl stop</example>
</section>
<section id="upgrading"><title>アップグレード</title>

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

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

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

    <example>
    $ ./config.nice<br />
    $ make<br />
    $ make install<br />
    $ <em>PREFIX</em>/bin/apachectl stop<br />
    $ <em>PREFIX</em>/bin/apachectl start<br />
    </example>

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