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

  <title>Apache の起動</title>

<summary>
    <p>Windows 上では、Apache は通常は
    Windows NT ではサービスとして、Windows 95 
    ではコンソールアプリケーションとして実行されます。
    詳細に関しては、「<a href="platform/windows.html#run">
    Windows で Apache を実行する</a>」をご覧下さい。</p>

    <p>Unixでは、<a href="programs/httpd.html">httpd</a> 
    プログラムが、バックグラウンドで常にリクエスト処理を行う
    デーモンとして実行されます。この文書ではどのように
    <code>httpd</code> を起動するかについて記述しています。</p>
</summary>

<seealso><a href="stopping.html">停止と再起動</a></seealso>
<seealso><a href="programs/httpd.html">httpd</a></seealso>
<seealso><a href="programs/apachectl.html">apachectl</a></seealso>

<section id="startup"><title>Apache の起動方法</title>

    <p>もし、設定ファイル中で指定されている
    <directive module="mpm_common">Listen</directive>
    がデフォルトの 80 (もしくは 1024 以下の他のポート)
    である場合は、Apache を起動するためには root
    権限が必要になりますが、
    これはこの特権ポートにバインドするためです。
    起動して、一度ログファイルを開くといった準備のための
    動作を幾つか実行した後は、クライアントからのリクエストに対する
    listen と応答を実際に行う<em>子</em>プロセスを起動します。
    メインの <code>httpd</code> プロセスは root 権限で走り続けますが、
    子プロセスはもっと低い権限で走ります。
    これは選択した<a 
    href="mpm.html">マルチプロセッシングモジュール</a>で制御されます。</p>

    <p>推奨の <code>httpd</code> 実行プログラムの起動方法は、
    <a href="programs/apachectl.html">apachectl</a>
    制御スクリプトを使用する方法です。このスクリプトは、<code>httpd</code> 
    がオペレーティングシステム上で正常に動作するように必要な環境変数を
    適切に設定して、<code>httpd</code> バイナリを起動します。
    <code>apachectl</code> はどんなコマンドライン引数も通過させますので、
    <code>httpd</code> のどのコマンドラインオプションも
    <code>apchectl</code> のオプションとして使用できます。
    また、<code>apchectl</code> スクリプトを直接編集し、
    スクリプト先頭付近の <code>HTTPD</code> 変数を変更することで、
    <code>httpd</code> バイナリの正しい位置を指定したり、<em>常に</em>
    付加させるコマンドライン引数を指定したりすることができます。</p>

    <p><code>httpd</code> が起動されてまず最初にすることは、
    <a href="configuring.html">設定ファイル</a>
    <code>httpd.conf</code> の位置を特定して読み込むことです。
    このファイルの位置はコンパイル時に設定されますが、実行時に
    <code>-f</code> コマンドラインオプションを使って
    位置を指定することもできます。例えば次のようにです。</p>

<example>/usr/local/apache2/bin/apachectl -f
      /usr/local/apache/conf/httpd.conf</example>

    <p>スタートアップが万事上手くいったら、サーバはターミナルから
    切り離されて、コマンドプロンプトが即座に戻ってくるでしょう。
    これはサーバが起動している状態を示しています。
    その後はブラウザでサーバに接続して、
    <directive module="core">DocumentRoot</directive>
    ディレクトリのテストページやそこからリンクされている
    ローカルのドキュメントを見ることができるでしょう。</p>
</section>

<section id="errors"><title>起動時のエラー</title>

    <p>Apache は、起動時に致命的な問題に遭遇すると、
    終了する前に、コンソールか
    <directive module="core">ErrorLog</directive>
    のどちらかに問題を記述したメッセージを出力します。
    最もよくあるエラーメッセージは
    「<code>Unable to bind to Port ...</code>」
    です。このメッセージは普通は次のどちらかが原因です。</p>

    <ul>
      <li>root でログインしていない時に、
      特権ポートでサーバを起動しようとした。</li>

      <li>同じポートに既にバインドされている Apache
      がもう一つあるときや他のウェブサーバが存在している時に、
      サーバを開始しようとした。</li>
    </ul>

    <p>より多くの問題解決の方策の説明は、
    Apache <a href="faq/">FAQ</a> をご覧下さい。</p>
</section>

<section id="boot"><title>ブート時の起動</title>

    <p>システムがリブートした後でも
    サーバが実行され続けるようにしたい場合は、
    <code>apachectl</code>
    を呼び出すものをシステムスタートアップファイル
    (通常 <code>rc.local</code> や <code>rc.N</code>
    内のファイル) に追加しなければなりません。
    この方法では Apache を root 権限で起動します。
    これをする前に、セキュリティやアクセス制限が
    適切に設定されていていることを確認してください。</p>

    <p><code>apachectl</code> スクリプトは通常は、標準的な SysV init 
    スクリプトとして動作するように設計されています。
    <code>start</code>, <code>restart</code>, <code>stop</code>
    といった引数をとって、<code>httpd</code> 
    への適切なシグナルに変換します。
    ですから、通常は単に適切な init ディレクトリ内から
    <code>apachectl</code> へリンクすることができます。しかし、
    念のためシステムの要求に合致していることを確認してください。</p>
</section>

<section id="info"><title>追加情報</title>

    <p><a href="programs/httpd.html">httpd</a> や
    <a href="programs/apachectl.html">apachectl</a>
    、サーバに含まれていたその他補助プログラムの、
    コマンドラインオプションに関する追加情報は、
    <a href="programs/">サーバと補助プログラム</a>ページに
    記載されています。
    Apache 配布に含まれている全<a href="mod/">モジュール</a>、
    それによって提供される<a href="mod/directives.html">ディレクティブ</a>
    のドキュメントもあります。</p>
</section>

</manualpage>
