<?xml version="1.0" encoding="iso-2022-jp"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"><head><!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      --><title>mpm_common - Apache HTTP サーバ</title><link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /><link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /><link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link href="../images/favicon.ico" rel="shortcut icon" /></head><body><div id="page-header"><p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/directives.html">ディレクティブ</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a></p><p class="apache">Apache HTTP サーバ バージョン 2.0</p><img alt="" src="../images/feather.gif" /></div><div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div><div id="path"><a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP サーバ</a> &gt; <a href="http://httpd.apache.org/docs-project/">ドキュメンテーション</a> &gt; <a href="../">バージョン 2.0</a> &gt; <a href="./">モジュール</a></div><div id="page-content"><div id="preamble"><h1>Apache モジュール mpm_common</h1><table class="module"><tr><th><a href="module-dict.html#Description">説明:
                  </a></th><td>二つ以上のマルチプロセッシングモジュール (MPM)
で実装されているディレクティブのコレクション</td></tr><tr><th><a href="module-dict.html#Status">ステータス:
                  </a></th><td>MPM</td></tr></table></div><div id="quickview"><h3 class="directives">ディレクティブ</h3><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#coredumpdirectory">CoreDumpDirectory</a></li><li><img alt="" src="../images/down.gif" /> <a href="#group">Group</a></li><li><img alt="" src="../images/down.gif" /> <a href="#listen">Listen</a></li><li><img alt="" src="../images/down.gif" /> <a href="#listenbacklog">ListenBackLog</a></li><li><img alt="" src="../images/down.gif" /> <a href="#lockfile">LockFile</a></li><li><img alt="" src="../images/down.gif" /> <a href="#maxclients">MaxClients</a></li><li><img alt="" src="../images/down.gif" /> <a href="#maxrequestsperchild">MaxRequestsPerChild</a></li><li><img alt="" src="../images/down.gif" /> <a href="#maxsparethreads">MaxSpareThreads</a></li><li><img alt="" src="../images/down.gif" /> <a href="#maxthreadsperchild">MaxThreadsPerChild</a></li><li><img alt="" src="../images/down.gif" /> <a href="#minsparethreads">MinSpareThreads</a></li><li><img alt="" src="../images/down.gif" /> <a href="#numservers">NumServers</a></li><li><img alt="" src="../images/down.gif" /> <a href="#pidfile">PidFile</a></li><li><img alt="" src="../images/down.gif" /> <a href="#scoreboardfile">ScoreBoardFile</a></li><li><img alt="" src="../images/down.gif" /> <a href="#sendbuffersize">SendBufferSize</a></li><li><img alt="" src="../images/down.gif" /> <a href="#serverlimit">ServerLimit</a></li><li><img alt="" src="../images/down.gif" /> <a href="#startservers">StartServers</a></li><li><img alt="" src="../images/down.gif" /> <a href="#startthreads">StartThreads</a></li><li><img alt="" src="../images/down.gif" /> <a href="#threadlimit">ThreadLimit</a></li><li><img alt="" src="../images/down.gif" /> <a href="#threadsperchild">ThreadsPerChild</a></li><li><img alt="" src="../images/down.gif" /> <a href="#user">User</a></li></ul></div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="directive-section"><h2><a name="CoreDumpDirectory" id="CoreDumpDirectory">CoreDumpDirectory</a> <a name="coredumpdirectory" id="coredumpdirectory">ディレクティブ</a></h2><table class="directive"><tr><th><a href="directive-dict.html#Description">説明: 
              </a></th><td>Apache がコアダンプする前に移動を試みるディレクトリ
</td></tr><tr><th><a href="directive-dict.html#Syntax">構文:
              </a></th><td>CoreDumpDirectory <em>directory</em></td></tr><tr><th><a href="directive-dict.html#Default">デフォルト: 
              </a></th><td><code>デフォルトの設定は説明文を読んでください</code></td></tr><tr><th><a href="directive-dict.html#Context">コンテキスト:
              </a></th><td>サーバ設定ファイル</td></tr><tr><th><a href="directive-dict.html#Status">ステータス:
              </a></th><td>MPM</td></tr><tr><th><a href="directive-dict.html#Module">モジュール:
              </a></th><td><code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/perchild.html">perchild</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code></td></tr></table>

    <p>Apache がコアダンプする前に移動を試みるディレクトリを制御します。
    デフォルト値は <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>
    ディレクトリですが、このディレクトリはサーバの実行されているユーザ権限で
    書き込み可能であるべきではないので、通常はコアダンプは書き込まれません。
    デバッグのためにコアダンプが必要であれば、
    このディレクティブを使って他の位置にコアダンプを書き出すようにできます。</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="directive-section"><h2><a name="Group" id="Group">Group</a> <a name="group" id="group">ディレクティブ</a></h2><table class="directive"><tr><th><a href="directive-dict.html#Description">説明: 
              </a></th><td>リクエストに応答する際に所属するグループ</td></tr><tr><th><a href="directive-dict.html#Syntax">構文:
              </a></th><td>Group <em>unix-group</em></td></tr><tr><th><a href="directive-dict.html#Default">デフォルト: 
              </a></th><td><code>Group #-1</code></td></tr><tr><th><a href="directive-dict.html#Context">コンテキスト:
              </a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr><tr><th><a href="directive-dict.html#Status">ステータス:
              </a></th><td>MPM</td></tr><tr><th><a href="directive-dict.html#Module">モジュール:
              </a></th><td><code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/perchild.html">perchild</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code></td></tr></table>
    <p><code class="directive">Group</code> ディレクティブで、
    リクエストに応答する際に所属しておくグループを設定します。
    このディレクティブを使用するためには、スタンドアロン型の
    サーバは最初に root 権限で起動されている必要があります。
    <em>unix-group</em> は次のうちのいずれかです:</p>

    <dl>
      <dt>グループ名</dt>

      <dd>グループを名前で参照します。</dd>

      <dt># に続いてグループ番号</dt>

      <dd>グループを番号で参照します。</dd>
    </dl>
    <p>サーバを実行するために特定の新しいグループを設定することを
    お薦めします。<code>nobody</code> を使用する管理者もいますが、
    これは常に可能であったり望ましい訳ではありません。</p>

    <p>注意: サーバ開始を非 root ユーザで行った場合は、
    指定されたグループに変わることができなくて、代わりに
    起動を行ったユーザの所属するグループとして実行され続けます。</p>

    <p>特記事項: このディレクティブを &lt;VirtualHost&gt;
    で使用することはサポートされなくなりました。Apache 2.0 で
    <a href="../suexec.html">suEXEC ラッパー</a>を実現したい場合は、
    <code class="directive"><a href="../mod/mod_suexec.html#suexecusergroup">SuexecUserGroup</a></code>
    を使用してください。
    セキュリティ: セキュリティ上の注意点に関しては、
    <code class="directive"><a href="#user">User</a></code>
    をご覧下さい。</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="directive-section"><h2><a name="Listen" id="Listen">Listen</a> <a name="listen" id="listen">ディレクティブ</a></h2><table class="directive"><tr><th><a href="directive-dict.html#Description">説明: 
              </a></th><td>サーバが listen するIP アドレスとポート番号</td></tr><tr><th><a href="directive-dict.html#Syntax">構文:
              </a></th><td>Listen [<em>IP-address</em>:]<em>portnumber</em></td></tr><tr><th><a href="directive-dict.html#Context">コンテキスト:
              </a></th><td>サーバ設定ファイル</td></tr><tr><th><a href="directive-dict.html#Status">ステータス:
              </a></th><td>MPM</td></tr><tr><th><a href="directive-dict.html#Module">モジュール:
              </a></th><td><code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/perchild.html">perchild</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code></td></tr></table>
    <p><code class="directive">Listen</code> ディレクティブは Apache
    が特定の IP アドレスやポート番号だけを listen するように指定します。
    デフォルトでは全ての IP インターフェースのリクエストに応答します。
    Listen ディレクティブは現在では必須のディレクティブとなりました。
    もし設定ファイルになければ、サーバは起動に失敗します。
    これは以前のバージョンの Apache から変更のあった部分です。</p>

    <p>Listen ディレクティブでは、特定のポートあるいは
    アドレスとポートの組み合わせから入ってくるリクエストに対して
    応答するように指定します。
    もしポート番号だけが指定された場合は、サーバは全インターフェースの
    指定されたポート番号に対して listen します。
    IP アドレスがポートとともに指定された場合は、
    サーバは指定されたポートとインターフェースに対して listen 
    します。</p>

    <p>複数のアドレスとポートに対して listen するように、
    複数の Listen ディレクティブを使うこともできます。
    サーバは列挙されたアドレスとポート全てからのリクエストに対して
    応答します。</p>

    <p>例えば、サーバが 80 番ポートと 8000 番ポートの両方の
    コネクションを受け入れる場合は、次のようにします。</p>
<div class="example"><p><code>
   Listen 80<br />
   Listen 8000
</code></p></div>
    <p>二つの特定のインターフェースとポート番号からのコネクションを
    受け入れるようにするには、次のようにします。</p>
<div class="example"><p><code>
   Listen 192.170.2.1:80<br />
   Listen 192.170.2.5:8000
</code></p></div>
    <p>IPv6 アドレスは角括弧で囲まなければなりません。
    例えば次の例のようにです。</p>
<div class="example"><p><code>
   Listen [fe80::a00:20ff:fea7:ccea]:80
</code></p></div>
<h3>参照</h3><ul><li><a href="../dns-caveats.html">DNS の問題</a></li><li><a href="../bind.html">Apache
    が使用するアドレスとポートの設定</a></li></ul></div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="directive-section"><h2><a name="ListenBackLog" id="ListenBackLog">ListenBackLog</a> <a name="listenbacklog" id="listenbacklog">ディレクティブ</a></h2><table class="directive"><tr><th><a href="directive-dict.html#Description">説明: 
              </a></th><td>保留状態のコネクションのキューの最大長</td></tr><tr><th><a href="directive-dict.html#Syntax">構文:
              </a></th><td>ListenBacklog <em>backlog</em></td></tr><tr><th><a href="directive-dict.html#Default">デフォルト: 
              </a></th><td><code>ListenBacklog 511</code></td></tr><tr><th><a href="directive-dict.html#Context">コンテキスト:
              </a></th><td>サーバ設定ファイル</td></tr><tr><th><a href="directive-dict.html#Status">ステータス:
              </a></th><td>MPM</td></tr><tr><th><a href="directive-dict.html#Module">モジュール:
              </a></th><td><code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/perchild.html">perchild</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code></td></tr></table>
    <p>保留状態のコネクションのキューの最大長です。
    一般的には調整する必要はありませんし、調整は望ましくありません。
    しかし、TCP SYN フラッドアタックの状況下におかれる場合に、
    増やした方が望ましいシステムもあります。
    <code>listen(2)</code> システムコールのバックログパラメータを
    ご覧下さい。</p>

    <p>この値は OS により、小さな数に抑えられます。
    値は OS 毎に異なっています。また多くの OS では、
    バックログとして指定されている値ちょうどまで使っているわけではなく、
    設定されている値に基づいて (通常は設定値よりも大きな値を)
    使っていることに注意してください。</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="directive-section"><h2><a name="LockFile" id="LockFile">LockFile</a> <a name="lockfile" id="lockfile">ディレクティブ</a></h2><table class="directive"><tr><th><a href="directive-dict.html#Description">説明: 
              </a></th><td>受付を直列化するためのロックファイルの位置</td></tr><tr><th><a href="directive-dict.html#Syntax">構文:
              </a></th><td>LockFile <em>filename</em></td></tr><tr><th><a href="directive-dict.html#Default">デフォルト: 
              </a></th><td><code>LockFile logs/accept.lock</code></td></tr><tr><th><a href="directive-dict.html#Context">コンテキスト:
              </a></th><td>サーバ設定ファイル</td></tr><tr><th><a href="directive-dict.html#Status">ステータス:
              </a></th><td>MPM</td></tr><tr><th><a href="directive-dict.html#Module">モジュール:
              </a></th><td><code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/perchild.html">perchild</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code></td></tr></table>
    <p>USE_FCNTL_SERIALIZED_ACCEPT または USE_FLOCK_SERIALIZED_ACCEPT
    のいずれかを使って Apache をコンパイルした際に使用することになる、
    ロックファイルのパスを <code class="directive">LockFile</code>
    は設定します。
    このディレクティブは通常はデフォルト値のままにしておくべきです。
    これを変更する際の主な理由は、<code>logs</code>
    ディレクトリが NFS マウントされたものであるという理由です。
    <strong>ロックファイルはローカルディスクに保存しなければならない
    からです。</strong>
    メインサーバプロセスの PID が自動的にファイル名に付加されます。</p>

    <p><strong>セキュリティ:</strong> <code>/var/tmp</code>
    といった、誰でも書き込めるディレクトリにファイルを
    置かない方がよいです。なぜなら、サーバが起動時に作成する
    ロックファイルの作成自体を妨害することによって、
    誰でもサービス拒否アタックを引き起こすことができるからです。</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="directive-section"><h2><a name="MaxClients" id="MaxClients">MaxClients</a> <a name="maxclients" id="maxclients">ディレクティブ</a></h2><table class="directive"><tr><th><a href="directive-dict.html#Description">説明: 
              </a></th><td>リクエストに応答するために作成される
子プロセスの最大個数</td></tr><tr><th><a href="directive-dict.html#Syntax">構文:
              </a></th><td>MaxClients <em>number</em></td></tr><tr><th><a href="directive-dict.html#Context">コンテキスト:
              </a></th><td>サーバ設定ファイル</td></tr><tr><th><a href="directive-dict.html#Status">ステータス:
              </a></th><td>MPM</td></tr><tr><th><a href="directive-dict.html#Module">モジュール:
              </a></th><td><code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code></td></tr></table>
    <p><code class="directive">MaxClients</code> ディレクティブは、
    応答することのできる同時リクエスト数を設定します。
    <code class="directive">MaxClients</code> 制限数を越えるコネクションは通常、
    <code class="directive"><a href="#listenbacklog">ListenBacklog</a></code>
    ディレクティブで設定した数までキューに入ります。
    他のリクエストの最後まで達して子プロセスが空くと、
    次のコネクションに応答します。</p>

    <p>スレッドを用いないサーバ (すなわち <code class="module"><a href="../mod/prefork.html">prefork</a></code>)
    では、<code class="directive">MaxClients</code>
    は、リクエストに応答するために起動される
    子プロセスの最大数となります。
    デフォルト値は 256 で、これを増加させたい場合は、
    <code class="directive"><a href="#serverlimit">ServerLimit</a></code>
    の値も増加させる必要があります。</p>

    <p>スレッドを用いるサーバ (すなわち <code class="module"><a href="../mod/worker.html">worker</a></code>)
    では、<code class="directive">MaxClients</code> 
    は、クライアントに応答できるスレッドの総数を制限します。
    デフォルト値は
    <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code>
    を 16 倍した値になります。<code class="directive">MaxClients</code>
    を 16 プロセス以上必要な値まで増加させたい場合は、
    <code class="directive"><a href="#serverlimit">ServerLimit</a></code>
    も増加させる必要があります。</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="directive-section"><h2><a name="MaxRequestsPerChild" id="MaxRequestsPerChild">MaxRequestsPerChild</a> <a name="maxrequestsperchild" id="maxrequestsperchild">ディレクティブ</a></h2><table class="directive"><tr><th><a href="directive-dict.html#Description">説明: 
              </a></th><td>個々の子サーバが稼働中に扱うリクエスト数の上限</td></tr><tr><th><a href="directive-dict.html#Syntax">構文:
              </a></th><td>MaxRequestsPerChild <em>number</em></td></tr><tr><th><a href="directive-dict.html#Default">デフォルト: 
              </a></th><td><code>MaxRequestsPerChild 10000</code></td></tr><tr><th><a href="directive-dict.html#Context">コンテキスト:
              </a></th><td>サーバ設定ファイル</td></tr><tr><th><a href="directive-dict.html#Status">ステータス:
              </a></th><td>MPM</td></tr><tr><th><a href="directive-dict.html#Module">モジュール:
              </a></th><td><code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/perchild.html">perchild</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code></td></tr></table>
    <p><code class="directive">MaxRequestsPerChild</code> ディレクティブは、
    個々の子サーバプロセスが扱うことのできるリクエストの制限数を
    設定します。<code class="directive">MaxRequestsPerChild</code>
    個のリクエストの後に、子プロセスは終了します。
    <code class="directive">MaxRequestsPerChild</code> が 0
    に設定されている場合は、プロセスは期限切れにより終了することはありません。</p>

    <p><code class="directive">MaxRequestsPerChild</code>
    を非ゼロに制限することには、二つの利点があります:</p>

    <ul>
      <li>(偶発的な) メモリーリークが起こった場合に
      プロセスが消費するメモリの総量を制限できる</li>

      <li>プロセスに有限のライフタイムを設定することで、
      サーバ負荷が下がった時にプロセス数を少なくすることができる</li>
    </ul>

    <p><strong>注意:</strong> <em>KeepAlive</em> リクエストの場合は、
    一つ目のリクエストだけがこの制限に該当します。
    実効的には、一つの子プロセスあたりの<em>コネクション</em>数を
    制限するように挙動が変化します。</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="directive-section"><h2><a name="MaxSpareThreads" id="MaxSpareThreads">MaxSpareThreads</a> <a name="maxsparethreads" id="maxsparethreads">ディレクティブ</a></h2><table class="directive"><tr><th><a href="directive-dict.html#Description">説明: 
              </a></th><td>アイドルスレッドの最大数</td></tr><tr><th><a href="directive-dict.html#Syntax">構文:
              </a></th><td>MaxSpareThreads <em>number</em></td></tr><tr><th><a href="directive-dict.html#Context">コンテキスト:
              </a></th><td>サーバ設定ファイル</td></tr><tr><th><a href="directive-dict.html#Status">ステータス:
              </a></th><td>MPM</td></tr><tr><th><a href="directive-dict.html#Module">モジュール:
              </a></th><td><code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, <code class="module"><a href="../mod/perchild.html">perchild</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code></td></tr></table>
    <p>アイドルなスレッドの最大数です。異なる MPM ではそれぞれ、
    このディレクティブは異なる取り扱われ方をされます。</p>

    <p><code class="module"><a href="../mod/perchild.html">perchild</a></code> では、
    デフォルトは <code>MaxSpareThreads 10</code> です。
    この MPM はアイドルスレッド数を、それぞれの子プロセスごとに監視します。
    子プロセスにアイドルスレッドが多すぎる場合は、
    サーバはその子プロセスに含まれるスレッドを終了し始めます。</p>

    <p><code class="module"><a href="../mod/worker.html">worker</a></code> では、
    デフォルトは <code>MaxSpareThreads 500</code> です。
    この MPM はアイドルスレッド数をサーバ全体で監視します。
    サーバでアイドルスレッド数が多すぎる場合は、
    この数字よりも少ない数になるまで子プロセスを終了します。</p>

    <p><code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code> では、
    デフォルトは <code>MaxSpareThreads 100</code> です。
    この MPM はシングルプロセスで実行されますので、
    スペアスレッド数もサーバ全体で勘定します。</p>

<h3>参照</h3><ul><li><code class="directive"><a href="#minsparethreads">MinSpareThreads</a></code></li><li><code class="directive"><a href="#startservers">StartServers</a></code></li></ul></div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="directive-section"><h2><a name="MaxThreadsPerChild" id="MaxThreadsPerChild">MaxThreadsPerChild</a> <a name="maxthreadsperchild" id="maxthreadsperchild">ディレクティブ</a></h2><table class="directive"><tr><th><a href="directive-dict.html#Description">説明: 
              </a></th><td>子プロセス毎のスレッド数の最大数</td></tr><tr><th><a href="directive-dict.html#Syntax">構文:
              </a></th><td>MaxThreadsPerChild <em>number</em></td></tr><tr><th><a href="directive-dict.html#Default">デフォルト: 
              </a></th><td><code>MaxThreadsPerChild 64</code></td></tr><tr><th><a href="directive-dict.html#Context">コンテキスト:
              </a></th><td>サーバ設定ファイル</td></tr><tr><th><a href="directive-dict.html#Status">ステータス:
              </a></th><td>MPM</td></tr><tr><th><a href="directive-dict.html#Module">モジュール:
              </a></th><td><code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/perchild.html">perchild</a></code></td></tr></table>
    <p>子プロセス毎に含まれるスレッド数の最大値です。
    子プロセス毎にスレッド数変化する MPM では、
    このディレクティブは、子プロセス内に生成されるスレッド数の
    最大値を設定します。デフォルト値よりも大きい値にするのであれば、
    コンパイル時に定義された <code>HARD_THREAD_LIMIT</code>
    を変更して、サーバを再コンパイルする必要があります。</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="directive-section"><h2><a name="MinSpareThreads" id="MinSpareThreads">MinSpareThreads</a> <a name="minsparethreads" id="minsparethreads">ディレクティブ</a></h2><table class="directive"><tr><th><a href="directive-dict.html#Description">説明: 
              </a></th><td>リクエストに応答することのできる
アイドルスレッド数の最小数</td></tr><tr><th><a href="directive-dict.html#Syntax">構文:
              </a></th><td>MinSpareServers <em>number</em></td></tr><tr><th><a href="directive-dict.html#Context">コンテキスト:
              </a></th><td>サーバ設定ファイル</td></tr><tr><th><a href="directive-dict.html#Status">ステータス:
              </a></th><td>MPM</td></tr><tr><th><a href="directive-dict.html#Module">モジュール:
              </a></th><td><code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, <code class="module"><a href="../mod/perchild.html">perchild</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code></td></tr></table>
    <p>リクエストに応答するスレッド数の最小値です。
    異なる MPM ではそれぞれ、
    このディレクティブは異なる取り扱われ方をします。</p>

    <p><code class="module"><a href="../mod/perchild.html">perchild</a></code> では、
    デフォルトは <code>MinSpareThreads 5</code> で、
    アイドルスレッド数を子プロセス毎に監視します。
    もし子プロセスに十分な数のスレッドがなければ、
    サーバはその子プロセスに新しいスレッドを作り始めます。</p>

    <p><code class="module"><a href="../mod/worker.html">worker</a></code> では、
    デフォルトは <code>MinSpareThreads 250</code> で、
    アイドルスレッド数をサーバ全体で監視します。
    もしサーバに十分な数のアイドルスレッドがなければ、
    アイドルスレッド数がこの数よりも大きくなるまで
    新しい子プロセスが生成されます。</p>

    <p><code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code> では、
    デフォルトは <code>MinSpareThreads 10</code> で、
    シングルプロセス MPM ですので、サーバ全体で管理されます。</p>

<h3>参照</h3><ul><li><code class="directive"><a href="#maxsparethreads">MaxSpareThreads</a></code></li><li><code class="directive"><a href="#startservers">StartServers</a></code></li></ul></div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="directive-section"><h2><a name="NumServers" id="NumServers">NumServers</a> <a name="numservers" id="numservers">ディレクティブ</a></h2><table class="directive"><tr><th><a href="directive-dict.html#Description">説明: 
              </a></th><td>同時に起動している子プロセスの総数</td></tr><tr><th><a href="directive-dict.html#Syntax">構文:
              </a></th><td>NumServers <em>number</em></td></tr><tr><th><a href="directive-dict.html#Default">デフォルト: 
              </a></th><td><code>NumServers 2</code></td></tr><tr><th><a href="directive-dict.html#Context">コンテキスト:
              </a></th><td>サーバ設定ファイル</td></tr><tr><th><a href="directive-dict.html#Status">ステータス:
              </a></th><td>MPM</td></tr><tr><th><a href="directive-dict.html#Module">モジュール:
              </a></th><td><code class="module"><a href="../mod/perchild.html">perchild</a></code></td></tr></table>
    <p>同時に起動している子プロセスの数です。
    このディレクティブを使用する MPM は動的に新しい子プロセスを
    生成することは行わないので、サイト全体に来るリクエスト全てを
    十分扱える程度に大きな数に設定しておく必要があります。</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="directive-section"><h2><a name="PidFile" id="PidFile">PidFile</a> <a name="pidfile" id="pidfile">ディレクティブ</a></h2><table class="directive"><tr><th><a href="directive-dict.html#Description">説明: 
              </a></th><td>デーモンのプロセス ID
をサーバが記録するためのファイル</td></tr><tr><th><a href="directive-dict.html#Syntax">構文:
              </a></th><td>PidFile <em>filename</em></td></tr><tr><th><a href="directive-dict.html#Default">デフォルト: 
              </a></th><td><code>PidFile logs/httpd.pid</code></td></tr><tr><th><a href="directive-dict.html#Context">コンテキスト:
              </a></th><td>サーバ設定ファイル</td></tr><tr><th><a href="directive-dict.html#Status">ステータス:
              </a></th><td>MPM</td></tr><tr><th><a href="directive-dict.html#Module">モジュール:
              </a></th><td><code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/perchild.html">perchild</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code></td></tr></table>
    <p><code class="directive">PidFile</code> ディレクティブで、
    デーモンのプロセス ID をサーバが記録するファイルを設定します。
    もしファイル名がスラッシュ (/) で始まらない場合は、
    <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>
    からの相対的なものとして扱われます。</p>

    <div class="example"><h3>例</h3><p><code>
    PidFile /var/run/apache.pid
    </code></p></div>

    <p>サーバが <code class="directive"><a href="../mod/core.html#errorlog">ErrorLog</a></code>
    や TransferLog を閉じて開き直したり、設定ファイルを
    再読込したりさせるために、サーバにシグナルを送ることができると
    便利なことがあります。
    これは SIGHUP (kill -1) シグナルを PidFile
    に書かれているプロセス ID に送ることでできます。</p>

    <p>PidFile には、ログファイルの設置位置や
    <a href="../misc/security_tips.html#serverroot">セキュリティ</a>
    と全く同じ注意点があります。</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="directive-section"><h2><a name="ScoreBoardFile" id="ScoreBoardFile">ScoreBoardFile</a> <a name="scoreboardfile" id="scoreboardfile">ディレクティブ</a></h2><table class="directive"><tr><th><a href="directive-dict.html#Description">説明: 
              </a></th><td>子プロセスと連携するためのデータを保存する
ファイルの位置</td></tr><tr><th><a href="directive-dict.html#Syntax">構文:
              </a></th><td>ScoreBoardFile <em>file-path</em></td></tr><tr><th><a href="directive-dict.html#Default">デフォルト: 
              </a></th><td><code>ScoreBoardFile logs/apache_status</code></td></tr><tr><th><a href="directive-dict.html#Context">コンテキスト:
              </a></th><td>サーバ設定ファイル</td></tr><tr><th><a href="directive-dict.html#Status">ステータス:
              </a></th><td>MPM</td></tr><tr><th><a href="directive-dict.html#Module">モジュール:
              </a></th><td><code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/perchild.html">perchild</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code></td></tr></table>
    <p>Apache は親プロセスと子プロセス間の通信にスコアボードを用います。
    この通信機能にファイルを必要とするアーキテクチャもあります。
    ファイルが指定されていなければ、Apache はまずメモリ上
    (匿名共有メモリ) にスコアボードを作ろうとし、それが失敗すると
    ディスク上にファイル (ファイルベースの共有メモリ) を作ろうとします。
    このディレクティブを指定すると、Apache
    は必ずディスクにファイルを生成します。</p>

    <div class="example"><h3>例</h3><p><code>
    ScoreBoardFile /var/run/apache_status
    </code></p></div>

    <p>ファイルベースの共有メモリは、サードパーティー製のアプリケーションで
    スコアボードに直接アクセスする必要がある場合に役に立ちます。</p>

    <p><code class="directive">ScoreBoardFile</code> を使う場合、
    RAM ディスク上に置くとスピードが向上するでしょう。
    しかし、ログファイルの設置位置や
    <a href="../misc/security_tips.html">セキュリティ</a>
    と同様の注意点があるので、注意してください。</p>
<h3>参照</h3><ul><li><a href="../stopping.html">Apache の停止と再起動</a></li></ul></div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="directive-section"><h2><a name="SendBufferSize" id="SendBufferSize">SendBufferSize</a> <a name="sendbuffersize" id="sendbuffersize">ディレクティブ</a></h2><table class="directive"><tr><th><a href="directive-dict.html#Description">説明: 
              </a></th><td>TCP バッファサイズ</td></tr><tr><th><a href="directive-dict.html#Syntax">構文:
              </a></th><td>SendBufferSize <em>bytes</em></td></tr><tr><th><a href="directive-dict.html#Context">コンテキスト:
              </a></th><td>サーバ設定ファイル</td></tr><tr><th><a href="directive-dict.html#Status">ステータス:
              </a></th><td>MPM</td></tr><tr><th><a href="directive-dict.html#Module">モジュール:
              </a></th><td><code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/perchild.html">perchild</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code></td></tr></table>
    <p>サーバは TCP バッファサイズを指定されたバイト数に設定します。
    高速で高レイテンシな環境で
    (<em>例</em> 100ms 程度、大陸横断高速通信路など)
    古い一般的な OS のデフォルト値を増やすのに非常に便利です。</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="directive-section"><h2><a name="ServerLimit" id="ServerLimit">ServerLimit</a> <a name="serverlimit" id="serverlimit">ディレクティブ</a></h2><table class="directive"><tr><th><a href="directive-dict.html#Description">説明: 
              </a></th><td>設定可能なサーバプロセス数の上限</td></tr><tr><th><a href="directive-dict.html#Syntax">構文:
              </a></th><td>ServerLimit <em>number</em></td></tr><tr><th><a href="directive-dict.html#Default">デフォルト: 
              </a></th><td><code>ServerLimit 256 (prefork), ServerLimit 16 (worker)</code></td></tr><tr><th><a href="directive-dict.html#Context">コンテキスト:
              </a></th><td>サーバ設定ファイル</td></tr><tr><th><a href="directive-dict.html#Status">ステータス:
              </a></th><td>MPM</td></tr><tr><th><a href="directive-dict.html#Module">モジュール:
              </a></th><td><code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code></td></tr></table>
    <p><code class="module"><a href="../mod/prefork.html">prefork</a></code> MPM の場合は、このディレクティブは
    Apache プロセス稼働中における
    <code class="directive"><a href="#maxclients">MaxClients</a></code>
    に設定可能な上限値を設定することになります
    (訳注: prefork の場合は同時クライアント数 = サーバプロセス数なので) 。
    <code class="module"><a href="../mod/worker.html">worker</a></code> MPM の場合には、このディレクティブは
    <code class="directive"><a href="#threadlimit">ThreadLimit</a></code>
    ディレクティブと組み合わせて、
    Apache プロセス稼働中における
    <code class="directive"><a href="#maxclients">MaxClients</a></code>
    に設定可能な上限値を設定することになります。
    再起動中にこのディレクティブを変更しても無視されますが、
    <code class="directive"><a href="#maxclients">MaxClients</a></code>
    は再起動中に修正することができます。</p>

    <p>このディレクティブを使用する際は特に注意してください。
    <code class="directive">ServerLimit</code> が必要以上に大きな値に
    設定された場合は、余計な未使用共有メモリが割り当てられます。
    <code class="directive">ServerLimit</code> と
    <code class="directive"><a href="#maxclients">MaxClients</a></code>
    がシステムの扱える範囲を越えた設定値になっていると、
    Apache は起動しないか、起動しても不安定になるでしょう。</p>

    <p><code class="module"><a href="../mod/prefork.html">prefork</a></code> MPM では、
    <code class="directive"><a href="#maxclients">MaxClients</a></code>
    を 256 よりも大きな値に設定する必要がある時にだけ使用してください。
    希望の <code class="directive"><a href="#maxclients">MaxClients</a></code>
    数とくらべて、必要以上に大きな値を指定することは避けてください。</p>

    <p><code class="module"><a href="../mod/worker.html">worker</a></code> MPM では、
    <code class="directive"><a href="#maxclients">MaxClients</a></code> と
    <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code>
    の設定で 16 サーバプロセス以上必要になる場合にのみ使用してください。
    希望の
    <code class="directive"><a href="#maxclients ">MaxClients </a></code> と
    <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code>
    とくらべて、必要となるサーバプロセス数以上に大きな値を
    設定することは避けてください。</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="directive-section"><h2><a name="StartServers" id="StartServers">StartServers</a> <a name="startservers" id="startservers">ディレクティブ</a></h2><table class="directive"><tr><th><a href="directive-dict.html#Description">説明: 
              </a></th><td>起動時に生成される子サーバプロセスの数</td></tr><tr><th><a href="directive-dict.html#Syntax">構文:
              </a></th><td>StartServers <em>number</em></td></tr><tr><th><a href="directive-dict.html#Default">デフォルト: 
              </a></th><td><code>StartServers 5</code></td></tr><tr><th><a href="directive-dict.html#Context">コンテキスト:
              </a></th><td>サーバ設定ファイル</td></tr><tr><th><a href="directive-dict.html#Status">ステータス:
              </a></th><td>MPM</td></tr><tr><th><a href="directive-dict.html#Module">モジュール:
              </a></th><td><code class="module"><a href="../mod/worker.html">worker</a></code></td></tr></table>
    <p><code class="directive">StartServers</code> ディレクティブは、
    起動時に生成される子サーバプロセスの数を設定します。
    プロセス数は負荷に応じて動的に制御されますので、
    通常はこの値を調整する理由はあまりないでしょう。</p>
<h3>参照</h3><ul><li><code class="directive"><a href="#minsparethreads">MinSpareThreads</a></code></li><li><code class="directive"><a href="#maxsparethreads">MaxSpareThreads</a></code></li></ul></div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="directive-section"><h2><a name="StartThreads" id="StartThreads">StartThreads</a> <a name="startthreads" id="startthreads">ディレクティブ</a></h2><table class="directive"><tr><th><a href="directive-dict.html#Description">説明: 
              </a></th><td>起動時に生成されるスレッドの数</td></tr><tr><th><a href="directive-dict.html#Syntax">構文:
              </a></th><td>StartThreads <em>number</em></td></tr><tr><th><a href="directive-dict.html#Context">コンテキスト:
              </a></th><td>サーバ設定ファイル</td></tr><tr><th><a href="directive-dict.html#Status">ステータス:
              </a></th><td>MPM</td></tr><tr><th><a href="directive-dict.html#Module">モジュール:
              </a></th><td><code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, <code class="module"><a href="../mod/perchild.html">perchild</a></code></td></tr></table>
    <p>起動時に生成されるスレッドの数です。
    スレッド数は負荷に応じて動的に制御されますので、
    通常はこの値を調整する理由はあまりないでしょう。</p>

    <p><code class="module"><a href="../mod/perchild.html">perchild</a></code> でのデフォルトは
    <code>StartThreads 5</code> で、このディレクティブは起動時に
    プロセス毎のスレッド数を追跡します。</p>

    <p><code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code> でのデフォルトは
    <code>StartThreads 50</code> で、
    この場合プロセスは一つしかないので、
    起動時にリクエストに応答するスレッドの総数となります。</p>

</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="directive-section"><h2><a name="ThreadLimit" id="ThreadLimit">ThreadLimit</a> <a name="threadlimit" id="threadlimit">ディレクティブ</a></h2><table class="directive"><tr><th><a href="directive-dict.html#Description">説明: 
              </a></th><td>設定可能な子プロセス毎のスレッド数の上限を
設定します</td></tr><tr><th><a href="directive-dict.html#Syntax">構文:
              </a></th><td>ThreadLimit <em>number</em></td></tr><tr><th><a href="directive-dict.html#Context">コンテキスト:
              </a></th><td>サーバ設定ファイル</td></tr><tr><th><a href="directive-dict.html#Status">ステータス:
              </a></th><td>MPM</td></tr><tr><th><a href="directive-dict.html#Module">モジュール:
              </a></th><td><code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code></td></tr></table>
    <p>このディレクティブは
    Apache プロセス稼働中における
    <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code>
    に設定可能な上限値を設定します。再起動時にこのディレクティブの値を
    変更しても無視されますが、
    <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code>
    は再起動中に、このディレクティブで指定された上限値まで
    変更することができます。</p>

    <p>このディレクティブを使用する際は特に注意してください。
    <code class="directive">ThreadLimit</code> が
    <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code>
    よりもずっと大きな値に設定された場合は、
    余計な未使用共有メモリが割り当てられてしまいます。
    <code class="directive">ThreadLimit</code> が
    <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code>
    の両方がシステムの扱える範囲を超えている場合は、
    Apache は起動しないか、起動したとしても不安定になるでしょう。
    このディレクティブの値は今使用している Apache の <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code> の予想上限値を
    超えた値には設定しないでください。
    </p>

    <p><code class="directive">ThreadLimit</code> のデフォルト値は
    <code class="module"><a href="../mod/worker.html">worker</a></code> のときは 64 で、<code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code> のときは
    1920 です。</p>

</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="directive-section"><h2><a name="ThreadsPerChild" id="ThreadsPerChild">ThreadsPerChild</a> <a name="threadsperchild" id="threadsperchild">ディレクティブ</a></h2><table class="directive"><tr><th><a href="directive-dict.html#Description">説明: 
              </a></th><td>子プロセスそれぞれに生成されるスレッド数</td></tr><tr><th><a href="directive-dict.html#Syntax">構文:
              </a></th><td>ThreadsPerChild <em>number</em></td></tr><tr><th><a href="directive-dict.html#Default">デフォルト: 
              </a></th><td><code>ThreadsPerChild 50</code></td></tr><tr><th><a href="directive-dict.html#Context">コンテキスト:
              </a></th><td>サーバ設定ファイル</td></tr><tr><th><a href="directive-dict.html#Status">ステータス:
              </a></th><td>MPM</td></tr><tr><th><a href="directive-dict.html#Module">モジュール:
              </a></th><td><code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code></td></tr></table>
    <p>このディレクティブは、それぞれの子プロセスで生成される
    スレッド数を設定します。
    子プロセスは開始時にこれらのスレッドを生成して、
    その後は生成しません。<code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code> のような、
    子プロセスが一つしかないような MPM を利用しているのであれば、
    この値はサーバの負荷全体を十分取り扱える程度に、
    大きくなければなりません。<code class="module"><a href="../mod/worker.html">worker</a></code> のような、
    子プロセスが複数あるような MPM を利用しているのであれば、
    サーバの通常負荷を十分扱える程度に、
    スレッド総数が多くなければなりません。</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="directive-section"><h2><a name="User" id="User">User</a> <a name="user" id="user">ディレクティブ</a></h2><table class="directive"><tr><th><a href="directive-dict.html#Description">説明: 
              </a></th><td>リクエストに応答する際に用いるユーザ ID</td></tr><tr><th><a href="directive-dict.html#Syntax">構文:
              </a></th><td>User <em>unix-userid</em></td></tr><tr><th><a href="directive-dict.html#Default">デフォルト: 
              </a></th><td><code>User #-1</code></td></tr><tr><th><a href="directive-dict.html#Context">コンテキスト:
              </a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr><tr><th><a href="directive-dict.html#Status">ステータス:
              </a></th><td>MPM</td></tr><tr><th><a href="directive-dict.html#Module">モジュール:
              </a></th><td><code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/perchild.html">perchild</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code></td></tr></table>
    <p><code class="directive">User</code> ディレクティブは
    サーバがリクエストに応答する際に用いるユーザ ID を設定します。
    このディレクティブを使用するためには、スタンドアロン型の
    サーバは最初に root 権限で起動されている必要があります。
    <em>unix-userid</em> は次のどちらかです:</p>

    <dl>
      <dt>ユーザ名</dt>

      <dd>ユーザを名前で参照します。</dd>

      <dt># に続いてユーザ番号</dt>

      <dd>ユーザを番号で参照します。</dd>
    </dl>

    <p>このユーザは、外部に見せるように意図していないファイルに、
    アクセス可能になってしまうような権限を持つべきではないですし、
    同様に httpd リクエストに対して応答するように意図していない
    実行コードを、実行できるような権限を持つべきではないです。
    サーバを実行するために特定の新しいユーザとグループを
    設定することをお薦めいたします。
    <code>nobody</code> ユーザを使用する管理者もいますが、
    これが常に望ましいわけではありません。
    なぜなら <code>nobody</code> ユーザは、システムで
    他の役割を担っているかも知れないからです。</p>

    <p>注意: 非 root ユーザでサーバを起動した場合は、
    より低い権限のユーザに変わることに失敗して、
    代わりに起動を行ったユーザ権限のまま実行され続けるでしょう。
    root 権限で開始した場合親プロセスが root
    権限で実行され続けますが、これは正常です。</p>

    <p>特記事項: このディレクティブを
    <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>
    で使用することはサポートされなくなりました。
    <a href="mod_suexec.html">suexec</a> 向けにサーバを設定するのであれば、
    <code class="directive"><a href="../mod/mod_suexec.html#suexecusergroup">SuexecUserGroup</a></code>
    を使用してください。</p>

<div class="note"><h3>セキュリティ</h3>
<p>自分が何をやっているのか正確に把握していない、
そしてその危険性を把握していないのであれば、
<code class="directive">User</code>
(や <code class="directive"><a href="#group">Group</a></code>)
を <code>root</code> に設定しないでください。</p></div>
</div></div><div id="footer"><p class="apache">Maintained by the <a href="http://httpd.apache.org/docs-project/">Apache HTTP Server Documentation Project</a></p><p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/directives.html">ディレクティブ</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a></p></div></body></html>