diff options
author | Takashi Sato <takashi@apache.org> | 2008-06-06 16:36:23 +0200 |
---|---|---|
committer | Takashi Sato <takashi@apache.org> | 2008-06-06 16:36:23 +0200 |
commit | f438923a5c634449fdbdd216af4dde62bbf54a3c (patch) | |
tree | 135a94939c8dac28a57c49d49d10e86ca3ef3788 /docs/manual/mod | |
parent | The environment may be manipulated by modules such as mod_perl, so regenerate (diff) | |
download | apache2-f438923a5c634449fdbdd216af4dde62bbf54a3c.tar.xz apache2-f438923a5c634449fdbdd216af4dde62bbf54a3c.zip |
Convert Japanese translations from ISO-2022-JP to UTF-8
since "Support for Additional Languages" needs to be enabled
in the installation of JRE to read ISO-2022-JP.
Reviewed by: kawai
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@663964 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'docs/manual/mod')
60 files changed, 7920 insertions, 7920 deletions
diff --git a/docs/manual/mod/core.xml.ja b/docs/manual/mod/core.xml.ja index eb0267988e..e05cd50b4c 100644 --- a/docs/manual/mod/core.xml.ja +++ b/docs/manual/mod/core.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 190982:661942 (outdated) --> @@ -23,55 +23,55 @@ <modulesynopsis metafile="core.xml.meta"> <name>core</name> -<description>$B>o$K;HMQ2DG=$J(B Apache HTTP $B%5!<%P$N%3%"5!G=(B</description> +<description>常に使用可能な Apache HTTP サーバのコア機能</description> <status>Core</status> <directivesynopsis> <name>AcceptFilter</name> -<description>$B%W%m%H%3%k$r(B Listen $B$7$F$$$k%=%1%C%H$N:GE,2=$r@_Dj$9$k(B</description> +<description>プロトコルを Listen しているソケットの最適化を設定する</description> <syntax>AcceptFilter <var>protocol</var> <var>accept_filter</var></syntax> <contextlist><context>server config</context></contextlist> -<compatibility>2.1.5 $B0J9_(B</compatibility> +<compatibility>2.1.5 以降</compatibility> <usage> - <p>Listen $B$7$F$$$k%=%1%C%H$KBP$7$F!"(BOS $B$,8GM-$K;}$C$F$$$k%W%m%H%3%k$K$D$$$F$N:GE,2=$r(B - $BM-8z$K$9$k%G%#%l%/%F%#%V$G$9!#BgA0Ds$H$J$k>r7o$O!"%G!<%?$,<u?.$5$l$k$+(B - HTTP $B%j%/%(%9%HA4BN$,%P%C%U%!$5$l$k$+$9$k$^$G!"%+!<%M%k$,%5!<%P%W%m%;%9$K(B - $B%=%1%C%H$rAw$i$J$$$h$&$K$J$C$F$$$k!"$H$$$&$3$H$G$9!#8=:_%5%]!<%H$5$l$F$$$k$N$O!"(B + <p>Listen しているソケットに対して、OS が固有に持っているプロトコルについての最適化を + 有効にするディレクティブです。大前提となる条件は、データが受信されるか + HTTP リクエスト全体がバッファされるかするまで、カーネルがサーバプロセスに + ソケットを送らないようになっている、ということです。現在サポートされているのは、 <a href="http://www.freebsd.org/cgi/man.cgi?query=accept_filter&sektion=9"> - FreeBSD $B$N(B Accept Filter</a> $B$H(B Linux $B$N%W%j%_%F%#%V$J(B - <code>TCP_DEFER_ACCEPT</code> $B$N$_$G$9!#(B</p> + FreeBSD の Accept Filter</a> と Linux のプリミティブな + <code>TCP_DEFER_ACCEPT</code> のみです。</p> - <p>FreeBSD $B$N%G%U%)%k%HCM$O(B :</p> + <p>FreeBSD のデフォルト値は :</p> <example> AcceptFilter http httpready <br/> AcceptFilter https dataready </example> - <p><code>httpready</code> Accept Filter $B$O(B HTTP $B%j%/%(%9%HA4BN$r!"(B - $B%+!<%M%k%l%Y%k$G%P%C%U%!%j%s%0$7$^$9!#%j%/%(%9%HA4BN$r<u?.$7=*$o$k$H!"(B - $B$=$N8e%5!<%P%W%m%;%9$K$=$l$rAw$j$^$9!#>\:Y$K$D$$$F$O(B <a + <p><code>httpready</code> Accept Filter は HTTP リクエスト全体を、 + カーネルレベルでバッファリングします。リクエスト全体を受信し終わると、 + その後サーバプロセスにそれを送ります。詳細については <a href="http://www.freebsd.org/cgi/man.cgi?query=accf_http&sektion=9">accf_http(9)</a> - $B$r;2>H$7$F$/$@$5$$!#(BHTTPS $B$N%j%/%(%9%H$O0E9f2=$5$l$F$$$k$N$G(B <a + を参照してください。HTTPS のリクエストは暗号化されているので <a href="http://www.freebsd.org/cgi/man.cgi?query=accf_data&sektion=9">accf_data(9)</a> - $B%U%#%k%?$N$_$,;HMQ$5$l$^$9!#(B</p> + フィルタのみが使用されます。</p> - <p>Linux $B$G$N%G%U%)%k%HCM$O(B :</p> + <p>Linux でのデフォルト値は :</p> <example> AcceptFilter http data <br/> AcceptFilter https data </example> - <p>Linux $B$N(B <code>TCP_DEFER_ACCEPT</code> $B$O(B HTTP $B%j%/%(%9%H$N%P%C%U%!%j%s%0$r(B - $B%5%]!<%H$7$F$$$^$;$s!#(B<code>none</code> $B0J30$NCM$G(B - <code>TCP_DEFER_ACCEPT</code> $B$,M-8z$K$J$j$^$9!#>\:Y$K$D$$$F$O(B Linux - man $B%Z!<%8(B <a + <p>Linux の <code>TCP_DEFER_ACCEPT</code> は HTTP リクエストのバッファリングを + サポートしていません。<code>none</code> 以外の値で + <code>TCP_DEFER_ACCEPT</code> が有効になります。詳細については Linux + man ページ <a href="http://homepages.cwi.nl/~aeb/linux/man2html/man7/tcp.7.html">tcp(7)</a> - $B$r;2>H$7$F$/$@$5$$!#(B</p> + を参照してください。</p> - <p>$B0z?t$K(B <code>none</code> $B$r;XDj$9$k$H!"%W%m%H%3%k$KBP$9$kA4$F$N(B Accept - Filter $B$,L58z$K$J$j$^$9!#(B<code>nntp</code> $B$H$$$C$?!"@h$K%5!<%P$K%G!<%?$r(B - $BAw$kI,MW$N$"$k%W%m%H%3%k$KM-8z$G$9(B :</p> + <p>引数に <code>none</code> を指定すると、プロトコルに対する全ての Accept + Filter が無効になります。<code>nntp</code> といった、先にサーバにデータを + 送る必要のあるプロトコルに有効です :</p> <example>AcceptFilter nttp none</example> </usage> @@ -79,54 +79,54 @@ <directivesynopsis> <name>AcceptPathInfo</name> -<description>$B8e$KB3$/%Q%9L>>pJs$r<u$1IU$1$k%j%=!<%9$N;XDj(B</description> +<description>後に続くパス名情報を受け付けるリソースの指定</description> <syntax>AcceptPathInfo On|Off|Default</syntax> <default>AcceptPathInfo Default</default> <contextlist><context>server config</context> <context>virtual host</context><context>directory</context> <context>.htaccess</context></contextlist> <override>FileInfo</override> -<compatibility>Apache 2.0.30 $B0J9_$G;HMQ2DG=(B</compatibility> +<compatibility>Apache 2.0.30 以降で使用可能</compatibility> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O<B:]$N%U%!%$%kL>(B ($B$b$7$/$OB8:_$9$k%G%#%l%/%H%j$N(B - $BB8:_$7$J$$%U%!%$%k(B) $B$N8e$KB3$/%Q%9L>>pJs$,$"$k%j%/%(%9%H$r<u$1IU$1$k$+(B - $B5qH]$9$k$+$r@)8f$7$^$9!#B3$-$N%Q%9L>>pJs$O%9%/%j%W%H$K$O(B <code>PATH_INFO</code> - $B4D6-JQ?t$H$7$FMxMQ2DG=$K$J$j$^$9!#(B</p> + <p>このディレクティブは実際のファイル名 (もしくは存在するディレクトリの + 存在しないファイル) の後に続くパス名情報があるリクエストを受け付けるか + 拒否するかを制御します。続きのパス名情報はスクリプトには <code>PATH_INFO</code> + 環境変数として利用可能になります。</p> - <p>$BNc$($P!"(B<code>/test/</code> $B$,!"(B<code>here.html</code> $B$H$$$&%U%!%$%k(B - $B0l$D$N$_$,$"$k%G%#%l%/%H%j$r;X$7$F$$$k$H$7$^$9!#$=$&$9$k$H!"(B - <code>/test/here.html/more</code> $B$H(B <code>/test/nothere.html/more</code> - $B$X$N%j%/%(%9%H$ON>J}$H$b(B <code>/more</code> $B$r(B <code>PATH_INFO</code> $B$H$7$^$9!#(B</p> + <p>例えば、<code>/test/</code> が、<code>here.html</code> というファイル + 一つのみがあるディレクトリを指しているとします。そうすると、 + <code>/test/here.html/more</code> と <code>/test/nothere.html/more</code> + へのリクエストは両方とも <code>/more</code> を <code>PATH_INFO</code> とします。</p> - <p><directive>AcceptPathInfo</directive> $B%G%#%l%/%F%#%V$K;XDj2DG=$J(B - $B;0$D$N0z?t$O(B:</p> + <p><directive>AcceptPathInfo</directive> ディレクティブに指定可能な + 三つの引数は:</p> <dl> - <dt><code>Off</code></dt><dd>$B%j%/%(%9%H$OB8:_$9$k%Q%9$K$=$N$^$^(B - $B%^%C%W$5$l$k>l9g$K$N$_<u$1IU$1$i$l$^$9!#$G$9$+$i!">e$NNc$N(B - <code>/test/here.html/more</code> $B$N$h$&$K!"K\Ev$N%U%!%$%kL>$N(B - $B8e$K%Q%9L>>pJs$,B3$/%j%/%(%9%H$K$O(B 404 NOT FOUND $B%(%i!<$,JV$j$^$9!#(B</dd> - - <dt><code>On</code></dt><dd>$BA0$NJ}$N%Q%9$,B8:_$9$k%U%!%$%k$K%^%C%W$9$k>l9g$O(B - $B%j%/%(%9%H$,<u$1IU$1$i$l$^$9!#>e$NNc$N(B <code>/test/here.html/more</code> - $B$O(B <code>/test/here.html</code> $B$,M-8z$J%U%!%$%k$K%^%C%W$9$l$P(B - $B<u$1IU$1$i$l$^$9!#(B</dd> + <dt><code>Off</code></dt><dd>リクエストは存在するパスにそのまま + マップされる場合にのみ受け付けられます。ですから、上の例の + <code>/test/here.html/more</code> のように、本当のファイル名の + 後にパス名情報が続くリクエストには 404 NOT FOUND エラーが返ります。</dd> + + <dt><code>On</code></dt><dd>前の方のパスが存在するファイルにマップする場合は + リクエストが受け付けられます。上の例の <code>/test/here.html/more</code> + は <code>/test/here.html</code> が有効なファイルにマップすれば + 受け付けられます。</dd> - <dt><code>Default</code></dt><dd>$BB3$-$N%Q%9L>>pJs$N07$$$O%j%/%(%9%H$N(B - <a href="../handler.html">$B%O%s%I%i(B</a>$B$G7h$^$j$^$9!#(B - $BIaDL$N%U%!%$%k$N$?$a$N%3%"%O%s%I%i$N%G%U%)%k%H$O(B <code>PATH_INFO</code> $B$r5qH]$7$^$9!#(B - <a href="mod_cgi.html">cgi-script</a> $B$d(B <a - href="mod_isapi.html">isapi-handler</a> $B$N$h$&$K%9%/%j%W%H$r07$&%O%s%I%i$O(B - $B0lHLE*$K%G%U%)%k%H$G(B <code>PATH_INFO</code> $B$r<u$1IU$1$^$9!#(B</dd> + <dt><code>Default</code></dt><dd>続きのパス名情報の扱いはリクエストの + <a href="../handler.html">ハンドラ</a>で決まります。 + 普通のファイルのためのコアハンドラのデフォルトは <code>PATH_INFO</code> を拒否します。 + <a href="mod_cgi.html">cgi-script</a> や <a + href="mod_isapi.html">isapi-handler</a> のようにスクリプトを扱うハンドラは + 一般的にデフォルトで <code>PATH_INFO</code> を受け付けます。</dd> </dl> - <p><code>AcceptPathInfo</code> $B$N<g$JL\E*$O%O%s%I%i$N(B <code>PATH_INFO</code> $B$r(B - $B<u$1IU$1$k$+5qH]$9$k$+$NA*Br$r>e=q$-$G$-$k$h$&$K$9$k$3$H$G$9!#(B - $BNc$($P!"$3$l$ONc$($P(B <a href="mod_include.html">INCLUDES</a> $B$N$h$&$J(B - <a href="../filter.html">$B%U%#%k%?(B</a>$B$r;H$C$F(B <code>PATH_INFO</code> $B$K(B - $B4p$E$$$F%3%s%F%s%D$r@8@.$7$F$$$k$H$-$KI,MW$K$J$j$^$9!#(B</p> + <p><code>AcceptPathInfo</code> の主な目的はハンドラの <code>PATH_INFO</code> を + 受け付けるか拒否するかの選択を上書きできるようにすることです。 + 例えば、これは例えば <a href="mod_include.html">INCLUDES</a> のような + <a href="../filter.html">フィルタ</a>を使って <code>PATH_INFO</code> に + 基づいてコンテンツを生成しているときに必要になります。</p> <example> <Files "mypaths.shtml"><br /> @@ -142,28 +142,28 @@ <directivesynopsis> <name>AccessFileName</name> -<description>$BJ,;6@_Dj%U%!%$%k$NL>A0(B</description> +<description>分散設定ファイルの名前</description> <syntax>AccessFileName <var>filename</var> [<var>filename</var>] ...</syntax> <default>AccessFileName .htaccess</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p>$B%j%/%(%9%H$r=hM}$9$k$H$-!"%5!<%P$O%G%#%l%/%H%j$K(B - $BBP$7$FJ,;6@_Dj%U%!%$%k$,(B<a href="#allowoverride">$BM-8z$K$J$C$F$$$l$P(B</a>$B!"(B - $B$=$N%I%-%e%a%s%H$X$N(B - $B%Q%9>e$K$"$kA4$F$N%G%#%l%/%H%j$+$i!"$3$3$G;XDj$5$l$?L>A0$N0lMw$NCf$G(B - $B:G=i$K8+$D$+$C$?%U%!%$%k$r$=$l$>$l@_Dj%U%!%$%k$H$7$FFI$_9~$_$^$9!#Nc$($P(B:</p> + <p>リクエストを処理するとき、サーバはディレクトリに + 対して分散設定ファイルが<a href="#allowoverride">有効になっていれば</a>、 + そのドキュメントへの + パス上にある全てのディレクトリから、ここで指定された名前の一覧の中で + 最初に見つかったファイルをそれぞれ設定ファイルとして読み込みます。例えば:</p> <example> AccessFileName .acl </example> - <p>$B$H$$$&@_Dj$,$"$k$H!"0J2<$N$h$&$K$7$FL58z$K$5$l$F$$$J$$8B$j!"(B - $B%I%-%e%a%s%H(B <code>/usr/local/web/index.html</code> - $B$rJV$9A0$K!"%5!<%P$O(B <code>/.acl</code>, <code>/usr/.acl</code>, - <code>/usr/local/.acl</code>, <code>/usr/local/web/.acl</code> $B$+$i(B - $B%G%#%l%/%F%#%V$rFI$_9~$_$^$9!#(B</p> + <p>という設定があると、以下のようにして無効にされていない限り、 + ドキュメント <code>/usr/local/web/index.html</code> + を返す前に、サーバは <code>/.acl</code>, <code>/usr/.acl</code>, + <code>/usr/local/.acl</code>, <code>/usr/local/web/.acl</code> から + ディレクティブを読み込みます。</p> <example> <Directory /><br /> @@ -174,14 +174,14 @@ </example> </usage> <seealso><directive module="core">AllowOverride</directive></seealso> -<seealso><a href="../configuring.html">$B@_Dj%U%!%$%k(B</a></seealso> -<seealso><a href="../howto/htaccess.html">.htaccess $B%U%!%$%k(B</a></seealso> +<seealso><a href="../configuring.html">設定ファイル</a></seealso> +<seealso><a href="../howto/htaccess.html">.htaccess ファイル</a></seealso> </directivesynopsis> <directivesynopsis> <name>AddDefaultCharset</name> -<description>$B%l%9%]%s%9$N%3%s%F%s%H%?%$%W$,(B <code>text/plain</code> $B$"$k$$$O(B -<code>text/html</code> $B$N>l9g$KDI2C$9$k%G%U%)%k%H$N(B charset $B%Q%i%a!<%?(B</description> +<description>レスポンスのコンテントタイプが <code>text/plain</code> あるいは +<code>text/html</code> の場合に追加するデフォルトの charset パラメータ</description> <syntax>AddDefaultCharset On|Off|<var>charset</var></syntax> <default>AddDefaultCharset Off</default> <contextlist><context>server config</context> @@ -190,70 +190,70 @@ <override>FileInfo</override> <usage> - <p>$B%l%9%]%s%9$N%3%s%F%s%H%?%$%W$,(B <code>text/plain</code> - $B$"$k$$$O(B <code>text/html</code> - $B$N>l9g$K8B$j$^$9$,!"%l%9%]%s%9$KDI2C$9$k%a%G%#%"%?%$%W$NJ8;z%;%C%H%Q%i%a!<%?(B - ($BJ8;z%(%s%3!<%G%#%s%0$NL>A0(B) $B$N%G%U%)%k%HCM$r!"$3$N%G%#%l%/%F%#%V$G;XDj$7$^$9!#(B - $B$3$l$O%l%9%]%s%9(B <transnote>$B%l%9%]%s%9$N(B HTML</transnote> $BFb$G(B <code>META</code> - $BMWAG$G;XDj$5$l$?!"$I$N$h$&$JJ8;z%;%C%H$bL58z$K$7$^$9$,!"(B - $B:G=*E*$J5sF0$O%f!<%6$N%/%i%$%"%s%HB&$N@_Dj$G7h$^$j$^$9!#(B - $B$3$N5!G=$O(B <code>AddDefaultCharset Off</code> $B$H$$$&@_Dj$GL58z$K$J$j$^$9!#(B - <code>AddDefaultCharset On</code> $B$K$9$l$P!"(B - Apache $BFbIt$N%G%U%)%k%HJ8;z%;%C%H(B <code>iso-8859-1</code> $B$K@_Dj$5$l$^$9!#(B - $B$=$NB>(B <var>charset</var> $B$K;XDj$G$-$kCM$G$"$l$P!"$I$s$JCM$G$b;H$($^$9!#(B - $B;XDj$9$kCM$O!"(BMIME $B%a%G%#%"%?%$%W$H$7$F;H$o$l$k(B + <p>レスポンスのコンテントタイプが <code>text/plain</code> + あるいは <code>text/html</code> + の場合に限りますが、レスポンスに追加するメディアタイプの文字セットパラメータ + (文字エンコーディングの名前) のデフォルト値を、このディレクティブで指定します。 + これはレスポンス <transnote>レスポンスの HTML</transnote> 内で <code>META</code> + 要素で指定された、どのような文字セットも無効にしますが、 + 最終的な挙動はユーザのクライアント側の設定で決まります。 + この機能は <code>AddDefaultCharset Off</code> という設定で無効になります。 + <code>AddDefaultCharset On</code> にすれば、 + Apache 内部のデフォルト文字セット <code>iso-8859-1</code> に設定されます。 + その他 <var>charset</var> に指定できる値であれば、どんな値でも使えます。 + 指定する値は、MIME メディアタイプとして使われる <a href="http://www.iana.org/assignments/character-sets">IANA - $B$KEPO?$5$l$F$$$kJ8;z%;%C%HL>(B</a>$B$N$&$A$N0l$D$K$9$Y$-$G$9!#(B - $BNc$($P(B:</p> + に登録されている文字セット名</a>のうちの一つにすべきです。 + 例えば:</p> <example> AddDefaultCharset utf-8 </example> - <p><directive>AddDefaultCharset</directive> $B$r;H$&$H$-$O!"A4$F$N%F%-%9%H%j%=!<%9$,(B - $B;XDj$9$kJ8;z%(%s%3!<%I$K$J$C$F$$$k$HJ,$+$C$F$$$F!"$+$D!"(B - $B%j%=!<%9$N8D!9$KJ8;z%;%C%H$r;XDj$9$k$N$,BgJQ$J>l9g$N$_$G$9!#(B - $BNc$r5s$2$k$H!"%l%,%7!<$J(B CGI $B%9%/%j%W%H$J$I$N!"F0E*$K@8@.$5$l$k(B - $B%3%s%F%s%D$r4^$`%j%=!<%9$KJ8;z%;%C%H%Q%i%a!<%?$rDI2C$9$k>l9g$G!"(B - $B%f!<%6$NF~NO%G!<%?$,=PNO$KF~$j!"%/%m%9%5%$%H%9%/%j%W%F%#%s%0$,(B - $B0z$-5/$3$5$l$&$k>l9g$G$9!#%G%U%)%k%HJ8;z%;%C%H$r%;%C%H$7$?$H$7$F$b!"(B - $B%V%i%&%6$N(B "$BJ8;z%(%s%3!<%I$N<+F0A*Br(B" $B5!G=$,M-8z$K$J$C$F$$$k%f!<%6$r(B - $B<i$k$3$H$K$O$J$i$J$$$N$G!"$b$A$m$s$h$jNI$$2r7h:v$OC1$K%9%/%j%W%H$r=$@5(B - ($B$"$k$$$O:o=|(B) $B$9$k$3$H$G$9!#(B</p> + <p><directive>AddDefaultCharset</directive> を使うときは、全てのテキストリソースが + 指定する文字エンコードになっていると分かっていて、かつ、 + リソースの個々に文字セットを指定するのが大変な場合のみです。 + 例を挙げると、レガシーな CGI スクリプトなどの、動的に生成される + コンテンツを含むリソースに文字セットパラメータを追加する場合で、 + ユーザの入力データが出力に入り、クロスサイトスクリプティングが + 引き起こされうる場合です。デフォルト文字セットをセットしたとしても、 + ブラウザの "文字エンコードの自動選択" 機能が有効になっているユーザを + 守ることにはならないので、もちろんより良い解決策は単にスクリプトを修正 + (あるいは削除) することです。</p> </usage> <seealso><directive module="mod_mime">AddCharset</directive></seealso> </directivesynopsis> <directivesynopsis> <name>AddOutputFilterByType</name> -<description>MIME-type $B$K=PNO%U%#%k%?$r3d$jEv$F$k(B</description> +<description>MIME-type に出力フィルタを割り当てる</description> <syntax>AddOutputFilterByType <var>filter</var>[;<var>filter</var>...] <var>MIME-type</var> [<var>MIME-type</var>] ...</syntax> <contextlist><context>server config</context> <context>virtual host</context><context>directory</context> <context>.htaccess</context></contextlist> <override>FileInfo</override> -<compatibility>Apache 2.0.33 $B0J9_$G;HMQ2DG=(B</compatibility> +<compatibility>Apache 2.0.33 以降で使用可能</compatibility> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O1~Ez$N(B MIME-type $B$K1~$8$F=PNO(B<a - href="../filter.html">$B%U%#%k%?(B</a>$B$r;HMQ$9$k$h$&$K$7$^$9!#(B</p> + <p>このディレクティブは応答の MIME-type に応じて出力<a + href="../filter.html">フィルタ</a>を使用するようにします。</p> - <p>$B<!$NNc$O(B <module>mod_deflate</module> $B$N(B <code>DEFLATE</code> $B%U%#%k%?$r(B - $B;H$C$F$$$^$9!#(B<code>text/html</code> $B$H(B <code>text/plain</code> $B$N(B - $B$9$Y$F$N=PNO(B ($B@EE*$J$b$N$bF0E*$J$b$N$b(B) $B$r%/%i%$%"%s%H$KAw$i$l$kA0$K(B - $B05=L$7$^$9!#(B</p> + <p>次の例は <module>mod_deflate</module> の <code>DEFLATE</code> フィルタを + 使っています。<code>text/html</code> と <code>text/plain</code> の + すべての出力 (静的なものも動的なものも) をクライアントに送られる前に + 圧縮します。</p> <example> AddOutputFilterByType DEFLATE text/html text/plain </example> - <p>$BJ#?t$N%U%#%k%?$G%3%s%F%s%D$r=hM}$5$;$?$$$H$-$O!"$=$l$>$l$NL>A0$r%;%_%3%m%s$G(B - $BJ,$1$kI,MW$,$"$j$^$9!#3F%U%#%k%?$KBP$7$F(B - <directive>AddOutputFilterByType</directive> $B$r0l$D$:$D=q$/$3$H$b$G$-$^$9!#(B</p> + <p>複数のフィルタでコンテンツを処理させたいときは、それぞれの名前をセミコロンで + 分ける必要があります。各フィルタに対して + <directive>AddOutputFilterByType</directive> を一つずつ書くこともできます。</p> - <p>$B<!$NNc$O(B <code>text/html</code> $B$N%9%/%j%W%H$N$9$Y$F$N=PNO$r(B - $B$^$:(B <code>INCLUDES</code> $B%U%#%k%?$G=hM}$7!"$5$i$K(B <code>DEFLATE</code> $B%U%#%k%?$K$+$1$^$9!#(B</p> + <p>次の例は <code>text/html</code> のスクリプトのすべての出力を + まず <code>INCLUDES</code> フィルタで処理し、さらに <code>DEFLATE</code> フィルタにかけます。</p> <example> <Location /cgi-bin/><br /> @@ -264,56 +264,56 @@ </Location> </example> - <note type="warning"><title>$BCm(B:</title> - <p><directive>AddOutputFilterByType</directive> $B%G%#%l%/%F%#%V$K$h$j(B - $BM-8z$K$7$?%U%#%k%?$O>l9g$K$h$C$F$O!"ItJ,E*$b$7$/$O40A4$KE,MQ$5$l$J$$$3$H$,(B - $B$"$j$^$9!#Nc$($P!"(BMIME $B%?%$%W$,$,7hDj$G$-$J$$$H$-$K$O(B - <directive module="core">DefaultType</directive> $B$N@_Dj$,F1$8$@$C$?$H$7$F$b!"(B - <directive module="core">DefaultType</directive> $B@_Dj$r;H$&$h$&$K$J$j$^$9!#(B</p> - <p>$B$7$+$7!"3N<B$K%U%#%k%?$,E,MQ$5$l$k$h$&$K$7$?$$$H$-$O!"%j%=!<%9$K(B - $BL@<(E*$K%3%s%F%s%H%?%$%W$r3d$jEv$F$k$3$H$,$G$-$^$9!#$3$l$K$ONc$($P(B - <directive module="mod_mime">AddType</directive> $B%G%#%l%/%F%#%V$d(B - <directive module="core">ForceType</directive> $B%G%#%l%/%F%#%V$r;H$$$^$9!#(B - (nph$B$G$J$$(B) CGI $B%9%/%j%W%H$G%3%s%F%s%H%?%$%W$r@_Dj$9$k$H$$$&$b$N$G$b(B - $BBg>fIW$G$9!#(B</p> - - <p>$B%?%$%WKh$N=PNO%U%#%k%?$O%W%m%-%7%j%/%(%9%H$K$O7h$7$FE,MQ$5$l$^$;$s!#(B</p> + <note type="warning"><title>注:</title> + <p><directive>AddOutputFilterByType</directive> ディレクティブにより + 有効にしたフィルタは場合によっては、部分的もしくは完全に適用されないことが + あります。例えば、MIME タイプがが決定できないときには + <directive module="core">DefaultType</directive> の設定が同じだったとしても、 + <directive module="core">DefaultType</directive> 設定を使うようになります。</p> + <p>しかし、確実にフィルタが適用されるようにしたいときは、リソースに + 明示的にコンテントタイプを割り当てることができます。これには例えば + <directive module="mod_mime">AddType</directive> ディレクティブや + <directive module="core">ForceType</directive> ディレクティブを使います。 + (nphでない) CGI スクリプトでコンテントタイプを設定するというものでも + 大丈夫です。</p> + + <p>タイプ毎の出力フィルタはプロキシリクエストには決して適用されません。</p> </note> </usage> <seealso><directive module="mod_mime">AddOutputFilter</directive></seealso> <seealso><directive module="core">SetOutputFilter</directive></seealso> -<seealso><a href="../filter.html">$B%U%#%k%?(B</a></seealso> +<seealso><a href="../filter.html">フィルタ</a></seealso> </directivesynopsis> <directivesynopsis> <name>AllowEncodedSlashes</name> -<description>URL $BCf$NId9f2=$5$l$?%Q%9J,N%J8;z$,@h$KEA$($i$l$k$N$r5v2D$9$k$+$I$&$+$r(B -$B7hDj$9$k(B</description> +<description>URL 中の符号化されたパス分離文字が先に伝えられるのを許可するかどうかを +決定する</description> <syntax>AllowEncodedSlashes On|Off</syntax> <default>AllowEncodedSlashes Off</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> -<compatibility>Apache 2.0.46 $B0J9_$G;HMQ2DG=(B</compatibility> +<compatibility>Apache 2.0.46 以降で使用可能</compatibility> <usage> - <p><directive>AllowEncodedSlashes</directive> $B%G%#%l%/%F%#%V$OId9f2=$5$l$?(B - $B%Q%9J,N%J8;z(B (<code>/</code> $B$O(B <code>%2F</code>$B!"$5$i$K%7%9%F%`$K$h$C$F$O(B - <code>\</code> $B$KBP1~$9$k(B <code>%5C</code>) $B$,B8:_$9$k(B URL $B$N;HMQ$r(B - $B5v2D$9$k$+$I$&$+$r7hDj$7$^$9!#DL>o$O$=$N$h$&$J(B URL $B$O(B 404 (Not found) $B%(%i!<(B - $B$G5qH]$5$l$^$9!#(B</p> - - <p><directive>AllowEncodedSlashes</directive> <code>On</code> $B$K$h$k(B - $B%Q%9J,N%J8;z$N;HMQ$O!"(B<code>PATH_INFO</code> $B$H9g$o$;$F(B - $B;H$&$H$-$K0lHVLr$KN)$A$^$9!#(B</p> + <p><directive>AllowEncodedSlashes</directive> ディレクティブは符号化された + パス分離文字 (<code>/</code> は <code>%2F</code>、さらにシステムによっては + <code>\</code> に対応する <code>%5C</code>) が存在する URL の使用を + 許可するかどうかを決定します。通常はそのような URL は 404 (Not found) エラー + で拒否されます。</p> + + <p><directive>AllowEncodedSlashes</directive> <code>On</code> による + パス分離文字の使用は、<code>PATH_INFO</code> と合わせて + 使うときに一番役に立ちます。</p> <p>Turning <directive>AllowEncodedSlashes</directive> <code>On</code> is mostly useful when used in conjunction with <code>PATH_INFO</code>.</p> - <note><title>$BCm(B</title> - <p>$BId9f2=$5$l$?%9%i%C%7%e$r5v2D$9$k$3$H$O!"(B<em>$BI|9f(B</em>$B$r$9$k$3$H$r(B - $B0UL#(B<em>$B$7$^$;$s(B</em>$B!#(B<code>%2F</code> $B$d(B ($B4X78$9$k%7%9%F%`$G$N(B) - <code>%5C</code> $B$O!"B>$NItJ,$,I|9f$5$l$?(B URL $B$NCf$G$b$=$N$^$^$N7A<0$G(B - $B;D$5$l$^$9!#(B</p> + <note><title>注</title> + <p>符号化されたスラッシュを許可することは、<em>復号</em>をすることを + 意味<em>しません</em>。<code>%2F</code> や (関係するシステムでの) + <code>%5C</code> は、他の部分が復号された URL の中でもそのままの形式で + 残されます。</p> </note> </usage> <seealso><directive module="core">AcceptPathInfo</directive></seealso> @@ -322,60 +322,60 @@ <directivesynopsis> <name>AllowOverride</name> -<description><code>.htaccess</code> $B$G5v2D$5$l$k%G%#%l%/%F%#%V$N<oN`(B</description> +<description><code>.htaccess</code> で許可されるディレクティブの種類</description> <syntax>AllowOverride All|None|<var>directive-type</var> [<var>directive-type</var>] ...</syntax> <default>AllowOverride All</default> <contextlist><context>directory</context></contextlist> <usage> - <p>$B%5!<%P$,(B (<directive - module="core">AccessFileName</directive> $B$K$h$C$F;XDj$5$l$?(B) - .htaccess $B%U%!%$%k$r8+$D$1$?;~!"$=$N%U%!%$%k$NCf$G(B - $B@k8@$5$l$?$I$N%G%#%l%/%F%#%V$,$h$jA0$KDj5A$5$l$?@_Dj%G%#%l%/%F%#%V$r(B - $B>e=q$-$G$-$k$+$rCN$kI,MW$,$"$j$^$9!#(B</p> - - <note><title><Directory> $B%;%/%7%g%s$G$N$_;HMQ2DG=(B</title> - <directive>AllowOverride</directive> $B$O@55,I=8=L5$7$N(B<directive + <p>サーバが (<directive + module="core">AccessFileName</directive> によって指定された) + .htaccess ファイルを見つけた時、そのファイルの中で + 宣言されたどのディレクティブがより前に定義された設定ディレクティブを + 上書きできるかを知る必要があります。</p> + + <note><title><Directory> セクションでのみ使用可能</title> + <directive>AllowOverride</directive> は正規表現無しの<directive type="section" module="core">Directory</directive> - $B%;%/%7%g%s$G$N$_M-8z$G!"(B<directive type="section" - module="core">Location</directive> $B$d(B <directive + セクションでのみ有効で、<directive type="section" + module="core">Location</directive> や <directive module="core" type="section">DirectoryMatch</directive> - $B$d(B <directive type="section" - module="core">Files</directive> $B%;%/%7%g%s$G$OL58z$G$9!#(B + や <directive type="section" + module="core">Files</directive> セクションでは無効です。 </note> - <p>$B$3$N%G%#%l%/%F%#%V$r(B None $B$K@_Dj$9$k$H!"(B<a href="#accessfilename">.htaccess</a> $B%U%!%$%k$O40A4$K(B - $BL5;k$5$l$^$9!#(B - $B$3$N>l9g!"%5!<%P$O%U%!%$%k%7%9%F%`$N(B <code>.htaccess</code> $B%U%!%$%k$rFI$`$3$H$r(B - $B;n$_$5$($7$^$;$s!#(B</p> + <p>このディレクティブを None に設定すると、<a href="#accessfilename">.htaccess</a> ファイルは完全に + 無視されます。 + この場合、サーバはファイルシステムの <code>.htaccess</code> ファイルを読むことを + 試みさえしません。</p> - <p>$B$3$N%G%#%l%/%F%#%V$,(B <code>All</code> $B$K@_Dj$5$l$F$$$k;~$K$O!"(B - <code>.htaccess</code> $B$H$$$&(B <a - href="directive-dict.html#Context">$B%3%s%F%-%9%H(B</a> $B$r;}$D(B - $BA4$F$N%G%#%l%/%F%#%V$,MxMQ$G$-$^$9!#(B</p> + <p>このディレクティブが <code>All</code> に設定されている時には、 + <code>.htaccess</code> という <a + href="directive-dict.html#Context">コンテキスト</a> を持つ + 全てのディレクティブが利用できます。</p> - <p><var>directive-type</var> $B$K$O!"0J2<$N%G%#%l%/%F%#%V72$N(B - $B%-!<%o!<%I$N$I$l$+$r;XDj$7$^$9!#(B</p> + <p><var>directive-type</var> には、以下のディレクティブ群の + キーワードのどれかを指定します。</p> <dl> <dt>AuthConfig</dt> <dd> - $BG'>Z$K4X$9$k%G%#%l%/%F%#%V$N;HMQ$r5v2D$9$k(B (<directive + 認証に関するディレクティブの使用を許可する (<directive module="mod_authn_dbm">AuthDBMGroupFile</directive>, <directive module="mod_authn_dbm">AuthDBMUserFile</directive>, <directive module="mod_authz_groupfile">AuthGroupFile</directive>, <directive module="core">AuthName</directive>, <directive module="core">AuthType</directive>, <directive module="mod_authn_file">AuthUserFile</directive>, <directive - module="core">Require</directive> <em>$B$J$I(B</em>)$B!#(B</dd> + module="core">Require</directive> <em>など</em>)。</dd> <dt>FileInfo</dt> <dd> - $B%I%-%e%a%s%H%?%$%W$r@)8f$9$k$?$a$N%G%#%l%/%F%#%V$N;HMQ$r5v2D$9$k(B (<directive + ドキュメントタイプを制御するためのディレクティブの使用を許可する (<directive module="core">DefaultType</directive>, <directive module="core">ErrorDocument</directive>, <directive module="core">ForceType</directive>, <directive @@ -383,13 +383,13 @@ <directive module="core">SetHandler</directive>, <directive module="core">SetInputFilter</directive>, <directive module="core">SetOutputFilter</directive>, - <module>mod_mime</module> $B$N(B Add* $B$H(B Remove* - $B%G%#%l%/%F%#%V(B<em>$B$J$I(B</em>)$B!#(B</dd> + <module>mod_mime</module> の Add* と Remove* + ディレクティブ<em>など</em>)。</dd> <dt>Indexes</dt> <dd> - $B%G%#%l%/%H%j%$%s%G%C%/%9$r@)8f$9$k$?$a$N%G%#%l%/%F%#%V$N;HMQ$r5v2D$9$k(B + ディレクトリインデックスを制御するためのディレクティブの使用を許可する (<directive module="mod_autoindex">AddDescription</directive>, <directive module="mod_autoindex">AddIcon</directive>, <directive @@ -402,12 +402,12 @@ module="mod_autoindex">IndexIgnore</directive>, <directive module="mod_autoindex">IndexOptions</directive>, <directive module="mod_autoindex">ReadmeName</directive> - <em>$B$J$I(B</em>)$B!#(B</dd> + <em>など</em>)。</dd> <dt>Limit</dt> <dd> - $B%[%9%H$X$N%"%/%;%9@)8f$r9T$&$?$a$N%G%#%l%/%F%#%V$N;HMQ$r5v2D$9$k(B (<directive + ホストへのアクセス制御を行うためのディレクティブの使用を許可する (<directive module="mod_authz_host">Allow</directive>, <directive module="mod_authz_host">Deny</directive>, <directive module="mod_authz_host">Order</directive>).</dd> @@ -415,110 +415,110 @@ <dt>Options[=<var>Option</var>,...]</dt> <dd> - $BFCDj$N%G%#%l%/%H%j$K$*$1$k5!G=$r;XDj$9$k$?$a$N%G%#%l%/%F%#%V$N;HMQ$r5v2D$9$k(B - (<directive module="core">Options</directive> $B$H(B - <directive module="mod_include">XBitHack</directive>)$B!#(B - <directive module="core">Options</directive> $B$G@_Dj$9$k%*%W%7%g%s(B - $B$r!"(B($B6uGr$r4^$a$J$$(B) $B%3%s%^6h@Z$j$N%j%9%H$K$7$FEy9f$N8e$KB3$1$k$3$H$G(B - $B@_Dj$G$-$^$9!#(B</dd> + 特定のディレクトリにおける機能を指定するためのディレクティブの使用を許可する + (<directive module="core">Options</directive> と + <directive module="mod_include">XBitHack</directive>)。 + <directive module="core">Options</directive> で設定するオプション + を、(空白を含めない) コンマ区切りのリストにして等号の後に続けることで + 設定できます。</dd> </dl> - <p>$BNc(B:</p> + <p>例:</p> <example> AllowOverride AuthConfig Indexes </example> - <p>$B>e$NNc$G$O(B <code>AuthConfig</code> $B$H(B <code>Indexes</code> $B$N$I$A$i$K$b(B - $BB0$5$J$$%G%#%l%/%F%#%V$O$9$Y$FFbIt%5!<%P%(%i!<$r0z$-5/$3$7$^$9!#(B</p> + <p>上の例では <code>AuthConfig</code> と <code>Indexes</code> のどちらにも + 属さないディレクティブはすべて内部サーバエラーを引き起こします。</p> </usage> <seealso><directive module="core">AccessFileName</directive></seealso> -<seealso><a href="../configuring.html">$B@_Dj%U%!%$%k(B</a></seealso> -<seealso><a href="../howto/htaccess.html">.htaccess $B%U%!%$%k(B</a></seealso> +<seealso><a href="../configuring.html">設定ファイル</a></seealso> +<seealso><a href="../howto/htaccess.html">.htaccess ファイル</a></seealso> </directivesynopsis> <directivesynopsis> <name>AuthName</name> -<description>HTTP $BG'>Z$NG'2DNN0h(B ($BLuCm(B: realm)</description> +<description>HTTP 認証の認可領域 (訳注: realm)</description> <syntax>AuthName <var>auth-domain</var></syntax> <contextlist><context>directory</context><context>.htaccess</context> </contextlist> <override>AuthConfig</override> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O%G%#%l%/%H%j$KBP$9$kG'2DNN0h(B ($BLuCm(B: realm) - $B$NL>A0$r;XDj$7$^$9!#(B - $BG'2DNN0h$O!"MxMQ<T$,$I$N%f!<%6L>$H%Q%9%o!<%I$rAw?.$9$l$P$h$$$N$+$r(B - $B%/%i%$%"%s%H$K65$($k$?$a$KMxMQ$7$^$9!#(B - <directive>AuthName</directive> $B$O0l$D$N0z?t$r$H$j!"(B - $B%9%Z!<%9$,4^$^$l$k>l9g$K$O!"(B - $B0zMQId$G3g$i$J$1$l$P$J$j$^$;$s!#(B - $B$3$N%G%#%l%/%F%#%V$O(B - <directive module="core">AuthType</directive> $B%G%#%l%/%F%#%V$d(B - <directive module="core">Require</directive> $B%G%#%l%/%F%#%V$H!"(B - <directive module="mod_authn_file">AuthUserFile</directive> $B$d(B - <directive module="mod_authz_groupfile">AuthGroupFile</directive> $B$J$I$N%G%#%l%/%F%#%V$H(B - $B0l=o$KMxMQ$9$kI,MW$,$"$j$^$9!#(B</p> - - <p>$BNc$($P(B:</p> + <p>このディレクティブはディレクトリに対する認可領域 (訳注: realm) + の名前を指定します。 + 認可領域は、利用者がどのユーザ名とパスワードを送信すればよいのかを + クライアントに教えるために利用します。 + <directive>AuthName</directive> は一つの引数をとり、 + スペースが含まれる場合には、 + 引用符で括らなければなりません。 + このディレクティブは + <directive module="core">AuthType</directive> ディレクティブや + <directive module="core">Require</directive> ディレクティブと、 + <directive module="mod_authn_file">AuthUserFile</directive> や + <directive module="mod_authz_groupfile">AuthGroupFile</directive> などのディレクティブと + 一緒に利用する必要があります。</p> + + <p>例えば:</p> <example> AuthName "Top Secret" </example> - <p>$B$3$3$G(B <code>AuthName</code> $B$K;XDj$7$?J8;zNs$,!"(B - $BBgItJ,$N%V%i%&%6$N%Q%9%o!<%I%@%$%"%m%0$KI=<($5$l$^$9!#(B</p> + <p>ここで <code>AuthName</code> に指定した文字列が、 + 大部分のブラウザのパスワードダイアログに表示されます。</p> </usage> <seealso><a - href="../howto/auth.html">$BG'>Z!">5G'!"%"%/%;%9@)8f(B</a></seealso> + href="../howto/auth.html">認証、承認、アクセス制御</a></seealso> </directivesynopsis> <directivesynopsis> <name>AuthType</name> -<description>$B%f!<%6G'>Z$N<oN`(B</description> +<description>ユーザ認証の種類</description> <syntax>AuthType Basic|Digest</syntax> <contextlist><context>directory</context><context>.htaccess</context> </contextlist> <override>AuthConfig</override> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$OBP>]%G%#%l%/%H%j$GMxMQ$9$k%f!<%6!<G'>Z$N<oN`$rA*$S$^$9!#(B - $B$?$@!"8=:_$N$H$3$m$O(B <code>Basic</code> $B$H(B <code>Digest</code> $B$7$+(B - $B<BAu$5$l$F$$$^$;$s!#(B - - $B$3$N%G%#%l%/%F%#%V$O(B <directive - module="core">AuthName</directive>$B%G%#%l%/%F%#%V$d(B - <directive module="core">Require</directive> $B%G%#%l%/%F%#%V$H!"(B - <directive module="mod_authn_file">AuthUserFile</directive> $B$d(B <directive - module="mod_authz_groupfile">AuthGroupFile</directive> $B$J$I$N%G%#%l%/%F%#%V$H(B - $B0l=o$KMxMQ$9$kI,MW$,$"$j$^$9!#(B</p> + <p>このディレクティブは対象ディレクトリで利用するユーザー認証の種類を選びます。 + ただ、現在のところは <code>Basic</code> と <code>Digest</code> しか + 実装されていません。 + + このディレクティブは <directive + module="core">AuthName</directive>ディレクティブや + <directive module="core">Require</directive> ディレクティブと、 + <directive module="mod_authn_file">AuthUserFile</directive> や <directive + module="mod_authz_groupfile">AuthGroupFile</directive> などのディレクティブと + 一緒に利用する必要があります。</p> </usage> -<seealso><a href="../howto/auth.html">$BG'>Z!">5G'!"%"%/%;%9@)8f(B</a></seealso> +<seealso><a href="../howto/auth.html">認証、承認、アクセス制御</a></seealso> </directivesynopsis> <directivesynopsis> <name>CGIMapExtension</name> -<description>CGI $B%9%/%j%W%H$N%$%s%?!<%W%j%?$N0LCV$rD4$Y$k$?$a$N<jK!(B</description> +<description>CGI スクリプトのインタープリタの位置を調べるための手法</description> <syntax>CGIMapExtension <var>cgi-path</var> <var>.extension</var></syntax> <default>None</default> <contextlist><context>directory</context><context>.htaccess</context> </contextlist> <override>FileInfo</override> -<compatibility>NetWare $B$N$_(B</compatibility> +<compatibility>NetWare のみ</compatibility> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O(B Apache $B$,(B CGI $B%9%/%j%W%H$r<B9T$9$k$?$a$N(B - $B%$%s%?!<%W%j%?$rC5$9J}K!$r@)8f$7$^$9!#(B - $BNc$($P!"(B<code>CGIMapExtension sys:\foo.nlm .foo</code> $B$H@_Dj$9$k$H(B - <code>.foo</code> $B$H$$$&3HD%;R$N$9$Y$F$N(B CGI $B%9%/%j%W%H$O(B FOO $B%$%s%?!<%W%j%?$K(B - $BEO$5$l$^$9!#(B</p> + <p>このディレクティブは Apache が CGI スクリプトを実行するための + インタープリタを探す方法を制御します。 + 例えば、<code>CGIMapExtension sys:\foo.nlm .foo</code> と設定すると + <code>.foo</code> という拡張子のすべての CGI スクリプトは FOO インタープリタに + 渡されます。</p> </usage> </directivesynopsis> <directivesynopsis> <name>ContentDigest</name> -<description><code>Content-MD5</code> HTTP $B1~Ez%X%C%@$N@8@.$rM-8z$K$9$k(B</description> +<description><code>Content-MD5</code> HTTP 応答ヘッダの生成を有効にする</description> <syntax>ContentDigest On|Off</syntax> <default>ContentDigest Off</default> <contextlist><context>server config</context><context>virtual host</context> @@ -528,41 +528,41 @@ <status>Experimental</status> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O!"(BRFC1864 $B5Z$S(B RFC2616 $B$K$*$$$FDj5A$5$l$F$$$k(B - <code>Content-MD5</code> $B%X%C%@!<$N@8@.$rM-8z$K$7$^$9!#(B</p> + <p>このディレクティブは、RFC1864 及び RFC2616 において定義されている + <code>Content-MD5</code> ヘッダーの生成を有効にします。</p> - <p>MD5 $B$O!"G$0UD9$N%G!<%?$N!V%a%C%;!<%8%@%$%8%'%9%H!W(B($B!V;XLf!W(B - $B$HI=8=$5$l$k$3$H$b$"$k(B) $B$r7W;;$9$k%"%k%4%j%:%`$G!"(B - $B%G!<%?$NJQ99$,$"$C$?>l9g$K$OHs>o$K9b$$?.MjEY$G%a%C%;!<%8%@%$%8%'%9%H$KJQ99$,(B - $BH?1G$5$l$^$9!#(B</p> + <p>MD5 は、任意長のデータの「メッセージダイジェスト」(「指紋」 + と表現されることもある) を計算するアルゴリズムで、 + データの変更があった場合には非常に高い信頼度でメッセージダイジェストに変更が + 反映されます。</p> - <p><code>Content-MD5</code> $B%X%C%@$O!"%(%s%I%D!<%(%s%I$G(B - $B%(%s%F%#%F%#%\%G%#!<$K4^$^$l$k%a%C%;!<%8$N40A4@-%A%'%C%/(B - (Message Integrity Check - MIC)$B$rDs6!$7$^$9!#(B - $B$3$N%X%C%@$rD4$Y$k$3$H$G!"%W%m%-%7$d%/%i%$%"%s%H$O!"(B - $BESCf7PO)$K$*$1$k%(%s%F%#%F%#%\%G%#$NM=4|$;$LJQ99$J$I$r(B - $B8!=P$9$k$3$H$,$G$-$^$9!#%X%C%@$NNc(B:</p> + <p><code>Content-MD5</code> ヘッダは、エンドツーエンドで + エンティティボディーに含まれるメッセージの完全性チェック + (Message Integrity Check - MIC)を提供します。 + このヘッダを調べることで、プロキシやクライアントは、 + 途中経路におけるエンティティボディの予期せぬ変更などを + 検出することができます。ヘッダの例:</p> <example> Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA== </example> - <p>$B%j%/%(%9%HKh$K%a%C%;!<%8%@%$%8%'%9%H$r7W;;$9$k(B ($BCM$O%-%c%C%7%e$5$l$^$;$s(B) - $B$3$H$+$i!"(B - $B%5!<%P%Q%U%)!<%^%s%9$,Dc2<$9$k$3$H$K$D$$$FCm0U$7$F$/$@$5$$!#(B</p> + <p>リクエスト毎にメッセージダイジェストを計算する (値はキャッシュされません) + ことから、 + サーバパフォーマンスが低下することについて注意してください。</p> - <p><code>Content-MD5</code >$B$O!"(B<module>core</module> $B5!G=$K$h$j=hM}$5$l$?(B - $B%I%-%e%a%s%H$rAw$k$H$-$N$_M-8z$G$"$j!"(B - SSI $B%I%-%e%a%s%H$d(B CGI $B%9%/%j%W%H$N=PNO!"%P%$%H%l%s%8$r;XDj$7$?(B - $B1~Ez$N>l9g$K$O$3$N%X%C%@$OIUM?$5$l$^$;$s!#(B + <p><code>Content-MD5</code >は、<module>core</module> 機能により処理された + ドキュメントを送るときのみ有効であり、 + SSI ドキュメントや CGI スクリプトの出力、バイトレンジを指定した + 応答の場合にはこのヘッダは付与されません。 </p> </usage> </directivesynopsis> <directivesynopsis> <name>DefaultType</name> -<description>$B%5!<%P$,%3%s%F%s%H%?%$%W$r7hDj$G$-$J$$$H$-$K(B -$BAw$i$l$k(B MIME $B%3%s%F%s%H%?%$%W(B</description> +<description>サーバがコンテントタイプを決定できないときに +送られる MIME コンテントタイプ</description> <syntax>DefaultType <var>MIME-type</var></syntax> <default>DefaultType text/plain</default> <contextlist><context>server config</context><context>virtual host</context> @@ -571,54 +571,54 @@ <override>FileInfo</override> <usage> - <p>$B%5!<%P$O!"(BMIME $B$N%?%$%W%^%C%W$+$i$O7hDj$G$-$J$$(B - $B%I%-%e%a%s%H$NAw?.$rMW5a$5$l$k$3$H$,$"$j$^$9!#(B</p> + <p>サーバは、MIME のタイプマップからは決定できない + ドキュメントの送信を要求されることがあります。</p> - <p>$B%5!<%P$O!"%I%-%e%a%s%H$N%3%s%F%s%H%?%$%W$r%/%i%$%"%s%H$KDLCN$9$kI,MW$,(B - $B$"$j$^$9$N$G!"$3$N$h$&$K%?%$%W$,L$CN$N>l9g$O(B - <code>DefaultType</code> $B$G;XDj$5$l$?%?%$%W$rMxMQ$7$^$9!#(B - $BNc(B:</p> + <p>サーバは、ドキュメントのコンテントタイプをクライアントに通知する必要が + ありますので、このようにタイプが未知の場合は + <code>DefaultType</code> で指定されたタイプを利用します。 + 例:</p> <example> DefaultType image/gif </example> - <p>$B$3$l$O(B <code>.gif</code> $B$H$$$&3HD%;R$,%U%!%$%kL>$K4^$^$l$F$$$J$$(B - $BB?$/$N(B GIF $B2hA|$,4^$^$l$F$$$k%G%#%l%/%H%j$KE,$7$F$$$k$G$7$g$&!#(B</p> + <p>これは <code>.gif</code> という拡張子がファイル名に含まれていない + 多くの GIF 画像が含まれているディレクトリに適しているでしょう。</p> - <p><directive module="core">ForceType</directive> $B%G%#%l%/%F%#%V$H(B - $B0c$C$F!"$3$N%G%#%l%/%F%#%V$O%G%U%)%k%H$N(B MIME $B%?%$%W$rDs6!$9$k$@$1$G(B - $B$"$k$3$H$KCm0U$7$F$/$@$5$$!#%U%!%$%kL>$N3HD%;R$r4^$a!"(B - $B%a%G%#%"%?%$%W$r7hDj$G$-$kB>$N(B MIME $B%?%$%W$NDj5A$,$"$l$P(B - $B$3$N%G%U%)%k%H$O>e=q$-$5$l$^$9!#(B</p> + <p><directive module="core">ForceType</directive> ディレクティブと + 違って、このディレクティブはデフォルトの MIME タイプを提供するだけで + あることに注意してください。ファイル名の拡張子を含め、 + メディアタイプを決定できる他の MIME タイプの定義があれば + このデフォルトは上書きされます。</p> </usage> </directivesynopsis> <directivesynopsis type="section"> <name>Directory</name> -<description>$B;XDj$N%U%!%$%k%7%9%F%`$N%G%#%l%/%H%j$H%5%V%G%#%l%/%H%j$H$N$_$K(B -$BE,MQ$5$l$k%G%#%l%/%F%#%V$r0O$`(B</description> +<description>指定のファイルシステムのディレクトリとサブディレクトリとのみに +適用されるディレクティブを囲む</description> <syntax><Directory <var>directory-path</var>> ... </Directory></syntax> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p>$B;XDj$5$l$?%G%#%l%/%H%j$H$=$N%5%V%G%#%l%/%H%j$K$N$_(B - $B%G%#%l%/%F%#%V$rE,MQ$5$;$k$?$a$K$O!"(B - <directive type="section">Directory</directive> $B$H(B - <code></Directory></code> $B$rBP$H$7$F!"%G%#%l%/%F%#%V72$r0O$$$^$9!#(B - $B$=$NCf$K$O!"%G%#%l%/%H%j%3%s%F%-%9%H$G5v2D$5$l$?A4$F$N%G%#%l%/%F%#%V$r(B - $BMxMQ$G$-$^$9!#(B - <var>directive-path</var> $B$O!"%U%k%Q%9$b$7$/$O(B Unix $B$N%7%'%k7A<0$N(B - $B%o%$%k%I%+!<%I$r;XDj$7$^$9!#(B - <code>?</code> $B$OG$0U$N(B 1 $BJ8;z!"(B<code>*</code> $B$OG$0U$NJ8;zNs$K%^%C%A$7$^$9!#(B - $B%7%'%k$K$*$1$k;XDjF1MM!"J8;z$NHO0O$r(B <code>[]</code> $B$G;XDj$G$-$^$9!#(B - $B%o%$%k%I%+!<%I$O(B `/' $BJ8;z$K$O%^%C%A$7$^$;$s$N$G!"(B - <code>/home/user/public_html</code> $B$K$O(B - <code><Directory /*/public_html></code> $B$O%^%C%A$7$^$;$s$,!"(B - <code><Directory /home/*/public_html></code> $B$O%^%C%A$7$^$9!#(B - $BNc(B:</p> + <p>指定されたディレクトリとそのサブディレクトリにのみ + ディレクティブを適用させるためには、 + <directive type="section">Directory</directive> と + <code></Directory></code> を対として、ディレクティブ群を囲います。 + その中には、ディレクトリコンテキストで許可された全てのディレクティブを + 利用できます。 + <var>directive-path</var> は、フルパスもしくは Unix のシェル形式の + ワイルドカードを指定します。 + <code>?</code> は任意の 1 文字、<code>*</code> は任意の文字列にマッチします。 + シェルにおける指定同様、文字の範囲を <code>[]</code> で指定できます。 + ワイルドカードは `/' 文字にはマッチしませんので、 + <code>/home/user/public_html</code> には + <code><Directory /*/public_html></code> はマッチしませんが、 + <code><Directory /home/*/public_html></code> はマッチします。 + 例:</p> <example> <Directory /usr/local/httpd/htdocs><br /> @@ -629,31 +629,31 @@ </example> <note> -<p><var>directory-path</var> $B0z?t$K$OCm0U$7$F$/$@$5$$(B: $B$=$N0z?t$O(B -Apache $B$,%U%!%$%k$r%"%/%;%9$9$k$?$a$K;H$&%U%!%$%k%7%9%F%`$N%Q%9$K(B -$B$=$N$^$^%^%C%A$9$kI,MW$,$"$j$^$9!#$"$k(B <code><Directory></code> $B$K(B -$BE,MQ$5$l$k%G%#%l%/%F%#%V$O!"JL$N%7%s%\%j%C%/%j%s%/$r$?$I$C$?$j$7$F(B -$BF1$8%G%#%l%/%H%j$r0c$&%Q%9$G%"%/%;%9$7$?>l9g$K$OE,MQ$5$l$^$;$s!#(B</p> +<p><var>directory-path</var> 引数には注意してください: その引数は +Apache がファイルをアクセスするために使うファイルシステムのパスに +そのままマッチする必要があります。ある <code><Directory></code> に +適用されるディレクティブは、別のシンボリックリンクをたどったりして +同じディレクトリを違うパスでアクセスした場合には適用されません。</p> </note> - <p><code>~</code> $B$H$$$&J8;z$r(B - $BIU2C$9$k$3$H$G3HD%@55,I=8=$rMxMQ$9$k$3$H$b$G$-$^$9!#(B - $BNc$($P(B:</p> + <p><code>~</code> という文字を + 付加することで拡張正規表現を利用することもできます。 + 例えば:</p> <example> <Directory ~ "^/www/.*/[0-9]{3}"> </example> - <p>$B$H$$$C$?;XDj$N>l9g!"(B<code>/www/</code> $B0J2<$K$"$k?t;z(B - 3 $BJ8;z$N%G%#%l%/%H%j$K%^%C%A$7$^$9!#(B</p> + <p>といった指定の場合、<code>/www/</code> 以下にある数字 + 3 文字のディレクトリにマッチします。</p> - <p>$B$b$7J#?t$N(B ($B@55,I=8=0J30$N(B) <directive type="section" - >Directory</directive>$B%;%/%7%g%s$,(B - $B%I%-%e%a%s%H$r4^$`%G%#%l%/%H%j(B ($B$d$=$N>e0L%G%#%l%/%H%j$N$I$l$+(B) $B$H%^%C%A$7$?$J$i$P!"(B + <p>もし複数の (正規表現以外の) <directive type="section" + >Directory</directive>セクションが + ドキュメントを含むディレクトリ (やその上位ディレクトリのどれか) とマッチしたならば、 <a - href="#accessfilename">.htaccess</a> $B%U%!%$%k$N%G%#%l%/%F%#%V$bFI$_9~$_$D$D!"(B - $BC;$$%Q%9$+$i=g$KE,MQ$5$l$^$9!#(B - $BNc$($P!"(B</p> + href="#accessfilename">.htaccess</a> ファイルのディレクティブも読み込みつつ、 + 短いパスから順に適用されます。 + 例えば、</p> <example> <Directory /><br /> @@ -669,25 +669,25 @@ Apache $B$,%U%!%$%k$r%"%/%;%9$9$k$?$a$K;H$&%U%!%$%k%7%9%F%`$N%Q%9$K(B </Directory> </example> - <p>$B$H@_Dj$7!"%I%-%e%a%s%H(B <code>/home/web/dir/doc.html</code> $B$X$N(B - $B%"%/%;%9$,$"$C$?>l9g$K$O0J2<$N$h$&$KF0:n$7$^$9(B:</p> + <p>と設定し、ドキュメント <code>/home/web/dir/doc.html</code> への + アクセスがあった場合には以下のように動作します:</p> <ul> - <li><code>AllowOverride None</code> $B$,E,MQ$5$l$k!#(B - (<code>.htaccess</code> $B%U%!%$%k$OL58z$K$J$k(B)</li> + <li><code>AllowOverride None</code> が適用される。 + (<code>.htaccess</code> ファイルは無効になる)</li> - <li><code>AllowOverride FileInfo</code> $B$,E,MQ$5$l$k(B - (<code>/home</code> $B%G%#%l%/%H%j$KBP$7$F(B)$B!#(B</li> + <li><code>AllowOverride FileInfo</code> が適用される + (<code>/home</code> ディレクトリに対して)。</li> <li><code>/home/.htaccess</code>, <code>/home/web/.htaccess</code>, - <code>/home/web/.htaccess</code> $B$N=g$K$=$l$i$N%U%!%$%kCf$N(B - FileInfo $B%G%#%l%/%F%#%V$,E,MQ$5$l$k!#(B</li> + <code>/home/web/.htaccess</code> の順にそれらのファイル中の + FileInfo ディレクティブが適用される。</li> </ul> - <p>$B@55,I=8=$O!"DL>o$N%;%/%7%g%s$,$9$Y$FE,MQ$5$l$k$^$G(B - $B9MN8$5$l$^$;$s!#(B - $B$=$N8e!"A4$F$N@55,I=8=$,@_Dj%U%!%$%k$K8=$l$?=g$G;n$5$l$^$9!#(B - $BNc$($P!"0J2<$N$h$&$J>l9g$K(B</p> + <p>正規表現は、通常のセクションがすべて適用されるまで + 考慮されません。 + その後、全ての正規表現が設定ファイルに現れた順で試されます。 + 例えば、以下のような場合に</p> <example> <Directory ~ abc$><br /> @@ -697,16 +697,16 @@ Apache $B$,%U%!%$%k$r%"%/%;%9$9$k$?$a$K;H$&%U%!%$%k%7%9%F%`$N%Q%9$K(B </Directory> </example> - <p>$B@55,I=8=$N%;%/%7%g%s$O$9$Y$F$NDL>o$N(B <directive - type="section">Directory</directive> $B$H(B - <code>.htaccess</code> $B$NE,MQ$,=*$o$k$^$G9MN8$5$l$^$;$s!#(B - $B$=$N8e$G!"@55,I=8=$O(B <code>/home/abc/public_html/abc</code> $B$K%^%C%A$7!"(B - $BBP1~$9$k(B <directive type="section">Directory</directive> $B$,E,MQ$5$l$^$9!#(B</p> + <p>正規表現のセクションはすべての通常の <directive + type="section">Directory</directive> と + <code>.htaccess</code> の適用が終わるまで考慮されません。 + その後で、正規表現は <code>/home/abc/public_html/abc</code> にマッチし、 + 対応する <directive type="section">Directory</directive> が適用されます。</p> - <p><strong>Apache $B$N%G%U%)%k%H$G$O(B <code><Directory /></code> $B$X$N%"%/%;%9$O(B - <code>Allow from All</code> $B$K$J$C$F$$$k$3$H$KCm0U$7$F$/$@$5$$!#(B - $B$3$l$O!"(BURL $B$+$i%^%C%W$5$l$?$I$N%U%!%$%k$G$b(B Apache $B$OAw$k$H$$$&$3$H$G$9!#(B - $B$3$l$O0J2<$N$h$&$K$7$FJQ99$9$k$3$H$,?d>)$5$l$F$$$^$9!#(B</strong></p> + <p><strong>Apache のデフォルトでは <code><Directory /></code> へのアクセスは + <code>Allow from All</code> になっていることに注意してください。 + これは、URL からマップされたどのファイルでも Apache は送るということです。 + これは以下のようにして変更することが推奨されています。</strong></p> <example> <Directory /><br /> @@ -717,29 +717,29 @@ Apache $B$,%U%!%$%k$r%"%/%;%9$9$k$?$a$K;H$&%U%!%$%k%7%9%F%`$N%Q%9$K(B </Directory> </example> - <p><strong>$B$=$7$F%"%/%;%9$r(B<em>$B2DG=$K$7$?$$(B</em>$B%G%#%l%/%H%j$KBP$7$F(B - $B8DJL$K@_Dj$9$l$P$h$$$G$7$g$&!#(B - $B$3$N$"$?$j$K$D$$$F$O!"(B<a - href="../misc/security_tips.html">$B%;%-%e%j%F%#$K4X$9$k%3%D(B</a>$B$r(B - $B;2>H$7$F$/$@$5$$!#(B</strong></p> + <p><strong>そしてアクセスを<em>可能にしたい</em>ディレクトリに対して + 個別に設定すればよいでしょう。 + このあたりについては、<a + href="../misc/security_tips.html">セキュリティに関するコツ</a>を + 参照してください。</strong></p> - <p>$B%G%#%l%/%H%j%;%/%7%g%s$O(B httpd.conf $B%U%!%$%k=q$-$^$9!#(B + <p>ディレクトリセクションは httpd.conf ファイル書きます。 <directive type="section">Directory</directive> - $B%G%#%l%/%F%#%V$OF~$l;R$K$9$k$3$H$,$G$-$:!"(B - <directive module="core" type="section">Limit</directive> $B$d(B <directive - module="core" type="section">LimitExcept</directive> $B%;%/%7%g%s$NCf$K$b(B - $B5-=R$G$-$^$;$s!#(B</p> + ディレクティブは入れ子にすることができず、 + <directive module="core" type="section">Limit</directive> や <directive + module="core" type="section">LimitExcept</directive> セクションの中にも + 記述できません。</p> </usage> -<seealso>$B%j%/%(%9%H$r<u$1$?:]$K$3$l$i$N0[$J$k%;%/%7%g%s$,(B - $BAH$_9g$o$5$l$kJ}K!$K$D$$$F$O(B <a href="../sections.html"> - <Directory>, <Location>, <Files> $B%;%/%7%g%s$NF0:nK!(B</a></seealso> +<seealso>リクエストを受けた際にこれらの異なるセクションが + 組み合わされる方法については <a href="../sections.html"> + <Directory>, <Location>, <Files> セクションの動作法</a></seealso> </directivesynopsis> <directivesynopsis type="section"> <name>DirectoryMatch</name> -<description>$B@55,I=8=$K%^%C%A$9$k%U%!%$%k%7%9%F%`$N%G%#%l%/%H%j$H(B -$B%5%V%G%#%l%/%H%j$H$N$_$KE,MQ$5$l$k%G%#%l%/%F%#%V$r0O$`(B</description> +<description>正規表現にマッチするファイルシステムのディレクトリと +サブディレクトリとのみに適用されるディレクティブを囲む</description> <syntax><DirectoryMatch <var>regex</var>> ... </DirectoryMatch></syntax> <contextlist><context>server config</context><context>virtual host</context> @@ -747,65 +747,65 @@ Apache $B$,%U%!%$%k$r%"%/%;%9$9$k$?$a$K;H$&%U%!%$%k%7%9%F%`$N%Q%9$K(B <usage> <p><directive module="core" type="section">Directory</directive> - $B%G%#%l%/%F%#%V$HF1MM$K!"(B<directive type="section">DirectoryMatch</directive> - $B$H(B <code></DirectoryMatch></code> $B$O;XDj$5$l$?%G%#%l%/%H%j$H(B - $B$=$N%5%V%G%#%l%/%H%j$K$N$_E,MQ$5$l$k%G%#%l%/%F%#%V72$r0O$$$^$9!#(B - $B$7$+$7!"$3$N%G%#%l%/%F%#%V$O0z?t$H$7$F@55,I=8=$r$H$j$^$9!#Nc$($P(B:</p> + ディレクティブと同様に、<directive type="section">DirectoryMatch</directive> + と <code></DirectoryMatch></code> は指定されたディレクトリと + そのサブディレクトリにのみ適用されるディレクティブ群を囲います。 + しかし、このディレクティブは引数として正規表現をとります。例えば:</p> <example> <DirectoryMatch "^/www/(.+/)?[0-9]{3}"> </example> - <p>$B$O(B /www/ $B0J2<$K$"$k?t;z(B 3 $BJ8;z$N%G%#%l%/%H%j$K%^%C%A$7$^$9!#(B</p> + <p>は /www/ 以下にある数字 3 文字のディレクトリにマッチします。</p> </usage> -<seealso>$BDL>o$N(B <directive type="section">Directory</directive> $B$H@55,I=8=$N;XDj$,(B -$BE,MQ$5$l$k=gHV$K$D$$$F$O(B <directive type="section" +<seealso>通常の <directive type="section">Directory</directive> と正規表現の指定が +適用される順番については <directive type="section" module="core">Directory</directive></seealso> -<seealso>$B%j%/%(%9%H$r<u$1$?:]$K$3$l$i$N0[$J$k%;%/%7%g%s$,(B - $BAH$_9g$o$5$l$kJ}K!$K$D$$$F$O(B <a href="../sections.html"> - <Directory>, <Location>, <Files> $B%;%/%7%g%s$NF0:nK!(B</a></seealso> +<seealso>リクエストを受けた際にこれらの異なるセクションが + 組み合わされる方法については <a href="../sections.html"> + <Directory>, <Location>, <Files> セクションの動作法</a></seealso> </directivesynopsis> <directivesynopsis> <name>DocumentRoot</name> -<description>$B%&%'%V$+$i8+$($k%a%$%s$N%I%-%e%a%s%H%D%j!<$K$J$k(B -$B%G%#%l%/%H%j(B</description> +<description>ウェブから見えるメインのドキュメントツリーになる +ディレクトリ</description> <syntax>DocumentRoot <var>directory-path</var></syntax> <default>DocumentRoot /usr/local/apache/htdocs</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O!"(B<program>httpd</program> - $B$,%U%!%$%k$rDs6!$9$k%G%#%l%/%H%j$r@_Dj$7$^$9!#(B - <directive module="mod_alias">Alias</directive> $B$N$h$&$J%G%#%l%/%F%#%V$K%^%C%A$7$J$$>l9g$K$O!"(B - $B%I%-%e%a%s%H$N(B ($BLuCm(B:$B%U%!%$%k%7%9%F%`>e$N(B) $B%Q%9$r@8@.$9$k$?$a$K!"(B - $B%j%/%(%9%H$5$l$?(B URL $B$N%Q%9ItJ,$r%I%-%e%a%s%H%k!<%H$KIUM?$7$^$9!#(B - $BNc(B:</p> + <p>このディレクティブは、<program>httpd</program> + がファイルを提供するディレクトリを設定します。 + <directive module="mod_alias">Alias</directive> のようなディレクティブにマッチしない場合には、 + ドキュメントの (訳注:ファイルシステム上の) パスを生成するために、 + リクエストされた URL のパス部分をドキュメントルートに付与します。 + 例:</p> <example> DocumentRoot /usr/web </example> - <p>$B$3$N>l9g!"(B - <code>http://www.my.host.com/index.html</code> $B$X$N%"%/%;%9$,$"$l$P(B - <code>/usr/web/index.html</code> $B$,JV$5$l$^$9!#(B - <var>directory-path</var> $B$,@dBP%Q%9$G$J$$>l9g$O!"(B + <p>この場合、 + <code>http://www.my.host.com/index.html</code> へのアクセスがあれば + <code>/usr/web/index.html</code> が返されます。 + <var>directory-path</var> が絶対パスでない場合は、 <directive module="core">ServerRoot</directive> - $B$+$i$NAjBP%Q%9$H$_$J$5$l$^$9!#(B</p> + からの相対パスとみなされます。</p> - <p><directive>DocumentRoot</directive> $B$O:G8e$N%9%i%C%7%eL5$7$G(B - $B;XDj$9$kI,MW$,$"$j$^$9!#(B</p> + <p><directive>DocumentRoot</directive> は最後のスラッシュ無しで + 指定する必要があります。</p> </usage> -<seealso><a href="../urlmapping.html">URL $B$r%U%!%$%k%7%9%F%`$N0LCV$K(B -$B%^%C%W$9$k(B</a></seealso> +<seealso><a href="../urlmapping.html">URL をファイルシステムの位置に +マップする</a></seealso> </directivesynopsis> <directivesynopsis> <name>EnableMMAP</name> -<description>$BG[AwCf$K%U%!%$%k$rFI$_9~$`$?$a$K%a%b%j%^%C%T%s%0$r(B -$B;H$&$+$I$&$+(B</description> +<description>配送中にファイルを読み込むためにメモリマッピングを +使うかどうか</description> <syntax>EnableMMAP On|Off</syntax> <default>EnableMMAP On</default> <contextlist><context>server config</context><context>virtual host</context> @@ -814,36 +814,36 @@ module="core">Directory</directive></seealso> <override>FileInfo</override> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$OG[AwCf$K%U%!%$%k$NFbMF$rFI$_9~$`I,MW$,$"$k$H$-$K(B - <program>httpd</program> $B$,%a%b%j%^%C%T%s%0$r;H$&$+$I$&$+$r@)8f$7$^$9!#(B - $B%G%U%)%k%H$G$O!"(B - $BNc$($P!"(B<module>mod_include</module> $B$r;H$C$F(B SSI $B%U%!%$%k$rG[Aw(B - $B$9$k$H$-$N$h$&$K!"%U%!%$%k$NESCf$N%G!<%?$r%"%/%;%9$9$kI,MW$,$"$k$H$-$K$O(B - Apache $B$O(B OS $B$,%5%]!<%H$7$F$$$l$P%U%!%$%k$r%a%b%j$K%^%C%W$7$^$9!#(B</p> + <p>このディレクティブは配送中にファイルの内容を読み込む必要があるときに + <program>httpd</program> がメモリマッピングを使うかどうかを制御します。 + デフォルトでは、 + 例えば、<module>mod_include</module> を使って SSI ファイルを配送 + するときのように、ファイルの途中のデータをアクセスする必要があるときには + Apache は OS がサポートしていればファイルをメモリにマップします。</p> <p> - $B$3$N%a%b%j%^%C%W$O@-G=$N8~>e$r;}$?$i$9$3$H$,$"$j$^$9!#(B - $B$7$+$7!"4D6-$K$h$C$F$O1?MQ>e$NLdBj$rKI$0$?$a$K%a%b%j%^%C%T%s%0$r(B - $B;HMQ$7$J$$$h$&$K$7$?J}$,NI$$>l9g$b$"$j$^$9(B:</p> + このメモリマップは性能の向上を持たらすことがあります。 + しかし、環境によっては運用上の問題を防ぐためにメモリマッピングを + 使用しないようにした方が良い場合もあります:</p> <ul> - <li>$B%^%k%A%W%m%;%C%5%7%9%F%`$NCf$K$O%a%b%j%^%C%T%s%0$r$9$k$H(B - <program>httpd</program> $B$N@-G=$,Mn$A$k$b$N$,$"$j$^$9!#(B</li> - <li>NFS $B%^%&%s%H$5$l$?(B <directive module="core">DocumentRoot</directive> - $B$G$O!"(B<program>httpd</program> $B$,%a%b%j%^%C%W$7$F$$$k4V$K%U%!%$%k$,:o=|$5$l$?$j(B - $BC;$/$J$C$?$j$7$?$H$-$K5/$3$k%;%0%a%s%F!<%7%g%s%U%)!<%k%H$N$?$a$K(B - <program>httpd</program> $B$,%/%i%C%7%e$9$k2DG=@-$,$"$j$^$9!#(B</li> + <li>マルチプロセッサシステムの中にはメモリマッピングをすると + <program>httpd</program> の性能が落ちるものがあります。</li> + <li>NFS マウントされた <directive module="core">DocumentRoot</directive> + では、<program>httpd</program> がメモリマップしている間にファイルが削除されたり + 短くなったりしたときに起こるセグメンテーションフォールトのために + <program>httpd</program> がクラッシュする可能性があります。</li> </ul> - <p>$B$3$l$i$NLdBj$KEv$F$O$^$k%5!<%P$N@_Dj$N>l9g$O!"0J2<$N$h$&$K$7$F(B - $B%U%!%$%k$NG[Aw;~$N%a%b%j%^%C%T%s%0$r;HMQIT2D$K$7$F$/$@$5$$(B:</p> + <p>これらの問題に当てはまるサーバの設定の場合は、以下のようにして + ファイルの配送時のメモリマッピングを使用不可にしてください:</p> <example> EnableMMAP Off </example> - <p>NFS $B%^%&%s%H$5$l$?%U%!%$%k$K$O!"LdBj$N$"$k%U%!%$%k$K$N$_L@<(E*$K(B - $B$3$N5!G=$r;HMQIT2D$K$7$^$9(B:</p> + <p>NFS マウントされたファイルには、問題のあるファイルにのみ明示的に + この機能を使用不可にします:</p> <example> <Directory "/path-to-nfs-files"> @@ -857,53 +857,53 @@ module="core">Directory</directive></seealso> <directivesynopsis> <name>EnableSendfile</name> -<description>$B%U%!%$%k$N%/%i%$%"%s%H$X$NG[Aw;~$K%+!<%M%k$N(B sendfile $B%5%]!<%H$r(B -$B;H$&$+$I$&$+(B</description> +<description>ファイルのクライアントへの配送時にカーネルの sendfile サポートを +使うかどうか</description> <syntax>EnableSendfile On|Off</syntax> <default>EnableSendfile On</default> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context> </contextlist> <override>FileInfo</override> -<compatibility>$B%P!<%8%g%s(B 2.0.44 $B0J9_$G;HMQ2DG=(B</compatibility> +<compatibility>バージョン 2.0.44 以降で使用可能</compatibility> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O%/%i%$%"%s$K%U%!%$%k$NFbMF$rAw$k$H$-$K(B - <program>httpd</program> $B$,%+!<%M%k$N(B - sendfile $B%5%]!<%H$r;H$&$+$I$&$+$r@)8f$7$^$9!#%G%U%)%k%H$G$O!"(B - $BNc$($P@EE*$J%U%!%$%k$NG[Aw$N$h$&$K!"%j%/%(%9%H$N=hM}$K%U%!%$%k$N(B - $BESCf$N%G!<%?$N%"%/%;%9$rI,MW$H$7$J$$$H$-$K$O!"(BApache $B$O(B OS $B$,(B - $B%5%]!<%H$7$F$$$l$P%U%!%$%k$rFI$_9~$`$3$H$J$/(B sendfile $B$r;H$C$F(B - $B%U%!%$%k$NFbMF$rAw$j$^$9!#(B</p> - - <p>sendfile $B$O(B read $B$H(B send $B$rJL!9$K9T$J$&$3$H$H!"%P%C%U%!$N3d$jEv$F$r(B - $B2sHr$7$^$9!#$7$+$7!"%W%i%C%H%U%)!<%`$d%U%!%$%k%7%9%F%`$NCf$K$O(B - $B1?MQ>e$NLdBj$rHr$1$k$?$a$K$3$N5!G=$r;HMQIT2D$K$7$?J}$,NI$$>l9g$,$"$j$^$9(B:</p> + <p>このディレクティブはクライアンにファイルの内容を送るときに + <program>httpd</program> がカーネルの + sendfile サポートを使うかどうかを制御します。デフォルトでは、 + 例えば静的なファイルの配送のように、リクエストの処理にファイルの + 途中のデータのアクセスを必要としないときには、Apache は OS が + サポートしていればファイルを読み込むことなく sendfile を使って + ファイルの内容を送ります。</p> + + <p>sendfile は read と send を別々に行なうことと、バッファの割り当てを + 回避します。しかし、プラットフォームやファイルシステムの中には + 運用上の問題を避けるためにこの機能を使用不可にした方が良い場合があります:</p> <ul> - <li>$B%W%i%C%H%U%)!<%`$NCf$K$O%S%k%I%7%9%F%`$,8!CN$G$-$J$+$C$?!"2u$l$?(B - sendfile $B$N%5%]!<%H$,B8:_$9$k$b$N$,$"$j$^$9!#$3$l$OFC$K(B - $B%P%$%J%j$,JL$N%^%7%s$G%S%k%I$5$l!"2u$l$?(B sendfile $B$N$"$k%^%7%s$K(B - $B0\F0$7$?$H$-$K5/$3$j$^$9!#(B</li> - <li>Linux $B$G$O!"(Bsendfile $B$rMQ$$$k$H!"(B - IPv6 $B;HMQ;~$KB8:_$9$kFCDj%M%C%H%o!<%/%+!<%I$N(B TCP-checksum - $B%*%U%m!<%I$N%P%0$rF'$s$G$7$^$$$^$9!#(B</li> - <li>$B%M%C%H%o!<%/%^%&%s%H$5$l$?(B <directive module="core">DocumentRoot</directive> - ($BNc$($P(B NFS $B$d(B SMB) - $B$G$O!"%+!<%M%k$O<+?H$N%-%c%C%7%e$r;H$C$F%M%C%H%o!<%/$+$i$N%U%!%$%k$r(B - $BAw$k$3$H$,$G$-$J$$$3$H$,$"$j$^$9!#(B</li> + <li>プラットフォームの中にはビルドシステムが検知できなかった、壊れた + sendfile のサポートが存在するものがあります。これは特に + バイナリが別のマシンでビルドされ、壊れた sendfile のあるマシンに + 移動したときに起こります。</li> + <li>Linux では、sendfile を用いると、 + IPv6 使用時に存在する特定ネットワークカードの TCP-checksum + オフロードのバグを踏んでしまいます。</li> + <li>ネットワークマウントされた <directive module="core">DocumentRoot</directive> + (例えば NFS や SMB) + では、カーネルは自身のキャッシュを使ってネットワークからのファイルを + 送ることができないことがあります。</li> </ul> - <p>$B$3$l$i$NLdBj$KEv$F$O$^$k%5!<%P$N@_Dj$N>l9g$O!"0J2<$N$h$&$K$7$F(B - $B$3$N5!G=$r;HMQIT2D$K$7$F$/$@$5$$(B:</p> + <p>これらの問題に当てはまるサーバの設定の場合は、以下のようにして + この機能を使用不可にしてください:</p> <example> EnableSendfile Off </example> - <p>NFS $B$d(B SMB $B%^%&%s%H$5$l$?%U%!%$%k$K$O!"LdBj$N$"$k%U%!%$%k$K$N$_L@<(E*$K(B - $B$3$N5!G=$r;HMQIT2D$K$7$^$9(B:</p> + <p>NFS や SMB マウントされたファイルには、問題のあるファイルにのみ明示的に + この機能を使用不可にします:</p> <example> <Directory "/path-to-nfs-files"> @@ -917,40 +917,40 @@ module="core">Directory</directive></seealso> <directivesynopsis> <name>ErrorDocument</name> -<description>$B%(%i!<$,H/@8$7$?$H$-$K%5!<%P$,%/%i%$%"%s%H$KAw$k$b$N(B</description> +<description>エラーが発生したときにサーバがクライアントに送るもの</description> <syntax>ErrorDocument <var>error-code document</var></syntax> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context> </contextlist> <override>FileInfo</override> -<compatibility>Apache 2.0 $B$G$O%F%-%9%H$r%/%&%)!<%H$9$k9=J8$,0JA0$N%P!<%8%g%s$+$i(B -$BJQ$o$C$F$$$^$9!#(B</compatibility> +<compatibility>Apache 2.0 ではテキストをクウォートする構文が以前のバージョンから +変わっています。</compatibility> <usage> - <p>$BLdBj$d%(%i!<$,H/@8$7$?$H$-$NF0:n$H$7$F!"(B - Apache $B$K$O0J2<$N;M$D$N$&$A0l$D$NF0:n$r@_Dj$9$k$3$H$,$G$-$^$9!#(B</p> + <p>問題やエラーが発生したときの動作として、 + Apache には以下の四つのうち一つの動作を設定することができます。</p> <ol> - <li>Apache $BI8=`$N4JC1$J%(%i!<%a%C%;!<%8$rI=<((B</li> + <li>Apache 標準の簡単なエラーメッセージを表示</li> - <li>$B<+J,$G;XDj$7$?%a%C%;!<%8$rI=<((B</li> + <li>自分で指定したメッセージを表示</li> - <li>$BLdBj$d%(%i!<$N=hM}$r$9$k0Y$K!"<+%5!<%PFb$N(B - <var>URL-path</var> $B$X%j%@%$%l%/%H(B</li> + <li>問題やエラーの処理をする為に、自サーバ内の + <var>URL-path</var> へリダイレクト</li> - <li>$BLdBj$d%(%i!<$N=hM}$r$9$k0Y$K!"30It$N(B <var>URL</var> $B$X%j%@%$%l%/%H(B</li> + <li>問題やエラーの処理をする為に、外部の <var>URL</var> へリダイレクト</li> </ol> - <p>$B:G=i$N$b$N$,%G%U%)%k%H$NF0:n$G!"(B2 $BHVL\$+$i(B 4 $BHVL\$O!"(B - <directive>ErrorDocument</directive>$B%G%#%l%/%F%#%V$K$h$j!"(B - HTTP $B$N%l%9%]%s%9%3!<%I$H!"%a%C%;!<%8$+(B URL $B$r;XDj$9$k$3$H$G@_Dj$7$^$9!#(B - Apache $B$,LdBj$b$7$/$O%(%i!<$K4X$9$kDI2C>pJs$rDs6!$9$k$3$H$,$"$j$^$9!#(B</p> + <p>最初のものがデフォルトの動作で、2 番目から 4 番目は、 + <directive>ErrorDocument</directive>ディレクティブにより、 + HTTP のレスポンスコードと、メッセージか URL を指定することで設定します。 + Apache が問題もしくはエラーに関する追加情報を提供することがあります。</p> - <p>URL $B$N>l9g$O!"%9%i%C%7%e$G;O$^$k(B (/) $B%m!<%+%k$N(B web-path ( - <directive module="core">DocumentRoot</directive> $B$+$i$NAjBP%Q%9(B - ) $B$+!"%/%i%$%"%s%H$,2r7h$G$-$k40A4$J(B URL $B$r;XDj$7$^$9!#(B - $B$b$7$/$O!"%V%i%&%6$KI=<($5$l$k%a%C%;!<%8$r;XDj$G$-$^$9!#(B - $BNc(B:</p> + <p>URL の場合は、スラッシュで始まる (/) ローカルの web-path ( + <directive module="core">DocumentRoot</directive> からの相対パス + ) か、クライアントが解決できる完全な URL を指定します。 + もしくは、ブラウザに表示されるメッセージを指定できます。 + 例:</p> <example> ErrorDocument 500 http://foo.example.com/cgi-bin/tester<br /> @@ -959,12 +959,12 @@ module="core">Directory</directive></seealso> ErrorDocument 403 "Sorry can't allow you access today" </example> - <p>$B2C$($F!"FCJL$JCM(B <code>default</code> $B$r;H$C$F(B Apache $B$K(B - $B%O!<%I%3!<%I$5$l$F$$$k4JC1$J%a%C%;!<%8$r;XDj$9$k$3$H$,$G$-$^$9!#(B - $BDL>o$OI,MW$G$O$"$j$^$;$s$,!"(B<code>default</code> $B$r;H$&$H(B - $B4{B8$N(B <directive>ErrorDocument</directive> $B%G%#%l%/%F%#%V$N@_Dj$r(B - $B7Q>5$9$k$H$3$m$G!"(BApache $B$N%O!<%I%3!<%I$5$l$?4JC1$J%a%C%;!<%8$K(B - $BLa$9$3$H$,$G$-$^$9!#(B</p> + <p>加えて、特別な値 <code>default</code> を使って Apache に + ハードコードされている簡単なメッセージを指定することができます。 + 通常は必要ではありませんが、<code>default</code> を使うと + 既存の <directive>ErrorDocument</directive> ディレクティブの設定を + 継承するところで、Apache のハードコードされた簡単なメッセージに + 戻すことができます。</p> <example> ErrorDocument 404 /cgi-bin/bad_urls.pl<br /><br /> @@ -975,106 +975,106 @@ module="core">Directory</directive></seealso> </Directory> </example> - <p>$B%j%b!<%H(B URL ($BNc$($P!"F,$K(B <code>http</code> $B$HIUM?$7$?J}K!(B) $B$r(B - <directive>ErrorDocument</directive> $B$K;XDj$9$k$H$-!"(B - $B$?$H$(J8=q$,F1$8%5!<%P$K$"$m$&$H$b!"%I%-%e%a%s%H$,$I$3$K$"$k$+$rDLCN$9$k$?$a$K!"(B - Apache $B$O%j%@%$%l%/%H$r%/%i%$%"%s%H$KAw=P$9$k$H$$$&$3$H$K!"Cm0U$7$F$/$@$5$$!#(B - $B$3$l$K$O$$$m$$$m$H4XO"$7$F5/$3$kLdBj$,$"$j$^$9!#(B - $BCf$G$b:G$b=EMW$J$N$O!"%/%i%$%"%s%H$O85!9$N%(%i!<%9%F!<%?%9%3!<%I$r<u$1<h$i$:!"(B - $BBe$o$j$K%j%@%$%l%/%H$N%9%F!<%?%9%3!<%I$r<u$1<h$k$H$$$&$3$H$G$9!#(B - $B$3$l$K$h$j!"%9%F!<%?%9%3!<%I$r;H$C$F(B URL $B$,M-8z$G$"$k$+$I$&$+$r7hDj$7$h$&$H$9$k(B - $B%&%'%V%m%\%C%H$d$=$NB>%/%i%$%"%s%H$r!":.Mp$5$;$k$+$b$7$l$^$;$s!#(B - $B$5$i$K!"(B<code>ErrorDocument 401</code> $B$K%j%b!<%H$N(B URL $B$r;XDj$9$k$H!"(B - $B%/%i%$%"%s%H$O(B 401 $B$H$$$&%9%F!<%?%9%3!<%I$r<u$1<h$i$J$$$?$a!"(B - $B%Q%9%o!<%I$r%f!<%6!<$KF~NOMW5a$7$J$1$l$P$J$i$J$$$3$H$,$o$+$j$^$;$s!#(B - $B=>$C$F!"(B<strong><code>ErrorDocument 401</code> $B$H$$$&%G%#%l%/%F%#%V$r;H$&>l9g$O!"(B - $BI,$:%m!<%+%k$JJ8=q$r;2>H$7$J$1$l$P$J$j$^$;$s!#(B</strong></p> - - <p>Microsoft Internet Explorer (MSIE) $B$O%G%U%)%k%H$G$O%5!<%P$,@8@.$7$?%(%i!<%a%C%;!<%8$,(B - $B!V>.$5$9$.$k!W$H$-$K$OL5;k$r$7$F<+J,<+?H$N!V$d$5$7$$!W%(%i!<%a%C%;!<%8$G(B - $BCV49$7$^$9!#%5%$%:$N$7$-$$CM$O%(%i!<$N<oN`$K$h$C$F0[$J$j$^$9$,!"(B - $B0lHLE*$K$O%(%i!<$NJ8=q$r(B 512 $B%P%$%H$h$j$bB?$-$/$9$k$H!"(BMSIE $B$O(B - $B%5!<%P$,@8@.$7$?%(%i!<$r1#$5$:$KI=<($7$^$9!#>\$7$$>pJs$O(B Microsoft - Knowledge Base $B$N5-;v(B <a + <p>リモート URL (例えば、頭に <code>http</code> と付与した方法) を + <directive>ErrorDocument</directive> に指定するとき、 + たとえ文書が同じサーバにあろうとも、ドキュメントがどこにあるかを通知するために、 + Apache はリダイレクトをクライアントに送出するということに、注意してください。 + これにはいろいろと関連して起こる問題があります。 + 中でも最も重要なのは、クライアントは元々のエラーステータスコードを受け取らず、 + 代わりにリダイレクトのステータスコードを受け取るということです。 + これにより、ステータスコードを使って URL が有効であるかどうかを決定しようとする + ウェブロボットやその他クライアントを、混乱させるかもしれません。 + さらに、<code>ErrorDocument 401</code> にリモートの URL を指定すると、 + クライアントは 401 というステータスコードを受け取らないため、 + パスワードをユーザーに入力要求しなければならないことがわかりません。 + 従って、<strong><code>ErrorDocument 401</code> というディレクティブを使う場合は、 + 必ずローカルな文書を参照しなければなりません。</strong></p> + + <p>Microsoft Internet Explorer (MSIE) はデフォルトではサーバが生成したエラーメッセージが + 「小さすぎる」ときには無視をして自分自身の「やさしい」エラーメッセージで + 置換します。サイズのしきい値はエラーの種類によって異なりますが、 + 一般的にはエラーの文書を 512 バイトよりも多きくすると、MSIE は + サーバが生成したエラーを隠さずに表示します。詳しい情報は Microsoft + Knowledge Base の記事 <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;Q294807">Q294807</a> - $B$K$"$j$^$9!#(B</p> + にあります。</p> - <p>$B$[$H$s$I$N%(%i!<%a%C%;!<%8$r>e=q$-$9$k$3$H$,$G$-$^$9$,!"FCDj$N>u672<$G$O(B - <directive module="core">ErrorDocument</directive> $B$N@_Dj$K$+$+$o$i$:(B - $BFbB"$N%a%C%;!<%8$,;H$o$l$^$9!#(B - $BFC$K!"IT@5$J7A<0$N%j%/%(%9%H$,8!=P$5$l$?>l9g!"DL>o$N%j%/%(%9%H=hM}$O(B - $BB(:B$KCf;_$5$l!"FbB"$N%(%i!<%a%C%;!<%8$,JV$5$l$^$9!#(B - $B$3$N=hCV$OIT@5$J%j%/%(%9%H$K$h$C$F0z$-5/$3$5$l$k!"%;%-%e%j%F%#LdBj$+$i(B - $B<i$k$?$a$KI,MW$JA<CV$G$9!#(B</p> + <p>ほとんどのエラーメッセージを上書きすることができますが、特定の状況下では + <directive module="core">ErrorDocument</directive> の設定にかかわらず + 内蔵のメッセージが使われます。 + 特に、不正な形式のリクエストが検出された場合、通常のリクエスト処理は + 即座に中止され、内蔵のエラーメッセージが返されます。 + この処置は不正なリクエストによって引き起こされる、セキュリティ問題から + 守るために必要な措置です。</p> - <p>2.0 $B$h$jA0$N%P!<%8%g%s$G$O!"BP$K$J$C$F$$$J$$Fs=E0zMQId$r(B - $B@hF,$KIU$1$k$3$H$K$h$j%a%C%;!<%8$G$"$k$3$H$r;XDj$7$F$$$^$7$?!#(B</p> + <p>2.0 より前のバージョンでは、対になっていない二重引用符を + 先頭に付けることによりメッセージであることを指定していました。</p> </usage> -<seealso><a href="../custom-error.html">$B%+%9%?%^%$%:2DG=$J(B -$B%(%i!<1~Ez$N%I%-%e%a%s%F!<%7%g%s(B</a></seealso> +<seealso><a href="../custom-error.html">カスタマイズ可能な +エラー応答のドキュメンテーション</a></seealso> </directivesynopsis> <directivesynopsis> <name>ErrorLog</name> -<description>$B%5!<%P$,%(%i!<$r%m%0<}=8$9$k>l=j(B</description> +<description>サーバがエラーをログ収集する場所</description> <syntax> ErrorLog <var>file-path</var>|syslog[:<var>facility</var>]</syntax> <default>ErrorLog logs/error_log (Unix) ErrorLog logs/error.log (Windows and OS/2)</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p><directive>ErrorLog</directive> $B%G%#%l%/%F%#%V$O!"(B - $B%5!<%P$K@8$8$?$5$^$6$^$J%(%i!<$r(B - $B5-O?$9$k0Y$N%U%!%$%k$NL>A0$r@_Dj$7$^$9!#(B - <var>file-path</var> $B$,@dBP%Q%9$G$J$$$H$-$O!"(B<directive - module="core">ServerRoot</directive> $B$+$i$NAjBP%Q%9$H$_$J$5$l$^$9!#(B</p> + <p><directive>ErrorLog</directive> ディレクティブは、 + サーバに生じたさまざまなエラーを + 記録する為のファイルの名前を設定します。 + <var>file-path</var> が絶対パスでないときは、<directive + module="core">ServerRoot</directive> からの相対パスとみなされます。</p> - <example><title>$BNc(B</title> + <example><title>例</title> ErrorLog /var/log/httpd/error_log </example> - <p><var>file-path</var> $B$,%Q%$%W(B (|) $B$+$i;O$^$k>l9g$O!"(B - $B%(%i!<%m%0$r=hM}$9$k$?$a$K<B9T$5$l$k%3%^%s%I$,(B - $B;XDj$5$l$F$$$k$H2r<a$5$l$^$9!#(B</p> + <p><var>file-path</var> がパイプ (|) から始まる場合は、 + エラーログを処理するために実行されるコマンドが + 指定されていると解釈されます。</p> - <example><title>$BNc(B</title> + <example><title>例</title> ErrorLog "|/usr/local/bin/httpd_errors" </example> - <p>$B%U%!%$%kL>$NJQ$o$j$K(B <code>syslog</code> $B$H;XDj$9$k$3$H$K$h$C$F!"(B - $B%7%9%F%`$,%5%]!<%H$7$F$$$l$P(B syslogd(8) $B$rMxMQ$7$?%m%.%s%0$,M-8z$K$J$j$^$9!#(B - $B%G%U%)%k%H$G$O!"(B<code>local7</code> $B%U%!%7%j%F%#$H$J$j$^$9$,!"(B - <code>syslog:<var>facility</var></code> $B$H$$$C$?7A$G5-=R$9$k$3$H$K$h$j!"(B - $BDL>o(B syslog(1) $B$N%I%-%e%a%s%H$G@bL@$5$l$F$$$k%U%!%7%j%F%#$N0l$D$r;H$&$h$&$K(B - $B$9$k$3$H$,$G$-$^$9!#(B</p> + <p>ファイル名の変わりに <code>syslog</code> と指定することによって、 + システムがサポートしていれば syslogd(8) を利用したロギングが有効になります。 + デフォルトでは、<code>local7</code> ファシリティとなりますが、 + <code>syslog:<var>facility</var></code> といった形で記述することにより、 + 通常 syslog(1) のドキュメントで説明されているファシリティの一つを使うように + することができます。</p> - <example><title>$BNc(B</title> + <example><title>例</title> ErrorLog syslog:user </example> - <p>$B%;%-%e%j%F%#(B: - $B%m%0%U%!%$%k$r3JG<$9$k%G%#%l%/%H%j$,!"%5!<%P$r5/F0$7$?%f!<%60J30$N(B - $B%f!<%6$K$h$C$F=q$-9~$a$k>l9g$K%;%-%e%j%F%#$,GK$i$l$k2DG=@-$,$"$k$3$H$K(B - $B4X$9$k>\:Y$O(B <a - href="../misc/security_tips.html#serverroot">$B%;%-%e%j%F%#$K4X$9$k%3%D(B</a> $B$r(B - $B;2>H$7$F$/$@$5$$!#(B</p> - <note type="warning"><title>$BCm(B</title> - <p>Unix $B0J30$N%W%i%C%H%U%)!<%`$G%U%!%$%k$N%Q%9$rF~NO$9$k$H$-$O!"(B - $B%W%i%C%H%U%)!<%`$,%P%C%/%9%i%C%7%e$N;HMQ$r5v$7$F$$$?$H$7$F$b!"(B - $B3N<B$K%9%i%C%7%e$N$_$,;HMQ$5$l$k$h$&$KCm0U$7$F$/$@$5$$!#0lHLE*$K$O!"(B - $B@_Dj%U%!%$%kA4HL$G%9%i%C%7%e$N$_$r;H$&J}$,NI$$$G$7$g$&!#(B</p> + <p>セキュリティ: + ログファイルを格納するディレクトリが、サーバを起動したユーザ以外の + ユーザによって書き込める場合にセキュリティが破られる可能性があることに + 関する詳細は <a + href="../misc/security_tips.html#serverroot">セキュリティに関するコツ</a> を + 参照してください。</p> + <note type="warning"><title>注</title> + <p>Unix 以外のプラットフォームでファイルのパスを入力するときは、 + プラットフォームがバックスラッシュの使用を許していたとしても、 + 確実にスラッシュのみが使用されるように注意してください。一般的には、 + 設定ファイル全般でスラッシュのみを使う方が良いでしょう。</p> </note> </usage> <seealso><directive module="core">LogLevel</directive></seealso> -<seealso><a href="../logs.html">Apache $B%m%0%U%!%$%k(B</a></seealso> +<seealso><a href="../logs.html">Apache ログファイル</a></seealso> </directivesynopsis> <directivesynopsis> <name>FileETag</name> -<description>ETag HTTP $B1~Ez%X%C%@$r:n@.$9$k$?$a$K;HMQ$5$l$k(B -$B%U%!%$%k$NB0@-(B</description> +<description>ETag HTTP 応答ヘッダを作成するために使用される +ファイルの属性</description> <syntax>FileETag <var>component</var> ...</syntax> <default>FileETag INode MTime Size</default> <contextlist><context>server config</context><context>virtual host</context> @@ -1084,49 +1084,49 @@ module="core">Directory</directive></seealso> <usage> <p> - <directive>FileETag</directive> $B%G%#%l%/%F%#%V$O(B - $B%I%-%e%a%s%H$,%U%!%$%k$K4p$E$$$?$b$N$G$"$k$H$-$K!"(B - <code>ETag</code> ($B%(%s%F%#%F%#%?%0(B) $B1~Ez%X%C%@%U%#!<%k%I$r:n@.$9$k$H$-$K;HMQ$9$k(B - $B%U%!%$%k$NB0@-$r@_Dj$7$^$9!#(B (<code>ETag</code> $B$NCM$O%M%C%H%o!<%/$NBS0h$r@aLs$9$k$?$a$N(B - $B%-%c%C%7%e$N4IM}$G;H$o$l$^$9!#(B) Apache 1.3.22 $B0JA0$G$O!"(B<code>ETag</code> $B$NCM$O(B - <em>$B>o$K(B</em>$B%U%!%$%k$N(B inode, $B%5%$%:!":G=*=$@5;~9o(B (mtime) $B$+$i:n@.(B - $B$5$l$F$$$^$7$?!#(B<directive>FileETag</directive> $B%G%#%l%/%F%#%V$K$h$j!"$3$l$i$N$I$l$r;H$&$+$r(B - $BA*$V$3$H$,$G$-$^$9!#G'<1$5$l$k%-!<%o!<%I$O(B: + <directive>FileETag</directive> ディレクティブは + ドキュメントがファイルに基づいたものであるときに、 + <code>ETag</code> (エンティティタグ) 応答ヘッダフィールドを作成するときに使用する + ファイルの属性を設定します。 (<code>ETag</code> の値はネットワークの帯域を節約するための + キャッシュの管理で使われます。) Apache 1.3.22 以前では、<code>ETag</code> の値は + <em>常に</em>ファイルの inode, サイズ、最終修正時刻 (mtime) から作成 + されていました。<directive>FileETag</directive> ディレクティブにより、これらのどれを使うかを + 選ぶことができます。認識されるキーワードは: </p> <dl> <dt><strong>INode</strong></dt> - <dd>$B%U%!%$%k$N(B inode $BHV9f$r7W;;$K;H$$$^$9(B</dd> + <dd>ファイルの inode 番号を計算に使います</dd> <dt><strong>MTime</strong></dt> - <dd>$B%U%!%$%k$N:G=*=$@5;~9o$r;H$$$^$9(B</dd> + <dd>ファイルの最終修正時刻を使います</dd> <dt><strong>Size</strong></dt> - <dd>$B%U%!%$%k$NCf?H$N%P%$%H?t$r;H$$$^$9(B</dd> + <dd>ファイルの中身のバイト数を使います</dd> <dt><strong>All</strong></dt> - <dd>$B;HMQ2DG=$J$9$Y$F$N%U%#!<%k%I$r;H$$$^$9!#(B - $B$3$l$O(B <example>FileETag INode MTime Size</example> $B$HEy2A$G$9!#(B</dd> + <dd>使用可能なすべてのフィールドを使います。 + これは <example>FileETag INode MTime Size</example> と等価です。</dd> <dt><strong>None</strong></dt> - <dd>$B%I%-%e%a%s%H$,%U%!%$%k$K4p$E$$$?$b$N$G$b!"(B<code>ETag</code> $B%U%#!<%k%I$r(B - $B1~Ez$KIU2C$7$^$;$s(B</dd> + <dd>ドキュメントがファイルに基づいたものでも、<code>ETag</code> フィールドを + 応答に付加しません</dd> </dl> - <p><code>INode</code>, <code>MTime</code>, <code>Size</code> $B%-!<%o!<%I$K$O(B - <code>+</code> $B$d(B <code>-</code> $B$rA0$KIU$1$F(B - $B;XDj$9$k$3$H$b$G$-$^$9!#$3$N>l9g$O!"$h$j9-$$HO0O$+$i7Q>5$5$l$?(B - $B%G%U%)%k%H$N@_Dj$KJQ99$r2C$($k$h$&$K$J$j$^$9!#$=$N$h$&$J@\F,<-$N(B - $BL5$$%-!<%o!<%I$r;XDj$9$k$H!"B(:B$K7Q>5$7$?@_Dj$rL58z$K$7$^$9!#(B</p> - - <p>$B$"$k%G%#%l%/%H%j$N@_Dj$K(B - <code>FileETag INode MTime Size</code> $B$,$"$j!"(B - $B%5%V%G%#%l%/%H%j$N@_Dj$K(B <code>FileETag -INode</code> $B$,$"$k$H$-$O!"(B - $B$=$N%5%V%G%#%l%/%H%j$N@_Dj$O(B ($B@_Dj$,>e=q$-$5$l$J$1$l$P%5%V%G%#%l%/%H%j$N(B - $B%5%V%G%#%l%/%H%j$K$b7Q>5$5$l$^$9(B) <code>FileETag MTime Size</code> - $B$HF1$8$K$J$j$^$9!#(B</p> + <p><code>INode</code>, <code>MTime</code>, <code>Size</code> キーワードには + <code>+</code> や <code>-</code> を前に付けて + 指定することもできます。この場合は、より広い範囲から継承された + デフォルトの設定に変更を加えるようになります。そのような接頭辞の + 無いキーワードを指定すると、即座に継承した設定を無効にします。</p> + + <p>あるディレクトリの設定に + <code>FileETag INode MTime Size</code> があり、 + サブディレクトリの設定に <code>FileETag -INode</code> があるときは、 + そのサブディレクトリの設定は (設定が上書きされなければサブディレクトリの + サブディレクトリにも継承されます) <code>FileETag MTime Size</code> + と同じになります。</p> </usage> </directivesynopsis> <directivesynopsis type="section"> <name>Files</name> -<description>$B%^%C%A$9$k%U%!%$%kL>$KE,MQ$5$l$k%G%#%l%/%F%#%V$r0O$`(B</description> +<description>マッチするファイル名に適用されるディレクティブを囲む</description> <syntax><Files <var>filename</var>> ... </Files></syntax> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context> @@ -1134,58 +1134,58 @@ module="core">Directory</directive></seealso> <override>All</override> <usage> - <p><directive type="section">Files</directive> $B%G%#%l%/%F%#%V$O!"(B - $B$=$NCf$K$"$k%G%#%l%/%F%#%V$NE,MQHO0O$r%U%!%$%kL>$G@)8B$7$^$9!#(B + <p><directive type="section">Files</directive> ディレクティブは、 + その中にあるディレクティブの適用範囲をファイル名で制限します。 <directive module="core" - type="section">Directory</directive> $B%G%#%l%/%F%#%V$d(B <directive - module="core" type="section">Location</directive> $B%G%#%l%/%F%#%V$H(B - $BF1$8$h$&$J5!G=$r;}$A$^$9!#(B - $B$3$l$O!"(B<code></Files></code> $B%G%#%l%/%F%#%V$HBP$K(B - $B$J$C$F$$$J$1$l$P$J$j$^$;$s!#(B - $B$3$N%;%/%7%g%sCf$N%G%#%l%/%F%#%V$O!"%Y!<%9L>(B ($B%U%!%$%kL>$N:G8e$NItJ,(B) - $B$,;XDj$5$l$?%U%!%$%kL>$K%^%C%A$9$k$9$Y$F$N%*%V%8%'%/%H$KE,MQ$5$l$^$9!#(B - <directive type="section">Files</directive> $B%;%/%7%g%s$O(B - <directive type="section">Directory</directive> $B%;%/%7%g%s$H(B - <code>.htaccess</code> $B$,FI$_9~$^$l$?8e!"(B - <directive type="section">Location</directive> $B%;%/%7%g%s$h$j$O@h$K(B - $B@_Dj%U%!%$%k$K8=$l$?=g$KE,MQ$5$l$^$9!#(B - <directive type="section">Files</directive> $B$O!"(B - <directive type="section">Directory</directive> $B%;%/%7%g%sFb$K(B - $B%M%9%H$5$;$k$3$H$,$G$-!"(B - $B%U%!%$%k%7%9%F%`$N0lIt$K$N$_8BDj$7$FE,MQ$5$;$k$3$H$,$G$-$^$9!#(B</p> - - <p><var>filename</var> $B0z?t$O!"%U%!%$%kL>$+%o%$%k%I%+!<%IJ8;zNs(B - $B$G!"%o%$%k%I%+!<%I$G$O(B <code>?</code> $B$O0l$D$NJ8;z!"(B<code>*</code> $B$OG$0U$NJ8;zNs$K%^%C%A$7$^$9!#(B - <code>~</code> $B$H$$$&J8;z$rIU2C$9$k$3$H$G3HD%@55,I=8=$r;H$&$3$H$b$G$-$^$9!#(B - $BNc$($P!"(B</p> + type="section">Directory</directive> ディレクティブや <directive + module="core" type="section">Location</directive> ディレクティブと + 同じような機能を持ちます。 + これは、<code></Files></code> ディレクティブと対に + なっていなければなりません。 + このセクション中のディレクティブは、ベース名 (ファイル名の最後の部分) + が指定されたファイル名にマッチするすべてのオブジェクトに適用されます。 + <directive type="section">Files</directive> セクションは + <directive type="section">Directory</directive> セクションと + <code>.htaccess</code> が読み込まれた後、 + <directive type="section">Location</directive> セクションよりは先に + 設定ファイルに現れた順に適用されます。 + <directive type="section">Files</directive> は、 + <directive type="section">Directory</directive> セクション内に + ネストさせることができ、 + ファイルシステムの一部にのみ限定して適用させることができます。</p> + + <p><var>filename</var> 引数は、ファイル名かワイルドカード文字列 + で、ワイルドカードでは <code>?</code> は一つの文字、<code>*</code> は任意の文字列にマッチします。 + <code>~</code> という文字を付加することで拡張正規表現を使うこともできます。 + 例えば、</p> <example> <Files ~ "\.(gif|jpe?g|png)$"> </example> - <p>$B$H$9$k$3$H$K$h$j!"0lHLE*$J%$%s%?!<%M%C%H$N2hA|%U%)!<%^%C%H$K%^%C%A$7$^$9!#(B - $B$?$@$7!"(B - <directive module="core" type="section">FilesMatch</directive> $B$r;H$&J}$,(B - $B?d>)$5$l$F$$$^$9!#(B</p> + <p>とすることにより、一般的なインターネットの画像フォーマットにマッチします。 + ただし、 + <directive module="core" type="section">FilesMatch</directive> を使う方が + 推奨されています。</p> - <p>$B$A$J$_$K!"(B<directive module="core" type="section" - >Directory</directive> $B$H(B <directive module="core" type="section" - >Location</directive> $B%;%/%7%g%s$H$O0[$J$j!"(B + <p>ちなみに、<directive module="core" type="section" + >Directory</directive> と <directive module="core" type="section" + >Location</directive> セクションとは異なり、 <directive type="section">Files</directive> - $B$O(B <code>.htaccess</code> $B%U%!%$%kFb$GMxMQ$9$k$3$H$,$G$-$^$9!#(B - $B$3$l$K$h$j!"%f!<%6$,%U%!%$%kKh$K%"%/%;%9$N@)8f$r9T$J$&$3$H$,$G$-$k$h$&$K(B - $B$J$C$F$$$^$9!#(B</p> + は <code>.htaccess</code> ファイル内で利用することができます。 + これにより、ユーザがファイル毎にアクセスの制御を行なうことができるように + なっています。</p> </usage> -<seealso>$B%j%/%(%9%H$r<u$1$?:]$K$3$l$i$N0[$J$k%;%/%7%g%s$,(B - $BAH$_9g$o$5$l$kJ}K!$K$D$$$F$O(B <a href="../sections.html"> - <Directory>, <Location>, <Files> $B%;%/%7%g%s$NF0:nK!(B</a></seealso> +<seealso>リクエストを受けた際にこれらの異なるセクションが + 組み合わされる方法については <a href="../sections.html"> + <Directory>, <Location>, <Files> セクションの動作法</a></seealso> </directivesynopsis> <directivesynopsis type="section"> <name>FilesMatch</name> -<description>$B@55,I=8=$K%^%C%A$9$k%U%!%$%kL>$KE,MQ$5$l$k(B -$B%G%#%l%/%F%#%V$r0O$`(B</description> +<description>正規表現にマッチするファイル名に適用される +ディレクティブを囲む</description> <syntax><FilesMatch <var>regex</var>> ... </FilesMatch></syntax> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context> @@ -1193,56 +1193,56 @@ module="core">Directory</directive></seealso> <override>All</override> <usage> - <p><directive type="section">FilesMatch</directive> $B%G%#%l%/%F%#%V$O!"(B + <p><directive type="section">FilesMatch</directive> ディレクティブは、 <directive module="core" type="section">Files</directive> - $B%G%#%l%/%F%#%VF1MM$K$=$NCf$K$"$k%G%#%l%/%F%#%V$NE,MQHO0O$r%U%!%$%kL>$G@)8B$7$^$9!#$?$@$7!"(B - $B$3$N%G%#%l%/%F%#%V$K$O@55,I=8=$r;XDj$7$^$9!#(B - $BNc$($P(B:</p> + ディレクティブ同様にその中にあるディレクティブの適用範囲をファイル名で制限します。ただし、 + このディレクティブには正規表現を指定します。 + 例えば:</p> <example> <FilesMatch "\.(gif|jpe?g|png)$"> </example> - <p>$B$O0lHLE*$J%$%s%?!<%M%C%H$N2hA|7A<0$K%^%C%A$7$^$9!#(B</p> + <p>は一般的なインターネットの画像形式にマッチします。</p> </usage> -<seealso>$B%j%/%(%9%H$r<u$1$?:]$K$3$l$i$N0[$J$k%;%/%7%g%s$,(B - $BAH$_9g$o$5$l$kJ}K!$K$D$$$F$O(B <a href="../sections.html"> - <Directory>, <Location>, <Files> $B%;%/%7%g%s$NF0:nK!(B</a></seealso> +<seealso>リクエストを受けた際にこれらの異なるセクションが + 組み合わされる方法については <a href="../sections.html"> + <Directory>, <Location>, <Files> セクションの動作法</a></seealso> </directivesynopsis> <directivesynopsis> <name>ForceType</name> -<description>$B$9$Y$F$N%^%C%A$9$k%U%!%$%k$,;XDj$N(B MIME $B%3%s%F%s%H%?%$%W$G(B -$BAw$i$l$k$h$&$K$9$k(B</description> +<description>すべてのマッチするファイルが指定の MIME コンテントタイプで +送られるようにする</description> <syntax>ForceType <var>MIME-type</var>|None</syntax> <contextlist><context>directory</context><context>.htaccess</context> </contextlist> <override>FileInfo</override> -<compatibility>Apache 2.0 $B$G(B core $B$K0\F0(B</compatibility> +<compatibility>Apache 2.0 で core に移動</compatibility> <usage> - <p><code>.htaccess</code> $B$d(B <directive type="section" module="core" - >Directory</directive> $B%;%/%7%g%s!"(B - <directive type="section" module="core">Location</directive> $B%;%/%7%g%s!"(B - <directive type="section" module="core">Files</directive> $B%;%/%7%g%s$K(B - $B=q$+$l$?>l9g!"$3$N%G%#%l%/%F%#%V$O$=$3$K$"$k$9$Y$F$N%U%!%$%k$,(B + <p><code>.htaccess</code> や <directive type="section" module="core" + >Directory</directive> セクション、 + <directive type="section" module="core">Location</directive> セクション、 + <directive type="section" module="core">Files</directive> セクションに + 書かれた場合、このディレクティブはそこにあるすべてのファイルが <var>MIME-type</var> - $B$G;XDj$5$l$?%3%s%F%s%H%?%$%W$H$7$F07$o$l$k$h$&$K$7$^$9!#$?$H$($P!"(B - GIF $B%U%!%$%k$P$+$j$N%G%#%l%/%H%j$,$"$C$F!"$9$Y$F$N%U%!%$%k$r(B <code>.gif</code> - $B$G=*$o$i$;$?$/$O$J$$$H$-$K!"0J2<$N$b$N$r;HMQ$7$^$9(B:</p> + で指定されたコンテントタイプとして扱われるようにします。たとえば、 + GIF ファイルばかりのディレクトリがあって、すべてのファイルを <code>.gif</code> + で終わらせたくはないときに、以下のものを使用します:</p> <example> ForceType image/gif </example> - <p><directive module="core">DefaultType</directive> $B$H0c$C$F(B - $B$3$N%G%#%l%/%F%#%V$O%a%G%#%"%?%$%W$r7h$a$k$3$H$,$G$-$k$+$b$7$l$J$$(B - $B%U%!%$%k$N3HD%;R$b4^$a!"$9$Y$F$N(B MIME $B%?%$%W$N4XO"IU$1$r(B - $B>e=q$-$9$k$3$H$KCm0U$7$F$/$@$5$$!#(B</p> + <p><directive module="core">DefaultType</directive> と違って + このディレクティブはメディアタイプを決めることができるかもしれない + ファイルの拡張子も含め、すべての MIME タイプの関連付けを + 上書きすることに注意してください。</p> - <p><code>None</code> $B$H$$$&CM$r;H$&$3$H$G(B <directive>ForceType</directive> $B$N(B - $B@_Dj$rL58z$K$G$-$^$9(B:</p> + <p><code>None</code> という値を使うことで <directive>ForceType</directive> の + 設定を無効にできます:</p> <example> # force all files to be image/gif:<br /> @@ -1264,52 +1264,52 @@ module="core">Directory</directive></seealso> <directivesynopsis> <name>HostnameLookups</name> -<description>$B%/%i%$%"%s%H$N(B IP $B%"%I%l%9$N(B DNS $B%k%C%/%"%C%W$r(B -$BM-8z$K$9$k(B</description> +<description>クライアントの IP アドレスの DNS ルックアップを +有効にする</description> <syntax>HostnameLookups On|Off|Double</syntax> <default>HostnameLookups Off</default> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context></contextlist> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O!"%[%9%HL>$r%m%0<}=8$G$-$k$h$&$K(B - DNS $B%k%C%/%"%C%W$rM-8z$K$7$^$9(B - ($B$5$i$K!"(BCGI/SSI $B$K(B <code>REMOTE_HOST</code> $BJQ?t$H$7$FEO$7$^$9(B)$B!#(B - <code>Double</code>$B$r;XDj$7$?>l9g!"(B2 $B=E$N5U0z$-$r9T$J$$$^$9!#(B - $B$D$^$j!"5U0z$-$N8e$K!"$=$N7k2L$KBP$7$F@50z$-$r9T$J$$$^$9!#@50z$-$N(B - $B7k2L$N(B IP $B%"%I%l%9$NCf$K%*%j%8%J%k$N%"%I%l%9$H0lCW$9$k$b$N$,$J$1$l$P(B - $B$J$j$^$;$s!#(B("tcpwrappers" $B$NMQ8l$G$O(B PARANOID $B$H8F$P$l$F$$$^$9!#(B)</p> - - <p><module>mod_authz_host</module> $B$G%[%9%HL>$K$h$k%"%/%;%9(B - $B@)8f$r9T$J$&>l9g$K$O!"(B - $B@_Dj$NG!2?$K$h$i$:(B 2 $B=E$N5U0z$-$,<B9T$5$l$^$9!#(B - $B$3$l$O!"%;%-%e%j%F%#$rJ]$D$?$a$KI,MW$G$9!#(B - <code>HostnameLookups Double</code> $B$r@_Dj$7$J$$8B$j!"(B - $BB>$NItJ,$O$3$N(B 2 $B=E5U0z$-$N7k2L$r;H$&$3$H$O$G$-$^$;$s!#(B - $BNc$($P!"(B<code>HostnameLookups On</code> $B$H@_Dj$7$F$"$k>uBV$G!"(B - $B%[%9%HL>$K$h$k%"%/%;%9@)8B$r9T$J$C$?%*%V%8%'%/%H$X$N(B - $B%j%/%(%9%H$r<u$1$?$H$9$k$H!"(B2 $B=E$N5U0z$-$,@.8y$9$k$+H]$+$K$h$i$:!"(B - <code>REMOTE_HOST</code> $B$K$ODL>o$N5U0z$-7k2L$,EO$5$l$^$9!#(B</p> - - <p>$B%G%#%l%/%F%#%V$N%G%U%)%k%H$O(B - $BK\Ev$K5U0z$-$rI,MW$H$7$F$$$k$o$1$G$O$J$$%5%$%H$N(B - $B%M%C%H%o!<%/%H%i%U%#%C%/$rDc8:$5$;$k$?$a$K!"(B<code>Off</code> $B$K$J$C$F$$$^$9!#(B - $B%k%C%/%"%C%W$K$h$kM>7W$JCY1d$,$J$/$J$k$?$a!"(B - $B%(%s%I%f!<%6$K$H$C$F$bNI$$$G$7$g$&!#(B - DNS $B$N%k%C%/%"%C%W$K$O!"$+$J$j$N;~4V$,I,MW$H$J$k>l9g$,B?$/!"(B - $BIi2Y$N9b$$%5%$%H$G$O$3$N%G%#%l%/%F%#%V$O(B <code>Off</code> $B$K$9$Y$-$G$9!#(B - $B$J$*!"(B<var>/support</var> $B%G%#%l%/%H%j$K4^$^$l!"%G%U%)%k%H$G$O(B - $B%$%s%9%H!<%k%G%#%l%/%H%j$N(B <code>bin</code> $B%5%V%G%#%l%/%H%j$K(B - $B%$%s%9%H!<%k$5$l$k(B <program>logresolve</program> $B%f!<%F%#%j%F%#$K$h$j!"(B - Apache $B$NF0:n$H$OJL$K!"%m%0$K;D$5$l$F$$$k(B IP $B%"%I%l%9$+$i%[%9%HL>$r(B - $B%k%C%/%"%C%W$9$k$3$H$,2DG=$G$9!#(B</p> + <p>このディレクティブは、ホスト名をログ収集できるように + DNS ルックアップを有効にします + (さらに、CGI/SSI に <code>REMOTE_HOST</code> 変数として渡します)。 + <code>Double</code>を指定した場合、2 重の逆引きを行ないます。 + つまり、逆引きの後に、その結果に対して正引きを行ないます。正引きの + 結果の IP アドレスの中にオリジナルのアドレスと一致するものがなければ + なりません。("tcpwrappers" の用語では PARANOID と呼ばれています。)</p> + + <p><module>mod_authz_host</module> でホスト名によるアクセス + 制御を行なう場合には、 + 設定の如何によらず 2 重の逆引きが実行されます。 + これは、セキュリティを保つために必要です。 + <code>HostnameLookups Double</code> を設定しない限り、 + 他の部分はこの 2 重逆引きの結果を使うことはできません。 + 例えば、<code>HostnameLookups On</code> と設定してある状態で、 + ホスト名によるアクセス制限を行なったオブジェクトへの + リクエストを受けたとすると、2 重の逆引きが成功するか否かによらず、 + <code>REMOTE_HOST</code> には通常の逆引き結果が渡されます。</p> + + <p>ディレクティブのデフォルトは + 本当に逆引きを必要としているわけではないサイトの + ネットワークトラフィックを低減させるために、<code>Off</code> になっています。 + ルックアップによる余計な遅延がなくなるため、 + エンドユーザにとっても良いでしょう。 + DNS のルックアップには、かなりの時間が必要となる場合が多く、 + 負荷の高いサイトではこのディレクティブは <code>Off</code> にすべきです。 + なお、<var>/support</var> ディレクトリに含まれ、デフォルトでは + インストールディレクトリの <code>bin</code> サブディレクトリに + インストールされる <program>logresolve</program> ユーティリティにより、 + Apache の動作とは別に、ログに残されている IP アドレスからホスト名を + ルックアップすることが可能です。</p> </usage> </directivesynopsis> <directivesynopsis type="section"> <name>IfDefine</name> -<description>$B5/F0;~$K%F%9%H$,??$G$"$k$H$-$N$_$K=hM}$5$l$k%G%#%l%/%F%#%V$r(B -$B0O$`(B</description> +<description>起動時にテストが真であるときのみに処理されるディレクティブを +囲む</description> <syntax><IfDefine [!]<var>parameter-name</var>> ... </IfDefine></syntax> <contextlist><context>server config</context><context>virtual host</context> @@ -1319,17 +1319,17 @@ module="core">Directory</directive></seealso> <usage> <p><code><IfDefine <var>test</var>>...</IfDefine></code> - $B%;%/%7%g%s$O!"(B - $B%G%#%l%/%F%#%V$r>r7oIU$-$G;XDj$9$k$?$a$KMxMQ$7$^$9!#(B - <directive type="section">IfDefine</directive> $B%;%/%7%g%s$K(B - $B4^$^$l$k%G%#%l%/%F%#%V$O!"(B<var>test</var>$B$,(B - $BDj5A$5$l$F$$$k$H$-$N$_=hM}$5$l$^$9!#(B - $B$b$7(B <var>test</var> $B$,Dj5A$5$l$F$$$J$1$l$P!"(B - $B3+;O$H=*N;$N;XDj$N4V$N%G%#%l%/%F%#%V$OL5;k$5$l$^$9!#(B</p> - - <p><directive type="section">IfDefine</directive> $B%;%/%7%g%s%G%#%l%/%F%#%V$K(B - $B;XDj$9$k(B <var>test</var> $B$O!"(B - $B<!$NFs$D$N7A<0$N$&$A$N0l$D$r$H$j$^$9(B:</p> + セクションは、 + ディレクティブを条件付きで指定するために利用します。 + <directive type="section">IfDefine</directive> セクションに + 含まれるディレクティブは、<var>test</var>が + 定義されているときのみ処理されます。 + もし <var>test</var> が定義されていなければ、 + 開始と終了の指定の間のディレクティブは無視されます。</p> + + <p><directive type="section">IfDefine</directive> セクションディレクティブに + 指定する <var>test</var> は、 + 次の二つの形式のうちの一つをとります:</p> <ul> <li><var>parameter-name</var></li> @@ -1337,18 +1337,18 @@ module="core">Directory</directive></seealso> <li><code>!</code><var>parameter-name</var></li> </ul> - <p>$BA0<T$N>l9g$K$O!"(B<var>parameter-name</var> $B$HL>IU$1$i$l$?%Q%i%a!<%?$,(B - $BDj5A$5$l$F$$$l$P3+;O$H=*N;$N4V$N%G%#%l%/%F%#%V$,=hM}$5$l$^$9!#(B - $B8e<T$N>l9g$O5U$G!"(B<em>parameter-name</em> $B$,;XDj$5$l$F(B<strong>$B$$$J$$(B</strong> - $B>l9g$K=hM}$5$l$^$9!#(B</p> + <p>前者の場合には、<var>parameter-name</var> と名付けられたパラメータが + 定義されていれば開始と終了の間のディレクティブが処理されます。 + 後者の場合は逆で、<em>parameter-name</em> が指定されて<strong>いない</strong> + 場合に処理されます。</p> - <p><var>parameter-name</var> $B0z?t$O!"%5!<%P$r5/F0$9$k:]$K(B - <program>httpd</program> $B$N%3%^%s%I%i%$%s$K(B - <code>-D<var>parameter-</var></code> $B$H$$$&7A$G;XDj$9$k$HDj5A$5$l$^$9!#(B </p> + <p><var>parameter-name</var> 引数は、サーバを起動する際に + <program>httpd</program> のコマンドラインに + <code>-D<var>parameter-</var></code> という形で指定すると定義されます。 </p> - <p><directive type="section">IfDefine</directive> $B%;%/%7%g%s$O(B - $BF~$l;R$K$9$k$3$H$,$G$-!"J#?t$N%Q%i%a!<%?$K$h$k%F%9%H$r$9$k$?$a$K;HMQ$G$-$^$9!#(B - $BNc(B:</p> + <p><directive type="section">IfDefine</directive> セクションは + 入れ子にすることができ、複数のパラメータによるテストをするために使用できます。 + 例:</p> <example> httpd -DReverseProxy ...<br /> @@ -1366,29 +1366,29 @@ module="core">Directory</directive></seealso> <directivesynopsis type="section"> <name>IfModule</name> -<description>$B%b%8%e!<%k$NB8:_$9$k$+$7$J$$$+$K1~$8$F=hM}$5$l$k(B -$B%G%#%l%/%F%#%V$r0O$`(B</description> +<description>モジュールの存在するかしないかに応じて処理される +ディレクティブを囲む</description> <syntax><IfModule [!]<var>module-file</var>|<var>module-identifier</var>> ... </IfModule></syntax> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context> </contextlist> <override>All</override> -<compatibility>$B%b%8%e!<%k<1JL;R$O%P!<%8%g%s(B 2.1 $B0J9_$G;HMQ2DG=!#(B</compatibility> +<compatibility>モジュール識別子はバージョン 2.1 以降で使用可能。</compatibility> <usage> <p><code><IfModule <var>test</var>>...</IfModule></code> - $B%;%/%7%g%s$O!"%b%8%e!<%k$,B8:_$9$k$H$-$K=hM}$5$l$k%G%#%l%/%F%#%V$r(B - $B;XDj$9$k$?$a$KMxMQ$7$^$9!#(B - <directive type="section">IfModule</directive> $B%;%/%7%g%s$K(B - $B4^$^$l$k%G%#%l%/%F%#%V$O!"(B<var>test</var> - $B$G;XDj$9$k%b%8%e!<%k$,AH$_9~$^$l$F$$$k$H$-$N$_=hM}$5$l$^$9!#(B - $B$b$7(B <var>test</var> $B$,AH$_9~$^$l$F$$$J$1$l$P!"3+;O$H=*N;$N4V$N%G%#%l%/%F%#%V(B - $B$OL5;k$5$l$^$9!#(B</p> - - <p><directive type="section">IfModule</directive> $B%;%/%7%g%s%G%#%l%/%F%#%V$K(B - $B;XDj$9$k(B <var>test</var> $B$O!"(B - $B<!$NFs$D$N7A<0$N$&$A$N0l$D$r$H$j$^$9!#(B</p> + セクションは、モジュールが存在するときに処理されるディレクティブを + 指定するために利用します。 + <directive type="section">IfModule</directive> セクションに + 含まれるディレクティブは、<var>test</var> + で指定するモジュールが組み込まれているときのみ処理されます。 + もし <var>test</var> が組み込まれていなければ、開始と終了の間のディレクティブ + は無視されます。</p> + + <p><directive type="section">IfModule</directive> セクションディレクティブに + 指定する <var>test</var> は、 + 次の二つの形式のうちの一つをとります。</p> <ul> <li><var>module</var></li> @@ -1396,77 +1396,77 @@ module="core">Directory</directive></seealso> <li>!<var>module</var></li> </ul> - <p>$BA0<T$N>l9g$O!"(B<var>module</var> $B$HL>IU$1$i$l$?%b%8%e!<%k$,(B - Apache $B$KAH$_9~$^$l$F$$$l$P(B - ($B%3%s%Q%$%k:Q$_$N$b$N$H!"(B<directive - module="mod_so">LoadModule</directive> $B$rMxMQ$7$F(B - $BF0E*$KFI$_9~$s$@$b$N$NN>J}(B)$B!"(B - $B3+;O$H=*N;$N4V$N%G%#%l%/%F%#%V$,=hM}$5$l$^$9!#(B - $B8e<T$N>l9g$O5U$G!"(B<var>module</var> $B$,AH$_9~$^$l$F(B<strong>$B$$$J$$(B</strong> - $B>l9g$K=hM}$5$l$^$9!#(B</p> - - <p><var>module</var> $B0z?t$O!"%b%8%e!<%k<1JL;R$+(B - $B%3%s%Q%$%k$r$7$?;~$N%b%8%e!<%k$N%U%!%$%kL>$G$9!#(B - $BNc$($P!"(B<code>rewrite_module</code> $B$O<1JL;R$G(B - <code>mod_rewrite.c</code> $B$O%U%!%$%kL>$G$9!#(B - $B%b%8%e!<%k$,J#?t$N%=!<%9%U%!%$%k$+$i9=@.$5$l$F$$$k>l9g$O!"J8;zNs(B - <code>STANDARD20_MODULE_STUFF</code> $B$,$"$k%U%!%$%k$NL>A0$r(B - $B;H$C$F$/$@$5$$!#(B</p> - - <p><directive type="section">IfModule</directive> $B%;%/%7%g%s$O(B - $BF~$l;R$K$9$k$3$H$,2DG=$G$"$j!"(B - $BJ#?t$N%b%8%e!<%k$N%F%9%H$r9T$J$&$?$a$K;HMQ$G$-$^$9!#(B</p> - - <note>$BFCDj$N%b%8%e!<%k$NB8:_$K4X$o$i$:F0:n$9$k(B - $B@_Dj%U%!%$%k$N86K\$,I,MW$J$H$-$K$N$_$3$N%;%/%7%g%s$r;HMQ$7$F$/$@$5$$!#(B - $BDL>o$NF0:n$G$O!"%G%#%l%/%F%#%V$r(B - <directive type="section">IfModule</directive> $B%;%/%7%g%s$NCf$K(B - $BF~$l$kI,MW$O$"$j$^$;$s!#(B</note> + <p>前者の場合は、<var>module</var> と名付けられたモジュールが + Apache に組み込まれていれば + (コンパイル済みのものと、<directive + module="mod_so">LoadModule</directive> を利用して + 動的に読み込んだものの両方)、 + 開始と終了の間のディレクティブが処理されます。 + 後者の場合は逆で、<var>module</var> が組み込まれて<strong>いない</strong> + 場合に処理されます。</p> + + <p><var>module</var> 引数は、モジュール識別子か + コンパイルをした時のモジュールのファイル名です。 + 例えば、<code>rewrite_module</code> は識別子で + <code>mod_rewrite.c</code> はファイル名です。 + モジュールが複数のソースファイルから構成されている場合は、文字列 + <code>STANDARD20_MODULE_STUFF</code> があるファイルの名前を + 使ってください。</p> + + <p><directive type="section">IfModule</directive> セクションは + 入れ子にすることが可能であり、 + 複数のモジュールのテストを行なうために使用できます。</p> + + <note>特定のモジュールの存在に関わらず動作する + 設定ファイルの原本が必要なときにのみこのセクションを使用してください。 + 通常の動作では、ディレクティブを + <directive type="section">IfModule</directive> セクションの中に + 入れる必要はありません。</note> </usage> </directivesynopsis> <directivesynopsis> <name>Include</name> -<description>$B%5!<%P@_Dj%U%!%$%kCf$+$iB>$N@_Dj%U%!%$%k$r<h$j9~$`(B</description> +<description>サーバ設定ファイル中から他の設定ファイルを取り込む</description> <syntax>Include <var>file-path</var>|<var>directory-path</var></syntax> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context> </contextlist> -<compatibility>$B%o%$%k%I%+!<%I$K$h$k%^%C%A$O(B 2.0.41 $B0J9_$G;HMQ2DG=(B</compatibility> +<compatibility>ワイルドカードによるマッチは 2.0.41 以降で使用可能</compatibility> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$K$h$j!"%5!<%P$N@_Dj%U%!%$%k$+$i(B - $BB>$N@_Dj%U%!%$%k$r%$%s%/%k!<%I$9$k$3$H$,$G$-$^$9!#(B</p> + <p>このディレクティブにより、サーバの設定ファイルから + 他の設定ファイルをインクルードすることができます。</p> - <p>$BJ#?t$N%U%!%$%k$r%"%k%U%!%Y%C%H=g$K0lEY$KFI$_9~$`$?$a$K!"(B - $B%7%'%k7A<0(B (<code>fnmatch</code>) $B$N%o%$%k%I%+!<%IJ8;z$r;H$&$3$H$,$G$-$^$9!#(B - $B$5$i$K!"(B<directive>Include</directive> $B$K%G%#%l%/%H%j$r;XDj$7$?>l9g$O!"(B - $B%G%#%l%/%H%j$H$=$N%5%V%G%#%l%/%H%jFb$NA4$F$N%U%!%$%k$r(B - $B%"%k%U%!%Y%C%H=g$KFI$_9~$s$G!"@_Dj%U%!%$%k$H$7$F=hM}$7$^$9!#(B - $B$7$+$7!"%G%#%l%/%H%jA4BN$rFI$_9~$`$N$O$*4+$a$G$-$^$;$s!#(B - $B$U$H$7$?$3$H$+$i(B <code>httpd</code> $B$,FI$_9~$_$K<:GT$9$k$h$&$J(B - $B0l;~%U%!%$%k$r%G%#%l%/%H%j$K;D$7$F$7$^$&$h$&$J$3$H$,$h$/$"$k$+$i$G$9!#(B</p> + <p>複数のファイルをアルファベット順に一度に読み込むために、 + シェル形式 (<code>fnmatch</code>) のワイルドカード文字を使うことができます。 + さらに、<directive>Include</directive> にディレクトリを指定した場合は、 + ディレクトリとそのサブディレクトリ内の全てのファイルを + アルファベット順に読み込んで、設定ファイルとして処理します。 + しかし、ディレクトリ全体を読み込むのはお勧めできません。 + ふとしたことから <code>httpd</code> が読み込みに失敗するような + 一時ファイルをディレクトリに残してしまうようなことがよくあるからです。</p> - <p>$B;XDj$9$k%U%!%$%k%Q%9$O@dBP%Q%9$+!"(B - <directive module="core">ServerRoot</directive> $B%G%#%l%/%H%j$+$i$N(B - $BAjBP%Q%9$+!"$N$I$A$i$+$G$9!#(B</p> + <p>指定するファイルパスは絶対パスか、 + <directive module="core">ServerRoot</directive> ディレクトリからの + 相対パスか、のどちらかです。</p> - <p>$BNc(B:</p> + <p>例:</p> <example> Include /usr/local/apache2/conf/ssl.conf<br /> Include /usr/local/apache2/conf/vhosts/*.conf </example> - <p><directive module="core">ServerRoot</directive> $B$+$i$NAjBP%Q%9$N>l9g$O(B:</p> + <p><directive module="core">ServerRoot</directive> からの相対パスの場合は:</p> <example> Include conf/ssl.conf<br /> Include conf/vhosts/*.conf </example> - <p><code>apachectl configtest</code> $B$r<B9T$9$k$H!"@_Dj$r%A%'%C%/$7$F$$$k;~$K(B - $BFI$_9~$^$l$?%U%!%$%k$N%j%9%H$,I=<($5$l$^$9(B:</p> + <p><code>apachectl configtest</code> を実行すると、設定をチェックしている時に + 読み込まれたファイルのリストが表示されます:</p> <example> root@host# apachectl configtest<br /> @@ -1482,32 +1482,32 @@ module="core">Directory</directive></seealso> <directivesynopsis> <name>KeepAlive</name> -<description>HTTP $B$N;}B3E*$J@\B3$rM-8z$K$9$k(B</description> +<description>HTTP の持続的な接続を有効にする</description> <syntax>KeepAlive On|Off</syntax> <default>KeepAlive On</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p>HTTP/1.0 $B$N(B Keep-Alive $B3HD%$H(B HTTP/1.1 $B$N;}B3E*@\B3$N5!G=$O!"(B - $BJ#?t$N%j%/%(%9%H$,F1$8(B TCP $B$N@\B3$GAw$i$l$k!"D9;~4V;}B3$9$k(B - HTTP $B%;%C%7%g%s$rDs6!$7$^$9!#$?$/$5$s$N2hA|$,(B - $B4^$^$l$k(B HTML $B%I%-%e%a%s%H$G$O>l9g$K$h$C$F$OCY1d;~4V$,(B 50% $BC;=L$5$l$k7k2L$b(B - $B$G$F$$$^$9!#(BKeep-Alive $B@\B3$rM-8z$K$9$k$K$O(B - <code>KeepAlive On</code> $B$H@_Dj$7$^$9!#(B</p> - - <p>HTTP/1.0 $B$KBP1~$7$?%/%i%$%"%s%H$N:]$K$O!"(B - $B%/%i%$%"%s%H$h$jFC$KMW5a$,$"$C$?>l9g$N$_(B Keep-Alive $B@\B3$H$J$j$^$9!#(B - $B$5$i$K!"(BHTTP/1.0 $B%/%i%$%"%s%H$G$O!"%3%s%F%s%D$NMFNL$,@h$K(B - ($BLuCm(B: $BMW5a$KBP$7$F1~Ez$rJV$9A0$K(B) $B$o$+$k>l9g$N$_(B Keep-Alive - $B@\B3$rMxMQ$G$-$^$9!#(B - $B$3$l$O!"(BCGI $B$N=PNO$d(B SSI $B$N%Z!<%8!"(B - $B%5!<%P$,@8@.$7$?%G%#%l%/%H%j$N%j%9%H$N$h$&$JF0E*%3%s%F%s%D$r(B - HTTP/1.0 $B%/%i%$%"%s%H$KAw$k>l9g$K$O(B Keep-Alive $B@\B3$r;H$($J$$$3$H$r0UL#$7$^$9!#(B - HTTP/1.1 $B$KBP1~$7$?%/%i%$%"%s%H$N:]$K$O!"(B - $BFC$K;XDj$5$l$J$$8B$j$O%G%U%)%k%H$H$7$F;}B3E*$J@\B3$,9T$J$o$l$^$9!#(B - $B%/%i%$%"%s%H$,MW5a$9$l$P!"%3%s%F%s%D$NMFNL$rH=JL$G$-$J$$$b$N$r(B - $B;}B3E*$J@\B3$rDL$7$FAw$k$?$a$K!"%A%c%s%/%(%s%3!<%G%#%s%0$,MQ$$$i$l$^$9!#(B</p> + <p>HTTP/1.0 の Keep-Alive 拡張と HTTP/1.1 の持続的接続の機能は、 + 複数のリクエストが同じ TCP の接続で送られる、長時間持続する + HTTP セッションを提供します。たくさんの画像が + 含まれる HTML ドキュメントでは場合によっては遅延時間が 50% 短縮される結果も + でています。Keep-Alive 接続を有効にするには + <code>KeepAlive On</code> と設定します。</p> + + <p>HTTP/1.0 に対応したクライアントの際には、 + クライアントより特に要求があった場合のみ Keep-Alive 接続となります。 + さらに、HTTP/1.0 クライアントでは、コンテンツの容量が先に + (訳注: 要求に対して応答を返す前に) わかる場合のみ Keep-Alive + 接続を利用できます。 + これは、CGI の出力や SSI のページ、 + サーバが生成したディレクトリのリストのような動的コンテンツを + HTTP/1.0 クライアントに送る場合には Keep-Alive 接続を使えないことを意味します。 + HTTP/1.1 に対応したクライアントの際には、 + 特に指定されない限りはデフォルトとして持続的な接続が行なわれます。 + クライアントが要求すれば、コンテンツの容量を判別できないものを + 持続的な接続を通して送るために、チャンクエンコーディングが用いられます。</p> </usage> <seealso><directive module="core">MaxKeepAliveRequests</directive></seealso> @@ -1515,29 +1515,29 @@ module="core">Directory</directive></seealso> <directivesynopsis> <name>KeepAliveTimeout</name> -<description>$B;}B3E*$J@\B3$G<!$N%j%/%(%9%H$,Mh$k$^$G%5!<%P$,BT$D;~4V(B</description> +<description>持続的な接続で次のリクエストが来るまでサーバが待つ時間</description> <syntax>KeepAliveTimeout <var>seconds</var></syntax> <default>KeepAliveTimeout 5</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p>$B@\B3$rJD$8$kA0$K!"(BApache $B$,<!$N%j%/%(%9%H$r2?ICBT$D$+$r;XDj$7$^$9!#(B - $B%j%/%(%9%H$r<u$1IU$1$?8e$O!"(B<directive - module="core">Timeout</directive> $B%G%#%l%/%F%#%V$K$h$C$F(B - $B;XDj$5$l$?%?%$%`%"%&%HCM$,;H$o$l$^$9!#(B</p> - - <p><directive>KeepAliveTimeout</directive> $B$rBg$-$JCM$K@_Dj$9$k$H!"(B - $BIi2Y$N9b$$%5!<%P$K$*$$$F$O%Q%U%)!<%^%s%9$NLdBj$r0z$-5/$3$9>l9g$,$"$j$^$9!#(B - $B%?%$%`%"%&%H$,D9$1$l$PD9$$$[$I!"$h$jB?$/$N%5!<%P%W%m%;%9$,(B - $B3hH/$G$J$$%/%i%$%"%s%H$+$i$N@\B3$N=*N;$rBT$AB3$1$k$3$H$K$J$j$^$9!#(B</p> + <p>接続を閉じる前に、Apache が次のリクエストを何秒待つかを指定します。 + リクエストを受け付けた後は、<directive + module="core">Timeout</directive> ディレクティブによって + 指定されたタイムアウト値が使われます。</p> + + <p><directive>KeepAliveTimeout</directive> を大きな値に設定すると、 + 負荷の高いサーバにおいてはパフォーマンスの問題を引き起こす場合があります。 + タイムアウトが長ければ長いほど、より多くのサーバプロセスが + 活発でないクライアントからの接続の終了を待ち続けることになります。</p> </usage> </directivesynopsis> <directivesynopsis type="section"> <name>Limit</name> -<description>$B0O$$$NCf$K$"$k%"%/%;%9@)8f$NE,MQ$rFCDj$N(B HTTP $B%a%=%C%I$N$_$K(B -$B@)8B$9$k(B</description> +<description>囲いの中にあるアクセス制御の適用を特定の HTTP メソッドのみに +制限する</description> <syntax><Limit <var>method</var> [<var>method</var>] ... > ... </Limit></syntax> <contextlist><context>server config</context><context>virtual host</context> @@ -1546,19 +1546,19 @@ module="core">Directory</directive></seealso> <override>All</override> <usage> - <p>$B%"%/%;%9@)8f$O!"DL>o(B<strong>$BA4$F$N(B</strong>$B%"%/%;%9%a%=%C%I$KBP$7$F(B - $B1F6A$7!"IaDL$O$3$l$,K>$^$7$$5sF0$G$9!#(B - <strong>$B$=$&$7$?$3$H$+$i!"BgItJ,$N>l9g$K$O%"%/%;%9@)8f$K4X$o$k%G%#%l%/%F%#%V$r(B - <directive type="section">Limit</directive> $B%;%/%7%g%sFb$K(B - $B=q$/$Y$-$G$O$"$j$^$;$s!#(B </strong></p> - - <p><directive type="section">Limit</directive> $B%G%#%l%/%F%#%V$N(B - $BL\E*$O!"%"%/%;%9@)8f$NHO0O$r(B - $B;XDj$5$l$?(B HTTP $B%a%=%C%I$K8BDj$9$k$?$a$G$9!#(B - $B$=$l0J30$N%a%=%C%I$O!"(B<directive type="section">Limit</directive> $B$G0O$o$l$?%"%/%;%9@)8f$N(B - <strong>$B1F6A$r<u$1$^$;$s(B</strong>$B!#(B - $B0J2<$NNc$O!"(B<code>POST</code>, <code>PUT</code>, <code>DELETE</code> $B$N%a%=%C%I$KBP$7$F$N$_%"%/%;%9$N@)8f$r9T$J$$!"(B - $B$=$l0J30$N%a%=%C%I$K$D$$$F$O@)8B$7$^$;$s(B:</p> + <p>アクセス制御は、通常<strong>全ての</strong>アクセスメソッドに対して + 影響し、普通はこれが望ましい挙動です。 + <strong>そうしたことから、大部分の場合にはアクセス制御に関わるディレクティブを + <directive type="section">Limit</directive> セクション内に + 書くべきではありません。 </strong></p> + + <p><directive type="section">Limit</directive> ディレクティブの + 目的は、アクセス制御の範囲を + 指定された HTTP メソッドに限定するためです。 + それ以外のメソッドは、<directive type="section">Limit</directive> で囲われたアクセス制御の + <strong>影響を受けません</strong>。 + 以下の例は、<code>POST</code>, <code>PUT</code>, <code>DELETE</code> のメソッドに対してのみアクセスの制御を行ない、 + それ以外のメソッドについては制限しません:</p> <example> <Limit POST PUT DELETE><br /> @@ -1568,31 +1568,31 @@ module="core">Directory</directive></seealso> </Limit> </example> - <p>$B%a%=%C%IL>$K$O0J2<$NCf$+$i0l$D0J>e$rNs5s$9$k$3$H$,$G$-$^$9(B: + <p>メソッド名には以下の中から一つ以上を列挙することができます: <code>GET</code>, <code>POST</code>, <code>PUT</code>, <code>DELETE</code>, <code>CONNECT</code>, <code>OPTIONS</code>, <code>PATCH</code>, <code>PROPFIND</code>, <code>PROPPATCH</code>, <code>MKCOL</code>, <code>COPY</code>, <code>MOVE</code>, - <code>LOCK</code>, <code>UNLOCK</code>. <strong>$B%a%=%C%IL>$O(B - $BBgJ8;z>.J8;z$r6hJL$7$^$9!#(B</strong> <code>GET</code> $B$r;XDj$7$?>l9g$K$O(B - <code>HEAD</code> $B%j%/%(%9%H$K$b@)8B$,$+$+$j$^$9!#(B<code>TRACE</code> - $B%a%=%C%I$K@)8B$r$+$1$k$3$H$O$G$-$^$;$s!#(B</p> + <code>LOCK</code>, <code>UNLOCK</code>. <strong>メソッド名は + 大文字小文字を区別します。</strong> <code>GET</code> を指定した場合には + <code>HEAD</code> リクエストにも制限がかかります。<code>TRACE</code> + メソッドに制限をかけることはできません。</p> - <note type="warning">$B%"%/%;%9@)8f$,L\E*$N>l9g$O(B + <note type="warning">アクセス制御が目的の場合は <directive type="section" module="core">Limit</directive> - $B%;%/%7%g%s$NBe$o$j$K(B <directive type="section" - module="core">LimitExcept</directive> $B%;%/%7%g%s$r;HMQ$7$?J}$,NI$$$G$7$g$&!#(B + セクションの代わりに <directive type="section" + module="core">LimitExcept</directive> セクションを使用した方が良いでしょう。 <directive type="section" module="core">LimitExcept</directive> - $B%;%/%7%g%s$G$OITFCDj$N%a%=%C%I$KBP$7$F$bKI8f$G$-$k$+$i$G$9!#(B</note> + セクションでは不特定のメソッドに対しても防御できるからです。</note> </usage> </directivesynopsis> <directivesynopsis type="section"> <name>LimitExcept</name> -<description>$B;XDj$5$l$?$b$N0J30$N(B HTTP $B%a%=%C%I$K%"%/%;%9@)8f$r(B -$B@)8B$9$k(B</description> +<description>指定されたもの以外の HTTP メソッドにアクセス制御を +制限する</description> <syntax><LimitExcept <var>method</var> [<var>method</var>] ... > ... </LimitExcept></syntax> <contextlist><context>server config</context><context>virtual host</context> @@ -1601,18 +1601,18 @@ module="core">Directory</directive></seealso> <override>All</override> <usage> - <p><directive type="section">LimitExcept</directive> $B$H(B - <code></LimitExcept></code> $B$O!"0z?t$K(B - <strong>$B4^$^$l$F$$$J$$(B</strong> - HTTP $B$N%"%/%;%9%a%=%C%I$KE,MQ$9$k$?$a$N%"%/%;%9@)8f(B - $B%G%#%l%/%F%#%V$r3g$k$?$a$KMxMQ$7$^$9!#(B - $B$D$^$j!"(B<directive type="section" module="core" - >Limit</directive> $B%;%/%7%g%s$NH?BP$NF0:n$r$7!"(B - $BI8=`$N%a%=%C%I$HI8=`30$dL$G'<1$N%a%=%C%I$N>l9g$NN>J}$r@_Dj$G$-$^$9!#(B - <directive type="section" module="core">Limit</directive> $B$N%I%-%e%a%s%H$b(B - $BJ;$;$F;2>H$7$F$/$@$5$$!#(B</p> - - <p>$BNc(B:</p> + <p><directive type="section">LimitExcept</directive> と + <code></LimitExcept></code> は、引数に + <strong>含まれていない</strong> + HTTP のアクセスメソッドに適用するためのアクセス制御 + ディレクティブを括るために利用します。 + つまり、<directive type="section" module="core" + >Limit</directive> セクションの反対の動作をし、 + 標準のメソッドと標準外や未認識のメソッドの場合の両方を設定できます。 + <directive type="section" module="core">Limit</directive> のドキュメントも + 併せて参照してください。</p> + + <p>例:</p> <example> <LimitExcept POST GET><br /> @@ -1627,33 +1627,33 @@ module="core">Directory</directive></seealso> <directivesynopsis> <name>LimitInternalRecursion</name> -<description>$BFbIt%j%@%$%l%/%H$HF~$l;R$K$J$C$?%5%V%j%/%(%9%H$N:GBg?t$r7hDj$9$k(B</description> +<description>内部リダイレクトと入れ子になったサブリクエストの最大数を決定する</description> <syntax>LimitInternalRecursion <var>number</var> [<var>number</var>]</syntax> <default>LimitInternalRecursion 10</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> -<compatibility>Apache 2.0.47 $B0J9_$G;HMQ2DG=(B</compatibility> +<compatibility>Apache 2.0.47 以降で使用可能</compatibility> <usage> - <p>$BFbIt%j%@%$%l%/%H$ONc$($P(B <directive>Action</directive> $B%G%#%l%/%F%#%V$r(B - $B;H$C$F$$$k$H$-$K5/$3$j$^$9!#(B<directive>Action</directive> $B%G%#%l%/%F%#%V$O(B - $B85!9$N%j%/%(%9%H$r(B CGI $B%9%/%j%W%H$KFbIt%j%@%$%l%/%H$r9T$J$$$^$9!#(B - $B%5%V%j%/%(%9%H$O$$$/$D$+$N(B URI $B$KBP$7$F!"%j%/%(%9%H$5$l$?$H$-$K(B - $B2?$,5/$3$k$+$rD4$Y$k$?$a$N(B Apache $B$N5!9=$G$9!#Nc$($P!"(B<module>mod_dir</module> - $B$O(B <directive module="mod_dir">DirectoryIndex</directive> $B%G%#%l%/%F%#%V(B - $B$,%j%9%H$9$k%U%!%$%k$rD4$Y$k$?$a$K%5%V%j%/%(%9%H$r;H$$$^$9!#(B</p> - - <p><directive>LimitInternalRecursion</directive> $B$OFbIt%j%@%$%l%/%H$d(B - $B%5%V%j%/%(%9%H$,L58B%k!<%W$K4Y$C$?$H$-$N%5!<%P%/%i%C%7%e$rKI$.$^$9!#(B - $BIaDL!"$=$N$h$&$J%k!<%W$O@_Dj$K<:GT$7$?$H$-$KH/@8$7$^$9!#(B</p> - - <p>$B$3$N%G%#%l%/%F%#%V$O!"%j%/%(%9%HKh$KI>2A$5$l$k!"Fs$D$N0c$&8B3&CM$r(B - $B@_Dj$7$^$9!#:G=i$N(B <var>number</var> $B$O!"5/$3$jF@$k(B - $BFbIt%j%/%(%9%H$N:GBgCM$r@_Dj$7$^$9!#Fs$D$a$N(B <var>number</var> $B$O(B - $B%5%V%j%/%(%9%H$,F~$l;R$K$G$-$k?<$5$r@_Dj$7$^$9!#(B<var>number</var> $B$r(B - $B0l$D$@$1;XDj$7$?$H$-$O!"N>J}$N8B3&CM$K$=$NCM$,@_Dj$5$l$^$9!#(B</p> - - <example><title>$BNc(B</title> + <p>内部リダイレクトは例えば <directive>Action</directive> ディレクティブを + 使っているときに起こります。<directive>Action</directive> ディレクティブは + 元々のリクエストを CGI スクリプトに内部リダイレクトを行ないます。 + サブリクエストはいくつかの URI に対して、リクエストされたときに + 何が起こるかを調べるための Apache の機構です。例えば、<module>mod_dir</module> + は <directive module="mod_dir">DirectoryIndex</directive> ディレクティブ + がリストするファイルを調べるためにサブリクエストを使います。</p> + + <p><directive>LimitInternalRecursion</directive> は内部リダイレクトや + サブリクエストが無限ループに陥ったときのサーバクラッシュを防ぎます。 + 普通、そのようなループは設定に失敗したときに発生します。</p> + + <p>このディレクティブは、リクエスト毎に評価される、二つの違う限界値を + 設定します。最初の <var>number</var> は、起こり得る + 内部リクエストの最大値を設定します。二つめの <var>number</var> は + サブリクエストが入れ子にできる深さを設定します。<var>number</var> を + 一つだけ指定したときは、両方の限界値にその値が設定されます。</p> + + <example><title>例</title> LimitInternalRecursion 5 </example> </usage> @@ -1661,8 +1661,8 @@ module="core">Directory</directive></seealso> <directivesynopsis> <name>LimitRequestBody</name> -<description>$B%/%i%$%"%s%H$+$iAw$i$l$k(B HTTP $B%j%/%(%9%H$N%\%G%#$N(B -$BAmNL$r@)8B$9$k(B</description> +<description>クライアントから送られる HTTP リクエストのボディの +総量を制限する</description> <syntax>LimitRequestBody <var>bytes</var></syntax> <default>LimitRequestBody 0</default> <contextlist><context>server config</context><context>virtual host</context> @@ -1671,30 +1671,30 @@ module="core">Directory</directive></seealso> <override>All</override> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O!"%j%/%(%9%H%\%G%#$K5v$5$l$k%P%$%H?t!"(B<var>bytes</var> - $B$r(B 0 ($BL5@)8B$r0UL#$7$^$9(B) $B$+$i(B 2147483647 (2GB) $B$^$G$N?tCM$G;XDj$7$^$9!#(B</p> - - <p><directive>LimitRequestBody</directive> $B%G%#%l%/%F%#%V$O!"(B - $B%G%#%l%/%F%#%V$,=q$+$l$?%3%s%F%-%9%H(B - ($B%5!<%PA4BN!"%G%#%l%/%H%j!"%U%!%$%k!"%m%1!<%7%g%s(B) $BFb$G(B - $B5vMF$9$k(B HTTP $B%j%/%(%9%H%a%C%;!<%8%\%G%#$N%5%$%:$K@)8B$r$+$1$k$3$H$,$G$-$^$9!#(B - $B%/%i%$%"%s%H$N%j%/%(%9%H$,$=$N@)8BCM$r1[$($F$$$l$P!"(B - $B%5!<%P$O%j%/%(%9%H$r=hM}$;$:$K%(%i!<$rJV$7$^$9!#(B - $BIaDL$N%j%/%(%9%H%a%C%;!<%8%\%G%#$N%5%$%:$O!"%j%=!<%9$N<oN`$d(B - $B5v2D$5$l$F$$$k%a%=%C%I$K$h$C$FBg$-$/JQ$o$j$^$9!#(B - CGI $B%9%/%j%W%H$O!"$h$/>pJs$r<u?.$9$k$?$a$K(B - $B%a%C%;!<%8%\%G%#$r;H$$$^$9!#(B - <code>PUT</code> $B%a%=%C%I$N<BAu$O!"$3$N%G%#%l%/%F%#%V$NCM$H$7$F(B - $B>/$J$/$H$b$"$k%j%=!<%9$KBP$7$F%5!<%P$,<u$1IU$1$h$&$H$9$k(B - $BI=8=$NBg$-$5$[$I$NCM$rI,MW$H$7$^$9!#(B</p> - - <p>$B$3$N%G%#%l%/%F%#%V$O!"(B - $B4IM}<T$K%/%i%$%"%s%H$+$i$N0[>o$J%j%/%(%9%H$r@)8f$G$-$k$h$&$K$7!"(B - $B2?$i$+$N7A$N%5!<%S%95qH]967b(B ($BLuCm(B:DoS) $B$rHr$1$k$N$KM-8z$G$9!#(B</p> - - <p>$B$"$k>l=j$X$N%U%!%$%k%"%C%W%m!<%I$r5v2D$9$k>l9g$K!"(B - $B%"%C%W%m!<%I$G$-$k%U%!%$%k$N%5%$%:$r(B 100K $B$K@)8B$7$?$1$l$P!"(B - $B0J2<$N$h$&$K;XDj$7$^$9(B:</p> + <p>このディレクティブは、リクエストボディに許されるバイト数、<var>bytes</var> + を 0 (無制限を意味します) から 2147483647 (2GB) までの数値で指定します。</p> + + <p><directive>LimitRequestBody</directive> ディレクティブは、 + ディレクティブが書かれたコンテキスト + (サーバ全体、ディレクトリ、ファイル、ロケーション) 内で + 許容する HTTP リクエストメッセージボディのサイズに制限をかけることができます。 + クライアントのリクエストがその制限値を越えていれば、 + サーバはリクエストを処理せずにエラーを返します。 + 普通のリクエストメッセージボディのサイズは、リソースの種類や + 許可されているメソッドによって大きく変わります。 + CGI スクリプトは、よく情報を受信するために + メッセージボディを使います。 + <code>PUT</code> メソッドの実装は、このディレクティブの値として + 少なくともあるリソースに対してサーバが受け付けようとする + 表現の大きさほどの値を必要とします。</p> + + <p>このディレクティブは、 + 管理者にクライアントからの異常なリクエストを制御できるようにし、 + 何らかの形のサービス拒否攻撃 (訳注:DoS) を避けるのに有効です。</p> + + <p>ある場所へのファイルアップロードを許可する場合に、 + アップロードできるファイルのサイズを 100K に制限したければ、 + 以下のように指定します:</p> <example> LimitRequestBody 102400 @@ -1705,38 +1705,38 @@ module="core">Directory</directive></seealso> <directivesynopsis> <name>LimitRequestFields</name> -<description>$B%/%i%$%"%s%H$+$i$N(B HTTP $B%j%/%(%9%H$N%X%C%@%U%#!<%k%I$N?t$r(B -$B@)8B$9$k(B</description> +<description>クライアントからの HTTP リクエストのヘッダフィールドの数を +制限する</description> <syntax>LimitRequestFields <var>number</var></syntax> <default>LimitRequestFields 100</default> <contextlist><context>server config</context></contextlist> <usage> - <p><var>number</var> $B$K$O!"(B0 ($BL5@)8B$r0UL#$7$^$9(B) $B$+$i(B 32767 - $B$^$G$N@0?t$r;XDj$7$^$9!#(B - $B%G%U%)%k%HCM$O!"Dj?t(B <code>DEFAULT_LIMIT_REQUEST_FIELDS</code> - $B$K$h$j%3%s%Q%$%k;~$KDj5A$5$l$^$9(B ($BG[I[;~$K$O(B 100 $B$H;XDj$5$l$F$$$^$9(B)$B!#(B</p> - - <p>LimitRequestBody $B%G%#%l%/%F%#%V$O!"(B - $B%5!<%P4IM}<T$,(B HTTP $B%j%/%(%9%HCf$K$*$$$F5v2D$9$k%j%/%(%9%H%X%C%@%U%#!<%k%I?t$r(B - $B;XDj$7$^$9!#(B - $B%5!<%P$O$3$NCM$K$ODL>o$N%/%i%$%"%s%H$+$i$N%j%/%(%9%H$K4^$^$l$k$G$"$m$&(B - $B%U%#!<%k%I$N?t$h$jBg$-$JCM$,I,MW$H$7$^$9!#(B - $B%/%i%$%"%s%H$K$h$j;H$o$l$?MW5a%X%C%@!<%U%#!<%k%I$N?t$,(B - 20 $B$rD6$($k$3$H$O$[$H$s$I$"$j$^$;$s$,!"(B - $B$3$l$O<o!9$N%/%i%$%"%s%H$N<BAu$h$C$FJQ$o$j!"(B - $B>\:Y$J%3%s%F%s%H%M%4%7%(!<%7%g%s$r$9$k$?$a$N%V%i%&%6$N@_Dj$^$G$K$b(B - $B1F6A$5$l$k$3$H$,$"$j$^$9!#(B - $B%*%W%7%g%s$N(B HTTP $B3HD%$O%j%/%(%9%H%X%C%@%U%#!<%k%I$r;H$C$F8=$5$l$k>l9g$,(B - $BB?$/$"$j$^$9!#(B</p> - - <p>$B$3$N%G%#%l%/%F%#%V$O!"(B - $B4IM}<T$K%/%i%$%"%s%H$+$i$N0[>o$J%j%/%(%9%H$r@)8f$G$-$k$h$&$K$7!"(B - $B2?$i$+$N7A$N%5!<%S%95qH]967b(B ($BLuCm(B:DoS) $B$rHr$1$k$N$KM-8z$G$9!#(B - $B%j%/%(%9%H$N%U%#!<%k%I$,B?2a$.$k$3$H$r0UL#$9$k%(%i!<1~Ez$,(B - $BIaDL$N%/%i%$%"%s%H$KJV$5$l$k$h$&$J;~$O$3$NCM$rA}$d$7$F$/$@$5$$!#(B</p> - - <p>$BNc(B:</p> + <p><var>number</var> には、0 (無制限を意味します) から 32767 + までの整数を指定します。 + デフォルト値は、定数 <code>DEFAULT_LIMIT_REQUEST_FIELDS</code> + によりコンパイル時に定義されます (配布時には 100 と指定されています)。</p> + + <p>LimitRequestBody ディレクティブは、 + サーバ管理者が HTTP リクエスト中において許可するリクエストヘッダフィールド数を + 指定します。 + サーバはこの値には通常のクライアントからのリクエストに含まれるであろう + フィールドの数より大きな値が必要とします。 + クライアントにより使われた要求ヘッダーフィールドの数が + 20 を超えることはほとんどありませんが、 + これは種々のクライアントの実装よって変わり、 + 詳細なコンテントネゴシエーションをするためのブラウザの設定までにも + 影響されることがあります。 + オプションの HTTP 拡張はリクエストヘッダフィールドを使って現される場合が + 多くあります。</p> + + <p>このディレクティブは、 + 管理者にクライアントからの異常なリクエストを制御できるようにし、 + 何らかの形のサービス拒否攻撃 (訳注:DoS) を避けるのに有効です。 + リクエストのフィールドが多過ぎることを意味するエラー応答が + 普通のクライアントに返されるような時はこの値を増やしてください。</p> + + <p>例:</p> <example> LimitRequestFields 50 @@ -1747,79 +1747,79 @@ module="core">Directory</directive></seealso> <directivesynopsis> <name>LimitRequestFieldSize</name> -<description>$B%/%i%$%"%s%H$+$i$N(B HTTP $B%j%/%(%9%H$N%X%C%@$N(B -$B%5%$%:$r@)8B$9$k(B</description> +<description>クライアントからの HTTP リクエストのヘッダの +サイズを制限する</description> <syntax>LimitRequestFieldsize <var>bytes</var></syntax> <default>LimitRequestFieldsize 8190</default> <contextlist><context>server config</context></contextlist> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O!"(BHTTP $B%j%/%(%9%H%X%C%@0l$D$G<uIU$1$k(B - $B%P%$%H?t(B <var>bytes</var> $B$r;XDj$7$^$9!#(B</p> - - <p><directive>LimitRequestFieldSize</directive> $B%G%#%l%/%F%#%V$O!"(B - HTTP $B%j%/%(%9%H%X%C%@$G5vMF$5$l$k%5%$%:$rA}8:$5$;$k$3$H$,$G$-$^$9!#(B - $B%5!<%P$O!"$3$N%G%#%l%/%F%#%V$NCM$H$7$F!"(B - $B0lHLE*$J%/%i%$%"%s%H$+$i%j%/%(%9%H$,Aw$i$l$?:]$K!"$=$N%j%/%(%9%H$K(B - $BIUB0$7$F$$$k$I$N%X%C%@%U%#!<%k%I$K$D$$$F$b!"(B - $B==J,B-$j$kBg$-$5$K$J$C$F$$$J$1$l$P$J$j$^$;$s!#(B - $B0lHLE*$J%j%/%(%9%H%X%C%@$N%5%$%:$H$$$C$F$b!"$=$NBg$-$5$O8D!9$N(B - $B%/%i%$%"%s%H$N<BAu$K$h$C$FBg$-$/0[$J$j!"(B - $B>\:Y$J%3%s%F%s%H%M%4%7%(!<%7%g%s$r%5%]!<%H$9$k$+$I$&$+$N!"(B - $B%V%i%&%6$N@_Dj$K$b1F6A$5$l$?$j$7$^$9!#(B - SPNEGO $BG'>Z%X%C%@$G$O(B 12392 $B%P%$%H$K$^$G5Z$V$3$H$9$i$"$j$^$9!#(B</p> - - <p>$B$3$N%G%#%l%/%F%#%V$O!"(B - $B4IM}<T$K%/%i%$%"%s%H$+$i$N0[>o$J%j%/%(%9%H$r@)8f$G$-$k$h$&$K$7!"(B - $B2?$i$+$N7A$N%5!<%S%95qH]967b(B ($BLuCm(B:DoS) $B$rHr$1$k$N$KM-8z$G$9!#(B</p> - - <p>$BNc(B:</p> + <p>このディレクティブは、HTTP リクエストヘッダ一つで受付ける + バイト数 <var>bytes</var> を指定します。</p> + + <p><directive>LimitRequestFieldSize</directive> ディレクティブは、 + HTTP リクエストヘッダで許容されるサイズを増減させることができます。 + サーバは、このディレクティブの値として、 + 一般的なクライアントからリクエストが送られた際に、そのリクエストに + 付属しているどのヘッダフィールドについても、 + 十分足りる大きさになっていなければなりません。 + 一般的なリクエストヘッダのサイズといっても、その大きさは個々の + クライアントの実装によって大きく異なり、 + 詳細なコンテントネゴシエーションをサポートするかどうかの、 + ブラウザの設定にも影響されたりします。 + SPNEGO 認証ヘッダでは 12392 バイトにまで及ぶことすらあります。</p> + + <p>このディレクティブは、 + 管理者にクライアントからの異常なリクエストを制御できるようにし、 + 何らかの形のサービス拒否攻撃 (訳注:DoS) を避けるのに有効です。</p> + + <p>例:</p> <example> LimitRequestFieldSize 4094 </example> - <note>$BDL>o$O%G%U%)%k%H$+$iJQ99$9$kI,MW$O$"$j$^$;$s!#(B</note> + <note>通常はデフォルトから変更する必要はありません。</note> </usage> </directivesynopsis> <directivesynopsis> <name>LimitRequestLine</name> -<description>$B%/%i%$%"%s%H$+$i$N(B HTTP $B%j%/%(%9%H9T$N%5%$%:$r@)8B$9$k(B</description> +<description>クライアントからの HTTP リクエスト行のサイズを制限する</description> <syntax>LimitRequestLine <var>bytes</var></syntax> <default>LimitRequestLine 8190</default> <contextlist><context>server config</context></contextlist> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O!"(BHTTP $B%j%/%(%9%H9TFb$G5vMF$5$l$k%P%$%H?t(B - <var>bytes</var> $B$r;XDj$7$^$9!#(B</p> + <p>このディレクティブは、HTTP リクエスト行内で許容されるバイト数 + <var>bytes</var> を指定します。</p> - <p><directive>LimitRequestLine</directive> $B%G%#%l%/%F%#%V$K$h$j!"(B - $B%/%i%$%"%s%H$+$i$N(B HTTP $B%j%/%(%9%H9T$N5vMF%5%$%:$rA}8:$G$-$^$9!#(B - $B%j%/%(%9%H9T$O!"(BHTTP$B%a%=%C%I!"(BURI$B!"%W%m%H%3%k%P!<%8%g%s$+$i@.$C$F$*$j!"(B - <directive>LimitRequestLine</directive> $B$O%5!<%P$X$N%j%/%(%9%H$KBP$7$F(B - $B5vMF$9$k%j%/%(%9%H(B URI $B$ND9$5$r@)8B$9$k$3$H$K$J$j$^$9!#(B - $B%5!<%P$O!"(B<code>GET</code> $B%j%/%(%9%H$N%/%(%jItJ,$b4^$a$F!"%j%=!<%9$NL>A0$,F~$k$KB-$k(B - $BBg$-$5$rI,MW$H$7$^$9!#(B</p> + <p><directive>LimitRequestLine</directive> ディレクティブにより、 + クライアントからの HTTP リクエスト行の許容サイズを増減できます。 + リクエスト行は、HTTPメソッド、URI、プロトコルバージョンから成っており、 + <directive>LimitRequestLine</directive> はサーバへのリクエストに対して + 許容するリクエスト URI の長さを制限することになります。 + サーバは、<code>GET</code> リクエストのクエリ部分も含めて、リソースの名前が入るに足る + 大きさを必要とします。</p> - <p>$B$3$N%G%#%l%/%F%#%V$O!"(B - $B4IM}<T$K%/%i%$%"%s%H$+$i$N0[>o$J%j%/%(%9%H$r@)8f$G$-$k$h$&$K$7!"(B - $B2?$i$+$N7A$N%5!<%S%95qH]967b(B ($BLuCm(B:DoS) $B$rHr$1$k$N$KM-8z$G$9!#(B</p> + <p>このディレクティブは、 + 管理者にクライアントからの異常なリクエストを制御できるようにし、 + 何らかの形のサービス拒否攻撃 (訳注:DoS) を避けるのに有効です。</p> - <p>$BNc(B:</p> + <p>例:</p> <example> LimitRequestLine 4094 </example> - <note>$BDL>o$O%G%U%)%k%H$+$iJQ99$9$kI,MW$O$"$j$^$;$s!#(B</note> + <note>通常はデフォルトから変更する必要はありません。</note> </usage> </directivesynopsis> <directivesynopsis> <name>LimitXMLRequestBody</name> -<description>XML $B7A<0$N%j%/%(%9%H$N%\%G%#$N%5%$%:$r@)8B$9$k(B</description> +<description>XML 形式のリクエストのボディのサイズを制限する</description> <syntax>LimitXMLRequestBody <var>bytes</var></syntax> <default>LimitXMLRequestBody 1000000</default> <contextlist><context>server config</context><context>virtual host</context> @@ -1827,10 +1827,10 @@ module="core">Directory</directive></seealso> <override>All</override> <usage> - <p>XML $B7A<0$N%j%/%(%9%H$N%\%G%#$N:GBgCM$r(B ($B%P%$%HC10L$G(B) $B@)8B$7$^$9!#(B - $BCM$K(B <code>0</code> $B$r;XDj$9$k$H%A%'%C%/$rL58z$K$7$^$9!#(B</p> + <p>XML 形式のリクエストのボディの最大値を (バイト単位で) 制限します。 + 値に <code>0</code> を指定するとチェックを無効にします。</p> - <p>$BNc(B:</p> + <p>例:</p> <example> LimitXMLRequestBody 0 @@ -1841,76 +1841,76 @@ module="core">Directory</directive></seealso> <directivesynopsis type="section"> <name>Location</name> -<description>$B0O$s$@%G%#%l%/%F%#%V$r%^%C%A$9$k(B URL $B$N$_$KE,MQ(B</description> +<description>囲んだディレクティブをマッチする URL のみに適用</description> <syntax><Location <var>URL-path</var>|<var>URL</var>> ... </Location></syntax> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p><directive type="section">Location</directive> $B%G%#%l%/%F%#%V$O!"(B - URL $B$K$h$jCf$K=q$+$l$?%G%#%l%/%F%#%V$NE,MQHO0O$r@)8B$7$^$9!#(B + <p><directive type="section">Location</directive> ディレクティブは、 + URL により中に書かれたディレクティブの適用範囲を制限します。 <directive type="section" module="core">Directory</directive> - $B%G%#%l%/%F%#%V$H;w$F$$$F!"(B - <code></Location></code> $B%G%#%l%/%F%#%V$G=*N;$9$k(B - $B%5%V%;%/%7%g%s$r3+;O$7$^$9!#(B - <directive type="section">Location</directive> $B%;%/%7%g%s$O!"(B - <directive type="section" module="core">Directory</directive> $B%;%/%7%g%s$H(B - <code>.htaccess</code> $B$NFI$_9~$_$N8e!"(B - <directive type="section" module="core">Files</directive> $B%;%/%7%g%s$r(B - $BE,MQ$7$?8e$K!"@_Dj%U%!%$%k$K8=$l$?=g$K=hM}$5$l$^$9!#(B</p> - - <p><directive type="section">Location</directive> $B%;%/%7%g%s$O(B - $B40A4$K%U%!%$%k%7%9%F%`$H4XO"$;$:$KF0:n$7$^$9!#$3$N$3$H$+$iF3$+$l$k(B - $B7k2L$K$O$$$D$/$+Cm0U$9$kE@$,$"$j$^$9!#:G$b=EMW$J$b$N$O!"(B - $B%U%!%$%k%7%9%F%`$N0LCV$X$N%"%/%;%9@)8f$K(B <directive - type="section">Location</directive> $B%G%#%l%/%F%#%V$r;H$&$Y$-$G$O$J$$(B - $B$H$$$&$3$H$G$9!#J#?t$N(B URL $B$,%U%!%$%k%7%9%F%`$NF1$80LCV$K%^%C%W$5$l$k(B - $B2DG=$,$"$j$^$9$N$G!"$=$N$h$&$J%"%/%;%9@)8f$O2sHr$5$l$F$7$^$&2DG=@-$,(B - $B$"$j$^$9!#(B</p> - - <note><title>$B$$$D(B <directive - type="section">Location</directive> $B$r;H$&$+(B</title> - - <p><directive type="section">Location</directive> $B%G%#%l%/%F%#%V$O(B - $B%U%!%$%k%7%9%F%`30$N%3%s%F%s%D$K%G%#%l%/%F%#%V$rE,MQ$9$k$H$-$K(B - $B;HMQ$7$F$/$@$5$$!#%U%!%$%k%7%9%F%`$KB8:_$9$k%3%s%F%s%D$KBP$7$F$O!"(B + ディレクティブと似ていて、 + <code></Location></code> ディレクティブで終了する + サブセクションを開始します。 + <directive type="section">Location</directive> セクションは、 + <directive type="section" module="core">Directory</directive> セクションと + <code>.htaccess</code> の読み込みの後、 + <directive type="section" module="core">Files</directive> セクションを + 適用した後に、設定ファイルに現れた順に処理されます。</p> + + <p><directive type="section">Location</directive> セクションは + 完全にファイルシステムと関連せずに動作します。このことから導かれる + 結果にはいつくか注意する点があります。最も重要なものは、 + ファイルシステムの位置へのアクセス制御に <directive + type="section">Location</directive> ディレクティブを使うべきではない + ということです。複数の URL がファイルシステムの同じ位置にマップされる + 可能がありますので、そのようなアクセス制御は回避されてしまう可能性が + あります。</p> + + <note><title>いつ <directive + type="section">Location</directive> を使うか</title> + + <p><directive type="section">Location</directive> ディレクティブは + ファイルシステム外のコンテンツにディレクティブを適用するときに + 使用してください。ファイルシステムに存在するコンテンツに対しては、 <directive - type="section" module="core">Directory</directive> $B$H(B <directive - type="section" module="core">Files</directive> $B$r;H$C$F$/$@$5$$!#(B - $BNc30$O!"(B<code><Location /></code> $B$G!"$3$l$O%5!<%PA4BN$KBP$7$F(B - $B@_Dj$rE,MQ$9$k4JC1$JJ}K!$G$9!#(B</p> + type="section" module="core">Directory</directive> と <directive + type="section" module="core">Files</directive> を使ってください。 + 例外は、<code><Location /></code> で、これはサーバ全体に対して + 設定を適用する簡単な方法です。</p> </note> - <p>$BA4$F$N(B ($B%W%m%-%70J30$N(B) $B%j%/%(%9%H$KBP$7!"(B - URL $B$O(B <code>/path/</code> $B$H$$$&!"(B - $B@\F,<-(B <code>http://servername</code> $B$r4^$^$J$$7A$G%^%C%A$7$^$9!#(B - $B%W%m%-%7%j%/%(%9%H$N>l9g$K$O!"(B<code>scheme://servername/path</code> - $B$H$$$&@\F,<-$r4^$`7A$G%^%C%A$7!"@\F,<-$r4^$a$F;XDj$9$kI,MW$,$"$j$^$9!#(B</p> + <p>全ての (プロキシ以外の) リクエストに対し、 + URL は <code>/path/</code> という、 + 接頭辞 <code>http://servername</code> を含まない形でマッチします。 + プロキシリクエストの場合には、<code>scheme://servername/path</code> + という接頭辞を含む形でマッチし、接頭辞を含めて指定する必要があります。</p> - <p>URL $B$K$O%o%$%k%I%+!<%I$rMxMQ$9$k$3$H$,$G$-$^$9!#(B - <code>?</code> $B$OG$0U$N0lJ8;z!"(B<code>*</code> $B$OG$0U$NJ8;zNs$K%^%C%A$7$^$9!#(B </p> + <p>URL にはワイルドカードを利用することができます。 + <code>?</code> は任意の一文字、<code>*</code> は任意の文字列にマッチします。 </p> - <p><code>~</code> $B$H$$$&J8;z$rDI2C$9$k$3$H$G!"3HD%@55,I=8=$r(B - $BMxMQ$9$k$3$H$b$G$-$^$9!#(B - $BNc$($P(B:</p> + <p><code>~</code> という文字を追加することで、拡張正規表現を + 利用することもできます。 + 例えば:</p> <example> <Location ~ "/(extra|special)/data"> </example> - <p>$B$O(B URL $B$K(B <code>/extra/data</code> $B$+(B <code>/special/data</code> $B$H$$$&J8;zNs$,(B - $B4^$^$l$F$$$k>l9g$K%^%C%A$7$^$9!#(B + <p>は URL に <code>/extra/data</code> か <code>/special/data</code> という文字列が + 含まれている場合にマッチします。 <directive type="section" module="core" - >LocationMatch</directive> $B%G%#%l%/%F%#%V$O(B - <directive type="section">Location</directive> $B$N@55,I=8=(B - $BHG$H$^$C$?$/F1$8F0:n$r$7$^$9!#(B</p> + >LocationMatch</directive> ディレクティブは + <directive type="section">Location</directive> の正規表現 + 版とまったく同じ動作をします。</p> - <p><directive type="section">Location</directive> $B5!G=$O!"(B<directive - module="core">SetHandler</directive> $B%G%#%l%/%F%#%V$H(B - $BAH9g$o$;$FMxMQ$9$k$HFC$KJXMx$G$9!#(B - $BNc$($P!"(B<code>foo.com</code> $B$N%V%i%&%6$+$i$N$_%9%F!<%?%9$N;2>H$rM-8z$K$7$?$1$l$P!"(B - $B<!$N$h$&$K$9$l$PNI$$$G$7$g$&!#(B</p> + <p><directive type="section">Location</directive> 機能は、<directive + module="core">SetHandler</directive> ディレクティブと + 組合わせて利用すると特に便利です。 + 例えば、<code>foo.com</code> のブラウザからのみステータスの参照を有効にしたければ、 + 次のようにすれば良いでしょう。</p> <example> <Location /status><br /> @@ -1923,202 +1923,202 @@ module="core">Directory</directive></seealso> </Location> </example> -<note><title>/ ($B%9%i%C%7%e(B) $B$K4X$9$kCm(B</title> - <p>$B%9%i%C%7%eJ8;z$O!"(BURL $BFb$K8=$l$k>l=j$K1~$8$FJQ2=$9$k(B - $BFCJL$J0UL#$r;}$C$F$$$^$9!#(B - $B%U%!%$%k%7%9%F%`$K$*$$$FMxMQ$9$k>l9g$K$OJ#?t$N%9%i%C%7%e$G$b0l$D$N(B - $B%9%i%C%7%e$H$7$F07$o$l$k$3$H$,B?$$$G$9$,!"(B - (<em>$B$9$J$o$A(B</em>$B!"(B<code>/home///foo</code> $B$O(B - <code>/home/foo</code> $B$HF1$8$$$C$?$h$&$K(B) - URL $B$K$*$$$F$OI,$:$7$b$=$&$J$k$o$1$G$O$"$j$^$;$s!#(B +<note><title>/ (スラッシュ) に関する注</title> + <p>スラッシュ文字は、URL 内に現れる場所に応じて変化する + 特別な意味を持っています。 + ファイルシステムにおいて利用する場合には複数のスラッシュでも一つの + スラッシュとして扱われることが多いですが、 + (<em>すなわち</em>、<code>/home///foo</code> は + <code>/home/foo</code> と同じいったように) + URL においては必ずしもそうなるわけではありません。 <directive type="section" module="core">LocationMatch</directive> - $B%G%#%l%/%F%#%V$d@55,I=8=$rMxMQ$7$?(B - <directive type="section">Location</directive> $B%G%#%l%/%F%#%V$G!"(B - $BJ#?t$N%9%i%C%7%e$K%^%C%A$5$;$?$$$H$-$K$O!"!"L@<(E*$K5-=R$9$k(B - $BI,MW$,$"$j$^$9!#(B</p> - - <p>$BNc$($P!"(B<code><LocationMatch ^/abc></code> $B$O!"(B - <code>/abc</code> $B$H$$$&%j%/%(%9%H(B URL $B$K%^%C%A$7$^$9$,!"(B - <code>//abc</code> $B$H$$$&%j%/%(%9%H(B URL $B$K$O%^%C%A$7$^$;$s!#(B - ($B@55,I=8=$G$J$$(B) <directive type="section">Location</directive> - $B%G%#%l%/%F%#%V$O!"(B - proxy $B%j%/%(%9%H$KBP$7$FMxMQ$9$k:]$K$OF1MM$N?6$kIq$$$r$7$^$9$,!"(B - ($B@55,I=8=$G$J$$(B) <directive type="section">Location</directive> $B$r(B proxy - $B$G$J$$%j%/%(%9%H$KBP$7$FMxMQ$9$k:]$K$O!"(B - $B0l$D$N%9%i%C%7%e$GJ#?t$N%9%i%C%7%e$K%^%C%A$7$^$9!#(B - $BNc$($P!"(B<code><Location /abc/def></code> $B$H;XDj$7!"(B - <code>/abc//def</code> $B$H$$$&%j%/%(%9%H$,$"$l$P!"(B - $B%^%C%A$9$k$3$H$K$J$j$^$9!#(B</p></note> + ディレクティブや正規表現を利用した + <directive type="section">Location</directive> ディレクティブで、 + 複数のスラッシュにマッチさせたいときには、、明示的に記述する + 必要があります。</p> + + <p>例えば、<code><LocationMatch ^/abc></code> は、 + <code>/abc</code> というリクエスト URL にマッチしますが、 + <code>//abc</code> というリクエスト URL にはマッチしません。 + (正規表現でない) <directive type="section">Location</directive> + ディレクティブは、 + proxy リクエストに対して利用する際には同様の振る舞いをしますが、 + (正規表現でない) <directive type="section">Location</directive> を proxy + でないリクエストに対して利用する際には、 + 一つのスラッシュで複数のスラッシュにマッチします。 + 例えば、<code><Location /abc/def></code> と指定し、 + <code>/abc//def</code> というリクエストがあれば、 + マッチすることになります。</p></note> </usage> -<seealso>$B%j%/%(%9%H$r<u$1$?:]$K$3$l$i$N0[$J$k%;%/%7%g%s$,(B - $BAH$_9g$o$5$l$kJ}K!$K$D$$$F$O(B <a href="../sections.html"> - <Directory>, <Location>, <Files> $B%;%/%7%g%s$NF0:nK!(B</a></seealso> +<seealso>リクエストを受けた際にこれらの異なるセクションが + 組み合わされる方法については <a href="../sections.html"> + <Directory>, <Location>, <Files> セクションの動作法</a></seealso> </directivesynopsis> <directivesynopsis type="section"> <name>LocationMatch</name> -<description>$B0O$s$@%G%#%l%/%F%#%V$r@55,I=8=$K%^%C%A$9$k(B URL $B$N$_$K(B -$BE,MQ(B</description> +<description>囲んだディレクティブを正規表現にマッチする URL のみに +適用</description> <syntax><LocationMatch <var>regex</var>> ... </LocationMatch></syntax> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p><directive type="section">LocationMatch</directive> $B%G%#%l%/%F%#%V$O!"(B - <directive type="section" module="core">Location</directive> $B$HF1$8MM$K(B - URL $B$K$h$jCf$K=q$+$l$?%G%#%l%/%F%#%V$NE,MQHO0O$r@)8B$7$^$9!#(B - $BC"$7!"0z?t$OIaDL$NJ8;zNs$G$O$J$/!"@55,I=8=$H$J$j$^$9!#Nc$($P!"(B</p> + <p><directive type="section">LocationMatch</directive> ディレクティブは、 + <directive type="section" module="core">Location</directive> と同じ様に + URL により中に書かれたディレクティブの適用範囲を制限します。 + 但し、引数は普通の文字列ではなく、正規表現となります。例えば、</p> <example> <LocationMatch "/(extra|special)/data"> </example> - <p>$B$O(B URL $B$K(B <code>/extra/data</code> $B$+(B <code>/special/data</code> - $B$H$$$&J8;zNs$,4^$^$l$F$$$k>l9g$K%^%C%A$7$^$9!#(B</p> + <p>は URL に <code>/extra/data</code> か <code>/special/data</code> + という文字列が含まれている場合にマッチします。</p> </usage> -<seealso>$B%j%/%(%9%H$r<u$1$?:]$K$3$l$i$N0[$J$k%;%/%7%g%s$,(B - $BAH$_9g$o$5$l$kJ}K!$K$D$$$F$O(B <a href="../sections.html"> - <Directory>, <Location>, <Files> $B%;%/%7%g%s$NF0:nK!(B</a></seealso> +<seealso>リクエストを受けた際にこれらの異なるセクションが + 組み合わされる方法については <a href="../sections.html"> + <Directory>, <Location>, <Files> セクションの動作法</a></seealso> </directivesynopsis> <directivesynopsis> <name>LogLevel</name> -<description>ErrorLog $B$N>iD9@-$r@)8f$9$k(B</description> +<description>ErrorLog の冗長性を制御する</description> <syntax>LogLevel <var>level</var></syntax> <default>LogLevel warn</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p><directive>LogLevel</directive> $B$O!"%(%i!<%m%0(B (<directive module="core" - >ErrorLog</directive> $B%G%#%l%/%F%#%V$r(B - $B8+$F$/$@$5$$(B) $B$X5-O?$9$k%a%C%;!<%8$N>iD9@-$rD4@0$7$^$9!#(B - $B0J2<$N(B <var>level</var> $B$r;XDj$G$-!"=g$K=EMWEY$,2<$,$C$F$$$-$^$9!#(B</p> + <p><directive>LogLevel</directive> は、エラーログ (<directive module="core" + >ErrorLog</directive> ディレクティブを + 見てください) へ記録するメッセージの冗長性を調整します。 + 以下の <var>level</var> を指定でき、順に重要度が下がっていきます。</p> <table border="1"> <tr> - <th><strong>$B%l%Y%k(B</strong> </th> + <th><strong>レベル</strong> </th> - <th><strong>$B@bL@(B</strong> </th> + <th><strong>説明</strong> </th> - <th><strong>$BNc(B</strong> </th> + <th><strong>例</strong> </th> </tr> <tr> <td><code>emerg</code> </td> - <td>$B6[5^(B - $B%7%9%F%`$,MxMQ$G$-$J$$(B</td> + <td>緊急 - システムが利用できない</td> <td>Child cannot open lock file. Exiting - ($B;R%W%m%;%9$,%m%C%/%U%!%$%k$r3+$1$J$$$?$a=*N;$7$?(B)</td> + (子プロセスがロックファイルを開けないため終了した)</td> </tr> <tr> <td><code>alert</code> </td> - <td>$BD>$A$KBP=h$,I,MW(B</td> + <td>直ちに対処が必要</td> <td>getpwuid: couldn't determine user name from uid - (getpwuid: UID $B$+$i%f!<%6L>$rFCDj$G$-$J$+$C$?(B)</td> + (getpwuid: UID からユーザ名を特定できなかった)</td> </tr> <tr> <td><code>crit</code> </td> - <td>$BCWL?E*$J>uBV(B</td> + <td>致命的な状態</td> <td>socket: Failed to get a socket, exiting child - (socket: $B%=%1%C%H$,F@$i$l$J$$$?$a!";R%W%m%;%9$r=*N;$5$;$?(B)</td> + (socket: ソケットが得られないため、子プロセスを終了させた)</td> </tr> <tr> <td><code>error</code> </td> - <td>$B%(%i!<(B</td> + <td>エラー</td> <td>Premature end of script headers - ($B%9%/%j%W%H$N%X%C%@$,B-$j$J$$$^$^$G=*$o$C$?(B)</td> + (スクリプトのヘッダが足りないままで終わった)</td> </tr> <tr> <td><code>warn</code> </td> - <td>$B7Y9p(B</td> + <td>警告</td> <td>child process 1234 did not exit, sending another SIGHUP - ($B;R%W%m%;%9(B 1234 $B$,=*N;$7$J$+$C$?!#$b$&0lEY(B SIGHUP $B$rAw$k(B)</td> + (子プロセス 1234 が終了しなかった。もう一度 SIGHUP を送る)</td> </tr> <tr> <td><code>notice</code> </td> - <td>$BIaDL$@$,!"=EMW$J>pJs(B</td> + <td>普通だが、重要な情報</td> <td>httpd: caught SIGBUS, attempting to dump core in ... - (httpd: SIGBUS $B%7%0%J%k$r<u$1!"(B... $B$X%3%"%@%s%W$r$7$?(B)</td> + (httpd: SIGBUS シグナルを受け、... へコアダンプをした)</td> </tr> <tr> <td><code>info</code> </td> - <td>$BDI2C>pJs(B</td> + <td>追加情報</td> <td>"Server seems busy, (you may need to increase - StartServers, or Min/MaxSpareServers)..." ($B!V%5!<%P$OIi2Y$,9b$$!"(B - (StartServers $B$d(B Min/MaxSpareServers $B$NCM$rA}$d$9I,MW$,$"$k$+$b(B)$B!W(B)</td> + StartServers, or Min/MaxSpareServers)..." (「サーバは負荷が高い、 + (StartServers や Min/MaxSpareServers の値を増やす必要があるかも)」)</td> </tr> <tr> <td><code>debug</code> </td> - <td>$B%G%P%C%0%a%C%;!<%8(B</td> + <td>デバッグメッセージ</td> - <td>"Opening config file ..." ($B@_Dj%U%!%$%k$r3+$$$F$$$k(B...)</td> + <td>"Opening config file ..." (設定ファイルを開いている...)</td> </tr> </table> - <p>$BFCDj$N%l%Y%k$,;XDj$5$l$?>l9g!"$=$l$h$j9b$$%l%Y%k$NA4$F$N%a%C%;!<%8$,(B - $BJs9p$5$l$^$9!#(B - <em>$BNc$($P(B</em>$B!"(B<code>LogLevel info</code> $B$K;XDj$9$k$H!"(B - <code>notice</code> $B$H(B <code>warn</code> $B$bJs9p$5$l$^$9!#(B</p> + <p>特定のレベルが指定された場合、それより高いレベルの全てのメッセージが + 報告されます。 + <em>例えば</em>、<code>LogLevel info</code> に指定すると、 + <code>notice</code> と <code>warn</code> も報告されます。</p> - <p>$B$J$*(B <code>crit</code> $B0J>e$N%l%Y%k$r;XDj$9$k$3$H$,?d>)$5$l$^$9!#(B</p> + <p>なお <code>crit</code> 以上のレベルを指定することが推奨されます。</p> - <p>$BNc(B:</p> + <p>例:</p> <example> LogLevel notice </example> - <note><title>$BCm(B</title> - <p>$B%U%!%$%k$K%m%0$r=PNO$9$k>l9g!"(B<code>notice</code> - $B%l%Y%k$N%a%C%;!<%8$OM^@)$5$l$:!"$9$Y$F%m%0$K=PNO$5$l$^$9!#(B - $B$7$+$7(B <code>syslog</code> $B$r;HMQ$7$F$$$k>l9g$O!"(B - $B$3$l$OEv$F$O$^$j$^$;$s!#(B</p> + <note><title>注</title> + <p>ファイルにログを出力する場合、<code>notice</code> + レベルのメッセージは抑制されず、すべてログに出力されます。 + しかし <code>syslog</code> を使用している場合は、 + これは当てはまりません。</p> </note> </usage> </directivesynopsis> <directivesynopsis> <name>MaxKeepAliveRequests</name> -<description>$B;}B3E*$J@\B3>e$G5v2D$5$l$k%j%/%(%9%H$N?t(B</description> +<description>持続的な接続上で許可されるリクエストの数</description> <syntax>MaxKeepAliveRequests <var>number</var></syntax> <default>MaxKeepAliveRequests 100</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p><directive>MaxKeepAliveRequests</directive> $B%G%#%l%/%F%#%V$O!"(B - <directive module="core">KeepAlive</directive> $B$,M-8z$J>l9g$K!"(B - $B0l2s$N@\B3$G<u$1IU$12DG=$J%j%/%(%9%H$N?t$r@)8B$7$^$9!#(B - <code>0</code> $B$K@_Dj$7$F$$$l$P!"<u$1IU$1$k%j%/%(%9%H$OL5@)8B$K$J$j$^$9!#(B - $B$3$N@_Dj$O!"%5!<%P@-G=$r8~>e$5$;$k$?$a$K!"Bg$-$J?tCM$r;XDj$9$k$3$H4+$a$^$9!#(B + <p><directive>MaxKeepAliveRequests</directive> ディレクティブは、 + <directive module="core">KeepAlive</directive> が有効な場合に、 + 一回の接続で受け付け可能なリクエストの数を制限します。 + <code>0</code> に設定していれば、受け付けるリクエストは無制限になります。 + この設定は、サーバ性能を向上させるために、大きな数値を指定すること勧めます。 </p> - <p>$BNc(B:</p> + <p>例:</p> <example> MaxKeepAliveRequests 500 @@ -2128,66 +2128,66 @@ module="core">Directory</directive></seealso> <directivesynopsis> <name>NameVirtualHost</name> -<description>$BL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$N$?$a$N(B IP $B%"%I%l%9$r;XDj(B</description> +<description>名前ベースのバーチャルホストのための IP アドレスを指定</description> <syntax>NameVirtualHost <var>addr</var>[:<var>port</var>]</syntax> <contextlist><context>server config</context></contextlist> <usage> - <p><directive>NameVirtualHost</directive> $B%G%#%l%/%F%#%V$O!"(B - <a href="../vhosts/">$BL>A0%Y!<%9$N%P!<%A%c%k%[%9%H(B</a>$B$N@_Dj$r9T$J$$$?$$>l9g$K(B - $BI,MW$H$J$k$b$N$G$9!#(B</p> + <p><directive>NameVirtualHost</directive> ディレクティブは、 + <a href="../vhosts/">名前ベースのバーチャルホスト</a>の設定を行ないたい場合に + 必要となるものです。</p> - <p><var>addr</var> $B$K$O%[%9%HL>$r;XDj$G$-$^$9$,!"(B - $B>o$K(B IP $B%"%I%l%9$r;XDj$9$k$N$,?d>)$5$l$^$9!#(B - $BNc$($P!"(B</p> + <p><var>addr</var> にはホスト名を指定できますが、 + 常に IP アドレスを指定するのが推奨されます。 + 例えば、</p> <example> NameVirtualHost 111.22.33.44 </example> - <p><directive>NameVirtualHost</directive> $B%G%#%l%/%F%#%V$O!"(B - $BL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$r(B - $BMxMQ$7$F%j%/%(%9%H$r<u$1IU$1$k(B IP $B%"%I%l%9$r;XDj$7$^$9!#(B - $B$3$l$O!"IaDL$OL>A0%Y!<%9$N%P!<%A%c%k%[%9%H%"%I%l%9$G$9!#(B - $B$?$@$7!"%U%!%$%"!<%&%)!<%k$dB>$N%W%m%-%7$,%j%/%(%9%H$r<u$1IU$1!"(B - $B0c$&(B IP $B%"%I%l%9$N%5!<%P$K%U%)%o!<%I$9$k$H$$$&>l9g$O!"(B - $B%j%/%(%9%H$rDs6!$7$?$$%^%7%s>e$NJ*M}%$%s%?!<%U%'!<%9$N(B - IP $B%"%I%l%9$r;XDj$9$kI,MW$,$"$j$^$9!#(B - $BJ#?t$N%"%I%l%9$GJ#?t$NL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$r;XDj$9$k>l9g$O(B - $B3F%"%I%l%9$KBP$7$F%G%#%l%/%F%#%V$r=q$$$F$/$@$5$$!#(B</p> - - <note><title>$BCf(B</title> - <p>$B!V<g%5!<%P!W$d!"$I$N(B <code>_default_</code> $B%5!<%P$b!"(B - <directive>NameVirtualHost</directive> $B$G;XDj$7$?(B IP $B%"%I%l%9$X$N%j%/%(%9%H(B - $B$r=hM}$9$k$3$H$O(B<strong>$B$"$j$^$;$s(B</strong> ($B$J$<$+(B - <directive>NameVirtualHost</directive> $B$r(B - $B;XDj$7$?$1$I$=$N%"%I%l%9$K(B <directive>VirtualHost</directive> $B$rDj5A$7$J$+$C$?>l9g$r=|$/(B)$B!#(B</p> + <p><directive>NameVirtualHost</directive> ディレクティブは、 + 名前ベースのバーチャルホストを + 利用してリクエストを受け付ける IP アドレスを指定します。 + これは、普通は名前ベースのバーチャルホストアドレスです。 + ただし、ファイアーウォールや他のプロキシがリクエストを受け付け、 + 違う IP アドレスのサーバにフォワードするという場合は、 + リクエストを提供したいマシン上の物理インターフェースの + IP アドレスを指定する必要があります。 + 複数のアドレスで複数の名前ベースのバーチャルホストを指定する場合は + 各アドレスに対してディレクティブを書いてください。</p> + + <note><title>中</title> + <p>「主サーバ」や、どの <code>_default_</code> サーバも、 + <directive>NameVirtualHost</directive> で指定した IP アドレスへのリクエスト + を処理することは<strong>ありません</strong> (なぜか + <directive>NameVirtualHost</directive> を + 指定したけどそのアドレスに <directive>VirtualHost</directive> を定義しなかった場合を除く)。</p> </note> - <p>$BL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$K%]!<%HHV9f$r;XDj$9$k$3$H$b2DG=$G$9!#(B - $BNc$($P(B</p> + <p>名前ベースのバーチャルホストにポート番号を指定することも可能です。 + 例えば</p> <example> NameVirtualHost 111.22.33.44:8080 </example> - <p>IPV6 $B$N%"%I%l%9$O<!$NNc$N$h$&$K3Q3g8L$G0O$`I,MW$,$"$j$^$9(B:</p> + <p>IPV6 のアドレスは次の例のように角括弧で囲む必要があります:</p> <example> NameVirtualHost [2001:db8::a00:20ff:fea7:ccea]:8080 </example> - <p>$B$9$Y$F$N%$%s%?%U%'!<%9$X$N%j%/%(%9%H$r<u$1<h$k$h$&$K$9$k$?$a$K$O!"(B - $B0z?t$H$7$F(B <code>*</code> $B$r;H$$$^$9!#(B</p> + <p>すべてのインタフェースへのリクエストを受け取るようにするためには、 + 引数として <code>*</code> を使います。</p> <example> NameVirtualHost * </example> - <note><title><directive type="section">VirtualHost</directive> $B%G%#%l%/%F%#%V$N0z?t(B</title> - <p><directive type="section">VirtualHost</directive> $B%G%#%l%/%F%#%V$N0z?t$O(B <directive - >NameVirtualHost</directive> $B%G%#%l%/%F%#%V$N0z?t$K@53N$K(B - $B9g$C$F$$$kI,MW$,$"$k$3$H$KCm0U$7$F$/$@$5$$!#(B</p> + <note><title><directive type="section">VirtualHost</directive> ディレクティブの引数</title> + <p><directive type="section">VirtualHost</directive> ディレクティブの引数は <directive + >NameVirtualHost</directive> ディレクティブの引数に正確に + 合っている必要があることに注意してください。</p> <example> NameVirtualHost 1.2.3.4<br /> @@ -2199,14 +2199,14 @@ module="core">Directory</directive></seealso> </usage> -<seealso><a href="../vhosts/">$B%P!<%A%c%k%[%9%H@bL@=q(B +<seealso><a href="../vhosts/">バーチャルホスト説明書 </a></seealso> </directivesynopsis> <directivesynopsis> <name>Options</name> -<description>$B%G%#%l%/%H%j$KBP$7$F;HMQ2DG=$J5!G=$r@_Dj$9$k(B</description> +<description>ディレクトリに対して使用可能な機能を設定する</description> <syntax>Options [+|-]<var>option</var> [[+|-]<var>option</var>] ...</syntax> <default>Options All</default> @@ -2216,87 +2216,87 @@ module="core">Directory</directive></seealso> <override>Options</override> <usage> - <p><directive>Options</directive> $B%G%#%l%/%F%#%V$O!"FCDj$N%G%#%l%/%H%j$KBP$7$F(B - $B$I$N5!G=$,;HMQ2DG=$+$r@)8f$7$^$9!#(B</p> + <p><directive>Options</directive> ディレクティブは、特定のディレクトリに対して + どの機能が使用可能かを制御します。</p> - <p><var>option</var> $B$r(B <code>None</code>$B$K;XDj$9$k$H!"(B - $BFCJL$J5!G=$OA4$FL58z$K$J$j$^$9!#(B - $B$^$?!"0J2<$N<($9(B 1 $B8D0J>e$N$b$N$r;XDj$G$-$^$9!#(B</p> + <p><var>option</var> を <code>None</code>に指定すると、 + 特別な機能は全て無効になります。 + また、以下の示す 1 個以上のものを指定できます。</p> <dl> <dt><code>All</code></dt> - <dd><code>MultiViews</code> $B$r=|$$$?A4$F$N5!G=$,M-8z$H$J$j$^$9!#(B - $B$3$l$,%G%U%)%k%H$G$9!#(B</dd> + <dd><code>MultiViews</code> を除いた全ての機能が有効となります。 + これがデフォルトです。</dd> <dt><code>ExecCGI</code></dt> <dd> - <module>mod_cgi</module> $B$K$h$k(B CGI $B%9%/%j%W%H$N<B9T$r5v2D$7$^$9!#(B</dd> + <module>mod_cgi</module> による CGI スクリプトの実行を許可します。</dd> <dt><code>FollowSymLinks</code></dt> <dd> - $B%5!<%P$,!"$3$N%G%#%l%/%H%jFb$G%7%s%\%j%C%/%j%s%/$r$?$I$l$k$h$&$K$7$^$9!#(B - <note><p>$B%5!<%P$,%7%s%\%j%C%/%j%s%/$r$?$I$k>l9g$G$b!"(B - <directive type="section" module="core">Directory</directive> $B%;%/%7%g%s$K(B - $B%^%C%A$5$;$k$?$a$N(B - $B%Q%9L>$O(B<em>$BJQ99$5$l$^$;$s(B</em>$B!#(B</p> - <p><directive type="section" module="core">Location</directive> $BFb$K(B - $B$3$N%*%W%7%g%s$r;XDj$7$F$b(B<strong>$BL5;k$5$l$k(B</strong>$B$3$H$K(B - $BCm0U$7$F$/$@$5$$!#(B</p></note></dd> + サーバが、このディレクトリ内でシンボリックリンクをたどれるようにします。 + <note><p>サーバがシンボリックリンクをたどる場合でも、 + <directive type="section" module="core">Directory</directive> セクションに + マッチさせるための + パス名は<em>変更されません</em>。</p> + <p><directive type="section" module="core">Location</directive> 内に + このオプションを指定しても<strong>無視される</strong>ことに + 注意してください。</p></note></dd> <dt><code>Includes</code></dt> <dd> - <module>mod_include</module> $B$,Ds6!$9$k(B SSI $B$rM-8z$K$7$^$9!#(B</dd> + <module>mod_include</module> が提供する SSI を有効にします。</dd> <dt><code>IncludesNOEXEC</code></dt> <dd> - SSI $B$OM-8z$K$J$j$^$9$,!"(B<code>#exec</code> $B%3%^%s%I(B $B$H(B <code>#exec CGI</code> $B$OL58z$K$J$j$^$9!#(B - $B$?$@$7!"(B<code>#include virtual</code> $B$K$h$j!"(B<directive module="mod_alias">ScriptAlias</directive> $B$5$l$?%G%#%l%/%H%j$G(B - CGI $B$r<B9T$9$k$3$H$O2DG=$G$9!#(B</dd> + SSI は有効になりますが、<code>#exec</code> コマンド と <code>#exec CGI</code> は無効になります。 + ただし、<code>#include virtual</code> により、<directive module="mod_alias">ScriptAlias</directive> されたディレクトリで + CGI を実行することは可能です。</dd> <dt><code>Indexes</code></dt> <dd> - $B$b$7!"(BURL $B$,%G%#%l%/%H%j$K%^%C%W$9$k%j%/%(%9%H$G$"$C$F!"(B - $B3n$D(B <directive module="mod_dir">DirectoryIndex</directive> $B$G;XDj$7$?%U%!%$%k(B ($BNc$($P!"(B<code>index.html</code>) $B$,(B - $B%G%#%l%/%H%jFb$KL5$1$l$P!"(B<module>mod_autoindex</module> $B$,(B - $B%G%#%l%/%H%jFb$N0lMw$r@07A$7$FJV$7$^$9!#(B</dd> + もし、URL がディレクトリにマップするリクエストであって、 + 且つ <directive module="mod_dir">DirectoryIndex</directive> で指定したファイル (例えば、<code>index.html</code>) が + ディレクトリ内に無ければ、<module>mod_autoindex</module> が + ディレクトリ内の一覧を整形して返します。</dd> <dt><code>MultiViews</code></dt> <dd> - <module>mod_negotiation</module> $B$K$h$k(B - <a href="../content-negotiation.html">$B%3%s%F%s%H%M%4%7%(!<%7%g%s(B</a> - $B$5$l$?(B "MultiViews" $B$r5v2D$7$^$9!#(B</dd> + <module>mod_negotiation</module> による + <a href="../content-negotiation.html">コンテントネゴシエーション</a> + された "MultiViews" を許可します。</dd> <dt><code>SymLinksIfOwnerMatch</code></dt> <dd> - $B%7%s%\%j%C%/@h$N%U%!%$%k$^$?$O%G%#%l%/%H%j$,!"(B - $B%7%s%\%j%C%/%j%s%/$N=jM-%f!<%6(B ID $B$HF1$8>l9g$K$N$_%7%s%\%j%C%/%j%s%/$r(B - $B$?$I$l$k$h$&$K$7$^$9!#(B + シンボリック先のファイルまたはディレクトリが、 + シンボリックリンクの所有ユーザ ID と同じ場合にのみシンボリックリンクを + たどれるようにします。 - <note><title>$BCm(B</title> <directive type="section" module="core" - >Location</directive> $BFb$K$3$N%*%W%7%g%s$r(B - $B;XDj$7$F$bL5;k$5$l$^$9!#(B</note> + <note><title>注</title> <directive type="section" module="core" + >Location</directive> 内にこのオプションを + 指定しても無視されます。</note> </dd> </dl> - <p>$BDL>o!"%G%#%l%/%H%j$KBP$7$FJ#?t$N(B <directive>Options</directive> $B$,(B - $BE,MQ2DG=$J>l9g!"(B - $B:G$b6a$$$b$N0l$D$N$_$,E,MQ$5$l!"B>$N$b$N$OL5;k$5$l$^$9!#(B - $BJ#?t$N;XDj$,%^!<%8$5$l$k$o$1$G$O$"$j$^$;$s!#(B(<a - href="../sections.html#mergin">$B%;%/%7%g%s$N%^!<%8J}K!(B</a>$B$r;2>H$7$F$/$@$5$$!#(B) - $B$7$+$7!"$9$Y$F$N(B <directive>Options</directive> $B%G%#%l%/%F%#%V$,(B <code>+</code> $B$d(B <code>-</code> $BIU$-$G(B - $B;XDj$5$l$?>l9g$O%*%W%7%g%s$NCM$O%^!<%8$5$l$^$9!#(B - <code>+</code> $B$rF,$K$D$1$l$P8=:_$N@_Dj$K2C$($i$l!"(B - <code>-</code> $B$rIU$1$l$P8=:_$N@_Dj$+$i:o=|$5$l$^$9!#(B</p> + <p>通常、ディレクトリに対して複数の <directive>Options</directive> が + 適用可能な場合、 + 最も近いもの一つのみが適用され、他のものは無視されます。 + 複数の指定がマージされるわけではありません。(<a + href="../sections.html#mergin">セクションのマージ方法</a>を参照してください。) + しかし、すべての <directive>Options</directive> ディレクティブが <code>+</code> や <code>-</code> 付きで + 指定された場合はオプションの値はマージされます。 + <code>+</code> を頭につければ現在の設定に加えられ、 + <code>-</code> を付ければ現在の設定から削除されます。</p> - <p>$BNc$($P!"(B<code>+</code> $B$d(B <code>-</code> $B$rMxMQ$7$J$$>l9g$O(B:</p> + <p>例えば、<code>+</code> や <code>-</code> を利用しない場合は:</p> <example> <Directory /web/docs><br /> @@ -2312,9 +2312,9 @@ module="core">Directory</directive></seealso> </Directory> </example> - <p><code>/web/docs/spec</code> $B$H$$$&%G%#%l%/%H%j$K$O!"(B - <code>Includes</code> $B$@$1$,E,MQ$5$l$^$9!#(B - $B$7$+$7!"(B2 $BHVL\$N(B <directive>Options</directive> $B$G(B <code>+</code> $B$d(B <code>-</code> $B$rMxMQ$7$F$_$k$H(B:</p> + <p><code>/web/docs/spec</code> というディレクトリには、 + <code>Includes</code> だけが適用されます。 + しかし、2 番目の <directive>Options</directive> で <code>+</code> や <code>-</code> を利用してみると:</p> <example> <Directory /web/docs><br /> @@ -2330,56 +2330,56 @@ module="core">Directory</directive></seealso> </Directory> </example> - <p><code>/web/docs/spec</code> $B$H$$$&%G%#%l%/%H%j$K$O!"(B <code>FollowSymLinks</code> $B$H(B - <code>Includes</code> $B$,E,MQ$5$l$^$9!#(B</p> + <p><code>/web/docs/spec</code> というディレクトリには、 <code>FollowSymLinks</code> と + <code>Includes</code> が適用されます。</p> - <note><title>$BCm(B</title> - <p><code>-IncludesNOEXEC</code> $B$b$7$/$O(B - <code>-Includes</code> $B$r;XDj$9$k$H!"(B - $BA0$N@_Dj$,$I$N$h$&$K$J$C$F$$$h$&$H$b(B SSI $B$OL58z$H$J$j$^$9!#(B</p> + <note><title>注</title> + <p><code>-IncludesNOEXEC</code> もしくは + <code>-Includes</code> を指定すると、 + 前の設定がどのようになっていようとも SSI は無効となります。</p> </note> - <p>$B$I$N$h$&$J@_Dj$b$5$l$F$$$J$1$l$P!"%G%U%)%k%H$G$O(B <code>All</code> $B$K(B - $B$J$j$^$9!#(B</p> + <p>どのような設定もされていなければ、デフォルトでは <code>All</code> に + なります。</p> </usage> </directivesynopsis> <directivesynopsis> <name>Require</name> -<description>$B$I$NG'>Z:Q$_%f!<%6$,%j%=!<%9$r%"%/%;%9$G$-$k$+$rA*Br$9$k(B</description> +<description>どの認証済みユーザがリソースをアクセスできるかを選択する</description> <syntax>Require <var>entity-name</var> [<var>entity-name</var>] ...</syntax> <contextlist><context>directory</context><context>.htaccess</context> </contextlist> <override>AuthConfig</override> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O!"$I$NG'>Z:Q$_$N%f!<%6$,%j%=!<%9$K(B - $B%"%/%;%9$9$k$3$H$,$G$-$k$+$r;XDj$7$^$9!#(B - $B0J2<$N$h$&$J9=J8$K$J$j$^$9!#(B</p> + <p>このディレクティブは、どの認証済みのユーザがリソースに + アクセスすることができるかを指定します。 + 以下のような構文になります。</p> <dl> <dt><code>Require user <var>userid</var> [<var>userid</var>] ...</code></dt> - <dd>$B;XDj$5$l$?%f!<%6$N$_!"%G%#%l%/%H%j$X$N%"%/%;%9$r5v2D$7$^$9!#(B</dd> + <dd>指定されたユーザのみ、ディレクトリへのアクセスを許可します。</dd> <dt><code>Require group <var>group-name</var> [<var>group-name</var>] ...</code></dt> - <dd>$B;XDj$5$l$?%0%k!<%W$KB0$9$k%f!<%6$N$_!"%G%#%l%/%H%j$X$N%"%/%;%9$r5v2D$7$^$9!#(B</dd> + <dd>指定されたグループに属するユーザのみ、ディレクトリへのアクセスを許可します。</dd> <dt><code>Require valid-user</code></dt> - <dd>$BA4$F$NG'>Z$5$l$?%f!<%6$K!"%G%#%l%/%H%j$X$N%"%/%;%9$r5v2D$7$^$9!#(B</dd> + <dd>全ての認証されたユーザに、ディレクトリへのアクセスを許可します。</dd> </dl> - <p><directive>Require</directive> $B$O!"@5$7$/F0:n$9$k$?$a$K$O(B <directive - module="core">AuthName</directive> $B5Z$S(B <directive module="core" - >AuthType</directive> $B%G%#%l%/%F%#%V$d!"(B - ($B%f!<%6$H%0%k!<%W$r;XDj$9$k$?$a$K(B) <directive module="mod_authn_file" - >AuthUserFile</directive> $B5Z$S(B <directive module="mod_authz_groupfile" + <p><directive>Require</directive> は、正しく動作するためには <directive + module="core">AuthName</directive> 及び <directive module="core" + >AuthType</directive> ディレクティブや、 + (ユーザとグループを指定するために) <directive module="mod_authn_file" + >AuthUserFile</directive> 及び <directive module="mod_authz_groupfile" >AuthGroupFile</directive> - $B$H$$$C$?%G%#%l%/%F%#%V$H6&$K(B - $B;XDj$9$kI,MW$,$"$j$^$9!#(B - $BNc$($P(B:</p> + といったディレクティブと共に + 指定する必要があります。 + 例えば:</p> <example> AuthType Basic<br /> @@ -2389,14 +2389,14 @@ module="core">Directory</directive></seealso> Require group admin </example> - <p>$B$3$N$h$&$K$7$FE,MQ$5$l$?%"%/%;%9@)8f$O!"(B<strong>$BA4$F$N(B</strong>$B%a%=%C%I$K(B - $BBP$7$F9T$J$o$l$^$9!#(B - <strong>$BDL>o$O!"$3$l$,K>$^$7$$F0:n$G$9!#(B</strong> - $B$b$7!"FCDj$N%a%=%C%I$KBP$7$F$N$_%"%/%;%9$N@)8f$rE,MQ$7!"(B - $BB>$N%a%=%C%I$O@)8B$7$J$$>l9g$K$O!"(B<directive - type="section" module="core">Limit</directive> $B%;%/%7%g%sFb$K(B - <directive>Require</directive> $B$r(B - $B;XDj$7$F$/$@$5$$!#(B</p> + <p>このようにして適用されたアクセス制御は、<strong>全ての</strong>メソッドに + 対して行なわれます。 + <strong>通常は、これが望ましい動作です。</strong> + もし、特定のメソッドに対してのみアクセスの制御を適用し、 + 他のメソッドは制限しない場合には、<directive + type="section" module="core">Limit</directive> セクション内に + <directive>Require</directive> を + 指定してください。</p> </usage> <seealso><directive module="core">Satisfy</directive></seealso> @@ -2405,30 +2405,30 @@ module="core">Directory</directive></seealso> <directivesynopsis> <name>RLimitCPU</name> -<description>Apache $B$N;R%W%m%;%9$+$i5/F0$5$l$?%W%m%;%9$N(B CPU $B>CHqNL$r(B -$B@)8B$9$k(B</description> +<description>Apache の子プロセスから起動されたプロセスの CPU 消費量を +制限する</description> <syntax>RLimitCPU <var>seconds</var>|max [<var>seconds</var>|max]</syntax> -<default>$BL$@_Dj!#%*%Z%l!<%F%#%s%0%7%9%F%`$N%G%U%)%k%H$r;HMQ(B</default> +<default>未設定。オペレーティングシステムのデフォルトを使用</default> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context></contextlist> <override>All</override> <usage> - <p>$B0l$D$+Fs$D$N%Q%i%a!<%?$r$H$j$^$9!#(B - $B:G=i$N%Q%i%a!<%?$OA4%W%m%;%9$KBP$9$k%j%=!<%9$N%=%U%H%j%_%C%H$r@_Dj$7!"(B - 2 $BHVL\$N%Q%i%a!<%?$O:GBg$N%j%=!<%9%j%_%C%H$r@_Dj$7$^$9!#(B - $B%Q%i%a!<%?$K$O?t;z$+!"%*%Z%l!<%F%#%s%0%7%9%F%`$N:GBg$H$J$k(B - <code>max</code> $B$N$I$A$i$+$r;XDj$9$k$3$H$,$G$-$^$9!#(B - $B:GBg$N%j%=!<%9%j%_%C%H$r>e$2$k$?$a$K$O!"%5!<%P$r(B - <code>root</code> $B$G<B9T$9$k$+5/F0$5$l$J$1$l$P$$$1$^$;$s!#(B</p> - - <p>$B$A$J$_$K!"$3$N@_Dj$O(B Apache $B$N;R%W%m%;%9<+BN$G$O$J$/!"(B - $B%j%/%(%9%H$r<u$1IU$1$?(B Apache $B$N;R%W%m%;%9$+$i(B fork $B$5$l$?%W%m%;%9$K(B - $BE,MQ$5$l$^$9!#(B - $B$3$l$K$O(B CGI $B$d(B SSI $B$+$i<B9T$5$l$?%3%^%s%I$,4^$^$l$^$9$,!"(BApache $B$N(B - $B?F%W%m%;%9$+$i(B fork $B$5$l$?%m%0$N%Q%$%W%W%m%;%9$J$I$K$OE,MQ$5$l$^$;$s!#(B</p> - - <p>CPU $B%j%=!<%9$N%j%_%C%H$O%W%m%;%9$"$?$j$NIC?t$GI=$o$5$l$^$9!#(B</p> + <p>一つか二つのパラメータをとります。 + 最初のパラメータは全プロセスに対するリソースのソフトリミットを設定し、 + 2 番目のパラメータは最大のリソースリミットを設定します。 + パラメータには数字か、オペレーティングシステムの最大となる + <code>max</code> のどちらかを指定することができます。 + 最大のリソースリミットを上げるためには、サーバを + <code>root</code> で実行するか起動されなければいけません。</p> + + <p>ちなみに、この設定は Apache の子プロセス自体ではなく、 + リクエストを受け付けた Apache の子プロセスから fork されたプロセスに + 適用されます。 + これには CGI や SSI から実行されたコマンドが含まれますが、Apache の + 親プロセスから fork されたログのパイププロセスなどには適用されません。</p> + + <p>CPU リソースのリミットはプロセスあたりの秒数で表わされます。</p> </usage> <seealso><directive module="core">RLimitMEM</directive></seealso> @@ -2437,30 +2437,30 @@ module="core">Directory</directive></seealso> <directivesynopsis> <name>RLimitMEM</name> -<description>Apache $B$N;R%W%m%;%9$+$i5/F0$5$l$?%W%m%;%9$N%a%b%j>CHqNL$r(B -$B@)8B$9$k(B</description> +<description>Apache の子プロセスから起動されたプロセスのメモリ消費量を +制限する</description> <syntax>RLimitMEM <var>bytes</var>|max [<var>bytes</var>|max]</syntax> -<default>$BL$@_Dj!#%*%Z%l!<%F%#%s%0%7%9%F%`$N%G%U%)%k%H$r;HMQ(B</default> +<default>未設定。オペレーティングシステムのデフォルトを使用</default> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context></contextlist> <override>All</override> <usage> - <p>$B0l$D$+Fs$D$N%Q%i%a!<%?$r$r$H$j$^$9!#(B - $B:G=i$N%Q%i%a!<%?$OA4%W%m%;%9$KBP$9$k%j%=!<%9$N%=%U%H%j%_%C%H$r@_Dj$7!"(B - 2 $BHVL\$N%Q%i%a!<%?$O:GBg$N%j%=!<%9%j%_%C%H$r@_Dj$7$^$9!#(B - $B%Q%i%a!<%?$K$O?t;z$+!"%*%Z%l!<%F%#%s%0%7%9%F%`$N:GBg$H$J$k(B - <code>max</code> $B$N$I$A$i$+$r;XDj$9$k$3$H$,$G$-$^$9!#(B - $B:GBg$N%j%=!<%9%j%_%C%H$r>e$2$k$?$a$K$O!"%5!<%P$r(B - <code>root</code> $B$G<B9T$9$k$+5/F0$5$l$J$1$l$P$$$1$^$;$s!#(B</p> - - <p>$B$3$N@_Dj$O(B Apache $B$N;R%W%m%;%9<+BN$G$O$J$/!"(B - $B%j%/%(%9%H$r<u$1IU$1$?(B Apache $B$N;R%W%m%;%9$+$i(B fork $B$5$l$?%W%m%;%9$K(B - $BE,MQ$5$l$^$9!#(B - $B$3$l$K$O(B CGI $B$d(B SSI $B$+$i<B9T$5$l$?%3%^%s%I$,4^$^$l$^$9$,!"(BApache $B$N(B - $B?F%W%m%;%9$+$i(B fork $B$5$l$?%m%0$N%Q%$%W%W%m%;%9$J$I$K$OE,MQ$5$l$^$;$s!#(B</p> - - <p>$B%a%b%j%j%=!<%9$N%j%_%C%H$O%W%m%;%9$"$?$j$N%P%$%H?t$GI=$o$5$l$^$9!#(B</p> + <p>一つか二つのパラメータををとります。 + 最初のパラメータは全プロセスに対するリソースのソフトリミットを設定し、 + 2 番目のパラメータは最大のリソースリミットを設定します。 + パラメータには数字か、オペレーティングシステムの最大となる + <code>max</code> のどちらかを指定することができます。 + 最大のリソースリミットを上げるためには、サーバを + <code>root</code> で実行するか起動されなければいけません。</p> + + <p>この設定は Apache の子プロセス自体ではなく、 + リクエストを受け付けた Apache の子プロセスから fork されたプロセスに + 適用されます。 + これには CGI や SSI から実行されたコマンドが含まれますが、Apache の + 親プロセスから fork されたログのパイププロセスなどには適用されません。</p> + + <p>メモリリソースのリミットはプロセスあたりのバイト数で表わされます。</p> </usage> <seealso><directive module="core">RLimitCPU</directive></seealso> <seealso><directive module="core">RLimitNPROC</directive></seealso> @@ -2468,38 +2468,38 @@ module="core">Directory</directive></seealso> <directivesynopsis> <name>RLimitNPROC</name> -<description>Apache $B$N;R%W%m%;%9$+$i5/F0$5$l$?%W%m%;%9$,5/F0$9$k%W%m%;%9$N(B -$B?t$r@)8B$9$k(B</description> +<description>Apache の子プロセスから起動されたプロセスが起動するプロセスの +数を制限する</description> <syntax>RLimitNPROC <var>number</var>|max [<var>number</var>|max]</syntax> -<default>$BL$@_Dj!#%*%Z%l!<%F%#%s%0%7%9%F%`$N%G%U%)%k%H$r;HMQ(B</default> +<default>未設定。オペレーティングシステムのデフォルトを使用</default> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context></contextlist> <override>All</override> <usage> - <p>$B0l$D$+Fs$D$N%Q%i%a!<%?$r$H$j$^$9!#(B - $B:G=i$N%Q%i%a!<%?$OA4%W%m%;%9$KBP$9$k%j%=!<%9$N%=%U%H%j%_%C%H$r@_Dj$7!"(B - 2 $BHVL\$N%Q%i%a!<%?$O:GBg$N%j%=!<%9%j%_%C%H$r@_Dj$7$^$9!#(B - $B%Q%i%a!<%?$K$O?t;z$+!"%*%Z%l!<%F%#%s%0%7%9%F%`$N:GBg$H$J$k(B - <code>max</code> $B$N$I$A$i$+$r;XDj$9$k$3$H$,$G$-$^$9!#(B - $B:GBg$N%j%=!<%9%j%_%C%H$r>e$2$k$?$a$K$O!"%5!<%P$r(B - <code>root</code> $B$G<B9T$9$k$+5/F0$5$l$J$1$l$P$$$1$^$;$s!#(B</p> - - <p>$B$3$N@_Dj$O(B Apache $B$N;R%W%m%;%9<+BN$G$O$J$/!"(B - $B%j%/%(%9%H$r<u$1IU$1$?(B Apache $B$N;R%W%m%;%9$+$i(B fork $B$5$l$?%W%m%;%9$K(B - $BE,MQ$5$l$^$9!#(B - $B$3$l$K$O(B CGI $B$d(B SSI $B$+$i<B9T$5$l$?%3%^%s%I$,4^$^$l$^$9$,!"(BApache $B$N(B - $B?F%W%m%;%9$+$i(B fork $B$5$l$?%m%0$N%Q%$%W%W%m%;%9$J$I$K$OE,MQ$5$l$^$;$s!#(B</p> - - <p>$B%W%m%;%9$N@)8B$O!"%f!<%6$"$?$j$N%W%m%;%9?t$G@)8f$5$l$^$9!#(B</p> - - <note><title>$BCm(B</title> - <p> CGI $B%W%m%;%9$,%&%'%V%5!<%P$N%f!<%6(B ID $B0J30$G<B9T$5$l$k$N$G(B - <strong>$BL5$1$l$P(B</strong>$B!"(B - $B$3$N%G%#%l%/%F%#%V$O!"%5!<%P<+?H$,@8@.$G$-$k%W%m%;%9$N?t$r@)8B$9$k$3$H$K$J$j$^$9!#(B - $B$=$N$h$&$J>u67$K$J$C$F$$$k$+$I$&$+$O!"(B<code>error_log</code> $BCf$N(B - <strong><code>cannot fork</code></strong> $B$H$$$&%a%C%;!<%8$K$h$j(B - $B3NG'$9$k$3$H$,$G$-$^$9!#(B</p> + <p>一つか二つのパラメータをとります。 + 最初のパラメータは全プロセスに対するリソースのソフトリミットを設定し、 + 2 番目のパラメータは最大のリソースリミットを設定します。 + パラメータには数字か、オペレーティングシステムの最大となる + <code>max</code> のどちらかを指定することができます。 + 最大のリソースリミットを上げるためには、サーバを + <code>root</code> で実行するか起動されなければいけません。</p> + + <p>この設定は Apache の子プロセス自体ではなく、 + リクエストを受け付けた Apache の子プロセスから fork されたプロセスに + 適用されます。 + これには CGI や SSI から実行されたコマンドが含まれますが、Apache の + 親プロセスから fork されたログのパイププロセスなどには適用されません。</p> + + <p>プロセスの制限は、ユーザあたりのプロセス数で制御されます。</p> + + <note><title>注</title> + <p> CGI プロセスがウェブサーバのユーザ ID 以外で実行されるので + <strong>無ければ</strong>、 + このディレクティブは、サーバ自身が生成できるプロセスの数を制限することになります。 + そのような状況になっているかどうかは、<code>error_log</code> 中の + <strong><code>cannot fork</code></strong> というメッセージにより + 確認することができます。</p> </note> </usage> <seealso><directive module="core">RLimitMEM</directive></seealso> @@ -2508,35 +2508,35 @@ module="core">Directory</directive></seealso> <directivesynopsis> <name>Satisfy</name> -<description>$B%[%9%H%l%Y%k$N%"%/%;%9@)8f$H%f!<%6G'>Z$H$NAj8_:nMQ$r;XDj(B</description> +<description>ホストレベルのアクセス制御とユーザ認証との相互作用を指定</description> <syntax>Satisfy Any|All</syntax> <default>Satisfy All</default> <contextlist><context>directory</context><context>.htaccess</context> </contextlist> <override>AuthConfig</override> -<compatibility>$B%P!<%8%g%s(B 2.0.51 $B0J9_$G$O(B <directive module="core" type="section" - >Limit</directive> $B%G%#%l%/%F%#%V$H(B <directive module="core" - type="section">LimitExcept</directive> $B%G%#%l%/%F%#%V$N1F6A$r<u$1$k(B +<compatibility>バージョン 2.0.51 以降では <directive module="core" type="section" + >Limit</directive> ディレクティブと <directive module="core" + type="section">LimitExcept</directive> ディレクティブの影響を受ける </compatibility> <usage> - <p><directive module="mod_authz_host">Allow</directive> $B$H(B - <directive module="core">Require</directive> $B$NN>J}$,;H$o$l$F$$$k$H$-$N(B - $B%"%/%;%9%]%j%7!<$r@_Dj$7$^$9!#%Q%i%a!<%?$O(B <code>All</code> $B$+(B <code>Any</code> - $B$G$9!#$3$N%G%#%l%/%F%#%V$O$"$k>l=j$X$N%"%/%;%9$,%f!<%6L>(B/$B%Q%9%o!<%I(B - <em>$B$H(B</em>$B%/%i%$%"%s%H$N%[%9%H$N%"%I%l%9$G@)8B$5$l$F$$$k$H$-$K$N$_(B - $BLrN)$A$^$9!#%G%U%)%k%H$NF0:n(B (<code>All</code>) $B$O%/%i%$%"%s%H$,%"%I%l%9$K$h$k(B - $B%"%/%;%9@)8B$rK~$?$7!"(B<em>$B$+$D(B</em>$B@5$7$$%f!<%6L>$H%Q%9%o!<%I$rF~NO$9$k$3$H$r(B - $BMW5a$7$^$9!#(B<code>Any</code> $B$G$O!"%/%i%$%"%s%H$O%[%9%H$N@)8B$rK~$?$9$+!"(B - $B@5$7$$%f!<%6L>$H%Q%9%o!<%I$NF~NO$r$9$k$+$r$9$l$P%"%/%;%9$r5v2D$5$l$^$9!#(B - $B$3$l$O!"$"$k>l=j$r%Q%9%o!<%I$GJ]8n$9$k$1$l$I!"FCDj$N%"%I%l%9$+$i$N(B - $B%/%i%$%"%s%H$K$O%Q%9%o!<%I$NF~NO$rMW5a$;$:$K%"%/%;%9$r5v2D$9$k!"(B - $B$H$$$&$h$&$J$H$-$K;HMQ$G$-$^$9!#(B</p> - - <p>$BNc$($P!"F1$8%M%C%H%o!<%/>e$K$$$k?M$K$O%&%'%V%5%$%H$N$"$kItJ,$K$D$$$F(B - $BL5@)8B$N%"%/%;%9$r5v$7$?$$$1$l$I!"30$N%M%C%H%o!<%/$N?M$K$O(B - $B%Q%9%o!<%I$rDs6!$5$;$k$h$&$K$9$k$?$a$K$O!"<!$N$h$&$J@_Dj$r$9$k$3$H$,(B - $B$G$-$^$9(B:</p> + <p><directive module="mod_authz_host">Allow</directive> と + <directive module="core">Require</directive> の両方が使われているときの + アクセスポリシーを設定します。パラメータは <code>All</code> か <code>Any</code> + です。このディレクティブはある場所へのアクセスがユーザ名/パスワード + <em>と</em>クライアントのホストのアドレスで制限されているときにのみ + 役立ちます。デフォルトの動作 (<code>All</code>) はクライアントがアドレスによる + アクセス制限を満たし、<em>かつ</em>正しいユーザ名とパスワードを入力することを + 要求します。<code>Any</code> では、クライアントはホストの制限を満たすか、 + 正しいユーザ名とパスワードの入力をするかをすればアクセスを許可されます。 + これは、ある場所をパスワードで保護するけれど、特定のアドレスからの + クライアントにはパスワードの入力を要求せずにアクセスを許可する、 + というようなときに使用できます。</p> + + <p>例えば、同じネットワーク上にいる人にはウェブサイトのある部分について + 無制限のアクセスを許したいけれど、外のネットワークの人には + パスワードを提供させるようにするためには、次のような設定をすることが + できます:</p> <example> Require valid-user<br /> @@ -2544,14 +2544,14 @@ module="core">Directory</directive></seealso> Satisfy Any </example> - <p>$B%P!<%8%g%s(B 2.0.51 $B$+$i$O(B + <p>バージョン 2.0.51 からは <directive module="core" - type="section">Limit</directive> $B%;%/%7%g%s$H(B + type="section">Limit</directive> セクションと <directive module="core" type="section" - >LimitExcept</directive> $B%;%/%7%g%s$r;HMQ$9$k$3$H$G(B - <directive>Satisfy</directive> $B%G%#%l%/%F%#%V$,(B - $BE,MQ$5$l$k%a%=%C%I$r@)8B$9$k$3$H$,(B - $B$G$-$k$h$&$K$J$j$^$7$?!#(B</p> + >LimitExcept</directive> セクションを使用することで + <directive>Satisfy</directive> ディレクティブが + 適用されるメソッドを制限することが + できるようになりました。</p> </usage> <seealso><directive module="mod_authz_host">Allow</directive></seealso> <seealso><directive module="core">Require</directive></seealso> @@ -2559,111 +2559,111 @@ module="core">Directory</directive></seealso> <directivesynopsis> <name>ScriptInterpreterSource</name> -<description>CGI $B%9%/%j%W%H$N%$%s%?!<%W%j%?$N0LCV$rD4$Y$k$?$a$N<jK!(B</description> +<description>CGI スクリプトのインタープリタの位置を調べるための手法</description> <syntax>ScriptInterpreterSource Registry|Registry-Strict|Script</syntax> <default>ScriptInterpreterSource Script</default> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context></contextlist> <override>FileInfo</override> -<compatibility>Win32 $B$N$_!#(B -$B%*%W%7%g%s(B <code>Registry-Strict</code> $B$O(B Apache 2.0 $B0J9_$G;HMQ2DG=(B</compatibility> +<compatibility>Win32 のみ。 +オプション <code>Registry-Strict</code> は Apache 2.0 以降で使用可能</compatibility> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O!"(BApache $B$G(B CGI $B%9%/%j%W%H$r(B - $B<B9T$9$k>l9g$KMxMQ$9$k%$%s%?!<%W%j%?$r!"(B - $B$I$N$h$&$KC5$7=P$9$+$K$D$$$F@)8f$9$k$?$a$K;HMQ$7$^$9!#(B - $B%G%U%)%k%H$N@_Dj$O(B <code>Script</code> $B$G$9!#$3$l$O%9%/%j%W%H$N(B - shebang $B9T(B ($B:G=i$N9T$G(B <code>#!</code> $B$+$i;O$^$k$b$N(B) - $B$K;X$5$l$F$$$k%$%s%?!<%W%j%?$r;HMQ$7$^$9!#(BWin32 $B$G$O$=$N9T$O(B - $B0J2<$NMM$K$J$j$^$9!#(B</p> + <p>このディレクティブは、Apache で CGI スクリプトを + 実行する場合に利用するインタープリタを、 + どのように探し出すかについて制御するために使用します。 + デフォルトの設定は <code>Script</code> です。これはスクリプトの + shebang 行 (最初の行で <code>#!</code> から始まるもの) + に指されているインタープリタを使用します。Win32 ではその行は + 以下の様になります。</p> <example> #!C:/Perl/bin/perl.exe </example> - <p>$B$b$7$/$O!"(B<code>perl</code> $B$,(B <code>PATH</code> $B$K$"$k>l9g$OC1$K(B:</p> + <p>もしくは、<code>perl</code> が <code>PATH</code> にある場合は単に:</p> <example> #!perl </example> - <p><code>ScriptInterpreterSource Registry</code> $B$r;XDj$9$k$H!"(B - $B%9%/%j%W%H%U%!%$%k$N3HD%;R(B ($BNc$($P!"(B<code>.pl</code>) $B$r(B - $B%-!<$H$7$F!"(BWindows $B$N%l%8%9%H%j%D%j!<(B <code>HKEY_CLASSES_ROOT</code> - $B$r8!:w$9$k$h$&$K$J$j$^$9!#%l%8%9%H%j$N%5%V%-!<(B - <code>Shell\ExecCGI\Command</code> $B$+!"$=$l$,B8:_$7$J$$>l9g$O(B - <code>Shell\Open\Command</code> $B$,%9%/%j%W%H%U%!%$%k$r3+$/$?$a$K(B - $B;H$o$l$^$9!#%l%8%9%H%j%-!<$,8+$D$+$i$J$$$H$-$O!"(BApache $B$O(B <code>Script</code> - $B%*%W%7%g%s$,;XDj$5$l$?$H$-$NF0:n$KLa$j$^$9!#(B</p> - - <note type="warning"><title>$B%;%-%e%j%F%#(B</title> - <p><code>ScriptInterpreterSource Registry</code> $B$r(B <directive - module="mod_alias">ScriptAlias</directive> $B$5$l$?%G%#%l%/%H%j$G;H$&$H$-$O(B - $BCm0U$7$F$/$@$5$$!#(BApache $B$O$=$N%G%#%l%/%H%jCf$N(B<em>$B$9$Y$F$N(B</em>$B%U%!%$%k$r(B - $B<B9T$7$h$&$H$7$^$9!#(B<code>Registry</code> $B$H$$$&@_Dj$ODL>o$O<B9T$5$l$J$$(B - $B%U%!%$%k$KBP$7$FK>$^$7$/$J$$%W%m%0%i%`$N<B9T$,H/@8$9$k2DG=@-$,$"$j$^$9!#(B - $BNc$($P!"$[$H$s$I$N(B Windows $B%7%9%F%`$G!"(B - <code>.htm</code> $B%U%!%$%k$N%G%U%)%k%H$N!V3+$/!W%3%^%s%I$O(B - Microsoft Internet Explorer $B$r<B9T$7$^$9$N$G!"%9%/%j%W%H$K;XDj$5$l$?(B - $B%G%#%l%/%H%j$K$"$k(B <code>.htm</code> $B%U%!%$%k$X$N%j%/%(%9%H$O%5!<%P$N(B - $B%P%C%/%0%i%&%s%I$G%V%i%&%6$r<B9T$9$k$3$H$K$J$j$^$9!#$3$l$O!"0lJ,Fb$/$i$$$G(B - $B%7%9%F%`$r%/%i%C%7%e$5$k$?$a$NNI$$J}K!$G$9!#(B</p> + <p><code>ScriptInterpreterSource Registry</code> を指定すると、 + スクリプトファイルの拡張子 (例えば、<code>.pl</code>) を + キーとして、Windows のレジストリツリー <code>HKEY_CLASSES_ROOT</code> + を検索するようになります。レジストリのサブキー + <code>Shell\ExecCGI\Command</code> か、それが存在しない場合は + <code>Shell\Open\Command</code> がスクリプトファイルを開くために + 使われます。レジストリキーが見つからないときは、Apache は <code>Script</code> + オプションが指定されたときの動作に戻ります。</p> + + <note type="warning"><title>セキュリティ</title> + <p><code>ScriptInterpreterSource Registry</code> を <directive + module="mod_alias">ScriptAlias</directive> されたディレクトリで使うときは + 注意してください。Apache はそのディレクトリ中の<em>すべての</em>ファイルを + 実行しようとします。<code>Registry</code> という設定は通常は実行されない + ファイルに対して望ましくないプログラムの実行が発生する可能性があります。 + 例えば、ほとんどの Windows システムで、 + <code>.htm</code> ファイルのデフォルトの「開く」コマンドは + Microsoft Internet Explorer を実行しますので、スクリプトに指定された + ディレクトリにある <code>.htm</code> ファイルへのリクエストはサーバの + バックグラウンドでブラウザを実行することになります。これは、一分内くらいで + システムをクラッシュさるための良い方法です。</p> </note> - <p>Apache 2.0 $B$+$iF3F~$5$l$?%*%W%7%g%s(B <code>Registry-Strict</code> $B$O(B - <code>Registry</code> $B$HF1$8$3$H$r9T$J$$$^$9$,!"%5%V%-!<(B - <code>Shell\ExecCGI\Command</code> $B$N$_$r;H$$$^$9!#(B - <code>ExecCGI</code> $B%-!<$OIaDL$K;H$o$l$k%-!<$G$O$"$j$^$;$s!#(BWindows - $B%l%8%9%H%j$K<jF0$G@_Dj$9$kI,MW$,$"$j$^$9$N$G!"%7%9%F%`$G$N6vH/E*$J%W%m%0%i%`$N(B - $B<B9T$rKI$0$3$H$,$G$-$^$9!#(B</p> + <p>Apache 2.0 から導入されたオプション <code>Registry-Strict</code> は + <code>Registry</code> と同じことを行ないますが、サブキー + <code>Shell\ExecCGI\Command</code> のみを使います。 + <code>ExecCGI</code> キーは普通に使われるキーではありません。Windows + レジストリに手動で設定する必要がありますので、システムでの偶発的なプログラムの + 実行を防ぐことができます。</p> </usage> </directivesynopsis> <directivesynopsis> <name>ServerAdmin</name> -<description>$B%5!<%P$,%/%i%$%"%s%H$KAw$k%(%i!<%a%C%;!<%8$K4^$a$kEE;R%a!<%k$N(B -$B%"%I%l%9(B</description> +<description>サーバがクライアントに送るエラーメッセージに含める電子メールの +アドレス</description> <syntax>ServerAdmin <var>email-address</var>|<var>URL</var></syntax> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p><directive>ServerAdmin</directive> $B$O!"%/%i%$%"%s%H$KJV$9$5$^$6$^$J(B - $B%(%i!<%a%C%;!<%8Cf$K5-=R$9$k!"(B - $BLd9g$;%"%I%l%9$r@_Dj$7$^$9!#M?$($i$l$?0z?t$r(B <code>httpd</code> $B$,(B - URL $B$HG'<1$7$J$$>l9g$O!"(B<var>email-address</var> $B$@$H2r<a$7$F!"(B - $B%O%$%Q!<%j%s%/$N%?!<%2%C%H$K(B <code>mailto:</code> $B$rIU$1$^$9!#(B - $B<B:]$K$O!"$3$3$K$OEE;R%a!<%k%"%I%l%9$r;H$&$3$H$,?d>)$5$l$F$$$^$9!#(B - $BB?$/$N(B CGI $B%9%/%j%W%H$O$=$&$J$C$F$$$k$3$H$r2>Dj$7$F$$$^$9!#(B - URL $B$r;H$&>l9g$O!"$"$J$?$N4IM}2<$K$"$kJL%5!<%P$r;X$9$h$&$K$7$F$/$@$5$$!#(B - $B$=$&$G$J$$$H!"%(%i!<$,5/$3$C$?$H$-$KO"Mm$r$9$k$3$H$,$G$-$J$/$J$C$F(B - $B$7$^$$$^$9!#(B + <p><directive>ServerAdmin</directive> は、クライアントに返すさまざまな + エラーメッセージ中に記述する、 + 問合せアドレスを設定します。与えられた引数を <code>httpd</code> が + URL と認識しない場合は、<var>email-address</var> だと解釈して、 + ハイパーリンクのターゲットに <code>mailto:</code> を付けます。 + 実際には、ここには電子メールアドレスを使うことが推奨されています。 + 多くの CGI スクリプトはそうなっていることを仮定しています。 + URL を使う場合は、あなたの管理下にある別サーバを指すようにしてください。 + そうでないと、エラーが起こったときに連絡をすることができなくなって + しまいます。 </p> - <p>$B$=$N:]!"$3$l$N$?$a$K@lMQ$N%"%I%l%9$r@_Dj$9$k$N$,NI$$$G$7$g$&!#(B - $BNc$($P!"(B</p> + <p>その際、これのために専用のアドレスを設定するのが良いでしょう。 + 例えば、</p> <example> ServerAdmin www-admin@foo.example.com </example> - <p>$B$H$$$C$?$h$&$K$7$^$9!#%f!<%6$O$$$D$b%5!<%P$K4X$9$kOC$G$"$k$H$$$&$3$H$r(B - $BL@5-$7$F$/$k$o$1$G$O$"$j$^$;$s$N$G!#(B</p> + <p>といったようにします。ユーザはいつもサーバに関する話であるということを + 明記してくるわけではありませんので。</p> </usage> </directivesynopsis> <directivesynopsis> <name>ServerAlias</name> -<description>$B%j%/%(%9%H$rL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$K%^%C%A$5$;$F$$$k$H$-$K(B -$B;HMQ$5$l$k%[%9%H$NJLL>(B</description> +<description>リクエストを名前ベースのバーチャルホストにマッチさせているときに +使用されるホストの別名</description> <syntax>ServerAlias <var>hostname</var> [<var>hostname</var>] ...</syntax> <contextlist><context>virtual host</context></contextlist> <usage> - <p><directive>ServerAlias</directive> $B%G%#%l%/%F%#%V$O!"(B<a - href="../vhosts/name-based.html">$B%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H(B</a>$B$K$*$$$F(B - $B;HMQ$9$k%[%9%H$NJLL>$r;XDj$7$^$9!#(B</p> + <p><directive>ServerAlias</directive> ディレクティブは、<a + href="../vhosts/name-based.html">ネームベースのバーチャルホスト</a>において + 使用するホストの別名を指定します。</p> <example> <VirtualHost *><br /> @@ -2673,53 +2673,53 @@ module="core">Directory</directive></seealso> </VirtualHost> </example> </usage> -<seealso><a href="../vhosts/">Apache $B%P!<%A%c%k%[%9%H@bL@=q(B</a></seealso> +<seealso><a href="../vhosts/">Apache バーチャルホスト説明書</a></seealso> </directivesynopsis> <directivesynopsis> <name>ServerName</name> -<description>$B%5!<%P$,<+J,<+?H$r<($9$H$-$K;H$&%[%9%HL>$H%]!<%H(B</description> +<description>サーバが自分自身を示すときに使うホスト名とポート</description> <syntax>ServerName <var>fully-qualified-domain-name</var>[:<var>port</var>]</syntax> <contextlist><context>server config</context><context>virtual host</context> </contextlist> -<compatibility>$B$3$N%G%#%l%/%F%#%V$O%P!<%8%g%s(B 2.0 $B$G$O%P!<%8%g%s(B 1.3 $B$N(B - <directive>Port</directive> $B%G%#%l%/%F%#%V$N5!G=$b4^$_$^$9!#(B</compatibility> +<compatibility>このディレクティブはバージョン 2.0 ではバージョン 1.3 の + <directive>Port</directive> ディレクティブの機能も含みます。</compatibility> <usage> - <p><directive>ServerName</directive> $B%G%#%l%/%F%#%V$O!"(B - $B%5!<%P$,<+J,<+?H$r<($9%[%9%HL>$H%]!<%H$r@_Dj$7$^$9!#(B - $B$3$l$O!"%j%@%$%l%/%H$9$k(B URL $B$r@8@.$9$k:]$KMxMQ$5$l$^$9!#(B - $BNc$($P!"%&%'%V%5!<%P$rF0$+$7$F$$$k%^%7%s$O(B <code>simple.example.com</code> - $B$G!"(BDNS $B$N%(%$%j%"%9(B <code>www.example.com</code> $B$b$"$k$H$-$K!"(B - $B%&%'%V%5!<%P$,8e<T$H$7$FG'<1$5$l$FM_$7$$$H$-$O!"0J2<$N$h$&$K%G%#%l%/%F%#%V$r(B - $B;H$$$^$9!#(B</p> + <p><directive>ServerName</directive> ディレクティブは、 + サーバが自分自身を示すホスト名とポートを設定します。 + これは、リダイレクトする URL を生成する際に利用されます。 + 例えば、ウェブサーバを動かしているマシンは <code>simple.example.com</code> + で、DNS のエイリアス <code>www.example.com</code> もあるときに、 + ウェブサーバが後者として認識されて欲しいときは、以下のようにディレクティブを + 使います。</p> <example> ServerName www.example.com:80 </example> - <p><directive>ServerName</directive> $B$,;XDj$5$l$F$$$J$$$H$-$O!"(B - $B%5!<%P$O(B IP $B%"%I%l%9$+$i5U0z$-$r9T$J$&$3$H$G%[%9%HL>$rCN$m$&$H$7$^$9!#(B - <directive>ServerName</directive> $B$K%]!<%H$,;XDj$5$l$F$$$J$$$H$-$O!"(B - $B%5!<%P$O%j%/%(%9%H$,Mh$F$$$k(B - $B%]!<%H$r;H$$$^$9!#:G9b$N?.Mj@-$H3N<B@-$r$b$?$i$9$?$a$K$O!"(B - <directive>ServerName</directive> $B$r;H$C$F%[%9%HL>$H%]!<%H$rL@<(E*$K(B - $B;XDj$7$F$/$@$5$$!#(B</p> - - <p><a href="../vhosts/name-based.html">$BL>A0%Y!<%9$N%P!<%A%c%k%[%9%H(B</a> - $B$rMxMQ$7$F$$$k>l9g!"(B<directive type="section" module="core" - >VirtualHost</directive> $B%;%/%7%g%sFb$N(B - <directive>ServerName</directive> $B$O$3$N%P!<%A%c%k%[%9%H$K%^%C%A$9$k$?$a$K(B - $B2?$,%j%/%(%9%H$N(B Host: $B%X%C%@$K8=$l$kI,MW$,$"$k$N$+$r;XDj$7$^$9!#(B</p> - - <p>$B<+8J;2>H(B URL ($BNc$($P(B <module>mod_dir</module> $B%b%8%e!<%k$K$h$k$b$N$J$I(B) - $B$,;XDj$5$l$?%]!<%H$r;H$&$+!"%/%i%$%"%s%H$N%j%/%(%9%H$N%]!<%HHV9f$r;H$&$+$r(B - $B7hDj$9$k@_Dj$O(B <directive module="core">UseCanonicalName</directive> - $B%G%#%l%/%F%#%V$r;2>H$7$F$/$@$5$$!#(B</p> + <p><directive>ServerName</directive> が指定されていないときは、 + サーバは IP アドレスから逆引きを行なうことでホスト名を知ろうとします。 + <directive>ServerName</directive> にポートが指定されていないときは、 + サーバはリクエストが来ている + ポートを使います。最高の信頼性と確実性をもたらすためには、 + <directive>ServerName</directive> を使ってホスト名とポートを明示的に + 指定してください。</p> + + <p><a href="../vhosts/name-based.html">名前ベースのバーチャルホスト</a> + を利用している場合、<directive type="section" module="core" + >VirtualHost</directive> セクション内の + <directive>ServerName</directive> はこのバーチャルホストにマッチするために + 何がリクエストの Host: ヘッダに現れる必要があるのかを指定します。</p> + + <p>自己参照 URL (例えば <module>mod_dir</module> モジュールによるものなど) + が指定されたポートを使うか、クライアントのリクエストのポート番号を使うかを + 決定する設定は <directive module="core">UseCanonicalName</directive> + ディレクティブを参照してください。</p> </usage> -<seealso><a href="../dns-caveats.html">DNS $B$H(B Apache $B$K4X$9$kOC(B</a></seealso> -<seealso><a href="../vhosts/">Apache $B%P!<%A%c%k%[%9%H@bL@=q(B</a></seealso> +<seealso><a href="../dns-caveats.html">DNS と Apache に関する話</a></seealso> +<seealso><a href="../vhosts/">Apache バーチャルホスト説明書</a></seealso> <seealso><directive module="core">UseCanonicalName</directive></seealso> <seealso><directive module="core">NameVirtualHost</directive></seealso> <seealso><directive module="core">ServerAlias</directive></seealso> @@ -2727,51 +2727,51 @@ module="core">Directory</directive></seealso> <directivesynopsis> <name>ServerPath</name> -<description>$BHs8_49$N%V%i%&%6$,L>A0%Y!<%9$N%P!<%A%c%k%[%9%H$K%"%/%;%9$7$?$H$-$N(B -$B$?$a$N8_49MQ(B URL $B%Q%9L>(B</description> +<description>非互換のブラウザが名前ベースのバーチャルホストにアクセスしたときの +ための互換用 URL パス名</description> <syntax>ServerPath <var>URL-path</var></syntax> <contextlist><context>virtual host</context></contextlist> <usage> - <p><directive>ServerPath</directive> $B%G%#%l%/%F%#%V$O!"(B<a - href="../vhosts/">$B%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H(B</a>$B$K$*$$$FMxMQ$9$k(B - $B8_49MQ(B URL $B%Q%9L>$r@_Dj$7$^$9!#(B</p> + <p><directive>ServerPath</directive> ディレクティブは、<a + href="../vhosts/">ネームベースのバーチャルホスト</a>において利用する + 互換用 URL パス名を設定します。</p> </usage> -<seealso><a href="../vhosts/">Apache $B%P!<%A%c%k%[%9%H@bL@=q(B</a></seealso> +<seealso><a href="../vhosts/">Apache バーチャルホスト説明書</a></seealso> </directivesynopsis> <directivesynopsis> <name>ServerRoot</name> -<description>$B%$%s%9%H!<%k$5$l$?%5!<%P$N%Y!<%9%G%#%l%/%H%j(B</description> +<description>インストールされたサーバのベースディレクトリ</description> <syntax>ServerRoot <var>directory-path</var></syntax> <default>ServerRoot /usr/local/apache</default> <contextlist><context>server config</context></contextlist> <usage> - <p><directive>ServerRoot</directive> $B%G%#%l%/%F%#%V$O!"(B - $B%5!<%P$,B8:_$9$k%G%#%l%/%H%j$r@_Dj$7$^$9!#(B - $BDL>o!"(B<code>conf/</code> $B$d(B <code>logs/</code> $B$H$$$C$?%5%V%G%#%l%/%H%j$,(B - $BB8:_$7$^$9!#(B - $B$^$?!"B>$N@_Dj%G%#%l%/%F%#%V(B ($BNc$($P(B <directive - module="core">Include</directive> $B$d(B <directive - module="mod_so">LoadModule</directive> $B$J$I(B) $B$K$*$1$kAjBP%Q%9$O!"(B - $B$3$N%G%#%l%/%H%j$+$i$NAjBP0LCV$H$J$j$^$9!#(B</p> - - <example><title>$BNc(B</title> + <p><directive>ServerRoot</directive> ディレクティブは、 + サーバが存在するディレクトリを設定します。 + 通常、<code>conf/</code> や <code>logs/</code> といったサブディレクトリが + 存在します。 + また、他の設定ディレクティブ (例えば <directive + module="core">Include</directive> や <directive + module="mod_so">LoadModule</directive> など) における相対パスは、 + このディレクトリからの相対位置となります。</p> + + <example><title>例</title> ServerRoot /home/httpd </example> </usage> -<seealso><a href="../invoking.html"><code>httpd</code> $B$N(B <code>-d</code> - $B%*%W%7%g%s(B</a></seealso> -<seealso><directive>ServerRoot</directive> $B$N8"8B$rE,@Z$K@_Dj$9$kJ}K!$O(B<a - href="../misc/security_tips.html#serverroot">$B%;%-%e%j%F%#$N$3$D(B</a></seealso> +<seealso><a href="../invoking.html"><code>httpd</code> の <code>-d</code> + オプション</a></seealso> +<seealso><directive>ServerRoot</directive> の権限を適切に設定する方法は<a + href="../misc/security_tips.html#serverroot">セキュリティのこつ</a></seealso> </directivesynopsis> <directivesynopsis> <name>ServerSignature</name> -<description>$B%5!<%P$,@8@.$9$k%I%-%e%a%s%H$N%U%C%?$r@_Dj(B</description> +<description>サーバが生成するドキュメントのフッタを設定</description> <syntax>ServerSignature On|Off|EMail</syntax> <default>ServerSignature Off</default> <contextlist><context>server config</context><context>virtual host</context> @@ -2780,49 +2780,49 @@ module="core">Directory</directive></seealso> <override>All</override> <usage> - <p><directive>ServerSignature</directive> $B%G%#%l%/%F%#%V$O!"(B - $B%5!<%P$,@8@.$9$k%I%-%e%a%s%H(B - ($B%(%i!<%a%C%;!<%8!"(B<module>mod_proxy</module> $B$K$*$1$k(B FTP $B$N%G%#%l%/%H%j%j%9%H!"(B - <module>mod_info</module> $B$N=PNO!"Ey!9(B) - $B$N:G2<9T$KIUM?$9$k%U%C%?$N@_Dj$r9T$J$$$^$9!#(B - $B$=$N$h$&$J%U%C%?9T$rM-8z$K$7$?$$M}M3$K$O!"(B - $B%W%m%-%7$,J#?tO"$J$C$F$$$k>l9g$K!"%f!<%6$O$I$N%5!<%P$,JV$7$?(B - $B%(%i!<%a%C%;!<%8$+$rCN$k<jCJ$,$[$H$s$IL5$$$H$$$&$b$N$,$"$j$^$9!#(B</p> - - - <p>$B%G%U%)%k%H$G$"$k(B <code>Off</code> $B$K@_Dj$r$9$k$H!"%U%C%?9T$,M^@)$5$l$^$9(B - ($B$=$7$F!"(BApache-1.2 $B0JA0$H8_49$NF0:n$r$7$^$9(B)$B!#(B - <code>On</code> $B$K@_Dj$7$?>l9g$O!"C1$K%I%-%e%a%s%H$NCf$K!"%5!<%P$N%P!<%8%g%s!"(B - $B2TF0Cf$N%P!<%A%c%k%[%9%H$N(B <a - href="#servername">ServerName</a> $B$N=q$+$l$?9T$rDI2C$7!"(B - <code>EMail</code> $B$K$7$?>l9g$O$5$i$K;2>H$5$l$?%I%-%e%a%s%H$KBP$9$k(B <a - href="#serveradmin">ServerAdmin</a> $B$r;X$9(B "mailto:" $B$,DI2C$5$l$^$9!#(B</p> - - <p>$B%P!<%8%g%s(B 2.0.44 $B0J9_$G$O$3$N%G%#%l%/%F%#%V$O(B <directive + <p><directive>ServerSignature</directive> ディレクティブは、 + サーバが生成するドキュメント + (エラーメッセージ、<module>mod_proxy</module> における FTP のディレクトリリスト、 + <module>mod_info</module> の出力、等々) + の最下行に付与するフッタの設定を行ないます。 + そのようなフッタ行を有効にしたい理由には、 + プロキシが複数連なっている場合に、ユーザはどのサーバが返した + エラーメッセージかを知る手段がほとんど無いというものがあります。</p> + + + <p>デフォルトである <code>Off</code> に設定をすると、フッタ行が抑制されます + (そして、Apache-1.2 以前と互換の動作をします)。 + <code>On</code> に設定した場合は、単にドキュメントの中に、サーバのバージョン、 + 稼動中のバーチャルホストの <a + href="#servername">ServerName</a> の書かれた行を追加し、 + <code>EMail</code> にした場合はさらに参照されたドキュメントに対する <a + href="#serveradmin">ServerAdmin</a> を指す "mailto:" が追加されます。</p> + + <p>バージョン 2.0.44 以降ではこのディレクティブは <directive module="core">ServerSignature</directive> - $B%G%#%l%/%F%#%V$K$h$jI=<($5$l$k>pJs$b@)8f$7$^$9!#(B</p> + ディレクティブにより表示される情報も制御します。</p> </usage> <seealso><directive module="core">ServerTokens</directive></seealso> </directivesynopsis> <directivesynopsis> <name>ServerTokens</name> -<description>Server HTTP $B1~Ez%X%C%@$r@_Dj$9$k(B</description> +<description>Server HTTP 応答ヘッダを設定する</description> <syntax>ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full</syntax> <default>ServerTokens Full</default> <contextlist><context>server config</context></contextlist> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O!"%/%i%$%"%s%H$KAw$jJV$9(B <code>Server</code> - $B1~Ez%X%C%@Fb$K!"%5!<%P$N0lHLE*$J(B OS $B<oJL$d!"(B - $B%3%s%Q%$%k$5$l$FAH$_9~$^$l$F$$$k%b%8%e!<%k$N>pJs$r(B - $B4^$a$k$+$I$&$+$r;XDj$7$^$9!#(B</p> + <p>このディレクティブは、クライアントに送り返す <code>Server</code> + 応答ヘッダ内に、サーバの一般的な OS 種別や、 + コンパイルされて組み込まれているモジュールの情報を + 含めるかどうかを指定します。</p> <dl> <dt><code>ServerTokens Prod[uctOnly]</code></dt> - <dd>$B%5!<%P$O(B ($BNc$($P(B): <code>Server: - Apache</code> $B$H$$$C$?$h$&$KAw$j$^$9!#(B</dd> + <dd>サーバは (例えば): <code>Server: + Apache</code> といったように送ります。</dd> <dt><code>ServerTokens Major</code></dt> @@ -2836,59 +2836,59 @@ module="core">Directory</directive></seealso> <dt><code>ServerTokens Min[imal]</code></dt> - <dd>$B%5!<%P$O(B ($BNc$($P(B): <code>Server: - Apache/2.0.41</code> $B$H$$$C$?$h$&$KAw$j$^$9!#(B</dd> + <dd>サーバは (例えば): <code>Server: + Apache/2.0.41</code> といったように送ります。</dd> <dt><code>ServerTokens OS</code></dt> - <dd>$B%5!<%P$O(B ($BNc$($P(B): <code>Server: Apache/2.0.41 - (Unix)</code> $B$H$$$C$?$h$&$KAw$j$^$9!#(B</dd> + <dd>サーバは (例えば): <code>Server: Apache/2.0.41 + (Unix)</code> といったように送ります。</dd> - <dt><code>ServerTokens Full</code> ($B$b$7$/$OL$;XDj(B)</dt> + <dt><code>ServerTokens Full</code> (もしくは未指定)</dt> - <dd>$B%5!<%P$O(B ($BNc$($P(B): <code>Server: Apache/2.0.41 - (Unix) PHP/4.2.2 MyMod/1.2</code> $B$H$$$C$?$h$&$KAw$j$^$9!#(B</dd> + <dd>サーバは (例えば): <code>Server: Apache/2.0.41 + (Unix) PHP/4.2.2 MyMod/1.2</code> といったように送ります。</dd> </dl> - <p>$B$3$N@_Dj$O%5!<%PA4BN$KE,MQ$5$l!"%P!<%A%c%k%[%9%H>e$GM-8z$K$7$?$j(B - $BL58z$K$7$?$j$O$G$-$^$;$s!#(B</p> + <p>この設定はサーバ全体に適用され、バーチャルホスト上で有効にしたり + 無効にしたりはできません。</p> - <p>$B%P!<%8%g%s(B 2.0.44 $B0J9_$G$O$3$N%G%#%l%/%F%#%V$O(B <directive + <p>バージョン 2.0.44 以降ではこのディレクティブは <directive module="core">ServerSignature</directive> - $B%G%#%l%/%F%#%V$K$h$jI=<($5$l$k>pJs$b@)8f$7$^$9!#(B</p> + ディレクティブにより表示される情報も制御します。</p> </usage> <seealso><directive module="core">ServerSignature</directive></seealso> </directivesynopsis> <directivesynopsis> <name>SetHandler</name> -<description>$B%^%C%A$9$k%U%!%$%k$,%O%s%I%i$G=hM}$5$l$k$h$&$K$9$k(B</description> +<description>マッチするファイルがハンドラで処理されるようにする</description> <syntax>SetHandler <var>handler-name</var>|None</syntax> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context> </contextlist> <override>FileInfo</override> -<compatibility>Apache 2.0 $B$G(B core $B$K0\F0(B</compatibility> +<compatibility>Apache 2.0 で core に移動</compatibility> <usage> - <p><code>.htaccess</code> $B$d(B <directive type="section" module="core" + <p><code>.htaccess</code> や <directive type="section" module="core" >Directory</directive> - $B%;%/%7%g%s!"(B<directive type="section" module="core">Location</directive> - $B%;%/%7%g%s$K=q$+$l$?>l9g!"(B - $B$3$N%G%#%l%/%F%#%V$O$=$3$K$"$k$9$Y$F$N%U%!%$%k$,(B - <var>handler-name</var> $B$G;XDj$5$l$?(B<a href="../handler.html" - >$B%O%s%I%i(B</a>$B$G07$o$l$k$3$H$r6/@)$7$^$9!#Nc$($P!"3HD%;R$K4X$o$i$:!"(B - $B%G%#%l%/%H%jA4BN$,%$%a!<%8%^%C%W%U%!%$%k$H$7$F2r@O$7$FM_$7$$>l9g$K$O!"(B - $B0J2<$r$=$N%G%#%l%/%H%j$N(B <code>.htaccess</code> - $B%U%!%$%k$K5-=R$7$^$9(B:</p> + セクション、<directive type="section" module="core">Location</directive> + セクションに書かれた場合、 + このディレクティブはそこにあるすべてのファイルが + <var>handler-name</var> で指定された<a href="../handler.html" + >ハンドラ</a>で扱われることを強制します。例えば、拡張子に関わらず、 + ディレクトリ全体がイメージマップファイルとして解析して欲しい場合には、 + 以下をそのディレクトリの <code>.htaccess</code> + ファイルに記述します:</p> <example> SetHandler imap-file </example> - <p>$BJL$NNc(B: URL <code>http://servername/status</code> - $B$,;XDj$5$l$?$H$-$K%5!<%P$,>uBVJs9p$r$9$k$h$&$K$7$?$$$H$-$O!"0J2<$r(B - <code>httpd.conf</code> $B$K5-=R$7$^$9(B:</p> + <p>別の例: URL <code>http://servername/status</code> + が指定されたときにサーバが状態報告をするようにしたいときは、以下を + <code>httpd.conf</code> に記述します:</p> <example> <Location /status><br /> @@ -2898,9 +2898,9 @@ module="core">Directory</directive></seealso> </Location> </example> - <p><code>None</code> $B$H$$$&CM$r@_Dj$9$k$3$H$G!"(B - $BA0$NJ}$N(B <directive>SetHandler</directive> $B$GDj5A$5$l$?@_Dj$rL58z$K$9$k$3$H$,(B - $B$G$-$^$9!#(B</p> + <p><code>None</code> という値を設定することで、 + 前の方の <directive>SetHandler</directive> で定義された設定を無効にすることが + できます。</p> </usage> @@ -2910,7 +2910,7 @@ module="core">Directory</directive></seealso> <directivesynopsis> <name>SetInputFilter</name> -<description>$B%/%i%$%"%s%H$N%j%/%(%9%H$d(B POST $B$NF~NO$r=hM}$9$k%U%#%k%?$r@_Dj$9$k(B</description> +<description>クライアントのリクエストや POST の入力を処理するフィルタを設定する</description> <syntax>SetInputFilter <var>filter</var>[;<var>filter</var>...]</syntax> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context> @@ -2918,22 +2918,22 @@ module="core">Directory</directive></seealso> <override>FileInfo</override> <usage> - <p><directive>SetInputFilter</directive> $B%G%#%l%/%F%#%V$O%/%i%$%"%s%H$N(B - $B%j%/%(%9%H$d(B POST $B$NF~NO$r%5!<%P$,<u$1<h$C$?$H$-$K=hM}$9$k%U%#%k%?$r(B - $B@_Dj$7$^$9!#$3$l$O(B <directive module="mod_mime">AddInputFilter</directive> - $B%G%#%l%/%F%#%V$r4^$a!"B>$N>l=j$GDj5A$5$l$F$$$k%U%#%k%?$N@_Dj$K(B - $BDI2C$5$l$^$9!#(B</p> + <p><directive>SetInputFilter</directive> ディレクティブはクライアントの + リクエストや POST の入力をサーバが受け取ったときに処理するフィルタを + 設定します。これは <directive module="mod_mime">AddInputFilter</directive> + ディレクティブを含め、他の場所で定義されているフィルタの設定に + 追加されます。</p> - <p>$BJ#?t$N%U%#%k%?$r;XDj$9$k$H$-$O!"%G!<%?$r=hM}$9$k=gHV$K(B - $B%;%_%3%m%s$G6h@Z$kI,MW$,$"$j$^$9!#(B</p> + <p>複数のフィルタを指定するときは、データを処理する順番に + セミコロンで区切る必要があります。</p> </usage> -<seealso><a href="../filter.html">$B%U%#%k%?(B</a>$B@bL@=q(B</seealso> +<seealso><a href="../filter.html">フィルタ</a>説明書</seealso> </directivesynopsis> <directivesynopsis> <name>SetOutputFilter</name> -<description>$B%5!<%P$N1~Ez$r=hM}$9$k%U%#%k%?$r@_Dj$9$k(B</description> +<description>サーバの応答を処理するフィルタを設定する</description> <syntax>SetOutputFilter <var>filter</var>[;<var>filter</var>...]</syntax> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context> @@ -2941,14 +2941,14 @@ module="core">Directory</directive></seealso> <override>FileInfo</override> <usage> - <p><directive>SetOutputFilter</directive> $B%G%#%l%/%F%#%V$O(B - $B%5!<%P$N1~Ez$r%/%i%$%"%s%H$KAw$jJV$5$l$kA0$K=hM}$9$k%U%#%k%?$r@_Dj$7$^$9!#(B - $B$3$l$O(B <directive module="mod_mime">AddOutputFilter</directive> - $B%G%#%l%/%F%#%V$r4^$a!"B>$N>l=j$GDj5A$5$l$F$$$k%U%#%k%?$N@_Dj$K(B - $BDI2C$5$l$^$9!#(B</p> + <p><directive>SetOutputFilter</directive> ディレクティブは + サーバの応答をクライアントに送り返される前に処理するフィルタを設定します。 + これは <directive module="mod_mime">AddOutputFilter</directive> + ディレクティブを含め、他の場所で定義されているフィルタの設定に + 追加されます。</p> - <p>$BNc$($P!"0J2<$N@_Dj$O(B <code>/www/data/</code> $B%G%#%l%/%H%j$N$9$Y$F$N(B - $B%U%!%$%k$r(B SSI $B$G=hM}$7$^$9!#(B</p> + <p>例えば、以下の設定は <code>/www/data/</code> ディレクトリのすべての + ファイルを SSI で処理します。</p> <example> <Directory /www/data/><br /> @@ -2958,97 +2958,97 @@ module="core">Directory</directive></seealso> </Directory> </example> - <p>$BJ#?t$N%U%#%k%?$r;XDj$9$k$H$-$O!"%G!<%?$r=hM}$9$k=gHV$K(B - $B%;%_%3%m%s$G6h@Z$kI,MW$,$"$j$^$9!#(B</p> + <p>複数のフィルタを指定するときは、データを処理する順番に + セミコロンで区切る必要があります。</p> </usage> -<seealso><a href="../filter.html">$B%U%#%k%?(B</a>$B@bL@=q(B</seealso> +<seealso><a href="../filter.html">フィルタ</a>説明書</seealso> </directivesynopsis> <directivesynopsis> <name>TimeOut</name> -<description>$B3F%$%Y%s%H$K$D$$$F!"%j%/%(%9%H$r<:GT$5$;$k$^$G$K%5!<%P$,(B -$BBT$D;~4V$r@_Dj(B</description> +<description>各イベントについて、リクエストを失敗させるまでにサーバが +待つ時間を設定</description> <syntax>TimeOut <var>seconds</var></syntax> <default>TimeOut 300</default> <contextlist><context>server config</context></contextlist> <usage> - <p><directive>TimeOut</directive> $B%G%#%l%/%F%#%V$O!"8=:_$N$H$3$m(B - $B0J2<$N;0$D$NBT$A;~4V$K$D$$$F$NDj5A$r9T$$$^$9(B:</p> + <p><directive>TimeOut</directive> ディレクティブは、現在のところ + 以下の三つの待ち時間についての定義を行います:</p> <ol> - <li>GET $B%j%/%(%9%H$r<u$1<h$k$N$K$+$+$kAm;~4V(B</li> + <li>GET リクエストを受け取るのにかかる総時間</li> - <li>POST $B$d(B PUT$B%j%/%(%9%H$K$*$$$F!"<!$N(B TCP $B%Q%1%C%H$,FO$/$^$G$NBT$A;~4V(B</li> + <li>POST や PUTリクエストにおいて、次の TCP パケットが届くまでの待ち時間</li> - <li>$B%l%9%]%s%9$rJV$9:]!"(BTCP $B$N(B ACK $B$,5"$C$F$/$k$^$G$N;~4V(B</li> + <li>レスポンスを返す際、TCP の ACK が帰ってくるまでの時間</li> </ol> - <p>$B>-Mh$K$OJL!9$N@_Dj$r$9$k$3$H$,2DG=$K$G$-$k$h$&9MN8Cf$G$9!#(B - Apache 1.2 $B0JA0$O%?%$%^!<$O(B 1200 $B$,%G%U%)%k%H$G$7$?$,!"(B - 300 $B$K2<$2$i$l$^$7$?!#(B300 $B$G$b$[$H$s$I$N>l9g$O==J,$9$.$kCM$G$9!#(B - $B%3!<%ICf$NJQ$J>l=j$K$^$@%Q%1%C%H$rAw$k:]$K%?%$%^$r%j%;%C%H$7$J$$(B - $B>l=j$,$"$k$+$b$7$l$J$$$N$G!"%G%U%)%k%H$r$h$j>.$5$$CM$K$O$7$F$$$^$;$s!#(B</p> + <p>将来には別々の設定をすることが可能にできるよう考慮中です。 + Apache 1.2 以前はタイマーは 1200 がデフォルトでしたが、 + 300 に下げられました。300 でもほとんどの場合は十分すぎる値です。 + コード中の変な場所にまだパケットを送る際にタイマをリセットしない + 場所があるかもしれないので、デフォルトをより小さい値にはしていません。</p> </usage> </directivesynopsis> <directivesynopsis> <name>UseCanonicalName</name> -<description>$B%5!<%P$,<+J,<+?H$NL>A0$H%]!<%H$r7hDj$9$kJ}K!$r@_Dj$9$k(B</description> +<description>サーバが自分自身の名前とポートを決定する方法を設定する</description> <syntax>UseCanonicalName On|Off|Dns</syntax> <default>UseCanonicalName Off</default> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context></contextlist> <usage> - <p>$BB?$/$N>u67$G(B Apache $B$O(B<em>$B<+8J;2>H(B</em> URL$B!"$9$J$o$A(B - $BF1$8%5!<%P$r;X$9(B URL$B!"$r:n@.$9$kI,MW$,$"$j$^$9!#(B - <code>UseCanonicalName On</code> $B$N>l9g$O!"(B<directive - module="core">ServerName</directive> $B%G%#%l%/%F%#%V$G;XDj$5$l$F$$$k(B - $B%[%9%HL>$H%]!<%HHV9f$r;H$C$F!"$=$N@55,L>(B ($B<+8J;2>H$NL>A0(B) $B$r@8@.$7$^$9!#(B - $B$3$NL>A0$O!"$9$Y$F$N<+8J;2>H(B URL $B$G;H$o$l$^$9$7!"(BCGI $B$N(B - <code>SERVER_NAME</code> $B$H(B <code>SERVER_PORT</code> $B$G$b;H$o$l$^$9!#(B</p> - - <p><code>UseCanonicalName Off</code> $B$N>l9g!"(B - $B%/%i%$%"%s%H$,%[%9%HL>$H%]!<%H$r;XDj$7$?$H$-$K$O!"(B - $B$=$l$i$r85$K<+8J;2>H(B URL $B$r:n@.$7$^$9(B ($B;XDj$,$J$+$C$?$H$-$O(B - $B>e$NDj5A$HF1MM$K$7$F@55,L>$r2r7h$7$^$9(B)$B!#(B - $B$3$l$i$NCM$O(B<a href="../vhosts/name-based.html">$BL>A0%Y!<%9$N(B - $B%P!<%A%c%k%[%9%H(B</a>$B$r<BAu$G;H$o$l$F$$$k$N$HF1$8CM$G!"(B - $BF1$8%/%i%$%"%s%H$G<hF@$G$-$kCM$K$J$C$F$$$^$9!#(B - CGI $BJQ?t(B <code>SERVER_NAME</code> $B$H(B <code>SERVER_PORT</code> - $B$b%/%i%$%"%s%H$+$iM?$($i$l$?CM$+$i:n@.$5$l$^$9!#(B</p> - - <p>$B$3$N$h$&$J5sF0$,JXMx$JNc$O!"%$%s%H%i%M%C%H$N%5!<%P$G(B <code>www</code> - $B$N$h$&$JC;$$L>A0$G%f!<%6$,%^%7%s$K@\B3$9$k$H$-$G$9!#(B - $B%f!<%6$NF~NO$GC;$$%[%9%HL>$,;H$o$l$F$$$F!"(BURL $B$,(B<em>$B:G8e$N%9%i%C%7%eL5$7$N(B</em> - $B%G%#%l%/%H%j$K$J$C$F$$$k(B <code>http://www/splat</code> $B$N$h$&$J$H$-!"(B - Apache $B$O%j%/%(%9%H$r(B <code>http://www.domain.com/splat/</code> - $B$X%j%@%$%l%/%H$7$^$9!#(B - $BG'>Z$r$9$k$h$&$K@_Dj$7$F$$$k$H!"$3$N>l9g(B - $B%f!<%6$O(B 2 $B2sG'>Z$r$7$J$1$l$P$J$i$J$/$J$j$^$9(B (<code>www</code> $B$K(B - $BBP$7$F(B 1 $B2s!"(B<code>www.domain.com</code> $B$KBP$7$F$b$&(B 1 $B2s(B -- - $B>\:Y$O(B <a - href="http://httpd.apache.org/docs/misc/FAQ.html#prompted-twice">$B$3$NOCBj$N(B - FAQ</a> $B$r;2>H$7$F$/$@$5$$(B)$B!#(B - $B$7$+$7(B <directive>UseCanonicalName</directive> $B$,(B <code>Off</code> $B$K$J$C$F$$$k$H!"(B - Apache $B$O(B <code>http://www/splat/</code> $B$K%j%@%$%l%/%H$7$^$9!#(B</p> - - <p>$B;0$DL\$N%*%W%7%g%s(B <code>UseCanonicalName DNS</code> $B$O!"(B - $BBg5,LO$J(B IP $B%Y!<%9$N%P!<%A%c%k%[%9%F%#%s%0$G!"(B - <code>Host:</code> $B%X%C%@$rDs6!$7$J$$8E$$%/%i%$%"%s%H$r(B - $B%5%]!<%H$9$k>l9g$rA[Dj$7$F$$$^$9!#(B - $B$3$N%*%W%7%g%s$G$O(B Apache $B$O!"%/%i%$%"%s%H$,@\B3$7$?(B IP $B%"%I%l%9$KBP$7$F(B - DNS $B$N5U0z$-$r9T$J$C$F!"<+8J;2>H(B URL $B$r:n@.$7$^$9!#(B</p> - - <note type="warning"><title>$B7Y9p(B</title> - <p>CGI $B$,(B <code>SERVER_NAME</code> $B$K4X$7$F2?$i$+$NA0Ds>r7o$r(B - $B2>Dj$7$F$$$k$H$-$K$O!"$3$N%*%W%7%g%s$N@_Dj$K$h$C$F$OF0:n$7$J$/(B - $B$J$k$+$b$7$l$^$;$s!#%/%i%$%"%s%H$O<B<AE*$K$O%[%9%HL>$H$7$F(B - $B2?$G$bK>$_$NCM$r;XDj$9$k$3$H$,$G$-$^$9!#(BCGI $B$,(B - <code>SERVER_NAME</code> $B$r;H$C$F<+8J;2>H(B URL $B$r:n@.$9$k$3$H$7$+$7$J$$(B - $B>l9g$O!"$I$N@_Dj$r9T$J$C$F$bBg>fIW$J$O$:$G$9!#(B</p></note> + <p>多くの状況で Apache は<em>自己参照</em> URL、すなわち + 同じサーバを指す URL、を作成する必要があります。 + <code>UseCanonicalName On</code> の場合は、<directive + module="core">ServerName</directive> ディレクティブで指定されている + ホスト名とポート番号を使って、その正規名 (自己参照の名前) を生成します。 + この名前は、すべての自己参照 URL で使われますし、CGI の + <code>SERVER_NAME</code> と <code>SERVER_PORT</code> でも使われます。</p> + + <p><code>UseCanonicalName Off</code> の場合、 + クライアントがホスト名とポートを指定したときには、 + それらを元に自己参照 URL を作成します (指定がなかったときは + 上の定義と同様にして正規名を解決します)。 + これらの値は<a href="../vhosts/name-based.html">名前ベースの + バーチャルホスト</a>を実装で使われているのと同じ値で、 + 同じクライアントで取得できる値になっています。 + CGI 変数 <code>SERVER_NAME</code> と <code>SERVER_PORT</code> + もクライアントから与えられた値から作成されます。</p> + + <p>このような挙動が便利な例は、イントラネットのサーバで <code>www</code> + のような短い名前でユーザがマシンに接続するときです。 + ユーザの入力で短いホスト名が使われていて、URL が<em>最後のスラッシュ無しの</em> + ディレクトリになっている <code>http://www/splat</code> のようなとき、 + Apache はリクエストを <code>http://www.domain.com/splat/</code> + へリダイレクトします。 + 認証をするように設定していると、この場合 + ユーザは 2 回認証をしなければならなくなります (<code>www</code> に + 対して 1 回、<code>www.domain.com</code> に対してもう 1 回 -- + 詳細は <a + href="http://httpd.apache.org/docs/misc/FAQ.html#prompted-twice">この話題の + FAQ</a> を参照してください)。 + しかし <directive>UseCanonicalName</directive> が <code>Off</code> になっていると、 + Apache は <code>http://www/splat/</code> にリダイレクトします。</p> + + <p>三つ目のオプション <code>UseCanonicalName DNS</code> は、 + 大規模な IP ベースのバーチャルホスティングで、 + <code>Host:</code> ヘッダを提供しない古いクライアントを + サポートする場合を想定しています。 + このオプションでは Apache は、クライアントが接続した IP アドレスに対して + DNS の逆引きを行なって、自己参照 URL を作成します。</p> + + <note type="warning"><title>警告</title> + <p>CGI が <code>SERVER_NAME</code> に関して何らかの前提条件を + 仮定しているときには、このオプションの設定によっては動作しなく + なるかもしれません。クライアントは実質的にはホスト名として + 何でも望みの値を指定することができます。CGI が + <code>SERVER_NAME</code> を使って自己参照 URL を作成することしかしない + 場合は、どの設定を行なっても大丈夫なはずです。</p></note> </usage> <seealso><directive module="core">ServerName</directive></seealso> <seealso><directive module="mpm_common">Listen</directive></seealso> @@ -3056,38 +3056,38 @@ module="core">Directory</directive></seealso> <directivesynopsis type="section"> <name>VirtualHost</name> -<description>$BFCDj$N%[%9%HL>$d(B IP $B%"%I%l%9$N$_$KE,MQ$5$l$k%G%#%l%/%F%#%V$r(B -$B0O$`(B</description> +<description>特定のホスト名や IP アドレスのみに適用されるディレクティブを +囲む</description> <syntax><VirtualHost <var>addr</var>[:<var>port</var>] [<var>addr</var>[:<var>port</var>]] ...> ... </VirtualHost></syntax> <contextlist><context>server config</context></contextlist> <usage> - <p><directive type="section">VirtualHost</directive> $B5Z$S(B - <code></VirtualHost></code> $B$O!"(B - $BFCDj$N%P!<%A%c%k%[%9%H$KBP$7$F$N$_E,MQ$5$l$k%G%#%l%/%F%#%V72$r3g$k(B - $B$?$a$K;H$o$l$^$9!#(B - $B%P!<%A%c%k%[%9%H%3%s%F%-%9%H$G5v2D$5$l$kA4$F$N%G%#%l%/%F%#%V$r;XDj2DG=$G$9!#(B - $B%5!<%P$,!";XDj$5$l$?%P!<%A%c%k%[%9%H$K$"$k%I%-%e%a%s%H$X$N(B - $B%j%/%(%9%H$r<u$1IU$1$?>l9g!"(B - <directive type="section">VirtualHost</directive> $B%;%/%7%g%s$NCf$K$"$k(B - $B%G%#%l%/%F%#%V$,E,MQ$5$l$^$9!#(B - <var>Addr</var>$B$O!"<!$N$b$N$,MxMQ$G$-$^$9(B:</p> + <p><directive type="section">VirtualHost</directive> 及び + <code></VirtualHost></code> は、 + 特定のバーチャルホストに対してのみ適用されるディレクティブ群を括る + ために使われます。 + バーチャルホストコンテキストで許可される全てのディレクティブを指定可能です。 + サーバが、指定されたバーチャルホストにあるドキュメントへの + リクエストを受け付けた場合、 + <directive type="section">VirtualHost</directive> セクションの中にある + ディレクティブが適用されます。 + <var>Addr</var>は、次のものが利用できます:</p> <ul> - <li>$B%P!<%A%c%k%[%9%H$N(B IP $B%"%I%l%9(B</li> + <li>バーチャルホストの IP アドレス</li> - <li>$B%P!<%A%c%k%[%9%H$N(B IP $B$KBP1~$9$k40A4$J%I%a%$%sL>(B</li> + <li>バーチャルホストの IP に対応する完全なドメイン名</li> - <li><code>NameVirtualHost *</code> $B$H6&$K;H$o$l$k!"(B - $B$9$Y$F$N(B IP $B%"%I%l%9$K%^%C%A$9$kJ8;z(B <code>*</code></li> + <li><code>NameVirtualHost *</code> と共に使われる、 + すべての IP アドレスにマッチする文字 <code>*</code></li> - <li>IP $B%Y!<%9$N%P!<%A%c%k%[%9%H$GB>$N$b$N$K%^%C%A$7$J$$(B IP $B%"%I%l%9(B - $B$N$?$a$NJ8;zNs(B <code>_default_</code></li> + <li>IP ベースのバーチャルホストで他のものにマッチしない IP アドレス + のための文字列 <code>_default_</code></li> </ul> - <example><title>$BNc(B</title> + <example><title>例</title> <VirtualHost 10.1.2.3><br /> <indent> ServerAdmin webmaster@host.foo.com<br /> @@ -3099,8 +3099,8 @@ module="core">Directory</directive></seealso> </VirtualHost> </example> - <p>IPv6 $B%"%I%l%9$O%*%W%7%g%s$N%]!<%HHV9f$N;XDj$H6hJL$9$k$?$a$K!"(B - $B3Q3g8L$G3g$C$F;XDj$9$kI,MW$,$"$j$^$9!#<!$O(B IPv6 $B$NNc$G$9(B:</p> + <p>IPv6 アドレスはオプションのポート番号の指定と区別するために、 + 角括弧で括って指定する必要があります。次は IPv6 の例です:</p> <example> <VirtualHost [2001:db8::a00:20ff:fea7:ccea]><br /> @@ -3114,79 +3114,79 @@ module="core">Directory</directive></seealso> </VirtualHost> </example> - <p>$B3F!9$N%P!<%A%c%k%[%9%H$K$O$=$l$>$l0c$&(B IP $B%"%I%l%9!"%]!<%HHV9f(B - $B$b$7$/$O%[%9%HL>$KBP1~$9$kI,MW$,$"$j!"(B - 1 $BHVL\$N>l9g$K$OJ#?t$N%"%I%l%9$G(B IP $B%Q%1%C%H$r<u?.$G$-$k$h$&$K(B - $B%5!<%P%^%7%s$r@_Dj$7$J$1$l$P$J$j$^$;$s!#(B - ($B$b$7!"%^%7%s$,J#?t$N%M%C%H%o!<%/%$%s%?!<%U%'!<%9$H;}$?$J$$>l9g$O!"(B - (OS$B$,%5%]!<%H$7$F$$$l$P(B) <code>ifconfig alias</code> $B%3%^%s%I$K$h$j(B - $BC#@.$G$-$^$9(B)$B!#(B</p> - - <p><code>:port</code> $B$H$$$C$?7A<0$G5-=R$9$k$3$H$K$h$j!"(B - $B%^%C%A$5$;$k%]!<%H$rJQ992DG=$G$9!#(B - $B$3$N;XDj$r$7$J$$>l9g$K$O!"<g%5!<%P@_Dj$K$*$1$k(B - $B0lHV:G8e$K(B <code><a href="#port">Port</a></code> $B$G;XDj$5$l$?%]!<%H$,(B - $B%G%U%)%k%H$H$J$j$^$9!#(B - <code>:*</code> $B$r;XDj$9$k$3$H$K$h$j!"(B - $B%"%I%l%9>e$NA4$F$N%]!<%H$K%^%C%A$7$^$9!#(B(<code>_default_</code> $B$N$H$-$O(B - $B$3$l$r;H$&$3$H$,?d>)$5$l$F$$$^$9!#(B)</p> - - <p><strong>$B%;%-%e%j%F%#$K4X$7$F(B</strong>: - $B%5!<%P!<$r5/F0$7$?0J30$N%f!<%6$,%m%0%U%!%$%k$,J]4I$5$l$k%G%#%l%/%H%j$K(B - $B=q$-9~$_2DG=$J$H$-$K$J$<%;%-%e%j%F%#$,GK$i$l$k2DG=@-$,$"$k$+$N>\:Y$O(B - <a href="../misc/security_tips.html">$B%;%-%e%j%F%#$K4X$9$k%3%D(B</a> $B$r(B - $B;2>H$7$F$/$@$5$$!#(B</p> + <p>各々のバーチャルホストにはそれぞれ違う IP アドレス、ポート番号 + もしくはホスト名に対応する必要があり、 + 1 番目の場合には複数のアドレスで IP パケットを受信できるように + サーバマシンを設定しなければなりません。 + (もし、マシンが複数のネットワークインターフェースと持たない場合は、 + (OSがサポートしていれば) <code>ifconfig alias</code> コマンドにより + 達成できます)。</p> + + <p><code>:port</code> といった形式で記述することにより、 + マッチさせるポートを変更可能です。 + この指定をしない場合には、主サーバ設定における + 一番最後に <code><a href="#port">Port</a></code> で指定されたポートが + デフォルトとなります。 + <code>:*</code> を指定することにより、 + アドレス上の全てのポートにマッチします。(<code>_default_</code> のときは + これを使うことが推奨されています。)</p> + + <p><strong>セキュリティに関して</strong>: + サーバーを起動した以外のユーザがログファイルが保管されるディレクトリに + 書き込み可能なときになぜセキュリティが破られる可能性があるかの詳細は + <a href="../misc/security_tips.html">セキュリティに関するコツ</a> を + 参照してください。</p> - <note><title>$BCm0UE@(B</title> - <p><directive type="section">VirtualHost</directive> $B$O(B Apache $B$,(B Listen $B$9$k(B - IP $B%"%I%l%9$K$O1F6A$rM?$((B<strong>$B$^$;$s(B</strong>$B!#(B - <directive module="mpm_common">Listen</directive> $B$r(B - $B;H$C$F(B Apache $B$,@5$7$$%"%I%l%9$r(B listen $B$9$k$h$&$K@_Dj$9$kI,MW$,$"$j$^$9!#(B</p> + <note><title>注意点</title> + <p><directive type="section">VirtualHost</directive> は Apache が Listen する + IP アドレスには影響を与え<strong>ません</strong>。 + <directive module="mpm_common">Listen</directive> を + 使って Apache が正しいアドレスを listen するように設定する必要があります。</p> </note> - <p>IP $B%Y!<%9$N%P!<%A%c%k%[%9%H$r;H$C$F$$$k>l9g$O!"FCJL$JL>A0(B - <code>_default_</code> $B$r;XDj$9$k$3$H$,$G$-$^$9!#$=$N>l9g$O(B - $B$=$N%P!<%A%c%k%[%9%H$OB>$N%P!<%A%c%k%[%9%H$GL@<(E*$K5s$2$i$l$F$$$J$$(B - $B$9$Y$F$N(B IP $B%"%I%l%9$K%^%C%A$7$^$9!#(B<code>_default_</code> $B%P!<%A%c%k%[%9%H$,L5$$(B - $B>l9g$K(B IP $B$,%P!<%A%c%k%[%9%H$G;XDj$5$l$?$b$N$K%^%C%A$7$J$$$H$-$O!"(B - VirtualHost $B%;%/%7%g%s$N30$N$9$Y$F$NDj5A$+$i$J$k!V<g!W%5!<%P@_Dj$,(B - $B;H$o$l$^$9!#(B($B$?$@$7!"(B<directive - module="core">NameVirtualHost</directive> $B%G%#%l%/%F%#%V$K%^%C%A$9$k(B - $B$9$Y$F$N(B IP $B%"%I%l%9$O!V<g!W%5!<%P@_Dj$b(B <code>_default_</code> $B%P!<%A%c%k%[%9%H$b(B - $B;H$o$J$$$3$H$KCm0U$7$F$/$@$5$$!#>\$7$/$O(B <a - href="../vhosts/name-based.html">$B%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H(B</a> $B$r(B - $B;2>H$7$F$/$@$5$$!#(B)</p> - - <p><code>:port</code> $B$H$$$C$?7A<0$G5-=R$9$k$3$H$K$h$j!"(B - $B%^%C%A$5$;$k%]!<%H$rJQ992DG=$G$9!#(B - $B$3$N;XDj$r$7$J$$>l9g$K$O!"<g%5!<%P@_Dj$K$*$1$k(B - $B0lHV:G8e$K(B <directive module="mpm_common">Listen</directive> $B$G;XDj$5$l$?(B - $B%]!<%H$,%G%U%)%k%H$H$J$j$^$9!#(B - <code>:*</code> $B$r;XDj$9$k$3$H$K$h$j!"(B - $B%"%I%l%9>e$NA4$F$N%]!<%H$K%^%C%A$7$^$9!#(B(<code>_default_</code> $B$N$H$-$O(B - $B$3$l$r;H$&$3$H$,?d>)$5$l$F$$$^$9!#(B)</p> - - <p><code>:port</code> $B$H$$$C$?7A<0$G5-=R$9$k$3$H$K$h$j!"(B - $B%^%C%A$5$;$k%]!<%H$rJQ992DG=$G$9!#(B - $B$3$N;XDj$r$7$J$$>l9g$K$O!"<g%5!<%P@_Dj$K$*$1$k(B - $B0lHV:G8e$K(B <code><a href="#port">Port</a></code> $B$G;XDj$5$l$?%]!<%H$,(B - $B%G%U%)%k%H$H$J$j$^$9!#(B - <code>:*</code> $B$r;XDj$9$k$3$H$K$h$j!"(B - $B%"%I%l%9>e$NA4$F$N%]!<%H$K%^%C%A$7$^$9!#(B(<code>_default_</code> $B$N$H$-$O(B - $B$3$l$r;H$&$3$H$,?d>)$5$l$F$$$^$9!#(B)</p> - - <note type="warning"><title>$B%;%-%e%j%F%#(B</title> - <p>$B%5!<%P!<$r5/F0$7$?0J30$N%f!<%6$,%m%0%U%!%$%k$,J]4I$5$l$k%G%#%l%/%H%j$K(B - $B=q$-9~$_2DG=$J$H$-$K$J$<%;%-%e%j%F%#$,GK$i$l$k2DG=@-$,$"$k$+$N>\:Y$O(B - <a href="../misc/security_tips.html">$B%;%-%e%j%F%#$K4X$9$k%3%D(B</a> $B$r(B - $B;2>H$7$F$/$@$5$$!#(B</p></note> + <p>IP ベースのバーチャルホストを使っている場合は、特別な名前 + <code>_default_</code> を指定することができます。その場合は + そのバーチャルホストは他のバーチャルホストで明示的に挙げられていない + すべての IP アドレスにマッチします。<code>_default_</code> バーチャルホストが無い + 場合に IP がバーチャルホストで指定されたものにマッチしないときは、 + VirtualHost セクションの外のすべての定義からなる「主」サーバ設定が + 使われます。(ただし、<directive + module="core">NameVirtualHost</directive> ディレクティブにマッチする + すべての IP アドレスは「主」サーバ設定も <code>_default_</code> バーチャルホストも + 使わないことに注意してください。詳しくは <a + href="../vhosts/name-based.html">ネームベースのバーチャルホスト</a> を + 参照してください。)</p> + + <p><code>:port</code> といった形式で記述することにより、 + マッチさせるポートを変更可能です。 + この指定をしない場合には、主サーバ設定における + 一番最後に <directive module="mpm_common">Listen</directive> で指定された + ポートがデフォルトとなります。 + <code>:*</code> を指定することにより、 + アドレス上の全てのポートにマッチします。(<code>_default_</code> のときは + これを使うことが推奨されています。)</p> + + <p><code>:port</code> といった形式で記述することにより、 + マッチさせるポートを変更可能です。 + この指定をしない場合には、主サーバ設定における + 一番最後に <code><a href="#port">Port</a></code> で指定されたポートが + デフォルトとなります。 + <code>:*</code> を指定することにより、 + アドレス上の全てのポートにマッチします。(<code>_default_</code> のときは + これを使うことが推奨されています。)</p> + + <note type="warning"><title>セキュリティ</title> + <p>サーバーを起動した以外のユーザがログファイルが保管されるディレクトリに + 書き込み可能なときになぜセキュリティが破られる可能性があるかの詳細は + <a href="../misc/security_tips.html">セキュリティに関するコツ</a> を + 参照してください。</p></note> </usage> -<seealso><a href="../vhosts/">Apache $B%P!<%A%c%k%[%9%H@bL@=q(B</a></seealso> -<seealso><a href="../dns-caveats.html">DNS $B$H(B Apache $B$K4X$9$kOC(B</a></seealso> -<seealso><a href="../bind.html">Apache $B$,;HMQ$9$k%"%I%l%9$H%]!<%H$N@_Dj(B</a></seealso> -<seealso>$B%j%/%(%9%H$r<u$1$?:]$K$3$l$i$N0[$J$k%;%/%7%g%s$,(B - $BAH$_9g$o$5$l$kJ}K!$K$D$$$F$O(B <a href="../sections.html"> - <Directory>, <Location>, <Files> $B%;%/%7%g%s$NF0:nK!(B</a></seealso> +<seealso><a href="../vhosts/">Apache バーチャルホスト説明書</a></seealso> +<seealso><a href="../dns-caveats.html">DNS と Apache に関する話</a></seealso> +<seealso><a href="../bind.html">Apache が使用するアドレスとポートの設定</a></seealso> +<seealso>リクエストを受けた際にこれらの異なるセクションが + 組み合わされる方法については <a href="../sections.html"> + <Directory>, <Location>, <Files> セクションの動作法</a></seealso> </directivesynopsis> </modulesynopsis> diff --git a/docs/manual/mod/directive-dict.xml.ja b/docs/manual/mod/directive-dict.xml.ja index 57809f14da..02cbd33248 100644 --- a/docs/manual/mod/directive-dict.xml.ja +++ b/docs/manual/mod/directive-dict.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 151408:420990 (outdated) --> @@ -22,274 +22,274 @@ <manualpage metafile="directive-dict.xml.meta"> - <title>$B%G%#%l%/%F%#%V$N2r@b$K;H$o$l$kMQ8l(B</title> + <title>ディレクティブの解説に使われる用語</title> <summary> - <p>$B$3$NJ8=q$O3F(B Apache <a href="directives.html">$B@_Dj%G%#%l%/%F%#%V(B</a> - $B$r@bL@$9$k$?$a$K;H$o$l$F$$$kMQ8l$r@bL@$7$^$9!#(B</p> + <p>この文書は各 Apache <a href="directives.html">設定ディレクティブ</a> + を説明するために使われている用語を説明します。</p> </summary> -<seealso><a href="../configuring.html">$B@_Dj%U%!%$%k(B</a></seealso> +<seealso><a href="../configuring.html">設定ファイル</a></seealso> -<section id="Description"><title>$B@bL@(B</title> +<section id="Description"><title>説明</title> -<p>$B%G%#%l%/%F%#%V$NL\E*$N4JC1$J@bL@!#(B</p> +<p>ディレクティブの目的の簡単な説明。</p> </section> -<section id="Syntax"><title>$B9=J8(B</title> - - <p>$B@_Dj%U%!%$%kCf$N%G%#%l%/%F%#%V$N=q<0$r<($7$^$9!#(B - $B$3$N9=J8$O%G%#%l%/%F%#%VFCM-$J$N$G!">\:Y$O%G%#%l%/%F%#%V$N@bL@$r(B - $B;2>H$7$F$/$@$5$$!#0lHLE*$K!"%G%#%l%/%F%#%VL>$N8e$K$O(B - $B6uGr$K$h$jJ,3d$5$l$?$$$/$D$+$N0z?t$,B3$-$^$9!#(B - $B0z?t$,6uGr$r4^$`$H$-$OFs=E0zMQId(B ($BLuCm(B: ") - $B$G0O$^$l$F$$$^$9!#(B $B%*%W%7%g%J%k$J0z?t$O3g8L(B - ($BLuCm(B: []) $B$G0O$^$l$F$$$^$9!#(B - $B0z?t$,J#?t$NCM$r<h$jF@$k>l9g$O!"$=$l$i$NCM$O?bD>$NK@(B "|" - $B$G(B $BJ,3d$5$l$F$$$^$9!#(B - $BJQ99$5$l$J$$%F%-%9%H$O%G%U%)%k%H$N%U%)%s%H$GI=<($5$l!"CV49$NI,MW$J(B - $B0z?t$O(B<em>$B6/D4$5$l$F(B</em>$BI=<($5$l$^$9!#(B - $B0z?t$N?t$,JQ$o$k%G%#%l%/%F%#%V$O:G8e$N(B - $B0z?t$,7+$jJV$5$l$k$3$H$r<($9$?$a$K(B "..." - $B$G=*$o$j$^$9!#(B</p> +<section id="Syntax"><title>構文</title> + + <p>設定ファイル中のディレクティブの書式を示します。 + この構文はディレクティブ特有なので、詳細はディレクティブの説明を + 参照してください。一般的に、ディレクティブ名の後には + 空白により分割されたいくつかの引数が続きます。 + 引数が空白を含むときは二重引用符 (訳注: ") + で囲まれています。 オプショナルな引数は括弧 + (訳注: []) で囲まれています。 + 引数が複数の値を取り得る場合は、それらの値は垂直の棒 "|" + で 分割されています。 + 変更されないテキストはデフォルトのフォントで表示され、置換の必要な + 引数は<em>強調されて</em>表示されます。 + 引数の数が変わるディレクティブは最後の + 引数が繰り返されることを示すために "..." + で終わります。</p> <p> - $B%G%#%l%/%F%#%V$OB?$/$N0c$&7?$N0z?t$r$H$j$^$9!#$$$/$D$+!"NI$/(B - $B;H$o$l$k$b$N$r0J2<$GDj5A$7$^$9!#(B</p> + ディレクティブは多くの違う型の引数をとります。いくつか、良く + 使われるものを以下で定義します。</p> <dl> <dt><em>URL</em></dt> <dd><code>http://www.example.com/path/to/file.html</code> - $B$N$h$&$K!"(B - $B%9%-!<%`!"%[%9%HL>!"%Q%9L>(B($B>JN,2DG=(B)$B$r4^$s$G$$$k40A4$J(B - Uniform Resource Locator$B!#(B</dd> + のように、 + スキーム、ホスト名、パス名(省略可能)を含んでいる完全な + Uniform Resource Locator。</dd> <dt><em>URL-path</em></dt> - <dd><code>/path/to/file.html</code> $B$N$h$&$K!"%9%-!<%`$H(B - $B%[%9%HL>$N8e$KB3$/(B <em>url</em> - $B$N0lIt!#(B<em>url-path</em> $B$O(B - $B%U%!%$%k%7%9%F%`$+$i$N;kE@$G$O$J$/!"(B - $B%&%'%V$+$i$N;kE@$G%j%=!<%9$rI=8=$7$^$9!#(B</dd> + <dd><code>/path/to/file.html</code> のように、スキームと + ホスト名の後に続く <em>url</em> + の一部。<em>url-path</em> は + ファイルシステムからの視点ではなく、 + ウェブからの視点でリソースを表現します。</dd> <dt><em>file-path</em></dt> <dd><code>/usr/local/apache/htdocs/path/to/file.html</code> - $B$N$h$&$K!"(B - $B%k!<%H%G%#%l%/%H%j$+$i;O$^$k%m!<%+%k$N%U%!%$%k%7%9%F%`>e$N%U%!%$%k$X$N%Q%9!#(B - $BDL>o!"%9%i%C%7%e$G;O$^$i$J$$(B <em>file-path</em> $B$O(B <a + のように、 + ルートディレクトリから始まるローカルのファイルシステム上のファイルへのパス。 + 通常、スラッシュで始まらない <em>file-path</em> は <a href="core.html#serverroot">ServerRoot</a> - $B$+$i$NAjBP%Q%9$H$7$F(B $B07$o$l$^$9!#(B</dd> + からの相対パスとして 扱われます。</dd> <dt><em>directory-path</em></dt> <dd><code>/usr/local/apache/htdocs/path/to/</code> - $B$N$h$&$K!"(B - $B%k!<%H%G%#%l%/%H%j$+$i;O$^$k%m!<%+%k$N%U%!%$%k%7%9%F%`$N%G%#%l%/%H%j$X$N(B - $B%Q%9!#(B</dd> + のように、 + ルートディレクトリから始まるローカルのファイルシステムのディレクトリへの + パス。</dd> <dt><em>filename</em></dt> - <dd><code>file.html</code> $B$N$h$&$K!"%Q%9>pJs$NIU$$$F$$$J$$(B - $B%U%!%$%kL>!#(B</dd> + <dd><code>file.html</code> のように、パス情報の付いていない + ファイル名。</dd> <dt><em>regex</em></dt> - <dd>Perl $B8_49$N(B<a href="../glossary.html#regex">$B@55,I=8=(B</a>$B$G$9!#(B - $B%G%#%l%/%F%#%V$NDj5A$,(B <em>regex</em> - $B$,2?$KBP$7$F%^%C%A$r9T$J$&$N$+$r;XDj$7$^$9!#(B</dd> + <dd>Perl 互換の<a href="../glossary.html#regex">正規表現</a>です。 + ディレクティブの定義が <em>regex</em> + が何に対してマッチを行なうのかを指定します。</dd> <dt><em>extension</em></dt> - <dd>$B0lHLE*$K$O(B <em>filename</em> - $B$N:G8e$N%I%C%H$N8e$NItJ,$G$9!#(B $B$7$+$7!"(BApache - $B$OJ#?t$N%U%!%$%k$N3HD%;R$rG'<1$7$^$9$N$G!"(B<em>filename</em> - $B$KJ#?t$N%I%C%H$,$"$k$H!":G=i$N%I%C%H$N8e$N!"$=$l$>$l$N%I%C%H$GJ,N%$5$l$?ItJ,$,(B - <em>extension</em> ($BLuCm(B: $B3HD%;R(B) - $B$K$J$j$^$9!#Nc$($P!"(B<em>filename</em> + <dd>一般的には <em>filename</em> + の最後のドットの後の部分です。 しかし、Apache + は複数のファイルの拡張子を認識しますので、<em>filename</em> + に複数のドットがあると、最初のドットの後の、それぞれのドットで分離された部分が + <em>extension</em> (訳注: 拡張子) + になります。例えば、<em>filename</em> <code>file.html.en</code> - $B$K$OFs$D$N3HD%;R$,$"$j$^$9!#(B<code>.html</code> $B$H(B - <code>.en</code> $B$G$9!#(BApache - $B$N%G%#%l%/%F%#%V$G$O!"(B<em>extension</em> - $B$O%I%C%HIU$-$G$bL5$7$G$b;XDj$G$-$^$9!#$5$i$K!"(B<em>extension</em> - $B$O(B $BBgJ8;z>.J8;z$r6hJL$7$^$;$s!#(B</dd> + には二つの拡張子があります。<code>.html</code> と + <code>.en</code> です。Apache + のディレクティブでは、<em>extension</em> + はドット付きでも無しでも指定できます。さらに、<em>extension</em> + は 大文字小文字を区別しません。</dd> <dt><em>MIME-type</em></dt> - <dd><code>text/html</code> $B$N$h$&$K!"%9%i%C%7%e$GJ,N%$5$l$?(B - $B<g%U%)!<%^%C%H$HI{%U%)!<%^%C%H$K$h$C$F%U%!%$%k$N7A<0$r(B - $BI=$9J}K!$G$9!#(B</dd> + <dd><code>text/html</code> のように、スラッシュで分離された + 主フォーマットと副フォーマットによってファイルの形式を + 表す方法です。</dd> <dt><em>env-variable</em></dt> - <dd>Apache $B$N@_Dj$K$h$jDj5A$5$l$k(B <a - href="../env.html">$B4D6-JQ?t(B</a>$B$NL>A0$G$9!#$3$l$O%*%Z%l!<%F%#%s%0%7%9%F%`$N(B - $B4D6-JQ?t$HF1$8$H$O8B$i$J$$$3$H$KCm0U$7$F$/$@$5$$!#>\:Y$O(B <a - href="../env.html">$B4D6-JQ?t$N@bL@(B</a>$B$r;2>H$7$F$/$@$5$$!#(B</dd> + <dd>Apache の設定により定義される <a + href="../env.html">環境変数</a>の名前です。これはオペレーティングシステムの + 環境変数と同じとは限らないことに注意してください。詳細は <a + href="../env.html">環境変数の説明</a>を参照してください。</dd> </dl> </section> -<section id="Default"><title>$B%G%U%)%k%H(B</title> - - <p>$B%G%#%l%/%F%#%V$K%G%U%)%k%HCM(B - (<em>$B$9$J$o$A(B</em>$B!"@_Dj%U%!%$%k$+$i(B - $B>JN,$5$l$F$$$F$b!"(BApache - $B%&%'%V%5!<%P$OFCDj$NCM$K@_Dj$5$l$F$$$k$+$N$h$&$K(B - $BF0:n$7$^$9(B) $B$,$"$k>l9g$O$3$3$K5-=R$5$l$^$9!#(B - $B%G%U%)%k%HCM$NL5$$>l9g!"$3$3$O(B "<em>None</em>" $B$H(B - $B=q$+$l$^$9!#$3$3$G=q$+$l$F$$$k%G%U%)%k%H$O%5!<%P$H6&$KG[I[$5$l$F$$$k(B - $B%G%U%)%k%H$N(B httpd.conf - $BFb$K=q$+$l$F$$$k%G%#%l%/%F%#%V$NCM$H(B - $B0c$&2DG=@-$,$"$k$3$H$KCm0U$7$F$/$@$5$$!#(B</p> +<section id="Default"><title>デフォルト</title> + + <p>ディレクティブにデフォルト値 + (<em>すなわち</em>、設定ファイルから + 省略されていても、Apache + ウェブサーバは特定の値に設定されているかのように + 動作します) がある場合はここに記述されます。 + デフォルト値の無い場合、ここは "<em>None</em>" と + 書かれます。ここで書かれているデフォルトはサーバと共に配布されている + デフォルトの httpd.conf + 内に書かれているディレクティブの値と + 違う可能性があることに注意してください。</p> </section> -<section id="Context"><title>$B%3%s%F%-%9%H(B</title> +<section id="Context"><title>コンテキスト</title> <p> - $B$3$l$O!"%5!<%P$N@_Dj%U%!%$%kCf$N$I$3$G%G%#%l%/%F%#%V$,M-8z$J$N$+$r<($7$^$9!#(B - $B<!$K<($9CM$,0l$D0J>e%+%s%^6h@Z$j$GNs5s$5$l$F$$$^$9!#(B</p> + これは、サーバの設定ファイル中のどこでディレクティブが有効なのかを示します。 + 次に示す値が一つ以上カンマ区切りで列挙されています。</p> <dl> - <dt>$B%5!<%P@_Dj%U%!%$%k(B</dt> + <dt>サーバ設定ファイル</dt> - <dd>$B$3$l$O!"%5!<%P@_Dj%U%!%$%k(B - (<em>$BNc$($P(B</em>$B!"(B<code>httpd.conf</code>, + <dd>これは、サーバ設定ファイル + (<em>例えば</em>、<code>httpd.conf</code>, <code>srm.conf</code>, <code>access.conf</code>) - $BFb$G$O;HMQ$G$-$^$9$,!"(B - <directive module="core" type="section">VirtualHost</directive> $B$d(B - <directive module="core" type="section">Directory</directive> $B$NCf$G$O(B - <strong>$B;HMQ$G$-$J$$(B</strong>$B$3$H$r<($7$^$9!#(B - <code>.htaccess</code>$B%U%!%$%k$G$N;HMQ$O5v2D$5$l$F$$$^$;$s!#(B</dd> + 内では使用できますが、 + <directive module="core" type="section">VirtualHost</directive> や + <directive module="core" type="section">Directory</directive> の中では + <strong>使用できない</strong>ことを示します。 + <code>.htaccess</code>ファイルでの使用は許可されていません。</dd> - <dt>$B%P!<%A%c%k%[%9%H(B</dt> + <dt>バーチャルホスト</dt> - <dd>$B$3$l$O!"%5!<%P@_Dj%U%!%$%k$N(B + <dd>これは、サーバ設定ファイルの <directive module="core" type="section">VirtualHost</directive> - $B$NCf$G;HMQ$G$-$k$3$H$r<($7$^$9!#(B</dd> + の中で使用できることを示します。</dd> - <dt>$B%G%#%l%/%H%j(B</dt> + <dt>ディレクトリ</dt> - <dd>$B$3$l$O!"%5!<%P@_Dj%U%!%$%k$N(B + <dd>これは、サーバ設定ファイルの <directive module="core" type="section">Directory</directive>, <directive module="core" type="section">Location</directive>, <directive module="core" type="section">Files</directive>, <directive module="mod_proxy" type="section">Proxy</directive> - $B%3%s%F%J$NCf$G!"(B <a - href="../sections.html">$B@_Dj%;%/%7%g%s(B</a> - $B$G@bL@$5$l$F$$$k@)8B$N2<$G;HMQ$G$-$k$3$H$r<($7$^$9!#(B</dd> + コンテナの中で、 <a + href="../sections.html">設定セクション</a> + で説明されている制限の下で使用できることを示します。</dd> <dt>.htaccess</dt> - <dd>$B$3$l$O!"%G%#%l%/%H%j(B<em>$BKh(B</em>$B$N(B - <code>.htaccess</code> $B%U%!%$%kFb$G(B - $B;HMQ2DG=$G$"$k$3$H$r<($7$^$9!#(B $B$?$@!"(B<a - href="#Override">$B>e=q$-(B</a> - $B$N@_Dj$K$h$C$F$O!"=hM}$5$l$J$$$+$b$7$l$^$;$s!#(B</dd> + <dd>これは、ディレクトリ<em>毎</em>の + <code>.htaccess</code> ファイル内で + 使用可能であることを示します。 ただ、<a + href="#Override">上書き</a> + の設定によっては、処理されないかもしれません。</dd> </dl> <p> - $B%G%#%l%/%F%#%V$O;X<($5$l$?%3%s%F%-%9%H$G(B<em>$B$N$_(B</em>$B5v2D$5$l$^$9!#(B - $BB>$N>l=j$G;H$*$&$H$9$k$H!"%5!<%P$,$=$N%3%s%F%-%9%H$r@5$7$/07$($J$/(B - $B$J$k$h$&$J@_Dj%(%i!<$,H/@8$9$k$+!"%5!<%P$,$^$C$?$/F0:n$7$J$/$J$k!"(B - <em>$B$9$J$o$A(B</em>$B!"%5!<%P$,5/F0$7$J$/$J$k$H$$$&$3$H$K$J$j$^$9!#(B</p> + ディレクティブは指示されたコンテキストで<em>のみ</em>許可されます。 + 他の場所で使おうとすると、サーバがそのコンテキストを正しく扱えなく + なるような設定エラーが発生するか、サーバがまったく動作しなくなる、 + <em>すなわち</em>、サーバが起動しなくなるということになります。</p> <p> - $B%G%#%l%/%F%#%V$NM-8z$J0LCV$O!"<B:]$O5s$2$i$l$F$$$k%3%s%F%-%9%H$N(B - $BO@M}OB(B ($BLuCm(B: Boolen OR) - $B$K$J$j$^$9!#8@$$49$($k$H!"(B - "<code>$B%5!<%P@_Dj%U%!%$%k!"(B.htaccess</code>" $B$GM-8z$@$H(B - $B5-$5$l$F$$$k%G%#%l%/%F%#%V$O(B <code>httpd.conf</code> - $B%U%!%$%k$H(B <code>.htaccess</code> - $B%U%!%$%k$H$GM-8z$G$9$,!"(B <directive module="core" + ディレクティブの有効な位置は、実際は挙げられているコンテキストの + 論理和 (訳注: Boolen OR) + になります。言い換えると、 + "<code>サーバ設定ファイル、.htaccess</code>" で有効だと + 記されているディレクティブは <code>httpd.conf</code> + ファイルと <code>.htaccess</code> + ファイルとで有効ですが、 <directive module="core" type="section">Directory</directive> - $B$d(B <directive module="core" type="section">VirtualHost</directive> - $B$NCf$G$O;HMQ$G$-$^$;$s!#(B</p> + や <directive module="core" type="section">VirtualHost</directive> + の中では使用できません。</p> </section> -<section id="Override"><title>$B>e=q$-(B</title> - - <p>$B$3$N%G%#%l%/%F%#%V$NB0@-$O!"(B<code>.htaccess</code> - $B%U%!%$%kCf$K(B - $B%G%#%l%/%F%#%V$,8=$l$?$H$-$K!"$=$l$N=hM}$rM-8z$K$9$k$?$a$K(B - $B$I$N@_Dj$N>e=q$-$,I,MW$+$r<($7$^$9!#(B $B%G%#%l%/%F%#%V$N(B - <a href="#Context">$B%3%s%F%-%9%H(B</a> - $B$,!"(B<code>.htaccess</code> - $B%U%!%$%kCf$G$O5v2D$7$F$$$J$$>l9g$O!"(B $B$3$NB0@-$O(B - "<em>$BE,MQIT2D(B</em>" $B$H=q$+$l$^$9!#(B</p> - - <p>$B>e=q$-$O!"(B<directive module="core">AllowOverride</directive> - $B%G%#%l%/%F%#%V$K$h$C$FM-8z$K$5$l!"(B - $BFCDj$N%9%3!<%W(B($B%G%#%l%/%H%j$J$I(B)$B$H!"(B - $B$5$i$K2<0L$N%l%Y%k$N(B <directive module="core">AllowOverride</directive> - $B$G=$@5$5$l$J$$8B$j!"(B $B$=$NG[2<$KBP$7$FE,MQ$5$l$^$9!#(B - $B%G%#%l%/%F%#%V$N%I%-%e%a%s%H$O<h$jF@$k>e=q$-$NL>A0$b5s$2$^$9!#(B</p> +<section id="Override"><title>上書き</title> + + <p>このディレクティブの属性は、<code>.htaccess</code> + ファイル中に + ディレクティブが現れたときに、それの処理を有効にするために + どの設定の上書きが必要かを示します。 ディレクティブの + <a href="#Context">コンテキスト</a> + が、<code>.htaccess</code> + ファイル中では許可していない場合は、 この属性は + "<em>適用不可</em>" と書かれます。</p> + + <p>上書きは、<directive module="core">AllowOverride</directive> + ディレクティブによって有効にされ、 + 特定のスコープ(ディレクトリなど)と、 + さらに下位のレベルの <directive module="core">AllowOverride</directive> + で修正されない限り、 その配下に対して適用されます。 + ディレクティブのドキュメントは取り得る上書きの名前も挙げます。</p> </section> -<section id="Status"><title>$B%9%F!<%?%9(B</title> +<section id="Status"><title>ステータス</title> - <p>$B$3$l$O%G%#%l%/%F%#%V$,(B Apache - $B%&%'%V%5!<%P$K$I$l$/$i$$$-$D$/AH$_9~$^$l$F$$$k$+$r(B - $B<($7$^$9!#8@$$49$($l$P!"%G%#%l%/%F%#%V$H$=$N5!G=$rMxMQ$9$k$?$a$K!"(B - $B%b%8%e!<%k$N?t$rA}$d$7$F!"%5!<%P$r:F%3%s%Q%$%k$9$kI,MW$,$"$k$+$b$7$l$J$$(B - $B$H$$$&$3$H$r<($7$^$9!#(B - $B$3$NB0@-$,<h$jF@$kCM$O0J2<$N$b$N$G$9(B:</p> + <p>これはディレクティブが Apache + ウェブサーバにどれくらいきつく組み込まれているかを + 示します。言い換えれば、ディレクティブとその機能を利用するために、 + モジュールの数を増やして、サーバを再コンパイルする必要があるかもしれない + ということを示します。 + この属性が取り得る値は以下のものです:</p> <dl> <dt>Core</dt> - <dd>"Core" $B$N%G%#%l%/%F%#%V$O(B Apache - $B%&%'%V%5!<%P$N4pK\$H$J$k$Y$-$b$N$G$"$j!"(B - $B>o$K;HMQ2DG=$G$"$k$3$H$r<($7$^$9!#(B</dd> + <dd>"Core" のディレクティブは Apache + ウェブサーバの基本となるべきものであり、 + 常に使用可能であることを示します。</dd> <dt>MPM</dt> - <dd>"MPM" $B$N%G%#%l%/%F%#%V$O(B<a - href="../mpm.html">$B%^%k%A%W%m%;%C%7%s%0%b%8%e!<%k(B</a>$B$GDs6!$5$l$F$$$^$9!#(B - $B$3$N<oN`$N%G%#%l%/%F%#%V$O%G%#%l%/%F%#%V$NDj5A$N(B<a - href="#Module">$B%b%8%e!<%k(B</a>$B$N9T$K;H$C$F$$$k%b%8%e!<%k$NL>A0$,=q$+$l$F$$$k(B - $B>l9g$K$N$_;HMQ2DG=$G$9!#(B</dd> + <dd>"MPM" のディレクティブは<a + href="../mpm.html">マルチプロセッシングモジュール</a>で提供されています。 + この種類のディレクティブはディレクティブの定義の<a + href="#Module">モジュール</a>の行に使っているモジュールの名前が書かれている + 場合にのみ使用可能です。</dd> <dt>Base</dt> - <dd>"Base" $B$N%G%#%l%/%F%#%V$O(B - $B%G%U%)%k%H$G%5!<%P$KAH$_9~$^$l$F$$$kI8=`%b%8%e!<%k$NCf$N0l$D$G%5(B - $B%]!<%H$5$l$F$$$F!"$o$6$o$6@_Dj$+$i%b%8%e!<%k$r:o=|$7$?$H$-$r=|$$$F!"(B - $BDL>o$G$O;HMQ2DG=$G$"$k$3$H$r<($7$^$9!#(B</dd> + <dd>"Base" のディレクティブは + デフォルトでサーバに組み込まれている標準モジュールの中の一つでサ + ポートされていて、わざわざ設定からモジュールを削除したときを除いて、 + 通常では使用可能であることを示します。</dd> <dt>Extension</dt> - <dd>"Extension" $B$N%G%#%l%/%F%#%V$O!"(B Apache - $B%5!<%P$NG[I[J*$KF1:-$5$l$F$$$k%b%8%e!<%k$N0l$D$GDs6!$5$l$F$$$k$b$N$N!"(B - $BDL>o$G$O%5!<%P$KAH$_9~$^$l$F$$$J$$$3$H$r<($7$^$9!#(B - $B%G%#%l%/%F%#%V$H$=$N5!G=$rM-8z$K$9$k$K$O!"%5!<%P%S%k%IMQ$N@_Dj%U%!%$%k$r(B - $BJQ99$7$F(B Apache - $B$r:F%3%s%Q%$%k$9$kI,MW$,$"$j$^$9!#(B</dd> + <dd>"Extension" のディレクティブは、 Apache + サーバの配布物に同梱されているモジュールの一つで提供されているものの、 + 通常ではサーバに組み込まれていないことを示します。 + ディレクティブとその機能を有効にするには、サーバビルド用の設定ファイルを + 変更して Apache + を再コンパイルする必要があります。</dd> <dt>Experimental</dt> - <dd>"Experimental" $B$N%G%#%l%/%F%#%V$O!"(BApache - $BG[I[J*$K(B - $BF1:-$5$l$F$$$k$b$N$N!";n$7$?$$>l9g$O<+8J@UG$$G9T$J$&(B - $BI,MW$,$"$k$H$$$&$3$H$r<($7$^$9!#%G%#%l%/%F%#%V$O!"$9$Y$F$N%I%-%e%a%s%H$r(B - $B40A4$K$=$m$o$;$k$?$a$K2r@b$5$l$F$$$^$9$,!"%5%]!<%H$5$l$F$$$k$H$O8B$j$^$;$s!#(B - $B%G%#%l%/%F%#%V$rDs6!$9$k%b%8%e!<%k$O%G%U%)%k%H$GAH$_9~$^$l$F$$$k$+$b(B - $B$7$l$^$;$s$7!"$=$&$G$J$$$+$b$7$l$^$;$s!#;HMQ2DG=$+$I$&$+$O!"(B - $B%G%#%l%/%F%#%V$H%b%8%e!<%k$N@bL@$r$7$F$$$k%Z!<%8$N@hF,$rD4$Y$F$/$@$5$$!#(B</dd> + <dd>"Experimental" のディレクティブは、Apache + 配布物に + 同梱されているものの、試したい場合は自己責任で行なう + 必要があるということを示します。ディレクティブは、すべてのドキュメントを + 完全にそろわせるために解説されていますが、サポートされているとは限りません。 + ディレクティブを提供するモジュールはデフォルトで組み込まれているかも + しれませんし、そうでないかもしれません。使用可能かどうかは、 + ディレクティブとモジュールの説明をしているページの先頭を調べてください。</dd> </dl> </section> -<section id="Module"><title>$B%b%8%e!<%k(B</title> +<section id="Module"><title>モジュール</title> <p> - $B$3$l$OC1=c$K%G%#%l%/%F%#%V$,Dj5A$5$l$F$$$k%b%8%e!<%k$NL>A0$r5-:\$7$^$9!#(B</p> + これは単純にディレクティブが定義されているモジュールの名前を記載します。</p> </section> -<section id="Compatibility"><title>$B8_49@-(B</title> +<section id="Compatibility"><title>互換性</title> - <p>$B%G%#%l%/%F%#%V$,(B Apache 2 - $B$NG[I[$KAH$_9~$^$l$F$$$J$+$C$?>l9g!"(B - $B%G%#%l%/%F%#%V$,F3F~$5$l$?%P!<%8%g%s$,$3$3$K=q$+$l$F$$$^$9!#(B - $B$^$?!"%G%#%l%/%F%#%V$,FCDj$N%W%i%C%H%U%)!<%`$K$N$_B8:_$9$k$H$-$b(B - $B$3$3$K=q$+$l$F$$$^$9!#(B</p> + <p>ディレクティブが Apache 2 + の配布に組み込まれていなかった場合、 + ディレクティブが導入されたバージョンがここに書かれています。 + また、ディレクティブが特定のプラットフォームにのみ存在するときも + ここに書かれています。</p> </section> </manualpage> diff --git a/docs/manual/mod/directives.xml.ja b/docs/manual/mod/directives.xml.ja index 8fb3e769ca..7e713f4418 100644 --- a/docs/manual/mod/directives.xml.ja +++ b/docs/manual/mod/directives.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE directiveindex SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 420990 --> @@ -21,18 +21,18 @@ --> <directiveindex metafile="directives.xml.meta"> - <title>$B%G%#%l%/%F%#%V0lMw(B</title> + <title>ディレクティブ一覧</title> <summary> <p> - $BI8=`(B Apache $BG[I[$K$"$k$9$Y$F$N(B Apache $B$N%G%#%l%/%F%#%V$N0lMw$G$9!#(B - $B$3$l$i$O0l4S$7$?7A<0$G=q$+$l$F$$$F!";H$o$l$F$$$kMQ8l$N(B + 標準 Apache 配布にあるすべての Apache のディレクティブの一覧です。 + これらは一貫した形式で書かれていて、使われている用語の <a href="directive-dict.html" - rel="Glossary">$BMQ8l=8(B</a> $B$bMQ0U$5$l$F$$$^$9!#(B + rel="Glossary">用語集</a> も用意されています。 </p> <p> - $B3F%G%#%l%/%F%#%V$N35MW$r@bL@$7$?(B <a - href="quickreference.html">$B%G%#%l%/%F%#%V%/%$%C%/%j%U%!%l%s%9(B</a>$B$b(B - $B$"$j$^$9!#(B + 各ディレクティブの概要を説明した <a + href="quickreference.html">ディレクティブクイックリファレンス</a>も + あります。 </p> </summary> </directiveindex> diff --git a/docs/manual/mod/index.xml.ja b/docs/manual/mod/index.xml.ja index 8615fa8b40..f3117003df 100644 --- a/docs/manual/mod/index.xml.ja +++ b/docs/manual/mod/index.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE moduleindex SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 420990 --> @@ -21,16 +21,16 @@ --> <moduleindex metafile="index.xml.meta"> - <title>$B%b%8%e!<%k0lMw(B</title> + <title>モジュール一覧</title> <summary> <p> - $B0J2<$O(B Apache $B$NG[I[$N0lIt$H$7$FG[$i$l$F$$$k$9$Y$F$N%b%8%e!<%k$N(B - $B0lMw$G$9!#$9$Y$F$N(B <a href="directives.html">Apache - $B%G%#%l%/%F%#%V(B</a> $B$N%"%k%U%!%Y%C%H=g$N%j%9%H$b8+$F$/$@$5$$!#(B + 以下は Apache の配布の一部として配られているすべてのモジュールの + 一覧です。すべての <a href="directives.html">Apache + ディレクティブ</a> のアルファベット順のリストも見てください。 </p> </summary> - <seealso><a href="../mpm.html">$B%^%k%A%W%m%;%C%7%s%0%b%8%e!<%k(B (MPMs)</a> + <seealso><a href="../mpm.html">マルチプロセッシングモジュール (MPMs)</a> </seealso> - <seealso><a href="quickreference.html">$B%G%#%l%/%F%#%V(B $B%/%$%C%/%j%U%!%l%s%9(B</a> + <seealso><a href="quickreference.html">ディレクティブ クイックリファレンス</a> </seealso> </moduleindex> diff --git a/docs/manual/mod/mod_access_compat.xml.ja b/docs/manual/mod/mod_access_compat.xml.ja index 387c08dfcd..263b08e9c6 100644 --- a/docs/manual/mod/mod_access_compat.xml.ja +++ b/docs/manual/mod/mod_access_compat.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 522942:645883 (outdated) --> @@ -23,58 +23,58 @@ <modulesynopsis metafile="mod_access_compat.xml.meta"> <name>mod_access_compat</name> -<description>$B%[%9%H(B ($BL>A0$b$7$/$O(B IP $B%"%I%l%9(B) $B$K4p$E$$$?%0%k!<%W>5G'(B</description> +<description>ホスト (名前もしくは IP アドレス) に基づいたグループ承認</description> <status>Extension</status> <sourcefile>mod_access_compat.c</sourcefile> <identifier>access_compat_module</identifier> -<compatibility>Apache 2.3 (Apache 2.x $B$N0JA0$N%P!<%8%g%s$H$N8_49@-$N$?$a$N%b%8%e!<%k$H$7$F(B)$B!#(B -$B$3$N%b%8%e!<%k$GDs6!$9$k%G%#%l%/%F%#%V$O!">5G'$N;EAH$_$N0l?7$KH<$$!"Hs?d>)$K$J$C$?$b$N$G$9!#(B -<module>mod_authz_host</module> $B$b8+$F$/$@$5$$!#(B</compatibility> +<compatibility>Apache 2.3 (Apache 2.x の以前のバージョンとの互換性のためのモジュールとして)。 +このモジュールで提供するディレクティブは、承認の仕組みの一新に伴い、非推奨になったものです。 +<module>mod_authz_host</module> も見てください。</compatibility> <summary> - <p><module>mod_access_compat</module> $B$K$h$jDs6!$5$l$k%G%#%l%/%F%#%V$O(B - $B%5!<%P$NFCDj$NItJ,$X$N(B - $B%"%/%;%9$r@)8f$9$k$?$a$K(B <directive module="core" type="section" + <p><module>mod_access_compat</module> により提供されるディレクティブは + サーバの特定の部分への + アクセスを制御するために <directive module="core" type="section" >Directory</directive>, <directive module="core" type="section">Files</directive>, <directive module="core" type="section">Location</directive> - $B$H(B <code><a href="core.html#accessfilename">.htaccess</a - ></code> $B%U%!%$%k$G;HMQ$5$l$^$9!#%/%i%$%"%s%H$N%[%9%HL>!"(BIP - $B%"%I%l%9$d!"(B<a href="../env.html">$B4D6-JQ?t(B</a - >$B$J$I$N%j%/%(%9%H$NFCD'$K4p$E$$$F(B - $B%"%/%;%9@)8f$r9T$J$&$3$H$,$G$-$^$9!#(B<directive - module="mod_access_compat">Allow</directive> $B$H(B - <directive module="mod_access_compat">Deny</directive> $B%G%#%l%/%F%#%V$r;H$C$F!"(B - $B$I$N$h$&$J%/%i%$%"%s%H$K%"%/%;%9$r(B - $B5v2D$9$k!"$7$J$$$r;XDj$7$^$9!#$^$?(B - <directive module="mod_access_compat">Order</directive> $B%G%#%l%/%F%#%V$r;H$C$F!"(B - $B%G%U%)%k%H$N%"%/%;%9>uBV$H!"(B - <directive module="mod_access_compat">Allow</directive> $B%G%#%l%/%F%#%V$H(B + と <code><a href="core.html#accessfilename">.htaccess</a + ></code> ファイルで使用されます。クライアントのホスト名、IP + アドレスや、<a href="../env.html">環境変数</a + >などのリクエストの特徴に基づいて + アクセス制御を行なうことができます。<directive + module="mod_access_compat">Allow</directive> と + <directive module="mod_access_compat">Deny</directive> ディレクティブを使って、 + どのようなクライアントにアクセスを + 許可する、しないを指定します。また + <directive module="mod_access_compat">Order</directive> ディレクティブを使って、 + デフォルトのアクセス状態と、 + <directive module="mod_access_compat">Allow</directive> ディレクティブと <directive module="mod_access_compat">Deny</directive> - $B%G%#%l%/%F%#%V$H$N$*8_$$$X$N1F6A$N;EJ}$r@_Dj$7$^$9!#(B + ディレクティブとのお互いへの影響の仕方を設定します。 </p> - <p>$B%[%9%H$K$h$k%"%/%;%9@)8B$H%Q%9%o!<%I$K$h$kG'>Z$r!"(B - $BF1;~$KAH$_9g$o$;$F;H$&$3$H$b$G$-$^$9!#(B - $B$3$N>l9g!"$=$NFs$D$N@)8B$N4X78$r;XDj$9$k$?$a$K(B + <p>ホストによるアクセス制限とパスワードによる認証を、 + 同時に組み合わせて使うこともできます。 + この場合、その二つの制限の関係を指定するために <directive module="core">Satisfy</directive> - $B%G%#%l%/%F%#%V$r;HMQ$7$^$9!#(B</p> + ディレクティブを使用します。</p> <note type="warning"><title>Note</title> - <p><module>mod_access_compat</module>$B$,Ds6!$9$k%G%#%l%/%F%#%V$O!"(B - $B>5G'$N;EAH$_$N0l?7$KH<$$!"Hs?d>)$K$J$C$?$b$N$G$9!#(B - <module>mod_authz_host</module> $B$b8+$F$/$@$5$$!#(B - $B%G%U%)%k%H$N>5G'$N<h$j07$$5!G=$r;HMQ$9$k$?$a$K(B + <p><module>mod_access_compat</module>が提供するディレクティブは、 + 承認の仕組みの一新に伴い、非推奨になったものです。 + <module>mod_authz_host</module> も見てください。 + デフォルトの承認の取り扱い機能を使用するために <module>mod_authz_default</module> - $B%b%8%e!<%k$b%m!<%I$5$l$J$1$l$P$J$j$^$;$s!#(B</p> + モジュールもロードされなければなりません。</p> </note> - <p>$B0lHLE*$K$O!"%"%/%;%9@)8B%G%#%l%/%F%#%V$O$9$Y$F$N%"%/%;%9%a%=%C%I(B - (<code>GET</code>, <code>PUT</code>, <code>POST</code> $B$J$I(B) - $B$KE,MQ$5$l$^$9!#$=$7$F!"$[$H$s$I$N>l9g$3$l$,K>$^$7$$F0:n$G$9!#(B - $B$7$+$7!"(B<directive module="core" type="section">Limit</directive> - $B%;%/%7%g%s$NCf$K%G%#%l%/%F%#%V$r=q$/$3$H$G!"(B - $B0lIt$N%a%=%C%I$K$N$_@)8B$r$+$1$k$3$H$b$G$-$^$9!#(B</p> + <p>一般的には、アクセス制限ディレクティブはすべてのアクセスメソッド + (<code>GET</code>, <code>PUT</code>, <code>POST</code> など) + に適用されます。そして、ほとんどの場合これが望ましい動作です。 + しかし、<directive module="core" type="section">Limit</directive> + セクションの中にディレクティブを書くことで、 + 一部のメソッドにのみ制限をかけることもできます。</p> </summary> <seealso><directive module="mod_authz_core">Require</directive></seealso> @@ -83,7 +83,7 @@ <directivesynopsis> <name>Allow</name> -<description>$B%5!<%P$N$"$kNN0h$K%"%/%;%9$G$-$k%[%9%H$r@)8f$9$k(B</description> +<description>サーバのある領域にアクセスできるホストを制御する</description> <syntax> Allow from all|<var>host</var>|env=<var>env-variable</var> [<var>host</var>|env=<var>env-variable</var>] ...</syntax> <contextlist><context>directory</context><context>.htaccess</context> @@ -91,103 +91,103 @@ <override>Limit</override> <usage> - <p><directive>Allow</directive> $B%G%#%l%/%F%#%V$O!"$I$N%[%9%H$,(B - $B%5!<%P$N$"$kNN0h$K%"%/%;%9$G$-$k$+$K1F6A$rM?$($^$9!#(B - $B%"%/%;%9$O%[%9%HL>!"(BIP $B%"%I%l%9!"(BIP $B%"%I%l%9$NHO0O$d!"(B - $B4D6-JQ?t$J$I$N%/%i%$%"%s%H$N%j%/%(%9%H$N(B - $BFCD'$K4p$E$$$F%"%/%;%9@)8f$9$k$3$H$,$G$-$^$9!#(B</p> - - <p>$B$3$N%G%#%l%/%F%#%V$N:G=i$N0z?t$O>o$K(B <code>from</code> $B$G$9!#(B - $B$=$l$KB3$/0z?t$O;0$D$N0c$C$?7A<0$,$"$j$^$9!#(B<code>Allow from - all</code> $B$,;XDj$5$l$F$$$l$P!"$9$Y$F$N%[%9%H$K%"%/%;%9$r5v2D$7!"(B - $B%"%/%;%9@)8B$O2<$G@bL@$5$l$F$$$k$h$&$K!"(B + <p><directive>Allow</directive> ディレクティブは、どのホストが + サーバのある領域にアクセスできるかに影響を与えます。 + アクセスはホスト名、IP アドレス、IP アドレスの範囲や、 + 環境変数などのクライアントのリクエストの + 特徴に基づいてアクセス制御することができます。</p> + + <p>このディレクティブの最初の引数は常に <code>from</code> です。 + それに続く引数は三つの違った形式があります。<code>Allow from + all</code> が指定されていれば、すべてのホストにアクセスを許可し、 + アクセス制限は下で説明されているように、 <directive module="mod_access_compat">Deny</directive> - $B%G%#%l%/%F%#%V$H(B <directive module="mod_access_compat">Order</directive> - $B%G%#%l%/%F%#%V$N@_Dj$G7h$^$j$^$9!#(B - $BFCDj$N%[%9%H$d%[%9%H72$K$N$_%5!<%P$X$N%"%/%;%9$r5v2D$9$k$?$a$K$O!"(B - $B0J2<$N$I$l$+$N7A<0$G(B <em>host</em> $B$r;XDj$9$k$3$H$,$G$-$^$9(B:</p> + ディレクティブと <directive module="mod_access_compat">Order</directive> + ディレクティブの設定で決まります。 + 特定のホストやホスト群にのみサーバへのアクセスを許可するためには、 + 以下のどれかの形式で <em>host</em> を指定することができます:</p> <dl> - <dt>$B%I%a%$%sL>(B ($B$N0lIt(B)</dt> + <dt>ドメイン名 (の一部)</dt> <dd> - <example><title>$BNc(B</title> + <example><title>例</title> Allow from apache.org<br /> Allow from .net example.edu </example> - <p>$B$3$NJ8;zNs$K9g$&$+!"$3$l$G=*$o$kL>A0$N%[%9%H$N%"%/%;%9$,5v2D$5$l$^$9!#(B - $B3FItJ,$,40A4$K9g$&$b$N$@$1$KE,MQ$5$l$^$9$N$G!">e$NNc$O(B - <code>foo.apache.org</code> $B$K$O%^%C%A$7$^$9$,!"(B - <code>fooapache.org</code> $B$K$O%^%C%A$7$^$;$s!#(B - $B$3$N@_Dj$r$9$k$H!"(BApache $B$O(B + <p>この文字列に合うか、これで終わる名前のホストのアクセスが許可されます。 + 各部分が完全に合うものだけに適用されますので、上の例は + <code>foo.apache.org</code> にはマッチしますが、 + <code>fooapache.org</code> にはマッチしません。 + この設定をすると、Apache は <directive module="core">HostnameLookups</directive> - $B$N@_Dj$K4X$o$i$:!"%/%i%$%"%s%H$N(B IP $B%"%I%l%9$KBP$7$F(B - DNS $B$N(B 2 $B=E5U0z$-$r9T$J$$$^$9!#(B - $B%[%9%HL>$+$i%*%j%8%J%k$N(B IP $B%"%I%l%9$r=g0z$-$7$^$9!#(B - $B=g0z$-$H5U0z$-$,0lCW$7!"%[%9%HL>$,3:Ev$7$?>l9g$K$N$_!"(B - $B%"%/%;%9$,5v2D$5$l$^$9!#(B</p></dd> + の設定に関わらず、クライアントの IP アドレスに対して + DNS の 2 重逆引きを行ないます。 + ホスト名からオリジナルの IP アドレスを順引きします。 + 順引きと逆引きが一致し、ホスト名が該当した場合にのみ、 + アクセスが許可されます。</p></dd> - <dt>$B40A4$J(B IP $B%"%I%l%9(B</dt> + <dt>完全な IP アドレス</dt> <dd> - <example><title>$BNc(B</title> + <example><title>例</title> Allow from 10.1.2.3<br /> Allow from 192.168.1.104 192.168.1.205 </example> - <p>$B%"%/%;%9$r5v2D$9$k(B IP $B%"%I%l%9$G$9!#(B</p></dd> + <p>アクセスを許可する IP アドレスです。</p></dd> - <dt>IP $B%"%I%l%9$N0lIt(B</dt> + <dt>IP アドレスの一部</dt> <dd> - <example><title>$BNc(B</title> + <example><title>例</title> Allow from 10.1<br /> Allow from 10 172.20 192.168.2 </example> - <p>$B%5%V%M%C%H$N@)8BMQ$N!"(BIP - $B%"%I%l%9$N:G=i$N0l$D$+$i;0$D$^$G$N%P%$%H$G$9!#(B</p></dd> + <p>サブネットの制限用の、IP + アドレスの最初の一つから三つまでのバイトです。</p></dd> - <dt>$B%M%C%H%o!<%/(B/$B%M%C%H%^%9%/(B $B$NBP(B</dt> + <dt>ネットワーク/ネットマスク の対</dt> <dd> - <example><title>$BNc(B</title> + <example><title>例</title> Allow from 10.1.0.0/255.255.0.0 </example> - <p>$B%M%C%H%o!<%/(B a.b.c.d $B$H%M%C%H%^%9%/(B w.x.y.z $B$G$9!#(B - $B$h$j:YN3EY$N%5%V%M%C%H@)8BMQ$G$9!#(B</p></dd> + <p>ネットワーク a.b.c.d とネットマスク w.x.y.z です。 + より細粒度のサブネット制限用です。</p></dd> - <dt>$B%M%C%H%o!<%/(B/nnn CIDR $B;XDj(B</dt> + <dt>ネットワーク/nnn CIDR 指定</dt> <dd> - <example><title>$BNc(B</title> + <example><title>例</title> Allow from 10.1.0.0/16 </example> - <p>$B%M%C%H%^%9%/$,(B nnn $B$N>e0L%S%C%H$,(B 1 - $B$H$J$C$F$$$k$b$N$+$i$J$k$3$H0J30$OA0$N$b$N$HF1$8$G$9!#(B</p></dd> + <p>ネットマスクが nnn の上位ビットが 1 + となっているものからなること以外は前のものと同じです。</p></dd> </dl> - <p>$BCm(B: $B:G8e$N;0$D$NNc$O$^$C$?$/F1$8%[%9%H$K9g$$$^$9!#(B</p> + <p>注: 最後の三つの例はまったく同じホストに合います。</p> - <p>IPv6 $B%"%I%l%9$H(B IPv6 $B$N%5%V%M%C%H$O0J2<$N$h$&$K;XDj$G$-$^$9(B:</p> + <p>IPv6 アドレスと IPv6 のサブネットは以下のように指定できます:</p> <example> Allow from 2001:db8::a00:20ff:fea7:ccea<br /> Allow from 2001:db8::a00:20ff:fea7:ccea/10 </example> - <p><directive>Allow</directive> $B%G%#%l%/%F%#%V$N0z?t$N;0$DL\$N7A<0$O!"(B - <a href="../env.html">$B4D6-JQ?t(B</a> - $B$NB8:_$K$h$j%"%/%;%9$N@)8f$r9T$J$($k$h$&$K$9$k$b$N$G$9!#(B + <p><directive>Allow</directive> ディレクティブの引数の三つ目の形式は、 + <a href="../env.html">環境変数</a> + の存在によりアクセスの制御を行なえるようにするものです。 <code>Allow from env=<var>env-variable</var></code> - $B$,;XDj$5$l$F$$$k$H!"4D6-JQ?t(B <var>env-variable</var> - $B$,B8:_$7$?>l9g$K%j%/%(%9%H$O%"%/%;%9$r5v2D$5$l$^$9!#%5!<%P$O(B + が指定されていると、環境変数 <var>env-variable</var> + が存在した場合にリクエストはアクセスを許可されます。サーバは <module>mod_setenvif</module> - $B$N%G%#%l%/%F%#%V$K$h$j!"%/%i%$%"%s%H$N%j%/%(%9%H(B - $B$NFCD'$K4p$E$$$F=@Fp$K4D6-JQ?t$r@_Dj$9$k5!G=$rDs6!$7$^$9!#(B - $B$G$9$+$i!"$3$N%G%#%l%/%F%#%V$O%/%i%$%"%s%H$N(B - <code>User-Agent</code> ($B%V%i%&%6$N<oN`(B)$B!"(B<code>Referer</code> - $B$dB>$N(B HTTP $B%j%/%(%9%H$N%X%C%@%U%#!<%k%I$J$I$K4p$E$$$F(B - $B%"%/%;%95v2D$r$9$k$?$a$K;H$&$3$H$,$G$-$^$9!#(B + のディレクティブにより、クライアントのリクエスト + の特徴に基づいて柔軟に環境変数を設定する機能を提供します。 + ですから、このディレクティブはクライアントの + <code>User-Agent</code> (ブラウザの種類)、<code>Referer</code> + や他の HTTP リクエストのヘッダフィールドなどに基づいて + アクセス許可をするために使うことができます。 </p> <example><title>Example:</title> @@ -201,35 +201,35 @@ </Directory> </example> - <p>$B$3$N>l9g!"(Buser-agent $B$NJ8;zNs$,(B <code>KnockKnock/2.0</code> - $B$G;O$^$k%V%i%&%6$N$_$,%"%/%;%9$,5v2D$5$l!"(B - $BB>$N$b$N$O%"%/%;%9$,5qH]$5$l$^$9!#(B</p> + <p>この場合、user-agent の文字列が <code>KnockKnock/2.0</code> + で始まるブラウザのみがアクセスが許可され、 + 他のものはアクセスが拒否されます。</p> </usage> </directivesynopsis> <directivesynopsis> <name>Deny</name> -<description>$B%5!<%P$,%"%/%;%9$r5qH]$9$k%[%9%H$r@)8f$9$k(B</description> +<description>サーバがアクセスを拒否するホストを制御する</description> <syntax> Deny from all|<var>host</var>|env=<var>env-variable</var> [<var>host</var>|env=<var>env-variable</var>] ...</syntax> <contextlist><context>directory</context><context>.htaccess</context> </contextlist> <override>Limit</override> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O%[%9%HL>!"(BIP - $B%"%I%l%9!"4D6-JQ?t$K4p$E$$$F%5!<%P$X$N%"%/%;%9$r@)8B$7$^$9!#(B - <directive>Deny</directive> $B%G%#%l%/%F%#%V$N0z?t$O(B <directive + <p>このディレクティブはホスト名、IP + アドレス、環境変数に基づいてサーバへのアクセスを制限します。 + <directive>Deny</directive> ディレクティブの引数は <directive module="mod_access_compat">Allow</directive> - $B%G%#%l%/%F%#%V$H$^$C$?$/F1$8$G$9!#(B</p> + ディレクティブとまったく同じです。</p> </usage> </directivesynopsis> <directivesynopsis> <name>Order</name> -<description>$B%G%U%)%k%H$N%"%/%;%92DG=$J>uBV$H!"(B<directive>Allow</directive> $B$H(B -<directive>Deny</directive> $B$,I>2A$5$l$k=gHV$r@)8f$9$k(B</description> +<description>デフォルトのアクセス可能な状態と、<directive>Allow</directive> と +<directive>Deny</directive> が評価される順番を制御する</description> <syntax> Order <var>ordering</var></syntax> <default>Order Deny,Allow</default> <contextlist><context>directory</context><context>.htaccess</context> @@ -238,88 +238,88 @@ <usage> - <p><directive>Order</directive> $B%G%#%l%/%F%#%V$O(B <directive - module="mod_access_compat">Allow</directive> $B%G%#%l%/%F%#%V$H(B<directive - module="mod_access_compat">Deny</directive> $B$H6&$K(B"3$BCJ3,%"%/%;%9@)8f%7%9%F%`(B" - $B$r@)8f$7$^$9!#Bh(B1$BCJ3,L\$G$O(B <directive>Order</directive> $B%G%#%l%/%F%#%V$G(B1$BHVL\$K(B - $B;XDj$7$?%G%#%l%/%F%#%V(B(<directive module="mod_access_compat">Allow</directive> - $B$^$?$O(B <directive module="mod_access_compat">Deny</directive>)$B$rA4$F=hM}$7$^$9!#(B - $BBh(B2$BCJ3,L\$G!";D$j$N%G%#%l%/%F%#%V(B(<directive - module="mod_access_compat">Deny</directive> $B$^$?$O(B <directive + <p><directive>Order</directive> ディレクティブは <directive + module="mod_access_compat">Allow</directive> ディレクティブと<directive + module="mod_access_compat">Deny</directive> と共に"3段階アクセス制御システム" + を制御します。第1段階目では <directive>Order</directive> ディレクティブで1番目に + 指定したディレクティブ(<directive module="mod_access_compat">Allow</directive> + または <directive module="mod_access_compat">Deny</directive>)を全て処理します。 + 第2段階目で、残りのディレクティブ(<directive + module="mod_access_compat">Deny</directive> または <directive module="mod_access_compat">Allow</directive>) - $B$rA4$F=hM}$7$^$9!#Bh(B3$BCJ3,L\$G!"Bh(B1$BCJ3,L\$HBh(B2$BCJ3,L\$G(B - $B%^%C%A$7$J$+$C$?%j%/%(%9%H$r=hM}$7$^$9!#(B</p> + を全て処理します。第3段階目で、第1段階目と第2段階目で + マッチしなかったリクエストを処理します。</p> - <p>$BA4$F$N(B <directive module="mod_access_compat">Allow</directive> $B$H(B <directive - module="mod_access_compat">Deny</directive> $B$,=hM}$5$l!"7k6I$N$H$3$m:G8e$K%^%C%A(B - $B$7$?>r7o$,M-8z$H$J$k$3$H$KCm0U$7$F$/$@$5$$!#$3$l$O:G=i$K%^%C%A$7$?>r7o$@$1$,M-8z(B - $B$H$J$k!"E57?E*$J%U%!%$%"%&%)!<%k$NF0:n$H$O0[$J$C$F$$$^$9!#(B - $B$^$?!"@_Dj%U%!%$%k$K=q$/=gHV$K$O0UL#$O$"$j$^$;$s!#(B<directive - module="mod_access_compat">Allow</directive> $B9T$OA4It0l$D$N%0%k!<%W$H$7$F07$o$l!"(B - <directive module="mod_access_compat">Deny</directive> $B9T$O$b$&0l$D$N%0%k!<%W$H$_$J$5$l$^$9!#(B - $B$^$?%G%U%)%k%H>uBV$OC1FH$G0l$D$N%0%k!<%W$H$_$J$5$l$^$9!#(B</p> + <p>全ての <directive module="mod_access_compat">Allow</directive> と <directive + module="mod_access_compat">Deny</directive> が処理され、結局のところ最後にマッチ + した条件が有効となることに注意してください。これは最初にマッチした条件だけが有効 + となる、典型的なファイアウォールの動作とは異なっています。 + また、設定ファイルに書く順番には意味はありません。<directive + module="mod_access_compat">Allow</directive> 行は全部一つのグループとして扱われ、 + <directive module="mod_access_compat">Deny</directive> 行はもう一つのグループとみなされます。 + またデフォルト状態は単独で一つのグループとみなされます。</p> - <p><em>Order</em> $B@_Dj$O0J2<$N0J2<$N$I$l$+$G$9!#(B</p> + <p><em>Order</em> 設定は以下の以下のどれかです。</p> <dl> <dt><code>Allow,Deny</code></dt> - <dd>$B$^$:(B <directive module="mod_access_compat">Allow</directive> - $B%G%#%l%/%F%#%V$,E,MQ$5$l$^$9!#$I$l$K$b%^%C%A$7$J$+$C$?>l9g!"$3$N;~E@$G(B - $B%j%/%(%9%H$O5qH]$5$l$^$9!#<!$K!"A4$F$N(B <directive module="mod_access_compat"> - Deny</directive> $B%G%#%l%/%F%#%V$,E,MQ$5$l$^$9!#$I$l$+0l$D$G$b%^%C%A$7$?>l9g$O!"(B - $B%j%/%(%9%H$O5qH]$5$l$^$9!#(B - $B:G8e$K!"(B <directive module="mod_access_compat">Allow</directive> $B$K$b(B <directive - module="mod_access_compat">Deny</directive> $B$K$b%^%C%A$7$J$+$C$?%j%/%(%9%H$O(B - $B%G%U%)%k%H@_Dj$,E,MQ$5$l$k$N$G5qH]$5$l$^$9!#(B</dd> + <dd>まず <directive module="mod_access_compat">Allow</directive> + ディレクティブが適用されます。どれにもマッチしなかった場合、この時点で + リクエストは拒否されます。次に、全ての <directive module="mod_access_compat"> + Deny</directive> ディレクティブが適用されます。どれか一つでもマッチした場合は、 + リクエストは拒否されます。 + 最後に、 <directive module="mod_access_compat">Allow</directive> にも <directive + module="mod_access_compat">Deny</directive> にもマッチしなかったリクエストは + デフォルト設定が適用されるので拒否されます。</dd> <dt><code>Deny,Allow</code></dt> - <dd>$B$^$:(B <directive module="mod_access_compat">Deny</directive> - $B%G%#%l%/%F%#%V$,E,MQ$5$l$^$9!#$I$l$+0l$D$G$b%^%C%A$7$?>l9g$O!"(B - <directive module="mod_access_compat">Allow</directive> $B$N$I$l$K$b(B - $B%^%C%A(B<strong>$B$7$J$1$l$P(B</strong>$B!"%"%/%;%9$O5qH]$5$l$^$9!#(B - $B$I$N(B <directive module="mod_access_compat">Allow</directive> $B$K$b(B <directive - module="mod_access_compat">Deny</directive> $B$K$b%^%C%A$7$J$$%j%/%(%9%H$O(B - $B5v2D$5$l$^$9!#(B</dd> + <dd>まず <directive module="mod_access_compat">Deny</directive> + ディレクティブが適用されます。どれか一つでもマッチした場合は、 + <directive module="mod_access_compat">Allow</directive> のどれにも + マッチ<strong>しなければ</strong>、アクセスは拒否されます。 + どの <directive module="mod_access_compat">Allow</directive> にも <directive + module="mod_access_compat">Deny</directive> にもマッチしないリクエストは + 許可されます。</dd> <dt><code>Mutual-failure</code></dt> - <dd>$B$3$l$O(B <directive>Order Allow,Deny</directive> $B$HA4$/F1$88z2L$r;}$A!"(B - $B$=$N$?$aHs?d>)$H$J$C$F$$$^$9!#(B + <dd>これは <directive>Order Allow,Deny</directive> と全く同じ効果を持ち、 + そのため非推奨となっています。 </dd> </dl> - <p>$B%-!<%o!<%I$N4V$KCV$1$k$N$O%3%s%^$@$1$G$9!#(B - $B4V$K(B<em>$B6uGr$,$"$C$F$O$$$1$^$;$s(B</em>$B!#(B</p> + <p>キーワードの間に置けるのはコンマだけです。 + 間に<em>空白があってはいけません</em>。</p> <table border="1"> <tr> - <th>$B%^%C%A(B</th> - <th>Allow,Deny $B;~$N7k2L(B</th> - <th>Deny,Allow $B;~$N7k2L(B</th> + <th>マッチ</th> + <th>Allow,Deny 時の結果</th> + <th>Deny,Allow 時の結果</th> </tr><tr> - <th>Allow $B$@$1$K%^%C%A(B</th> - <td>$B5v2D(B</td> - <td>$B5v2D(B</td> + <th>Allow だけにマッチ</th> + <td>許可</td> + <td>許可</td> </tr><tr> - <th>Deny $B$@$1$K%^%C%A(B</th> - <td>$B5qH](B</td> - <td>$B5qH](B</td> + <th>Deny だけにマッチ</th> + <td>拒否</td> + <td>拒否</td> </tr><tr> - <th>$B$I$A$i$K$b%^%C%A$7$J$$(B</th> - <td>2$BHVL\$N%G%#%l%/%F%#%V$,%G%U%)%k%H(B: $B5qH](B</td> - <td>2$BHVL\$N%G%#%l%/%F%#%V$,%G%U%)%k%H(B: $B5v2D(B</td> + <th>どちらにもマッチしない</th> + <td>2番目のディレクティブがデフォルト: 拒否</td> + <td>2番目のディレクティブがデフォルト: 許可</td> </tr><tr> - <th>Allow $B$H(B Deny $BN>J}$K%^%C%A(B</th> - <td>$B:G8e$K%^%C%A$7$?$[$&(B: $B5qH](B</td> - <td>$B:G8e$K%^%C%A$7$?$[$&(B: $B5v2D(B</td> + <th>Allow と Deny 両方にマッチ</th> + <td>最後にマッチしたほう: 拒否</td> + <td>最後にマッチしたほう: 許可</td> </tr> </table> - <p>$B0J2<$NNc$G$O!"(Bapache.org - $B%I%a%$%s$N$9$Y$F$N%[%9%H$O%"%/%;%9$r5v2D$5$l$^$9!#(B - $BB>$N$9$Y$F$N%[%9%H$O%"%/%;%9$r5qH]$5$l$^$9!#(B</p> + <p>以下の例では、apache.org + ドメインのすべてのホストはアクセスを許可されます。 + 他のすべてのホストはアクセスを拒否されます。</p> <example> Order Deny,Allow<br /> @@ -327,12 +327,12 @@ Allow from apache.org </example> - <p>$B<!$NNc$G$O!"(Bfoo.apache.org $B%5%V%I%a%$%s$K$"$k%[%9%H0J30$N!"(B - apache.org $B%I%a%$%s$N$9$Y$F$N%[%9%H$,%"%/%;%9$r5v2D$5$l$^$9!#(B + <p>次の例では、foo.apache.org サブドメインにあるホスト以外の、 + apache.org ドメインのすべてのホストがアクセスを許可されます。 apache.org - $B%I%a%$%s$G$J$$%[%9%H$O!"%G%U%)%k%H$N>uBV$,(B <directive - module="mod_access_compat">Deny</directive> $B$N$?$a!"(B - $B%5!<%P$X$N%"%/%;%9$r5qH]$5$l$^$9!#(B</p> + ドメインでないホストは、デフォルトの状態が <directive + module="mod_access_compat">Deny</directive> のため、 + サーバへのアクセスを拒否されます。</p> <example> Order Allow,Deny<br /> @@ -340,23 +340,23 @@ Deny from foo.apache.org </example> - <p>$B0lJ}!">e$NNc$N(B <directive>Order</directive> $B$,(B <code>Deny,Allow</code> - $B$KJQ$o$C$F$$$l$P!"$9$Y$N%[%9%H$K%"%/%;%9$,5v2D$5$l$^$9!#(B - $B$3$l$O!"@_Dj%U%!%$%kCf$N<B:]$N=gHV$K4X$o$i$:!"(B - <code>Allow from apache.org</code> $B$,:G8e$KI>2A$5$l$F!"(B - <code>Deny from foo.apache.org</code> $B$r>e=q$-$9$k$+$i$G$9!#(B + <p>一方、上の例の <directive>Order</directive> が <code>Deny,Allow</code> + に変わっていれば、すべのホストにアクセスが許可されます。 + これは、設定ファイル中の実際の順番に関わらず、 + <code>Allow from apache.org</code> が最後に評価されて、 + <code>Deny from foo.apache.org</code> を上書きするからです。 <code>apache.org</code> - $B%I%a%$%s$K$J$$%[%9%H$b!"%G%U%)%k%H$N>uBV$,(B <directive + ドメインにないホストも、デフォルトの状態が <directive module="mod_access_compat">Allow</directive> - $B$J$N$G!"%"%/%;%9$r5v2D$5$l$^$9!#(B + なので、アクセスを許可されます。 </p> <p><directive>Order</directive> - $B%G%#%l%/%F%#%V$O%G%U%)%k%H$N%"%/%;%9$N>uBV$K1F6A$rM?$($k$N$G!"(B - <directive module="mod_authz_host">Allow</directive> $B%G%#%l%/%F%#%V$H(B + ディレクティブはデフォルトのアクセスの状態に影響を与えるので、 + <directive module="mod_authz_host">Allow</directive> ディレクティブと <directive module="mod_authz_host">Deny</directive> - $B%G%#%l%/%F%#%V$,L5$/$F$b!"%5!<%P$N%"%/%;%9$K1F6A$rM?$($k$3$H$,$G$-$^$9!#(B - $B$?$H$($P!"(B</p> + ディレクティブが無くても、サーバのアクセスに影響を与えることができます。 + たとえば、</p> <example> <Directory /www><br /> @@ -366,60 +366,60 @@ </Directory> </example> - <p>$B$O%G%U%)%k%H$N%"%/%;%9>uBV$,(B - <directive module="mod_access_compat">Deny</directive> $B$K$J$k$?$a!"(B - <code>/www</code> $B%G%#%l%/%H%j$X$N$9$Y$F$N%"%/%;%9$r5qH]$7$^$9!#(B + <p>はデフォルトのアクセス状態が + <directive module="mod_access_compat">Deny</directive> になるため、 + <code>/www</code> ディレクトリへのすべてのアクセスを拒否します。 </p> <p><directive>Order</directive> - $B%G%#%l%/%F%#%V$O%5!<%P$N@_Dj=hM}$N3FCJ3,$G$@$1(B - $B%"%/%;%9%G%#%l%/%F%#%V$N=hM}$N=gHV$rJQ99$7$^$9!#$3$l$O!"$?$H$($P!"(B - <directive>Order</directive> $B%G%#%l%/%F%#%V$N@_Dj$K4X$o$i$:!"(B - <directive module="core" type="section">Location</directive> $B%;%/%7%g%s$N(B - <directive module="mod_access_compat">Allow</directive> $B%G%#%l%/%F%#%V$d(B - <directive module="mod_access_compat">Deny</directive> $B%G%#%l%/%F%#%V$O!"(B - <directive module="core" type="sectino">Directory</directive> $B%;%/%7%g%s$d(B - <code>.htaccess</code> $B%U%!%$%k$N(B <directive + ディレクティブはサーバの設定処理の各段階でだけ + アクセスディレクティブの処理の順番を変更します。これは、たとえば、 + <directive>Order</directive> ディレクティブの設定に関わらず、 + <directive module="core" type="section">Location</directive> セクションの + <directive module="mod_access_compat">Allow</directive> ディレクティブや + <directive module="mod_access_compat">Deny</directive> ディレクティブは、 + <directive module="core" type="sectino">Directory</directive> セクションや + <code>.htaccess</code> ファイルの <directive module="mod_access_compat">Allow</directive> - $B%G%#%l%/%F%#%V$d(B <directive module="mod_access_compat">Deny</directive> - $B%G%#%l%/%F%#%V$h$j$b>o$K8e$KI>2A$5$l$k$H$$$&$3$H$r0UL#$7$^$9!#(B - $B@_Dj%;%/%7%g%s$N%^!<%8$N>\:Y$K$D$$$F$O!"(B + ディレクティブや <directive module="mod_access_compat">Deny</directive> + ディレクティブよりも常に後に評価されるということを意味します。 + 設定セクションのマージの詳細については、 <a href="../sections.html">Directory,Location, Files - $B%;%/%7%g%s$NF0:nJ}K!(B</a> $B$r;2>H$7$F$/$@$5$$!#(B</p> + セクションの動作方法</a> を参照してください。</p> </usage> </directivesynopsis> <directivesynopsis> <name>Satisfy</name> -<description>$B%[%9%H%l%Y%k$N%"%/%;%9@)8f$H%f!<%6G'>Z$H$NAj8_:nMQ$r;XDj(B</description> +<description>ホストレベルのアクセス制御とユーザ認証との相互作用を指定</description> <syntax>Satisfy Any|All</syntax> <default>Satisfy All</default> <contextlist><context>directory</context><context>.htaccess</context> </contextlist> <override>AuthConfig</override> -<compatibility>$B%P!<%8%g%s(B 2.0.51 $B0J9_$G$O(B <directive module="core" type="section" - >Limit</directive> $B%G%#%l%/%F%#%V$H(B <directive module="core" - type="section">LimitExcept</directive> $B%G%#%l%/%F%#%V$N1F6A$r<u$1$k(B +<compatibility>バージョン 2.0.51 以降では <directive module="core" type="section" + >Limit</directive> ディレクティブと <directive module="core" + type="section">LimitExcept</directive> ディレクティブの影響を受ける </compatibility> <usage> - <p><directive module="mod_authz_host">Allow</directive> $B$H(B - <directive module="mod_authz_core">Require</directive> $B$NN>J}$,;H$o$l$F$$$k$H$-$N(B - $B%"%/%;%9%]%j%7!<$r@_Dj$7$^$9!#%Q%i%a!<%?$O(B <code>All</code> $B$+(B <code>Any</code> - $B$G$9!#$3$N%G%#%l%/%F%#%V$O$"$k>l=j$X$N%"%/%;%9$,%f!<%6L>(B/$B%Q%9%o!<%I(B - <em>$B$H(B</em>$B%/%i%$%"%s%H$N%[%9%H$N%"%I%l%9$G@)8B$5$l$F$$$k$H$-$K$N$_(B - $BLrN)$A$^$9!#%G%U%)%k%H$NF0:n(B (<code>All</code>) $B$O%/%i%$%"%s%H$,%"%I%l%9$K$h$k(B - $B%"%/%;%9@)8B$rK~$?$7!"(B<em>$B$+$D(B</em>$B@5$7$$%f!<%6L>$H%Q%9%o!<%I$rF~NO$9$k$3$H$r(B - $BMW5a$7$^$9!#(B<code>Any</code> $B$G$O!"%/%i%$%"%s%H$O%[%9%H$N@)8B$rK~$?$9$+!"(B - $B@5$7$$%f!<%6L>$H%Q%9%o!<%I$NF~NO$r$9$k$+$r$9$l$P%"%/%;%9$r5v2D$5$l$^$9!#(B - $B$3$l$O!"$"$k>l=j$r%Q%9%o!<%I$GJ]8n$9$k$1$l$I!"FCDj$N%"%I%l%9$+$i$N(B - $B%/%i%$%"%s%H$K$O%Q%9%o!<%I$NF~NO$rMW5a$;$:$K%"%/%;%9$r5v2D$9$k!"(B - $B$H$$$&$h$&$J$H$-$K;HMQ$G$-$^$9!#(B</p> - - <p>$BNc$($P!"F1$8%M%C%H%o!<%/>e$K$$$k?M$K$O%&%'%V%5%$%H$N$"$kItJ,$K$D$$$F(B - $BL5@)8B$N%"%/%;%9$r5v$7$?$$$1$l$I!"30$N%M%C%H%o!<%/$N?M$K$O(B - $B%Q%9%o!<%I$rDs6!$5$;$k$h$&$K$9$k$?$a$K$O!"<!$N$h$&$J@_Dj$r$9$k$3$H$,(B - $B$G$-$^$9(B:</p> + <p><directive module="mod_authz_host">Allow</directive> と + <directive module="mod_authz_core">Require</directive> の両方が使われているときの + アクセスポリシーを設定します。パラメータは <code>All</code> か <code>Any</code> + です。このディレクティブはある場所へのアクセスがユーザ名/パスワード + <em>と</em>クライアントのホストのアドレスで制限されているときにのみ + 役立ちます。デフォルトの動作 (<code>All</code>) はクライアントがアドレスによる + アクセス制限を満たし、<em>かつ</em>正しいユーザ名とパスワードを入力することを + 要求します。<code>Any</code> では、クライアントはホストの制限を満たすか、 + 正しいユーザ名とパスワードの入力をするかをすればアクセスを許可されます。 + これは、ある場所をパスワードで保護するけれど、特定のアドレスからの + クライアントにはパスワードの入力を要求せずにアクセスを許可する、 + というようなときに使用できます。</p> + + <p>例えば、同じネットワーク上にいる人にはウェブサイトのある部分について + 無制限のアクセスを許したいけれど、外のネットワークの人には + パスワードを提供させるようにするためには、次のような設定をすることが + できます:</p> <example> Require valid-user<br /> @@ -427,14 +427,14 @@ Satisfy Any </example> - <p>$B%P!<%8%g%s(B 2.0.51 $B$+$i$O(B + <p>バージョン 2.0.51 からは <directive module="core" - type="section">Limit</directive> $B%;%/%7%g%s$H(B + type="section">Limit</directive> セクションと <directive module="core" type="section" - >LimitExcept</directive> $B%;%/%7%g%s$r;HMQ$9$k$3$H$G(B - <directive>Satisfy</directive> $B%G%#%l%/%F%#%V$,(B - $BE,MQ$5$l$k%a%=%C%I$r@)8B$9$k$3$H$,(B - $B$G$-$k$h$&$K$J$j$^$7$?!#(B</p> + >LimitExcept</directive> セクションを使用することで + <directive>Satisfy</directive> ディレクティブが + 適用されるメソッドを制限することが + できるようになりました。</p> </usage> <seealso><directive module="mod_access_compat">Allow</directive></seealso> <seealso><directive module="mod_authz_core">Require</directive></seealso> diff --git a/docs/manual/mod/mod_actions.xml.ja b/docs/manual/mod/mod_actions.xml.ja index d017a18bfc..66ef117565 100644 --- a/docs/manual/mod/mod_actions.xml.ja +++ b/docs/manual/mod/mod_actions.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 151408:420990 (outdated) --> @@ -24,57 +24,57 @@ <name>mod_actions</name> -<description>$B%a%G%#%"%?%$%W$d%j%/%(%9%H%a%=%C%I$K1~$8$F(B -CGI $B%9%/%j%W%H$r<B9T$9$k5!G=$rDs6!(B</description> +<description>メディアタイプやリクエストメソッドに応じて +CGI スクリプトを実行する機能を提供</description> <status>Base</status> <sourcefile>mod_actions.c</sourcefile> <identifier>actions_module</identifier> <summary> - <p>$B$3$N%b%8%e!<%k$K$OFs$D$N%G%#%l%/%F%#%V$,$"$j$^$9!#(B<directive + <p>このモジュールには二つのディレクティブがあります。<directive module="mod_actions">Action</directive> - $B%G%#%l%/%F%#%V$OFCDj$N(B MIME $B%?%$%W$N%U%!%$%k$r%j%/%(%9%H$5$l$?>l9g$K(B - CGI $B%9%/%j%W%H$,<B9T$5$l$k$h$&$K$7$^$9!#(B<directive + ディレクティブは特定の MIME タイプのファイルをリクエストされた場合に + CGI スクリプトが実行されるようにします。<directive module="mod_actions">Script</directive> - $B%G%#%l%/%F%#%V$O%j%/%(%9%H$GFCDj$N%a%=%C%I$,;HMQ$5$l$?$H$-$K(B CGI - $B%9%/%j%W%H$,<B9T$5$l$k$h$&$K$7$^$9!#(B - $B$3$l$O%U%!%$%k$r=hM}$9$k%9%/%j%W%H$N<B9T$r$:$C$H4JC1$K$7$^$9!#(B</p> + ディレクティブはリクエストで特定のメソッドが使用されたときに CGI + スクリプトが実行されるようにします。 + これはファイルを処理するスクリプトの実行をずっと簡単にします。</p> </summary> <seealso><module>mod_cgi</module></seealso> -<seealso><a href="../howto/cgi.html">CGI $B$K$h$kF0E*%3%s%F%s%D(B</a></seealso> -<seealso><a href="../handler.html">Apache $B$N%O%s%I%i$N;HMQ(B</a></seealso> +<seealso><a href="../howto/cgi.html">CGI による動的コンテンツ</a></seealso> +<seealso><a href="../handler.html">Apache のハンドラの使用</a></seealso> <directivesynopsis> <name>Action</name> -<description>$BFCDj$N%O%s%I%i$d%3%s%F%s%H%?%$%W$KBP$7$F(B CGI $B$r<B9T$9$k$h$&$K(B -$B@_Dj(B</description> +<description>特定のハンドラやコンテントタイプに対して CGI を実行するように +設定</description> <syntax>Action <var>action-type</var> <var>cgi-script</var> [virtual]</syntax> <contextlist> <context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context> </contextlist> <override>FileInfo</override> -<compatibility><code>virtual</code> $B=$>~;R$H%O%s%I%iEO$7$O(B -Apache 2.1 $B$GF3F~$5$l$^$7$?(B</compatibility> +<compatibility><code>virtual</code> 修飾子とハンドラ渡しは +Apache 2.1 で導入されました</compatibility> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O(B <var>action-type</var> - $B$,%j%/%(%9%H$5$l$?$H$-$K(B <var>cgi-script</var> - $B$,<B9T$5$l$k$H$$$&F0:n$rDI2C$7$^$9!#(B<var>cgi-script</var> $B$O(B - <directive module="mod_alias">ScriptAlias</directive> $B$d(B - <directive module="mod_mime">AddHandler</directive> $B$K$h$C$F(B - CGI $B%9%/%j%W%H$K@_Dj$5$l$?%j%=!<%9$X$N(B URL-path $B$G$9!#(B - <var>Action-type</var> $B$K$O(B - <a href="../handler.html">handler</a> $B$+(B MIME - $B%3%s%F%s%H%?%$%W$r;XDj$G$-$^$9!#%j%/%(%9%H$5$l$?%I%-%e%a%s%H$N(B URL - $B$H%U%!%$%k$N%Q%9$OI8=`(B CGI $B4D6-JQ?t(B <code>PATH_INFO</code> $B$H(B - <code>PATH_TRANSLATED</code> $B$r;H$C$FEA$($i$l$^$9!#(B - $BFCDj$N%j%/%(%9%H$KBP$7$F;HMQ$5$l$k%O%s%I%i$X$O!"(B - <code>REDIRECT_HANDLER</code> $BJQ?t$r;H$C$FEO$;$^$9!#(B</p> - - <example><title>$BNc(B</title> + <p>このディレクティブは <var>action-type</var> + がリクエストされたときに <var>cgi-script</var> + が実行されるという動作を追加します。<var>cgi-script</var> は + <directive module="mod_alias">ScriptAlias</directive> や + <directive module="mod_mime">AddHandler</directive> によって + CGI スクリプトに設定されたリソースへの URL-path です。 + <var>Action-type</var> には + <a href="../handler.html">handler</a> か MIME + コンテントタイプを指定できます。リクエストされたドキュメントの URL + とファイルのパスは標準 CGI 環境変数 <code>PATH_INFO</code> と + <code>PATH_TRANSLATED</code> を使って伝えられます。 + 特定のリクエストに対して使用されるハンドラへは、 + <code>REDIRECT_HANDLER</code> 変数を使って渡せます。</p> + + <example><title>例</title> # Requests for files of a particular MIME content type:<br /> Action image/gif /cgi-bin/images.cgi<br /> <br /> @@ -83,20 +83,20 @@ Apache 2.1 $B$GF3F~$5$l$^$7$?(B</compatibility> Action my-file-type /cgi-bin/program.cgi<br /> </example> - <p>$B:G=i$NNc$G$O!"(BMIME $B%3%s%F%s%H%?%$%W$,(B <code>image/gif</code> - $B$N%U%!%$%k$X$N%j%/%(%9%H$O!";XDj$7$?%9%/%j%W%H(B - <code>/cgi-bin/images.cgi</code> $B$G=hM}$5$l$^$9!#(B</p> + <p>最初の例では、MIME コンテントタイプが <code>image/gif</code> + のファイルへのリクエストは、指定したスクリプト + <code>/cgi-bin/images.cgi</code> で処理されます。</p> - <p>2 $BHVL\$NNc$G$O!"3HD%;R$,(B <code>.xyz</code> - $B$N%U%!%$%k$X$N%j%/%(%9%H$O!";XDj$7$?%9%/%j%W%H(B - <code>/cgi-bin/program.cgi</code> $B$G=hM}$5$l$^$9!#(B</p> + <p>2 番目の例では、拡張子が <code>.xyz</code> + のファイルへのリクエストは、指定したスクリプト + <code>/cgi-bin/program.cgi</code> で処理されます。</p> - <p>$B%*%W%7%g%s$N(B <code>virtual</code> $B=$>~;R$r;HMQ$9$k$H!"(B - $B%j%/%(%9%H$5$l$?%U%!%$%k$,<B:]$KB8:_$9$k$+$I$&$+$r8!::$7$J$$$h$&$K$G$-$^$9!#(B - $B$3$l$ONc$($P!"(B<directive>Action</directive> $B%G%#%l%/%F%#%V$r%P!<%A%c%k$J(B - Location $B$K;HMQ$7$?$$!"$H$$$C$?>l9g$KJXMx$G$9!#(B</p> + <p>オプションの <code>virtual</code> 修飾子を使用すると、 + リクエストされたファイルが実際に存在するかどうかを検査しないようにできます。 + これは例えば、<directive>Action</directive> ディレクティブをバーチャルな + Location に使用したい、といった場合に便利です。</p> - <example><title>$BNc(B</title> + <example><title>例</title> <Location /news><br /> <indent> SetHandler news-handler<br /> @@ -111,41 +111,41 @@ Apache 2.1 $B$GF3F~$5$l$^$7$?(B</compatibility> <directivesynopsis> <name>Script</name> -<description>$BFCDj$N%j%/%(%9%H%a%=%C%I$KBP$7$F(B CGI $B%9%/%j%W%H$r(B -$B<B9T$9$k$h$&$K@_Dj(B</description> +<description>特定のリクエストメソッドに対して CGI スクリプトを +実行するように設定</description> <syntax>Script <var>method</var> <var>cgi-script</var></syntax> <contextlist> <context>server config</context><context>virtual host</context> <context>directory</context></contextlist> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O(B <var>method</var> - $B$H$$$&%a%=%C%I$r;H$C$F%j%/%(%9%H$,9T$J$o$l$?$H$-$K(B - <var>cgi-script</var> $B$r<B9T$9$k$H$$$&F0:n$rDI2C$7$^$9!#(B - <var>cgi-script</var> $B$O(B - <directive module="mod_alias">ScriptAlias</directive> $B$d(B - <directive module="mod_mime">AddHandler</directive> $B$K$h$C$F(B - CGI $B%9%/%j%W%H$K@_Dj$5$l$?%j%=!<%9$X$N(B URL-path $B$G$9!#(B - $B%j%/%(%9%H$5$l$?%I%-%e%a%s%H$N(B URL $B$H%U%!%$%k$N%Q%9$OI8=`(B CGI - $B4D6-JQ?t(B <code>PATH_INFO</code> $B$H(B <code>PATH_TRANSLATED</code> - $B$r;H$C$FEA$($i$l$^$9!#(B</p> + <p>このディレクティブは <var>method</var> + というメソッドを使ってリクエストが行なわれたときに + <var>cgi-script</var> を実行するという動作を追加します。 + <var>cgi-script</var> は + <directive module="mod_alias">ScriptAlias</directive> や + <directive module="mod_mime">AddHandler</directive> によって + CGI スクリプトに設定されたリソースへの URL-path です。 + リクエストされたドキュメントの URL とファイルのパスは標準 CGI + 環境変数 <code>PATH_INFO</code> と <code>PATH_TRANSLATED</code> + を使って伝えられます。</p> <note> - $BG$0U$N%a%=%C%IL>$r;HMQ$9$k$3$H$,$G$-$^$9!#(B - <strong>$B%a%=%C%IL>$OBgJ8;z>.J8;z$r6hJL$7$^$9(B</strong>$B!#$G$9$+$i!"(B - <code>Script PUT</code> $B$H(B <code>Script put</code> - $B$O$^$C$?$/0c$C$?8z2L$K$J$j$^$9!#(B + 任意のメソッド名を使用することができます。 + <strong>メソッド名は大文字小文字を区別します</strong>。ですから、 + <code>Script PUT</code> と <code>Script put</code> + はまったく違った効果になります。 </note> - <p><directive>Script</directive> $B%3%^%s%I$O%G%U%)%k%H$NF0:n$r(B - $BDI2C$9$k$@$1$G$"$k$3$H$K(B - $BCm0U$7$F$/$@$5$$!#$b$7(B CGI $B%9%/%j%W%H$,8F$P$l$?$j!"%j%/%(%9%H$5$l$?(B - $B%a%=%C%I$rFbIt$G07$&$3$H$N$G$-$kB>$N%j%=!<%9$,$"$l$P!"$=$l$,9T$J$o$l$^$9!#(B - <code>GET</code> $B%a%=%C%I$N(B <directive>Script</directive> $B$OLd9g$;(B - $B0z?t$,$"$k>l9g$K$N$_(B - (<em>$B$?$H$($P(B</em>$B!"(Bfoo.html?hi) $B8F$P$l$k$H$$$&$3$H$K$bCm0U$7$F$/$@$5$$!#(B - $B$=$&$G$J$$>l9g$O!"%j%/%(%9%H$ODL>oDL$j=hM}$5$l$^$9!#(B</p> + <p><directive>Script</directive> コマンドはデフォルトの動作を + 追加するだけであることに + 注意してください。もし CGI スクリプトが呼ばれたり、リクエストされた + メソッドを内部で扱うことのできる他のリソースがあれば、それが行なわれます。 + <code>GET</code> メソッドの <directive>Script</directive> は問合せ + 引数がある場合にのみ + (<em>たとえば</em>、foo.html?hi) 呼ばれるということにも注意してください。 + そうでない場合は、リクエストは通常通り処理されます。</p> - <example><title>$BNc(B</title> + <example><title>例</title> # For <ISINDEX>-style searching<br /> Script GET /cgi-bin/search<br /> <br /> diff --git a/docs/manual/mod/mod_alias.xml.ja b/docs/manual/mod/mod_alias.xml.ja index 469b5e9b78..93a78a5f0e 100644 --- a/docs/manual/mod/mod_alias.xml.ja +++ b/docs/manual/mod/mod_alias.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 151408:554716 (outdated) --> @@ -23,75 +23,75 @@ <modulesynopsis metafile="mod_alias.xml.meta"> <name>mod_alias</name> -<description>$B%[%9%H%U%!%$%k%7%9%F%`>e$N$$$m$$$m$J0c$&>l=j$r(B - $B%I%-%e%a%s%H%D%j!<$K%^%C%W$9$k5!G=$H!"(B - URL $B$N%j%@%$%l%/%H$r9T$J$&5!G=$rDs6!$9$k(B</description> +<description>ホストファイルシステム上のいろいろな違う場所を + ドキュメントツリーにマップする機能と、 + URL のリダイレクトを行なう機能を提供する</description> <status>Base</status> <sourcefile>mod_alias.c</sourcefile> <identifier>alias_module</identifier> <summary> - <p>$B$3$N%b%8%e!<%k$N%G%#%l%/%F%#%V$O%5!<%P$K%j%/%(%9%H$,E~Ce$7$?$H$-$K(B - URL $B$NA`:n$d@)8f$r$9$k$3$H$r2DG=$K$7$^$9!#(B<directive + <p>このモジュールのディレクティブはサーバにリクエストが到着したときに + URL の操作や制御をすることを可能にします。<directive module="mod_alias">Alias</directive> - $B%G%#%l%/%F%#%V$H(B <directive module="mod_alias">ScriptAlias</directive> - $B%G%#%l%/%F%#%V$O(B - URL $B$H%U%!%$%k%7%9%F%`$N%Q%9$r%^%C%W$9$k$?$a$K;HMQ$5$l$^$9!#$3$l$O(B + ディレクティブと <directive module="mod_alias">ScriptAlias</directive> + ディレクティブは + URL とファイルシステムのパスをマップするために使用されます。これは <directive module="core">DocumentRoot</directive> - $B$N2<$K$J$$%I%-%e%a%s%H$r%&%'%V$N%I%-%e%a%s%H%D%j!<$N0lIt$H$7$F(B - $BAw$i$l$k$h$&$K$7$^$9!#(B<directive module="mod_alias">ScriptAlias</directive> - $B%G%#%l%/%F%#%V$K$O%^%C%W@h$N%G%#%l%/%H%j$,(B CGI - $B%9%/%j%W%H$N$_$G$"$k$3$H$r<($9$H$$$&DI2C$N8z2L$,$"$j$^$9!#(B + の下にないドキュメントをウェブのドキュメントツリーの一部として + 送られるようにします。<directive module="mod_alias">ScriptAlias</directive> + ディレクティブにはマップ先のディレクトリが CGI + スクリプトのみであることを示すという追加の効果があります。 </p> - <p><directive module="mod_alias">Redirect</directive> $B%G%#%l%/%F%#%V$O(B - $B%/%i%$%"%s%H$K0c$C$?(B - URL $B$K?7$7$$%j%/%(%9%H$rAw$k$h$&$K;X<($7$^$9!#$3$l$O!"(B - $B%j%=!<%9$,?7$7$$>l=j$K0\F0$7$?$H$-$K$h$/;HMQ$5$l$^$9!#(B</p> + <p><directive module="mod_alias">Redirect</directive> ディレクティブは + クライアントに違った + URL に新しいリクエストを送るように指示します。これは、 + リソースが新しい場所に移動したときによく使用されます。</p> - <p><module>mod_alias</module> $B$O4JC1$J(B URL $BA`:n8~$1$K@_7W$5$l$F$$$^$9!#(B - $B$h$jJ#;($JA`:n!"%/%(%j!<%9%H%j%s%0$NA`:n$K$O!"(B<module>mod_rewrite</module> - $B$GDs6!$5$l$k%D!<%k$r;HMQ$7$F$/$@$5$$!#(B</p> + <p><module>mod_alias</module> は簡単な URL 操作向けに設計されています。 + より複雑な操作、クエリーストリングの操作には、<module>mod_rewrite</module> + で提供されるツールを使用してください。</p> </summary> <seealso><module>mod_rewrite</module></seealso> <seealso><a -href="../urlmapping.html">URL $B$+$i%U%!%$%k%7%9%F%`>e$N0LCV$X$N%^%C%T%s%0(B</a></seealso> +href="../urlmapping.html">URL からファイルシステム上の位置へのマッピング</a></seealso> -<section id="order"><title>$B=hM}$N=gHV(B</title> +<section id="order"><title>処理の順番</title> -<p>$BMM!9$J%3%s%F%-%9%HCf$G$N(B Alias $B$d(B Redirect $B$OB>$N%G%#%l%/%F%#%V$H(B -$BF1$8$h$&$KI8=`$N(B <a href="../sections.html#mergin">$B%^!<%85,B'(B</a> $B$K(B -$B=>$C$F=hM}$5$l$^$9!#$?$@$7!"(B($BNc$($P(B <directive type="section" module="core" ->VirtualHost</directive> $B%;%/%7%g%s$NCf$N$h$&$K(B) $BJ#?t$N(B Alias $B$d(B Redirect $B$,(B -$BF1$8%3%s%F%-%9%HCf$K8=$l$?>l9g$O7h$^$C$?=gHV$G=hM}$5$l$^$9!#(B</p> +<p>様々なコンテキスト中での Alias や Redirect は他のディレクティブと +同じように標準の <a href="../sections.html#mergin">マージ規則</a> に +従って処理されます。ただし、(例えば <directive type="section" module="core" +>VirtualHost</directive> セクションの中のように) 複数の Alias や Redirect が +同じコンテキスト中に現れた場合は決まった順番で処理されます。</p> -<p>$B$^$:!"(BAlias $B$NA0$K$9$Y$F$N(B Redirect $B$,=hM}$5$l$^$9!#$G$9$+$i!"(B<directive -module="mod_alias">Redirect</directive> $B$+(B <directive -module="mod_alias">RedirectMatch</directive> $B$K%^%C%A$9$k%j%/%(%9%H$K$O(B -Alias $B$O7h$7$FE,MQ$5$l$^$;$s!#<!$K!"(BAlias $B$H(B Redirect $B$,@_Dj%U%!%$%kCf$N(B -$B=gHV$KE,MQ$5$l!":G=i$K%^%C%A$7$?$b$N$,M%@h$5$l$^$9!#(B</p> +<p>まず、Alias の前にすべての Redirect が処理されます。ですから、<directive +module="mod_alias">Redirect</directive> か <directive +module="mod_alias">RedirectMatch</directive> にマッチするリクエストには +Alias は決して適用されません。次に、Alias と Redirect が設定ファイル中の +順番に適用され、最初にマッチしたものが優先されます。</p> -<p>$B$G$9$+$i!"Fs$D0J>e$N%G%#%l%/%F%#%V$,F1$8%Q%9$KE,MQ$5$l$k$H$-$O!"(B -$B$9$Y$F$N%G%#%l%/%F%#%V$N8z2L$rF@$k$?$a$K$O$h$j>\$7$$%Q%9$r@h$K=q$/(B -$BI,MW$,$"$j$^$9!#Nc$($P!"<!$N@_Dj$O4|BTDL$j$NF0:n$r$7$^$9(B:</p> +<p>ですから、二つ以上のディレクティブが同じパスに適用されるときは、 +すべてのディレクティブの効果を得るためにはより詳しいパスを先に書く +必要があります。例えば、次の設定は期待通りの動作をします:</p> <example> Alias /foo/bar /baz<br /> Alias /foo /gaq </example> -<p>$B$7$+$7!">e5-$NFs$D$N%G%#%l%/%F%#%V$N=gHV$,5U$K$J$k$H!"(B -<code>/foo</code> <directive module="mod_alias">Alias</directive> $B$,(B -$B>o$K(B <code>/foo/bar</code> <directive -module="mod_alias">Alias</directive> $B$h$j@h$K%^%C%A$7$^$9$N$G!"8e<T$O(B -$B7h$7$FE,MQ$5$l$k$3$H$O$"$j$^$;$s!#(B</p> +<p>しかし、上記の二つのディレクティブの順番が逆になると、 +<code>/foo</code> <directive module="mod_alias">Alias</directive> が +常に <code>/foo/bar</code> <directive +module="mod_alias">Alias</directive> より先にマッチしますので、後者は +決して適用されることはありません。</p> </section> <directivesynopsis> <name>Alias</name> -<description>URL $B$r%U%!%$%k%7%9%F%`$N0LCV$K%^%C%W$9$k(B</description> +<description>URL をファイルシステムの位置にマップする</description> <syntax>Alias <var>URL-path</var> <var>file-path</var>|<var>directory-path</var></syntax> <contextlist><context>server config</context> @@ -99,47 +99,47 @@ module="mod_alias">Alias</directive> $B$h$j@h$K%^%C%A$7$^$9$N$G!"8e<T$O(B </contextlist> <usage> - <p><directive>Alias</directive> $B%G%#%l%/%F%#%V$O%I%-%e%a%s%H$r(B - $B%m!<%+%k%U%!%$%k%7%9%F%`$N(B + <p><directive>Alias</directive> ディレクティブはドキュメントを + ローカルファイルシステムの <directive module="core">DocumentRoot</directive> - $B0J30$N>l=j$KJ]4I$9$k$3$H$r2DG=$K$7$^$9!#(B - URL $B$N(B (% $B$,I|9f$5$l$?(B) $B%Q%9$,(B <var>url-path</var> $B$G;O$^$k$b$N$O(B + 以外の場所に保管することを可能にします。 + URL の (% が復号された) パスが <var>url-path</var> で始まるものは <var>directory-filename</var> - $B$G;O$^$k%m!<%+%k%U%!%$%k$K%^%C%W$5$l$^$9!#(B</p> + で始まるローカルファイルにマップされます。</p> - <example><title>$BNc(B</title> + <example><title>例</title> Alias /image /ftp/pub/image </example> - <p>http://myserver/image/foo.gif $B$X$N%j%/%(%9%H$KBP$7$F!"%5!<%P$O(B - $B%U%!%$%k(B /ftp/pub/image/foo.gif $B$rJV$7$^$9!#(B</p> + <p>http://myserver/image/foo.gif へのリクエストに対して、サーバは + ファイル /ftp/pub/image/foo.gif を返します。</p> - <p>$B$b$7(B <var>url-path</var> $B$N:G8e$K(B / - $B$r=q$$$?$J$i!"%5!<%P$,%(%$%j%"%9$rE83+$9$k$?$a$K$O!":G8e$N(B / - $B$,I,MW$K$J$k$3$H$KCm0U$7$F$/$@$5$$!#$9$J$o$A!"(B<code>Alias /icons/ - /usr/local/apache/icons/</code> $B$H$$$&$b$N$r;HMQ$7$F$$$k>l9g$O!"(B - <code>/icons</code> $B$H$$$&(B url $B$O%(%$%j%"%9$5$l$^$;$s!#(B</p> + <p>もし <var>url-path</var> の最後に / + を書いたなら、サーバがエイリアスを展開するためには、最後の / + が必要になることに注意してください。すなわち、<code>Alias /icons/ + /usr/local/apache/icons/</code> というものを使用している場合は、 + <code>/icons</code> という url はエイリアスされません。</p> - <p>$B%(%$%j%"%9$N(B<em>$B9T$-@h(B</em>$B$r4^$s$G$$$k(B <directive + <p>エイリアスの<em>行き先</em>を含んでいる <directive type="section" module="core">Directory</directive> - $B%;%/%7%g%s$rDI2C$9$kI,MW$,$"$k$+$b$7$l$J$$$3$H$KCm0U$7$F$/$@$5$$!#(B - $B%(%$%j%"%9$NE83+$O(B <directive + セクションを追加する必要があるかもしれないことに注意してください。 + エイリアスの展開は <directive type="section" module="core">Directory</directive> - $B%;%/%7%g%s$rD4$Y$kA0$K9T$J$o$l$^$9$N$G!"(B - $B%(%$%j%"%9$N9T$-@h$N(B <directive - type="section" module="core">Directory</directive> $B%;%/%7%g%s$N$_(B - $B8z2L$,$"$j$^$9!#(B - ($B$7$+$7!"(B<directive + セクションを調べる前に行なわれますので、 + エイリアスの行き先の <directive + type="section" module="core">Directory</directive> セクションのみ + 効果があります。 + (しかし、<directive type="section" module="core">Location</directive> - $B%;%/%7%g%s$O%(%$%j%"%9$,=hM}$5$l$kA0$K<B9T$5$l$^$9$N$G!"(B - $B$3$A$i$OE,MQ$5$l$^$9!#(B)</p> + セクションはエイリアスが処理される前に実行されますので、 + こちらは適用されます。)</p> - <p>$BFC$K!"(B<code>Alias</code> $B$r(B + <p>特に、<code>Alias</code> を <directive module="core">DocumentRoot</directive> - $B%G%#%l%/%H%j$N30B&$KG[CV$7$?>l9g$O!"9T$-@h$N%G%#%l%/%H%j$KBP$9$k(B - $B%"%/%;%98"8B$rL@<(E*$K@)8B$7$J$1$l$P$J$i$J$$$G$7$g$&!#(B</p> + ディレクトリの外側に配置した場合は、行き先のディレクトリに対する + アクセス権限を明示的に制限しなければならないでしょう。</p> - <example><title>$BNc(B</title> + <example><title>例</title> Alias /image /ftp/pub/image<br /> <Directory /ftp/pub/image><br /> <indent> @@ -154,7 +154,7 @@ module="mod_alias">Alias</directive> $B$h$j@h$K%^%C%A$7$^$9$N$G!"8e<T$O(B <directivesynopsis> <name>AliasMatch</name> -<description>$B@55,I=8=$r;H$C$F(B URL $B$r%U%!%$%k%7%9%F%`$N0LCV$K%^%C%W$9$k(B</description> +<description>正規表現を使って URL をファイルシステムの位置にマップする</description> <syntax>AliasMatch <var>regex</var> <var>file-path</var>|<var>directory-path</var></syntax> <contextlist><context>server config</context> @@ -162,13 +162,13 @@ module="mod_alias">Alias</directive> $B$h$j@h$K%^%C%A$7$^$9$N$G!"8e<T$O(B </contextlist> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O(B <directive module="mod_alias">Alias</directive> - $B$H$[$H$s$IF1$8$G$9$,!"4JC1$J@hF,$+$i$N%^%C%A$r9T$J$&$N$G$O$J$/!"(B - $BI8=`@55,I=8=$rMxMQ$7$^$9!#$3$3$G;XDj$5$l$?@55,I=8=$H(B URL $B$N%Q%9(B - $B$,9g$&$+$I$&$+$rD4$Y!"9g$&>l9g$O3g8L$G3g$i$l$?%^%C%A$r(B - $BM?$($i$l$?J8;zNs$GCV$-49$(!"$=$l$r%U%!%$%kL>$H$7$F;HMQ$7$^$9!#$?$H$($P!"(B - <code>/icons</code> $B%G%#%l%/%H%j$r;H$&(B - $B$?$a$K$O0J2<$N$h$&$J$b$N$,;HMQ$G$-$^$9(B:</p> + <p>このディレクティブは <directive module="mod_alias">Alias</directive> + とほとんど同じですが、簡単な先頭からのマッチを行なうのではなく、 + 標準正規表現を利用します。ここで指定された正規表現と URL のパス + が合うかどうかを調べ、合う場合は括弧で括られたマッチを + 与えられた文字列で置き換え、それをファイル名として使用します。たとえば、 + <code>/icons</code> ディレクトリを使う + ためには以下のようなものが使用できます:</p> <example> AliasMatch ^/icons(.*) /usr/local/apache/icons$1 @@ -178,8 +178,8 @@ module="mod_alias">Alias</directive> $B$h$j@h$K%^%C%A$7$^$9$N$G!"8e<T$O(B <directivesynopsis> <name>Redirect</name> -<description>$B%/%i%$%"%s%H$,0c$&(B URL $B$r<hF@$9$k$h$&$K30It$X$N%j%@%$%l%/%H$r(B -$BAw$k(B</description> +<description>クライアントが違う URL を取得するように外部へのリダイレクトを +送る</description> <syntax>Redirect [<var>status</var>] <var>URL-path</var> <var>URL</var></syntax> <contextlist><context>server config</context> @@ -188,67 +188,67 @@ module="mod_alias">Alias</directive> $B$h$j@h$K%^%C%A$7$^$9$N$G!"8e<T$O(B <override>FileInfo</override> <usage> - <p>Redirect $B%G%#%l%/%F%#%V$O8E$$(B URL $B$r?7$7$$$b$N$X%^%C%W$7$^$9!#(B - $B?7$7$$(B URL $B$,%/%i%$%"%s%H$KJV$5$l$^$9!#$=$7$F!"(B - $B%/%i%$%"%s%H$O?7$7$$%"%I%l%9$r$b$&0l2s<hF@$7$h$&$H$7$^$9!#(B - <var>URL-path</var> (% $B$,I|9f$5$l$?(B) $B%Q%9$G;O$^$k%I%-%e%a%s%H$X$N(B - $B$9$Y$F$N%j%/%(%9%H$O(B <var>URL</var> $B$G;O$^$k?7$7$$(B - (% $B$,Id9f2=$5$l$?(B) URL $B$X$N%j%@%$%l%/%H%(%i!<$,JV$5$l$^$9!#(B</p> - - <example><title>$BNc(B</title> + <p>Redirect ディレクティブは古い URL を新しいものへマップします。 + 新しい URL がクライアントに返されます。そして、 + クライアントは新しいアドレスをもう一回取得しようとします。 + <var>URL-path</var> (% が復号された) パスで始まるドキュメントへの + すべてのリクエストは <var>URL</var> で始まる新しい + (% が符号化された) URL へのリダイレクトエラーが返されます。</p> + + <example><title>例</title> Redirect /service http://foo2.bar.com/service </example> - <p>$B%/%i%$%"%s%H$O(B http://myserver/service/foo.txt - $B$X$N%j%/%(%9%H$r9T$J$&$H!"Be$o$j$K(B http://foo2.bar.com/service/foo.txt - $B$r%"%/%;%9$9$k$h$&$K9p$2$i$l$^$9!#(B</p> + <p>クライアントは http://myserver/service/foo.txt + へのリクエストを行なうと、代わりに http://foo2.bar.com/service/foo.txt + をアクセスするように告げられます。</p> -<note><title>$BCm0U(B</title><p>$B@_Dj%U%!%$%kCf$N=gHV$K4X$o$i$:!"(B -Redirect $B7O$N%G%#%l%/%F%#%V$O(B Alias -$B%G%#%l%/%F%#%V$H(B ScriptAlias $B%G%#%l%/%F%#%V$h$j$bM%@h$5$l$^$9!#(B -$B$^$?!"(B.htaccess $B%U%!%$%k$d(B <directive +<note><title>注意</title><p>設定ファイル中の順番に関わらず、 +Redirect 系のディレクティブは Alias +ディレクティブと ScriptAlias ディレクティブよりも優先されます。 +また、.htaccess ファイルや <directive type="section" module="core">Directory</directive> -$B%;%/%7%g%s$NCf$G;H$o$l$F$$$?$H$7$F$b!"(B<var>URL-path</var> -$B$OAjBP%Q%9$G$O$J$/!"40A4$J(B URL $B$G$J$1$l$P$J$j$^$;$s!#(B</p></note> +セクションの中で使われていたとしても、<var>URL-path</var> +は相対パスではなく、完全な URL でなければなりません。</p></note> - <p>$B$b$7(B <var>status</var> $B0z?t$,M?$($i$l$F$$$J$1$l$P!"%j%@%$%l%/%H$O(B - "temporary" (HTTP $B%9%F!<%?%9(B 302) $B$K$J$j$^$9!#$3$l$O%/%i%$%"%s%H$K(B - $B%j%=!<%9$,0l;~E*$K0\F0$7$?$H$$$&$3$H$r<($7$^$9!#(B<var>Status</var> - $B0z?t$O(B $BB>$N(B HTTP $B$N%9%F!<%?%9%3!<%I$rJV$9$?$a$K;HMQ$9$k$3$H$,$G$-$^$9(B:</p> + <p>もし <var>status</var> 引数が与えられていなければ、リダイレクトは + "temporary" (HTTP ステータス 302) になります。これはクライアントに + リソースが一時的に移動したということを示します。<var>Status</var> + 引数は 他の HTTP のステータスコードを返すために使用することができます:</p> <dl> <dt>permanent</dt> - <dd>$B1J5W$K%j%@%$%l%/%H$r$9$k%9%F!<%?%9(B (301) $B$rJV$7$^$9!#(B - $B$3$l$O%j%=!<%9$,1J5W$K0\F0$7$?$H$$$&$3$H$r0UL#$7$^$9!#(B</dd> + <dd>永久にリダイレクトをするステータス (301) を返します。 + これはリソースが永久に移動したということを意味します。</dd> <dt>temp</dt> - <dd>$B0l;~E*$J%j%@%$%l%/%H%9%F!<%?%9(B (302) - $B$rJV$7$^$9!#$3$l$,%G%U%)%k%H$G$9!#(B</dd> + <dd>一時的なリダイレクトステータス (302) + を返します。これがデフォルトです。</dd> <dt>seeother</dt> - <dd>"See Other" $B%9%F!<%?%9(B (303) $B$rJV$7$^$9!#(B - $B$3$l$O%j%=!<%9$,B>$N$b$N$GCV$-49$($i$l$?$3$H$r0UL#$7$^$9!#(B</dd> + <dd>"See Other" ステータス (303) を返します。 + これはリソースが他のもので置き換えられたことを意味します。</dd> <dt>gone</dt> - <dd>"Gone" $B%9%F!<%?%9(B (410) $B$rJV$7$^$9!#$3$l$O%j%=!<%9$,1J5W$K(B - $B:o=|$5$l$?$3$H$r0UL#$7$^$9!#$3$N%9%F!<%?%9$,;HMQ$5$l$?>l9g!"(B - <var>url</var> $B0z?t$O>JN,$5$l$J$1$l$P$J$j$^$;$s!#(B</dd> + <dd>"Gone" ステータス (410) を返します。これはリソースが永久に + 削除されたことを意味します。このステータスが使用された場合、 + <var>url</var> 引数は省略されなければなりません。</dd> </dl> - <p><var>Status</var> $B$NCM$K%9%F!<%?%9%3!<%I$r?tCM$GM?$($k$3$H$G(B - $BB>$N%9%F!<%?%9%3!<%I$bJV$9$3$H$,$G$-$^$9!#%9%F!<%?%9$,(B 300 $B$H(B 399 - $B$N4V$K$"$k>l9g!"(B<var>url</var> $B0z?t$OB8:_$7$F$$$J$1$l$P$$$1$^$;$s!#(B - $B$=$NB>$N>l9g$O>JN,$5$l$F$$$J$1$l$P$J$j$^$;$s!#$?$@$7!"(B - $B%9%F!<%?%9$O(B Apache $B$N%3!<%I$,CN$C$F$$$k$b$N$G$"$kI,MW$,$"$j$^$9(B - (http_protocol.c $B$N4X?t(B <code>send_error_response</code> - $B$r8+$F$/$@$5$$(B)$B!#(B</p> - <p>$BNc(B:</p> + <p><var>Status</var> の値にステータスコードを数値で与えることで + 他のステータスコードも返すことができます。ステータスが 300 と 399 + の間にある場合、<var>url</var> 引数は存在していなければいけません。 + その他の場合は省略されていなければなりません。ただし、 + ステータスは Apache のコードが知っているものである必要があります + (http_protocol.c の関数 <code>send_error_response</code> + を見てください)。</p> + <p>例:</p> - <example><title>$BNc(B</title> + <example><title>例</title> Redirect permanent /one http://example.com/two<br /> Redirect 303 /three http://example.com/other </example> @@ -258,8 +258,8 @@ type="section" module="core">Directory</directive> <directivesynopsis> <name>RedirectMatch</name> -<description>$B8=:_$N(B URL $B$X$N@55,I=8=$N%^%C%A$K$h$j(B -$B30It$X$N%j%@%$%l%/%H$rAw$k(B</description> +<description>現在の URL への正規表現のマッチにより +外部へのリダイレクトを送る</description> <syntax>RedirectMatch [<var>status</var>] <var>regex</var> <var>URL</var></syntax> <contextlist><context>server config</context> @@ -268,13 +268,13 @@ type="section" module="core">Directory</directive> <override>FileInfo</override> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O(B <directive module="mod_alias">Redirect</directive> - $B$H$[$H$s$IF1$8$G$9$,!"4JC1$J@hF,$+$i$N%^%C%A$r9T$J$&$N$G$O$J$/!"(B - $BI8=`@55,I=8=$rMxMQ$7$^$9!#$3$3$G;XDj$5$l$?@55,I=8=$H(B URL-path - $B$,9g$&$+$I$&$+$rD4$Y!"9g$&>l9g$O3g8L$G3g$i$l$?%^%C%A$r(B - $BM?$($i$l$?J8;zNs$GCV$-49$(!"$=$l$r%U%!%$%kL>$H$7$F;HMQ$7$^$9!#(B - $B$?$H$($P!"$9$Y$F$N(B GIF $B%U%!%$%k$rJL%5!<%P$NF1MM$JL>A0$N(B JPEG - $B%U%!%$%k$K%j%@%$%l%/%H$9$k$K$O!"0J2<$N$h$&$J$b$N$r;H$$$^$9(B: + <p>このディレクティブは <directive module="mod_alias">Redirect</directive> + とほとんど同じですが、簡単な先頭からのマッチを行なうのではなく、 + 標準正規表現を利用します。ここで指定された正規表現と URL-path + が合うかどうかを調べ、合う場合は括弧で括られたマッチを + 与えられた文字列で置き換え、それをファイル名として使用します。 + たとえば、すべての GIF ファイルを別サーバの同様な名前の JPEG + ファイルにリダイレクトするには、以下のようなものを使います: </p> <example> @@ -285,8 +285,8 @@ type="section" module="core">Directory</directive> <directivesynopsis> <name>RedirectTemp</name> -<description>$B%/%i%$%"%s%H$,0c$&(B URL $B$r<hF@$9$k$h$&$K30It$X$N0l;~E*$J(B -$B%j%@%$%l%/%H$rAw$k(B</description> +<description>クライアントが違う URL を取得するように外部への一時的な +リダイレクトを送る</description> <syntax>RedirectTemp <var>URL-path</var> <var>URL</var></syntax> <contextlist><context>server config</context> <context>virtual host</context> @@ -294,16 +294,16 @@ type="section" module="core">Directory</directive> <override>FileInfo</override> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O%/%i%$%"%s%H$K(B Redirect - $B$,0l;~E*$J$b$N$G$"$k(B ($B%9%F!<%?%9(B 302) $B$3$H$rCN$i$;$^$9!#(B - <code>Redirect temp</code> $B$H$^$C$?$/F1$8$G$9!#(B</p> + <p>このディレクティブはクライアントに Redirect + が一時的なものである (ステータス 302) ことを知らせます。 + <code>Redirect temp</code> とまったく同じです。</p> </usage> </directivesynopsis> <directivesynopsis> <name>RedirectPermanent</name> -<description>$B%/%i%$%"%s%H$,0c$&(B URL $B$r<hF@$9$k$h$&$K30It$X$N1J5WE*$J(B -$B%j%@%$%l%/%H$rAw$k(B</description> +<description>クライアントが違う URL を取得するように外部への永久的な +リダイレクトを送る</description> <syntax>RedirectPermanent <var>URL-path</var> <var>URL</var></syntax> <contextlist><context>server config</context> <context>virtual host</context> @@ -311,16 +311,16 @@ type="section" module="core">Directory</directive> <override>FileInfo</override> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O%/%i%$%"%s%H$K(B Redirect $B$,1J5WE*$J$b$N(B - ($B%9%F!<%?%9(B 301) $B$G$"$k$3$H$rCN$i$;$^$9!#(B - <code>Redirect permanent</code> $B$H$^$C$?$/F1$8$G$9!#(B</p> + <p>このディレクティブはクライアントに Redirect が永久的なもの + (ステータス 301) であることを知らせます。 + <code>Redirect permanent</code> とまったく同じです。</p> </usage> </directivesynopsis> <directivesynopsis> <name>ScriptAlias</name> -<description>URL $B$r%U%!%$%k%7%9%F%`$N0LCV$X%^%C%W$7!"%^%C%W@h$r(B -CGI $B%9%/%j%W%H$K;XDj(B</description> +<description>URL をファイルシステムの位置へマップし、マップ先を +CGI スクリプトに指定</description> <syntax>ScriptAlias <var>URL-path</var> <var>file-path</var>|<var>directory-path</var></syntax> <contextlist><context>server config</context> @@ -328,30 +328,30 @@ CGI $B%9%/%j%W%H$K;XDj(B</description> </contextlist> <usage> - <p><directive>ScriptAlias</directive> $B%G%#%l%/%F%#%V$O!"BP>]%G%#%l%/%H%j$K(B - <module>mod_cgi</module> $B$N(B cgi-script - $B%O%s%I%i$G=hM}$5$l$k(B CGI - $B%9%/%j%W%H$,$"$k$3$H$r<($90J30$O(B + <p><directive>ScriptAlias</directive> ディレクティブは、対象ディレクトリに + <module>mod_cgi</module> の cgi-script + ハンドラで処理される CGI + スクリプトがあることを示す以外は <directive module="mod_alias">Alias</directive> - $B%G%#%l%/%F%#%V$HF1$8?6$kIq$$$r$7$^$9!#(B - URL $B$N(B (% $B$,I|9f$5$l$?(B) $B%Q%9$,(B <var>URL-path</var> $B$G;O$^$k$b$N$O(B - $B%m!<%+%k$N%U%!%$%k%7%9%F%`$N(B - $B%U%k%Q%9$G$"$kFsHVL\$N0z?t$K%^%C%W$5$l$^$9!#(B</p> + ディレクティブと同じ振る舞いをします。 + URL の (% が復号された) パスが <var>URL-path</var> で始まるものは + ローカルのファイルシステムの + フルパスである二番目の引数にマップされます。</p> - <example><title>$BNc(B</title> + <example><title>例</title> ScriptAlias /cgi-bin/ /web/cgi-bin/ </example> <p><code>http://myserver/cgi-bin/foo</code> - $B$X$N%j%/%(%9%H$KBP$7$F%5!<%P$O%9%/%j%W%H(B - <code>/web/cgi-bin/foo</code> $B$r<B9T$7$^$9!#(B</p> + へのリクエストに対してサーバはスクリプト + <code>/web/cgi-bin/foo</code> を実行します。</p> </usage> </directivesynopsis> <directivesynopsis> <name>ScriptAliasMatch</name> -<description>URL $B$r@55,I=8=$r;H$C$F%U%!%$%k%7%9%F%`$N0LCV$X%^%C%W$7!"%^%C%W@h$r(B -CGI $B%9%/%j%W%H$K;XDj(B</description> +<description>URL を正規表現を使ってファイルシステムの位置へマップし、マップ先を +CGI スクリプトに指定</description> <syntax>ScriptAliasMatch <var>regex</var> <var>file-path</var>|<var>directory-path</var></syntax> <contextlist><context>server config</context> @@ -359,13 +359,13 @@ CGI $B%9%/%j%W%H$K;XDj(B</description> </contextlist> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O(B <directive module="mod_alias">ScriptAlias</directive> - $B$H$[$H$s$IF1$8$G$9$,!"4JC1$J@hF,$+$i$N%^%C%A$r9T$J$&$N$G$O$J$/!"(B - $BI8=`@55,I=8=$rMxMQ$7$^$9!#$3$3$G;XDj$5$l$?@55,I=8=$H(B URL-path - $B$,9g$&$+$I$&$+$rD4$Y!"9g$&>l9g$O3g8L$G3g$i$l$?%^%C%A$r(B - $BM?$($i$l$?J8;zNs$GCV$-49$(!"$=$l$r%U%!%$%kL>$H$7$F;HMQ$7$^$9!#(B - $B$?$H$($P!"I8=`$N(B <code>/cgi-bin</code> - $B$r;HMQ$9$k$h$&$K$9$k$?$a$K$O!"0J2<$N$h$&$J$b$N$r;H$$$^$9(B: + <p>このディレクティブは <directive module="mod_alias">ScriptAlias</directive> + とほとんど同じですが、簡単な先頭からのマッチを行なうのではなく、 + 標準正規表現を利用します。ここで指定された正規表現と URL-path + が合うかどうかを調べ、合う場合は括弧で括られたマッチを + 与えられた文字列で置き換え、それをファイル名として使用します。 + たとえば、標準の <code>/cgi-bin</code> + を使用するようにするためには、以下のようなものを使います: </p> <example> diff --git a/docs/manual/mod/mod_asis.xml.ja b/docs/manual/mod/mod_asis.xml.ja index 0df25cbddf..87052688bb 100644 --- a/docs/manual/mod/mod_asis.xml.ja +++ b/docs/manual/mod/mod_asis.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 151408:420990 (outdated) --> @@ -23,43 +23,43 @@ <modulesynopsis metafile="mod_asis.xml.meta"> <name>mod_asis</name> -<description>$B<+J,MQ$N(B HTTP $B%X%C%@$N=q$+$l$F$$$k%U%!%$%k$rAw?.$9$k(B</description> +<description>自分用の HTTP ヘッダの書かれているファイルを送信する</description> <status>Base</status> <sourcefile>mod_asis.c</sourcefile> <identifier>asis_module</identifier> <summary> - <p>$B$3$N%b%8%e!<%k$O%O%s%I%i(B <code>send-as-is</code> - $B$rDs6!$7$^$9!#$3$N%O%s%I%i$ODL>o$N(B HTTP - $B%X%C%@$r$[$H$s$IDI2C$9$k$3$H$J$/%I%-%e%a%s%H$rAw?.$7$^$9!#(B</p> + <p>このモジュールはハンドラ <code>send-as-is</code> + を提供します。このハンドラは通常の HTTP + ヘッダをほとんど追加することなくドキュメントを送信します。</p> - <p>$B$3$l$O%5!<%P$+$i$I$s$J<oN`$N%G!<%?$rAw$k$H$-$K$b;HMQ$G$-$^$9!#(B - Cgi $B%9%/%j%W%H$d(B nph $B%9%/%j%W%H$,L5$/$F$b%j%@%$%l%/%H$dB>$NFCJL$J(B - HTTP $B1~Ez$rAw$k$3$H$,$G$-$^$9!#(B</p> + <p>これはサーバからどんな種類のデータを送るときにも使用できます。 + Cgi スクリプトや nph スクリプトが無くてもリダイレクトや他の特別な + HTTP 応答を送ることができます。</p> - <p>$BNr;KE*$JM}M3$K$h$j!"$3$N%b%8%e!<%k$O(B mime $B%?%$%W(B - <code>httpd/send-as-is</code> $B$N%U%!%$%k$b=hM}$7$^$9!#(B</p> + <p>歴史的な理由により、このモジュールは mime タイプ + <code>httpd/send-as-is</code> のファイルも処理します。</p> </summary> <seealso><module>mod_headers</module></seealso> <seealso><module>mod_cern_meta</module></seealso> -<seealso><a href="../handler.html">Apache $B$N%O%s%I%i$N;HMQ(B</a></seealso> +<seealso><a href="../handler.html">Apache のハンドラの使用</a></seealso> -<section id="usage"><title>$B;HMQK!(B</title> +<section id="usage"><title>使用法</title> - <p>$B%5!<%P@_Dj%U%!%$%k$G!"%U%!%$%k$H(B <code>send-as-is</code> - $B%O%s%I%i$rNc$($P0J2<$N$h$&$K4XO"IU$1$F$/$@$5$$!#(B</p> + <p>サーバ設定ファイルで、ファイルと <code>send-as-is</code> + ハンドラを例えば以下のように関連付けてください。</p> <example>AddHandler send-as-is asis</example> - <p>$B3HD%;R$,(B <code>.asis</code> $B$N$9$Y$F$N%U%!%$%k$NFbMF$O(B Apache - $B$+$i%/%i%$%"%s%H$X$[$H$s$IJQ99L5$/Aw$i$l$^$9!#%/%i%$%"%s%H$K$O(B - HTTP $B%X%C%@$,I,MW$G$9$N$G!"%U%!%$%k$K=q$/$3$H$rK:$l$J$$$G$/$@$5$$!#(B - Status: $B%X%C%@$bI,MW$G$9!#%G!<%?$O(B 3 $B7e$N(B HTTP - $B1~Ez%3!<%I$H!"$=$N8e$K%F%-%9%H%a%C%;!<%8$,B3$$$?$b$N$G$J$1$l$P$J$j$^$;$s!#(B</p> + <p>拡張子が <code>.asis</code> のすべてのファイルの内容は Apache + からクライアントへほとんど変更無く送られます。クライアントには + HTTP ヘッダが必要ですので、ファイルに書くことを忘れないでください。 + Status: ヘッダも必要です。データは 3 桁の HTTP + 応答コードと、その後にテキストメッセージが続いたものでなければなりません。</p> - <p>$B$3$l$O%/%i%$%"%s%H$K%U%!%$%k$,0\F0$7$?$3$H$rCN$i$;$k$?$a$K(B - <em>as is</em> ($B$=$N$^$^(B) $B$GAw$i$l$k%U%!%$%k$NFbMF$NNc$G$9!#(B + <p>これはクライアントにファイルが移動したことを知らせるために + <em>as is</em> (そのまま) で送られるファイルの内容の例です。 </p> @@ -81,12 +81,12 @@ </html> </example> - <note><title>$BCm0U(B</title> - <p>$BCm0U(B: $B%5!<%P$O%/%i%$%"%s%H$KJV$5$l$k%G!<%?$K>o$K(B <code>Date:</code> - $B$H(B <code>Server:</code> $B%X%C%@$rDI2C$7$^$9$N$G!"(B - $B$=$l$i$,%U%!%$%k$K=q$+$l$F$$$F$O$$$1$^$;$s!#(B - $B%5!<%P$O(B <code>Last-Modified</code> $B%X%C%@$rDI2C(B<em>$B$7$^$;$s(B</em>$B!#(B - $B$*$=$i$/$O$=$&$9$Y$-$G$7$g$&$1$l$I!#(B</p> + <note><title>注意</title> + <p>注意: サーバはクライアントに返されるデータに常に <code>Date:</code> + と <code>Server:</code> ヘッダを追加しますので、 + それらがファイルに書かれていてはいけません。 + サーバは <code>Last-Modified</code> ヘッダを追加<em>しません</em>。 + おそらくはそうすべきでしょうけれど。</p> </note> </section> diff --git a/docs/manual/mod/mod_auth_basic.xml.ja b/docs/manual/mod/mod_auth_basic.xml.ja index e285a1703a..1d6a0f75e1 100644 --- a/docs/manual/mod/mod_auth_basic.xml.ja +++ b/docs/manual/mod/mod_auth_basic.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 151408:420990 (outdated) --> @@ -23,24 +23,24 @@ <modulesynopsis metafile="mod_auth_basic.xml.meta"> <name>mod_auth_basic</name> -<description>$B4pK\G'>Z(B</description> +<description>基本認証</description> <status>Base</status> <sourcefile>mod_auth_basic.c</sourcefile> <identifier>auth_basic_module</identifier> -<compatibility>Apache 2.1 $B0J9_(B</compatibility> +<compatibility>Apache 2.1 以降</compatibility> <summary> - <p>$BM?$($i$l$?%W%m%P%$%@(B ($BLuCm(B: $BG'>Z$G$N>H2q$r9T$&Ld$$9g$o$;@h(B) - $B$G%f!<%6$r8!:w$7!"(BHTTP $B4pK\G'>Z$G%"%/%;%9@)8B$G$-$k$h$&$K$J$j$^$9!#(B - HTTP $B%@%$%8%'%9%HG'>Z$K$D$$$F$O(B <module>mod_auth_digest</module> - $B$GDs6!$5$l$^$9!#(B</p> + <p>与えられたプロバイダ (訳注: 認証での照会を行う問い合わせ先) + でユーザを検索し、HTTP 基本認証でアクセス制限できるようになります。 + HTTP ダイジェスト認証については <module>mod_auth_digest</module> + で提供されます。</p> </summary> <seealso><directive module="core">AuthName</directive></seealso> <seealso><directive module="core">AuthType</directive></seealso> <directivesynopsis> <name>AuthBasicProvider</name> -<description>$B$3$N0LCV$KBP$9$kG'>Z%W%m%P%$%@$r@_Dj$7$^$9!#(B</description> +<description>この位置に対する認証プロバイダを設定します。</description> <syntax>AuthBasicProvider On|Off|<var>provider-name</var> [<var>provider-name</var>] ...</syntax> <default>AuthBasicProvider On</default> @@ -48,13 +48,13 @@ <override>AuthConfig</override> <usage> - <p><directive>AuthBasicProvider</directive> $B%G%#%l%/%F%#%V$G!"(B - $B$3$N0LCV$KBP$9$k%f!<%6G'>Z$KMQ$$$i$l$kG'>Z%W%m%P%$%@$r@_Dj$7$^$9!#(B - <code>On</code> $B$K@_Dj$9$k$H%G%U%)%k%H$NG'>Z%W%m%P%$%@(B - (<code>file</code>) $B$,;HMQ$5$l$^$9!#(B<code>file</code> - $B%W%m%P%$%@$O(B <module>mod_authn_file</module> - $B%b%8%e!<%k$G<BAu$5$l$F$$$^$9$N$G!"(B - $B$3$N%b%8%e!<%k$,%5!<%P$KF~$C$F$$$k$3$H$r3NG'$7$F$/$@$5$$!#(B</p> + <p><directive>AuthBasicProvider</directive> ディレクティブで、 + この位置に対するユーザ認証に用いられる認証プロバイダを設定します。 + <code>On</code> に設定するとデフォルトの認証プロバイダ + (<code>file</code>) が使用されます。<code>file</code> + プロバイダは <module>mod_authn_file</module> + モジュールで実装されていますので、 + このモジュールがサーバに入っていることを確認してください。</p> <example><title>Example</title> <Location /secure><br /> @@ -67,19 +67,19 @@ </Location> </example> - <p>$BG'>Z%W%m%P%$%@$K$D$$$F$O(B - <module>mod_authn_dbm</module> $B$H(B <module>mod_authn_file</module> - $B$r$4Mw2<$5$$!#(B</p> + <p>認証プロバイダについては + <module>mod_authn_dbm</module> と <module>mod_authn_file</module> + をご覧下さい。</p> - <p><code>Off</code> $B$O%W%m%P%$%@%j%9%H$r%/%j%"$7$F!"%G%U%)%k%H$N(B - $B>uBV$KLa$7$^$9!#(B</p> + <p><code>Off</code> はプロバイダリストをクリアして、デフォルトの + 状態に戻します。</p> </usage> </directivesynopsis> <directivesynopsis> <name>AuthBasicAuthoritative</name> -<description>$BG'>Z$H>5G'$r!"$h$jDc$$%l%Y%k$N%b%8%e!<%k$K0\9T$5$;$k$+$r(B -$B@_Dj$7$^$9!#(B</description> +<description>認証と承認を、より低いレベルのモジュールに移行させるかを +設定します。</description> <syntax>AuthBasicAuthoritative On|Off</syntax> <default>AuthBasicAuthoritative On</default> <contextlist><context>directory</context><context>.htaccess</context></contextlist> @@ -87,26 +87,26 @@ <usage> <p><directive>AuthBasicAuthoritative</directive> - $B%G%#%l%/%F%#%V$GL@<(E*$K(B <code>Off</code>$B$K@_Dj$9$k$H!"(B - $BM?$($i$l$?G'>Z%f!<%6(B ID $B$KBP$7$F(B<strong>$B%f!<%6(B ID $B$,$J$$(B</strong> - $B$^$?$O(B<strong>$B%k!<%k$,$J$$(B</strong>$B>l9g$K!"(B - $BG'>Z$H>5G'$NN>J}$N%W%m%;%9$,!"(B - $B$h$jDc$$%l%Y%k$N%b%8%e!<%k(B (<code>modules.c</code> $B%U%!%$%k$GDj5A(B) $B$K0\9T$9$k$h$&$K$G$-$^$9!#(B - $B%f!<%6(B ID $B$,$"$k!"$+$D$^$?$O!"%k!<%k$,;XDj$5$l$F$$$k>l9g$O!"(B - $BDL>o$N%Q%9%o!<%I$H%"%/%;%9%A%'%C%/$,E,MQ$5$l$F!"(B - $BG'>Z$K<:GT$9$k$H(B "Authentication Required" $B1~Ez$,JV$5$l$^$9!#(B</p> - - <p>$B$G$9$+$i!"Fs$D0J>e$N%b%8%e!<%k$N%G!<%?%Y!<%9$GF10l$N(B - $B%f!<%6(B ID $B$,8=$o$l$?$j!"(B - $B$^$?$O!"@5$7$$(B <directive module="core">Require</directive> - $B%G%#%l%/%F%#%V$,Fs$D0J>e$N%b%8%e!<%k$G8=$o$l$?$j$7$?>l9g$O!"(B - $B0l$DL\$N%b%8%e!<%k$,G'Dj$r9T$C$F!"(B<directive>AuthAuthoritative</directive> - $B@_Dj$K4X$o$i$:!"%"%/%;%9$O0\9T$7$^$;$s!#(B</p> - - <p>$B%G%U%)%k%H$G$O!"@)8f$O0\9T$7$^$;$s!#$=$7$F!"L$CN$N%f!<%6(B ID $B$d(B - $B%k!<%k$,$"$C$F$b(B "Authentication Required" $B1~Ez$,JV$5$l$^$9!#(B - $B$G$9$+$i!"$3$N%G%#%l%/%F%#%V$r@_Dj$7$J$$$3$H$G%7%9%F%`$N0BA4$r0];}$G$-$F!"$^$?!"(B - NCSA $B=`5r$N5sF0$r6/@)$G$-$^$9!#(B</p> + ディレクティブで明示的に <code>Off</code>に設定すると、 + 与えられた認証ユーザ ID に対して<strong>ユーザ ID がない</strong> + または<strong>ルールがない</strong>場合に、 + 認証と承認の両方のプロセスが、 + より低いレベルのモジュール (<code>modules.c</code> ファイルで定義) に移行するようにできます。 + ユーザ ID がある、かつまたは、ルールが指定されている場合は、 + 通常のパスワードとアクセスチェックが適用されて、 + 認証に失敗すると "Authentication Required" 応答が返されます。</p> + + <p>ですから、二つ以上のモジュールのデータベースで同一の + ユーザ ID が現われたり、 + または、正しい <directive module="core">Require</directive> + ディレクティブが二つ以上のモジュールで現われたりした場合は、 + 一つ目のモジュールが認定を行って、<directive>AuthAuthoritative</directive> + 設定に関わらず、アクセスは移行しません。</p> + + <p>デフォルトでは、制御は移行しません。そして、未知のユーザ ID や + ルールがあっても "Authentication Required" 応答が返されます。 + ですから、このディレクティブを設定しないことでシステムの安全を維持できて、また、 + NCSA 準拠の挙動を強制できます。</p> </usage> </directivesynopsis> diff --git a/docs/manual/mod/mod_authn_anon.xml.ja b/docs/manual/mod/mod_authn_anon.xml.ja index c457920d58..6e50f6ca9a 100644 --- a/docs/manual/mod/mod_authn_anon.xml.ja +++ b/docs/manual/mod/mod_authn_anon.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 659902 --> @@ -23,64 +23,64 @@ <modulesynopsis metafile="mod_authn_anon.xml.meta"> <name>mod_authn_anon</name> -<description>$BG'>Z$,I,MW$JNN0h$X$N(B "anonymous" $B%f!<%6$N%"%/%;%9$r5v2D$9$k(B +<description>認証が必要な領域への "anonymous" ユーザのアクセスを許可する </description> <status>Extension</status> <sourcefile>mod_authn_anon.c</sourcefile> <identifier>authn_anon_module</identifier> -<compatibility>Apache 2.1 $B0J9_(B</compatibility> +<compatibility>Apache 2.1 以降</compatibility> <summary> - <p>$B$3$N%b%8%e!<%k$O(B <module>mod_auth_basic</module> $B$N$h$&$J(B - $BG'>Z%U%m%s%H%(%s%I$H$7$F!"(Banonymous-ftp $B%5%$%H$N$h$&$J!"!VKbK!$N!W%f!<%6(B ID - 'anonymous' $B$HEE;R%a!<%k%"%I%l%9$r%Q%9%o!<%I$K$7$?%f!<%6G'>Z$r(B - $B9T$J$&5!G=$rDs6!$7$^$9!#$3$NEE;R%a!<%k%"%I%l%9$O%m%0<}=8$9$k$3$H$,(B - $B$G$-$^$9!#(B</p> - - <p>$BB>$N(B ($B%G!<%?%Y!<%9$K$h$k(B) $B%"%/%;%9@)8fJ}K!$HAH$_9g$o$;$k$3$H$G!"(B - $B!VL$EPO?!W%f!<%6$KBP$7$F%5%$%H$r8x3+$7$D$D!"8zN($h$/%f!<%6DI@W$7$?$j!"(B - $B%f!<%6$N%W%m%U%!%$%k$K1~$8$?%+%9%?%^%$%:$r$7$?$j$G$-$^$9!#(B - $B$3$N$h$&$JG'>Z$K4p$E$$$?%f!<%6DI@W$NMxE@$N0l$D$O!"(B - $B%^%8%C%/%/%C%-!<$K4p$E$/%f!<%6DI@WJ}K!$d!"(B - $BDAL/$J(B URL $B$N@\F,<-$d@\Hx<-$rMxMQ$7$?%f!<%6DI@WJ}K!$H$O0[$J$j!"(B - $B40A4$K%V%i%&%6Hs0MB8$G$"$j!"%f!<%64V$G(B URL $B$r6&M-$9$k$3$H$,$G$-$k$H$$$&(B - $BE@$G$9!#(B</p> - - <p><module>mod_auth_basic</module> $B$r;HMQ$7$F$$$k>l9g$O!"$3$N%b%8%e!<%k$O(B - <directive module="mod_auth_basic">AuthBasicProvider</directive> $B$K(B - <code>anon</code> $B$H$$$&CM$r@_Dj$9$k$3$H$G5/F0$5$l$^$9!#(B</p> + <p>このモジュールは <module>mod_auth_basic</module> のような + 認証フロントエンドとして、anonymous-ftp サイトのような、「魔法の」ユーザ ID + 'anonymous' と電子メールアドレスをパスワードにしたユーザ認証を + 行なう機能を提供します。この電子メールアドレスはログ収集することが + できます。</p> + + <p>他の (データベースによる) アクセス制御方法と組み合わせることで、 + 「未登録」ユーザに対してサイトを公開しつつ、効率よくユーザ追跡したり、 + ユーザのプロファイルに応じたカスタマイズをしたりできます。 + このような認証に基づいたユーザ追跡の利点の一つは、 + マジッククッキーに基づくユーザ追跡方法や、 + 珍妙な URL の接頭辞や接尾辞を利用したユーザ追跡方法とは異なり、 + 完全にブラウザ非依存であり、ユーザ間で URL を共有することができるという + 点です。</p> + + <p><module>mod_auth_basic</module> を使用している場合は、このモジュールは + <directive module="mod_auth_basic">AuthBasicProvider</directive> に + <code>anon</code> という値を設定することで起動されます。</p> </summary> -<section id="example"><title>$BNc(B</title> - <p>$B0J2<$NNc$O!VIaDL!W$N(B htpasswd $B%U%!%$%k$K4p$E$$$?G'>Z$HAH$_9g$o$5$l$F(B - $B$*$j!"0J2<$NMW7o$r8+$?$9%f!<%6$r!V%2%9%H!W$H$7$F5v2D$7$^$9(B:</p> +<section id="example"><title>例</title> + <p>以下の例は「普通」の htpasswd ファイルに基づいた認証と組み合わされて + おり、以下の要件を見たすユーザを「ゲスト」として許可します:</p> <ul> - <li>$B%f!<%6$O(B userID $B$rF~NO$7$J$1$l$P$J$j$^$;$s!#(B + <li>ユーザは userID を入力しなければなりません。 (<directive module="mod_authn_anon" >Anonymous_NoUserID</directive>)</li> - <li>$B%f!<%6$O%Q%9%o!<%I$rF~NO$7$J$1$l$P$J$j$^$;$s!#(B + <li>ユーザはパスワードを入力しなければなりません。 (<directive module="mod_authn_anon" >Anonymous_MustGiveEmail</directive>)</li> - <li>$BF~NO$5$l$?%Q%9%o!<%I$OM-8z$JEE;R%a!<%k%"%I%l%9$G$J$1$l$P(B - $B$J$j$^$;$s!#(B<em>$B$9$J$o$A(B</em>$B!">/$/$H$b0l$D$N(B '@' $B$H(B '.' $B$,(B - $B4^$^$l$F$$$kI,MW$,$"$j$^$9!#(B + <li>入力されたパスワードは有効な電子メールアドレスでなければ + なりません。<em>すなわち</em>、少くとも一つの '@' と '.' が + 含まれている必要があります。 (<directive module="mod_authn_anon" >Anonymous_VerifyEmail</directive>)</li> - <li>userID $B$O(B <code>anonymous guest www test - welcome</code> $B$N$I$l$+$G$J$1$l$P$J$j$^$;$s!#(B - $B%f!<%6L>$NHf3S$OBgJ8;z>.J8;z$r6hJL(B<strong>$B$7$^$;$s!#(B</strong></li> + <li>userID は <code>anonymous guest www test + welcome</code> のどれかでなければなりません。 + ユーザ名の比較は大文字小文字を区別<strong>しません。</strong></li> - <li>$B%Q%9%o!<%IMs$KF~NO$5$l$?EE;R%a!<%k%"%I%l%9$O%(%i!<%m%0%U%!%$%k$K(B - $B%m%.%s%0$5$l$^$9!#(B + <li>パスワード欄に入力された電子メールアドレスはエラーログファイルに + ロギングされます。 (<directive module="mod_authn_anon" >Anonymous_LogEmail</directive>)</li> </ul> - <example><title>$BNc(B</title> + <example><title>例</title> <Directory /foo> <indent> AuthName "Use 'anonymous' & Email address for guest entry"<br /> @@ -105,7 +105,7 @@ <directivesynopsis> <name>Anonymous</name> -<description>$B%Q%9%o!<%I$N8!::L5$7$G%"%/%;%9$r5v2D$9$k(B userID $B$r;XDj$9$k(B +<description>パスワードの検査無しでアクセスを許可する userID を指定する </description> <syntax>Anonymous <var>user</var> [<var>user</var>] ...</syntax> <contextlist><context>directory</context><context>.htaccess</context> @@ -113,33 +113,33 @@ <override>AuthConfig</override> <usage> - <p>$B%Q%9%o!<%I$N8!::$r$7$J$$$G%"%/%;%9$r5v2D$9$k!VKbK!$N!W(B userID $B$r(B - $B@_Dj$7$^$9!#(BuserID $BCf$K6uGr$r;H$($k$h$&$K$9$k$?$a!"(B - $B%(%9%1!<%WJ8;z(B \ $B$K$h$kJ}K!$H!"0zMQId(B ' $B$H(B " $B$K$h$k%/%*!<%F%#%s%0(B - $B$r;H$&$3$H$,$G$-$^$9!#(B</p> + <p>パスワードの検査をしないでアクセスを許可する「魔法の」 userID を + 設定します。userID 中に空白を使えるようにするため、 + エスケープ文字 \ による方法と、引用符 ' と " によるクオーティング + を使うことができます。</p> - <p>$B%f!<%6L>$NHf3S$O(B<strong>$BBgJ8;z>.J8;z$r6hJL$7$J$$(B</strong>$B$3$H$K(B - $BCm0U$7$F$/$@$5$$!#(B<br /> - $BKbK!$N%f!<%6L>(B '<code>anonymous</code>' $B$,5v2D$5$l$F$$$k(B userID $B$K(B - $B4^$`$h$&$K$9$k$3$H$O6/$/?d>)$5$l$F$$$^$9!#(B</p> + <p>ユーザ名の比較は<strong>大文字小文字を区別しない</strong>ことに + 注意してください。<br /> + 魔法のユーザ名 '<code>anonymous</code>' が許可されている userID に + 含むようにすることは強く推奨されています。</p> - <example><title>$BNc(B:</title> + <example><title>例:</title> Anonymous anonymous "Not Registered" "I don't know" </example> - <p>$B$3$l$O!"(BuserID "anonymous", - "AnonyMous", "Not Registered", "I Don't Know" $B$N$I$l$+$r;H$C$F$b(B - $B%Q%9%o!<%IL5$7$G%f!<%6$,%5%$%H$KF~$l$k$h$&$K$7$^$9!#(B</p> + <p>これは、userID "anonymous", + "AnonyMous", "Not Registered", "I Don't Know" のどれかを使っても + パスワード無しでユーザがサイトに入れるようにします。</p> - <p>Apache 2.1 $B$G$O(B userID $B$K(B "<code>*</code>" $B$r;XDj$9$k$3$H$,$G$-$^$9!#(B - $B$3$N>l9g!"(B<em>$B$9$Y$F$N(B</em>userID $B$r5v2D$7$^$9!#(B</p> + <p>Apache 2.1 では userID に "<code>*</code>" を指定することができます。 + この場合、<em>すべての</em>userID を許可します。</p> </usage> </directivesynopsis> <directivesynopsis> <name>Anonymous_LogEmail</name> -<description>$BF~NO$5$l$?%Q%9%o!<%I$,%(%i!<%m%0$K%m%.%s%0$5$l$k$+$I$&$+$r(B -$B@_Dj$9$k(B</description> +<description>入力されたパスワードがエラーログにロギングされるかどうかを +設定する</description> <syntax>Anonymous_LogEmail On|Off</syntax> <default>Anonymous_LogEmail On</default> <contextlist><context>directory</context><context>.htaccess</context> @@ -147,15 +147,15 @@ <override>AuthConfig</override> <usage> - <p>$B%G%U%)%k%H$N(B <code>On</code> $B$K@_Dj$5$l$?>l9g$O!"(B - $BF~NO$5$l$?(B ($B$^$C$H$&$JEE;R%a!<%k%"%I%l%9$G$"$k$3$H$,(B - $B4|BT$5$l$k(B) $B!V%Q%9%o!<%I!W$,%(%i!<%m%0$K%m%.%s%0$5$l$^$9!#(B</p> + <p>デフォルトの <code>On</code> に設定された場合は、 + 入力された (まっとうな電子メールアドレスであることが + 期待される) 「パスワード」がエラーログにロギングされます。</p> </usage> </directivesynopsis> <directivesynopsis> <name>Anonymous_MustGiveEmail</name> -<description>$B6u%Q%9%o!<%I$r5v2D$9$k$+$I$&$+$r;XDj$9$k(B</description> +<description>空パスワードを許可するかどうかを指定する</description> <syntax>Anonymous_MustGiveEmail On|Off</syntax> <default>Anonymous_MustGiveEmail On</default> <contextlist><context>directory</context><context>.htaccess</context> @@ -163,14 +163,14 @@ <override>AuthConfig</override> <usage> - <p>$B%f!<%6$,%Q%9%o!<%I$H$7$FEE;R%a!<%k%"%I%l%9$r;XDj$9$kI,MW$,$"$k$+$I$&$+$r(B - $B@_Dj$7$^$9!#$3$l$O6u%Q%9%o!<%I$r6X;_$7$^$9!#(B</p> + <p>ユーザがパスワードとして電子メールアドレスを指定する必要があるかどうかを + 設定します。これは空パスワードを禁止します。</p> </usage> </directivesynopsis> <directivesynopsis> <name>Anonymous_NoUserID</name> -<description>$B6u(B userID $B$r5v2D$9$k$+$r;XDj$9$k(B</description> +<description>空 userID を許可するかを指定する</description> <syntax>Anonymous_NoUserID On|Off</syntax> <default>Anonymous_NoUserID Off</default> <contextlist><context>directory</context><context>.htaccess</context> @@ -178,17 +178,17 @@ <override>AuthConfig</override> <usage> - <p><code>On</code> $B$K@_Dj$9$k$H!"%f!<%6$O(B userID ($B$H$*$=$i$/$O(B - $B%Q%9%o!<%IMs$b(B) $B6u$K$9$k$3$H$,$G$-$^$9!#$3$l$OC1$K%j%?!<%s%-!<$r(B - $BC!$$$?$j(B OK $B%\%?%s$rD>@\%/%j%C%/$7$?$j$9$k(B MS-Explorer $B%f!<%6$K$O(B - $BHs>o$KJXMx$G$9!#$=$N$h$&$JA`:n$O$4$/$4$/<+A3$J$b$N$G$7$g$&!#(B</p> + <p><code>On</code> に設定すると、ユーザは userID (とおそらくは + パスワード欄も) 空にすることができます。これは単にリターンキーを + 叩いたり OK ボタンを直接クリックしたりする MS-Explorer ユーザには + 非常に便利です。そのような操作はごくごく自然なものでしょう。</p> </usage> </directivesynopsis> <directivesynopsis> <name>Anonymous_VerifyEmail</name> -<description>$B%Q%9%o!<%IMs$,@5$7$$7A<0$NEE;R%a!<%k%"%I%l%9$G$"$k$3$H$r(B -$BD4$Y$k$+$I$&$+$r@_Dj$9$k(B</description> +<description>パスワード欄が正しい形式の電子メールアドレスであることを +調べるかどうかを設定する</description> <syntax>Anonymous_VerifyEmail On|Off</syntax> <default>Anonymous_VerifyEmail Off</default> <contextlist><context>directory</context><context>.htaccess</context> @@ -196,11 +196,11 @@ <override>AuthConfig</override> <usage> - <p><code>On</code> $B$K@_Dj$5$l$F$$$k>l9g!"%f!<%6$,M-8z$JEE;R%a!<%k(B - $B%"%I%l%9$rF~NO$9$k$3$H$r?d>)$9$k$?$a!"F~NO$5$l$?!V%Q%9%o!<%I!W$O(B - $B>/$J$/$H$b0l$D$N(B '@' $B$H(B '.' $B$r4^$s$G$$$k$+$I$&$+$rD4$Y$^$9(B - ($B>e$N(B <directive - module="mod_authn_anon">Anonymous_LogEmail</directive> $B;2>H(B)$B!#(B</p> + <p><code>On</code> に設定されている場合、ユーザが有効な電子メール + アドレスを入力することを推奨するため、入力された「パスワード」は + 少なくとも一つの '@' と '.' を含んでいるかどうかを調べます + (上の <directive + module="mod_authn_anon">Anonymous_LogEmail</directive> 参照)。</p> </usage> </directivesynopsis> diff --git a/docs/manual/mod/mod_authn_dbm.xml.ja b/docs/manual/mod/mod_authn_dbm.xml.ja index af50b3cb2f..d4c8619bc7 100644 --- a/docs/manual/mod/mod_authn_dbm.xml.ja +++ b/docs/manual/mod/mod_authn_dbm.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 420990:574882 (outdated) --> @@ -23,24 +23,24 @@ <modulesynopsis metafile="mod_authn_dbm.xml.meta"> <name>mod_authn_dbm</name> -<description>DBM $B%U%!%$%k$rMQ$$$?%f!<%6G'>Z(B</description> +<description>DBM ファイルを用いたユーザ認証</description> <status>Extension</status> <sourcefile>mod_authn_dbm.c</sourcefile> <identifier>authn_dbm_module</identifier> -<compatibility>Apache 2.1 $B0J9_(B</compatibility> +<compatibility>Apache 2.1 以降</compatibility> <summary> - <p>$BK\%b%8%e!<%k$O(B <module>mod_auth_digest</module> $B$d(B - <module>mod_auth_basic</module> $B$H$$$C$?G'>Z%U%m%s%H%(%s%I$KBP$7$F!"(B - <dfn>dbm</dfn> $B%Q%9%o!<%I%U%!%$%kFb$+$i$N%f!<%68!:w$K$h$k(B - $B%f!<%6G'>Z5!G=$rDs6!$7$^$9!#;w$?$h$&$J5!G=$O(B <module>mod_authn_file</module> - $B$G$bDs6!$5$l$F$$$^$9!#(B</p> - - <p><module>mod_auth_basic</module> $B$d(B <module>mod_auth_digest</module> - $B$r;HMQ$9$k:]$K$O!"$3$N%b%8%e!<%k$O(B - <directive module="mod_auth_basic">AuthBasicProvider</directive> $B$d(B + <p>本モジュールは <module>mod_auth_digest</module> や + <module>mod_auth_basic</module> といった認証フロントエンドに対して、 + <dfn>dbm</dfn> パスワードファイル内からのユーザ検索による + ユーザ認証機能を提供します。似たような機能は <module>mod_authn_file</module> + でも提供されています。</p> + + <p><module>mod_auth_basic</module> や <module>mod_auth_digest</module> + を使用する際には、このモジュールは + <directive module="mod_auth_basic">AuthBasicProvider</directive> や <directive module="mod_auth_digest">AuthDigestPrivider</directive> - $B$G(B <code>dbm</code> $B$H;XDj$9$k$3$H$G5/F0$5$l$^$9!#(B</p> + で <code>dbm</code> と指定することで起動されます。</p> </summary> <seealso><directive module="core">AuthName</directive></seealso> @@ -54,51 +54,51 @@ <directivesynopsis> <name>AuthDBMUserFile</name> -<description>$BG'>ZMQ$N%f!<%6$H%Q%9%o!<%I$N%j%9%H$rJ];}$7$F$$$k(B -$B%G!<%?%Y!<%9%U%!%$%kL>$r@_Dj$9$k(B</description> +<description>認証用のユーザとパスワードのリストを保持している +データベースファイル名を設定する</description> <syntax>AuthDBMUserFile <var>file-path</var></syntax> <contextlist><context>directory</context><context>.htaccess</context> </contextlist> <override>AuthConfig</override> <usage> - <p><directive>AuthDBMUserFile</directive> $B%G%#%l%/%F%#%V$O(B - $BG'>ZMQ$N%f!<%6$H%Q%9%o!<%I$N%j%9%H$rJ];}$7$F$$$k(B DBM $B%U%!%$%k$N(B - $BL>A0$r@_Dj$7$^$9!#(B<var>File-path</var> $B$O%f!<%6%U%!%$%k$X$N(B - $B@dBP%Q%9$G$9!#(B</p> - - <p>$B%f!<%6%U%!%$%k$N%-!<$O%f!<%6L>$G$9!#%f!<%6$KBP$7$FJV$5$l$kCM$O(B - $B0E9f2=$5$l$?%Q%9%o!<%I$G!"$=$N8e$K!"%3%m%s$KB3$$$FG$0U$N%G!<%?$,(B - $BB3$$$F$$$k$3$H$b$"$j$^$9!#%3%m%s$H$=$N8e$N%G!<%?$O%5!<%P$O(B - $BL5;k$7$^$9!#(B</p> - - <note type="warning"><title>$B%;%-%e%j%F%#(B</title> - <p><directive>AuthDBMUserFile </directive> $B$O!"(B - $B%&%'%V%5!<%P$N%I%-%e%a%s%H%D%j!<$N30B&$KJ]4I$9$k$h$&$K$7$F$/$@$5$$!#(B - $BJ]8n$7$h$&$H$7$F$$$k%G%#%l%/%H%j0J2<$K$O(B - <strong>$BCV$+$J$$$G2<$5$$(B</strong>$B!#(B - $B$=$&$7$J$$$H%/%i%$%"%s%H$,(B <directive>AuthUserFile</directive> $B$r(B - $B%@%&%s%m!<%I$G$-$F$7$^$$$^$9!#(B</p> + <p><directive>AuthDBMUserFile</directive> ディレクティブは + 認証用のユーザとパスワードのリストを保持している DBM ファイルの + 名前を設定します。<var>File-path</var> はユーザファイルへの + 絶対パスです。</p> + + <p>ユーザファイルのキーはユーザ名です。ユーザに対して返される値は + 暗号化されたパスワードで、その後に、コロンに続いて任意のデータが + 続いていることもあります。コロンとその後のデータはサーバは + 無視します。</p> + + <note type="warning"><title>セキュリティ</title> + <p><directive>AuthDBMUserFile </directive> は、 + ウェブサーバのドキュメントツリーの外側に保管するようにしてください。 + 保護しようとしているディレクトリ以下には + <strong>置かないで下さい</strong>。 + そうしないとクライアントが <directive>AuthUserFile</directive> を + ダウンロードできてしまいます。</p> </note> - <p>$B=EMW$J8_49@-$K4X$9$kCm0U(B: apache module $B$N(B <code>dbmopen</code> $B$N<BAu$O(B - $BJ8;zNs$,(B NULL $B$G=*$o$C$F$$$k$3$H$K0MB8$9$k$N$G$O$J$/!"(BDBM $B%G!<%?%9%H%i%/%A%c(B - $B$N%O%C%7%eCM$NJ8;zNs$ND9$5$rFI$_<h$j$^$9!#(BNetscape $B%&%'%V%5!<%P$J$I!"(B - $B%"%W%j%1!<%7%g%s$NCf$K$OJ8;zNs$,(B NULL $B$G=*$o$C$F$$$k$3$H$K0MB8$7$F$$$k(B - $B$b$N$,$"$j$^$9!#$G$9$+$i!"0[$J$k%"%W%j%1!<%7%g%s4V$G$N(B DBM $B%U%!%$%k$N(B - $B;HMQ$KLdBj$,$"$k>l9g$O!"$3$l$,860x$K$J$C$F$$$k2DG=@-$,$"$j$^$9!#(B</p> - - <p>Apache $B$K$O(B <program>dbmmanage</program> $B$H$$$&(B - perl $B%9%/%j%W%H$,4^$^$l$F$$$^$9!#$3$N%W%m%0%i%`$r;H$C$F$3$N(B - $B%b%8%e!<%k$,;HMQ$9$k(B DBM $B%U%)!<%^%C%H$N%Q%9%o!<%I%U%!%$%k$r:n@.$7$?$j(B - $B99?7$7$?$j$9$k$3$H$,$G$-$^$9!#(B</p> + <p>重要な互換性に関する注意: apache module の <code>dbmopen</code> の実装は + 文字列が NULL で終わっていることに依存するのではなく、DBM データストラクチャ + のハッシュ値の文字列の長さを読み取ります。Netscape ウェブサーバなど、 + アプリケーションの中には文字列が NULL で終わっていることに依存している + ものがあります。ですから、異なるアプリケーション間での DBM ファイルの + 使用に問題がある場合は、これが原因になっている可能性があります。</p> + + <p>Apache には <program>dbmmanage</program> という + perl スクリプトが含まれています。このプログラムを使ってこの + モジュールが使用する DBM フォーマットのパスワードファイルを作成したり + 更新したりすることができます。</p> </usage> </directivesynopsis> <directivesynopsis> <name>AuthDBMType</name> -<description>$B%Q%9%o!<%I$rJ]B8$9$k$?$a$KI,MW$J%G!<%?%Y!<%9%U%!%$%k$N<oN`$r(B -$B@_Dj$9$k(B</description> +<description>パスワードを保存するために必要なデータベースファイルの種類を +設定する</description> <syntax>AuthDBMType default|SDBM|GDBM|NDBM|DB</syntax> <default>AuthDBMType default</default> <contextlist><context>directory</context><context>.htaccess</context> @@ -106,13 +106,13 @@ <override>AuthConfig</override> <usage> - <p>$B%Q%9%o!<%I$rJ]B8$9$k$?$a$K;HMQ$9$k%G!<%?%Y!<%9%U%!%$%k$N<oN`$r(B - $B@_Dj$7$^$9!#%G%U%)%k%H$N%G!<%?%Y!<%9$N<oN`$O%3%s%Q%$%k;~$K7h$^$j$^$9!#(B - $BB>$N<oN`$N%G!<%?%Y!<%9$,;HMQ2DG=$+$I$&$+$b(B <a href="../install.html#dbm" - >$B%3%s%Q%$%k;~$N@_Dj(B</a>$B$K0MB8$7$^$9!#(B</p> + <p>パスワードを保存するために使用するデータベースファイルの種類を + 設定します。デフォルトのデータベースの種類はコンパイル時に決まります。 + 他の種類のデータベースが使用可能かどうかも <a href="../install.html#dbm" + >コンパイル時の設定</a>に依存します。</p> - <p>$B%Q%9%o!<%I%U%!%$%k$r:n@.$9$k$N$K;HMQ$9$k%W%m%0%i%`$,F1$8<oN`$N%G!<%?%Y!<%9$r(B - $B;HMQ$9$k$h$&$K@_Dj$9$k$3$H$OHs>o$K=EMW$G$9!#(B</p> + <p>パスワードファイルを作成するのに使用するプログラムが同じ種類のデータベースを + 使用するように設定することは非常に重要です。</p> </usage> </directivesynopsis> diff --git a/docs/manual/mod/mod_authn_default.xml.ja b/docs/manual/mod/mod_authn_default.xml.ja index 322e80813f..0c38b78cfe 100644 --- a/docs/manual/mod/mod_authn_default.xml.ja +++ b/docs/manual/mod/mod_authn_default.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 420990 --> @@ -23,22 +23,22 @@ <modulesynopsis metafile="mod_authn_default.xml.meta"> <name>mod_authn_default</name> -<description>$BG'>Z%U%)!<%k%P%C%/%b%8%e!<%k(B</description> +<description>認証フォールバックモジュール</description> <status>Base</status> <sourcefile>mod_authn_default.c</sourcefile> <identifier>authn_default_module</identifier> -<compatibility>Apache 2.1 $B0J9_(B</compatibility> +<compatibility>Apache 2.1 以降</compatibility> <summary> - <p><module>mod_auth_basic</module> $B$N$h$&$JG'>Z%b%8%e!<%k$r(B - $B@_Dj$7$J$+$C$?>l9g$O!"K\%b%8%e!<%k$,%U%)!<%k%P%C%/$H$J$j$^$9!#(B - $B%f!<%6$+$iDs<($5$l$?$I$s$J>Z=q$bC1$K5qH]$7$^$9!#(B</p> + <p><module>mod_auth_basic</module> のような認証モジュールを + 設定しなかった場合は、本モジュールがフォールバックとなります。 + ユーザから提示されたどんな証書も単に拒否します。</p> </summary> <directivesynopsis> <name>AuthDefaultAuthoritative</name> -<description>$B<!$NDc<!%l%Y%k$NG'>Z%b%8%e!<%k$K@)8f$rEO$9$+$I$&$+$r(B -$B@_Dj$7$^$9(B</description> +<description>次の低次レベルの認証モジュールに制御を渡すかどうかを +設定します</description> <syntax>AuthDefaultAuthoritative On|Off</syntax> <default>AuthDefaultAuthoritative On</default> <contextlist><context>directory</context><context>.htaccess</context> @@ -46,18 +46,18 @@ <override>AuthConfig</override> <usage> - <p><directive>AuthDefaultAuthoritative</directive> $B%G%#%l%/%F%#%V$r(B - $BL@<(E*$K(B <code>Off</code> $B$K@_Dj$9$k$H!"(B - $BG'>Z$r<!$N(B (<code>modules.c</code> $B%U%!%$%k$GDj5A$5$l$F$$$k(B) - $BDc<!%l%Y%k$N%b%8%e!<%k$KEO$7$^$9!#(B + <p><directive>AuthDefaultAuthoritative</directive> ディレクティブを + 明示的に <code>Off</code> に設定すると、 + 認証を次の (<code>modules.c</code> ファイルで定義されている) + 低次レベルのモジュールに渡します。 </p> - <note><title>$BCm0U(B</title> - <p><module>mod_authn_default</module> $B<+BN$,(B<em>$B$H$F$bDc$$(B</em> - $B%l%Y%k$H$7$FDj5A$5$l$F$$$^$9$N$G!"DL>o$O$3$l$h$j$bDc<!$N(B - $B%b%8%e!<%k$OB8:_$7$^$;$s!#$G$9$+$i(B - <directive>AuthDefaultAuthoritative</directive> $B$O%G%U%)%k%H(B - (<code>On</code>) $B$N$^$^$K$7$?$[$&$,NI$$$G$7$g$&!#(B</p> + <note><title>注意</title> + <p><module>mod_authn_default</module> 自体が<em>とても低い</em> + レベルとして定義されていますので、通常はこれよりも低次の + モジュールは存在しません。ですから + <directive>AuthDefaultAuthoritative</directive> はデフォルト + (<code>On</code>) のままにしたほうが良いでしょう。</p> </note> </usage> </directivesynopsis> diff --git a/docs/manual/mod/mod_authn_file.xml.ja b/docs/manual/mod/mod_authn_file.xml.ja index 0df477bae0..aeae9f1340 100644 --- a/docs/manual/mod/mod_authn_file.xml.ja +++ b/docs/manual/mod/mod_authn_file.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 420990 --> @@ -23,24 +23,24 @@ <modulesynopsis metafile="mod_authn_file.xml.meta"> <name>mod_authn_file</name> -<description>$B%F%-%9%H%U%!%$%k$rMQ$$$?%f!<%6G'>Z(B</description> +<description>テキストファイルを用いたユーザ認証</description> <status>Base</status> <sourcefile>mod_authn_file.c</sourcefile> <identifier>authn_file_module</identifier> -<compatibility>Apache 2.1 $B0J9_(B</compatibility> +<compatibility>Apache 2.1 以降</compatibility> <summary> - <p>$BK\%b%8%e!<%k$O(B <module>mod_auth_digest</module> $B$d(B - <module>mod_auth_basic</module> $B$H$$$C$?G'>Z%U%m%s%H%(%s%I$KBP$7$F!"(B - $B%W%l%$%s%F%-%9%H$N%Q%9%o!<%I%U%!%$%kFb$+$i%f!<%6$r8!:w$9$k$3$H$G!"(B - $B%f!<%6G'>Z5!G=$rDs6!$7$^$9!#;w$?$h$&$J5!G=$O(B <module>mod_authn_dbm</module> - $B$G$bDs6!$5$l$F$$$^$9!#(B</p> - - <p><module>mod_auth_basic</module> $B$d(B <module>mod_auth_digest</module> - $B$r;HMQ$9$k:]$K$O!"(B - <directive module="mod_auth_basic">AuthBasicProvider</directive> $B$d(B + <p>本モジュールは <module>mod_auth_digest</module> や + <module>mod_auth_basic</module> といった認証フロントエンドに対して、 + プレインテキストのパスワードファイル内からユーザを検索することで、 + ユーザ認証機能を提供します。似たような機能は <module>mod_authn_dbm</module> + でも提供されています。</p> + + <p><module>mod_auth_basic</module> や <module>mod_auth_digest</module> + を使用する際には、 + <directive module="mod_auth_basic">AuthBasicProvider</directive> や <directive module="mod_auth_digest">AuthDigestPrivider</directive> - $B$G(B <code>file</code> $B$H;XDj$9$k$3$H$G$3$N%b%8%e!<%k$O5/F0$5$l$^$9!#(B</p> + で <code>file</code> と指定することでこのモジュールは起動されます。</p> </summary> <seealso> <directive module="mod_auth_basic">AuthBasicProvider</directive> @@ -53,71 +53,71 @@ <directivesynopsis> <name>AuthUserFile</name> -<description>$BG'>Z$K;HMQ$9$k%f!<%6$H%Q%9%o!<%I$N0lMw$,3JG<$5$l$F$$$k!"(B -$B%F%-%9%H%U%!%$%k$NL>A0$r@_Dj$9$k(B</description> +<description>認証に使用するユーザとパスワードの一覧が格納されている、 +テキストファイルの名前を設定する</description> <syntax>AuthUserFile <var>file-path</var></syntax> <contextlist><context>directory</context><context>.htaccess</context> </contextlist> <override>AuthConfig</override> <usage> - <p><directive>AuthUserFile</directive> $B%G%#%l%/%F%#%V$O!"(B - $B%f!<%6G'>Z$N$?$a$N%f!<%6$H%Q%9%o!<%I$N0lMw$r3JG<$7$?(B - $B%F%-%9%H%U%!%$%k$NL>A0$r@_Dj$7$^$9!#(B<var>file-path</var> - $B$O%f!<%6%U%!%$%k$X$N%Q%9$G$9!#(B - $B$b$7@dBP%Q%9$G$J$1$l$P!"(B + <p><directive>AuthUserFile</directive> ディレクティブは、 + ユーザ認証のためのユーザとパスワードの一覧を格納した + テキストファイルの名前を設定します。<var>file-path</var> + はユーザファイルへのパスです。 + もし絶対パスでなければ、 <directive module="core">ServerRoot</directive> - $B$+$i$NAjBP%Q%9$H$7$F07$o$l$^$9!#(B</p> + からの相対パスとして扱われます。</p> - <p>$B%f!<%6%U%!%$%k$N3F9T$K$O!"%f!<%6L>!"%3%m%s!"(B - $B0E9f2=$7$?%Q%9%o!<%I$r5-=R$7$^$9!#(B - $BF10l%f!<%6(B ID $B$,J#?t2sEPO?$5$l$?;~$O!"(B + <p>ユーザファイルの各行には、ユーザ名、コロン、 + 暗号化したパスワードを記述します。 + 同一ユーザ ID が複数回登録された時は、 <module>mod_authn_file</module> - $B$O:G=i$K8+$D$+$C$?%Q%9%o!<%I$r;HMQ$7$FG'>Z$7$^$9!#(B</p> + は最初に見つかったパスワードを使用して認証します。</p> - <p>$B%P%$%J%jG[I[$N0lIt$H$7$F%$%s%9%H!<%k$5$l$k$+!"(B - $B$"$k$$$O(B <code>src/support</code> $B$K$"$k(B + <p>バイナリ配布の一部としてインストールされるか、 + あるいは <code>src/support</code> にある <program>htpasswd</program> - $B%f!<%F%#%j%F%#$G!"$3$N(B <em>HTTP $B4pK\G'>Z(B</em> - $BMQ%Q%9%o!<%I%U%!%$%k$r%a%$%s%F%J%s%9$7$^$9!#(B - $B>\:Y$O(B <a href="../programs/htpasswd.html">man - $B%Z!<%8(B</a>$B$r$4MwD:$/$H$7$F!"4JC1$K$O(B:</p> + ユーティリティで、この <em>HTTP 基本認証</em> + 用パスワードファイルをメインテナンスします。 + 詳細は <a href="../programs/htpasswd.html">man + ページ</a>をご覧頂くとして、簡単には:</p> - <p>$B=i4|(B ID <code>username</code> $B$G!"(B<code>Filename</code> - $B$H$$$&%Q%9%o!<%I%U%!%$%k$r@8@.$7$^$9!#(B - $B<!$N%3%^%s%I$rH/9T$9$k$H%Q%9%o!<%I$,MW5a$5$l$^$9(B:</p> + <p>初期 ID <code>username</code> で、<code>Filename</code> + というパスワードファイルを生成します。 + 次のコマンドを発行するとパスワードが要求されます:</p> <example> htpasswd -c Filename username </example> - <p>$B%Q%9%o!<%I%U%!%$%k(B <code>Filename</code> $B$K!"(B<code>username2</code> - $B$rDI2C$7$?$j=$@5$7$?$j$7$^$9(B:</p> + <p>パスワードファイル <code>Filename</code> に、<code>username2</code> + を追加したり修正したりします:</p> <example> htpasswd Filename username2 </example> - <p>($BLuCm(B: $BHs>o$KB?$/$N%f!<%6$rEPO?$9$k$HBg$-$J%U%!%$%k$K$J$j$^$9$,(B) - $BBg$-$J%F%-%9%H%U%!%$%k$r8!:w$9$k$N$O(B<em>$BHs>o$K8zN($,0-$$(B</em> - $B$H$$$&$3$H$KCm0U$7$F$/$@$5$$!#$=$N$h$&$JI,MW$N$"$k;~$O!"(B + <p>(訳注: 非常に多くのユーザを登録すると大きなファイルになりますが) + 大きなテキストファイルを検索するのは<em>非常に効率が悪い</em> + ということに注意してください。そのような必要のある時は、 <directive module="mod_authn_dbm">AuthDBMUserFile</directive> - $B$rBe$o$j$K;H$C$F$/$@$5$$!#(B</p> + を代わりに使ってください。</p> - <p><em>HTTP $B%@%$%8%'%9%HG'>Z(B</em>$B$r;HMQ$9$k>l9g$O!"(B + <p><em>HTTP ダイジェスト認証</em>を使用する場合は、 <a href="../programs/htpasswd.html">htpasswd</a> - $B%W%m%0%i%`$G$OIT==J,$G$9!#$=$NBe$o$j$K(B + プログラムでは不十分です。その代わりに <program>htdigest</program> - $B$r;HMQ$7$F$/$@$5$$!#%@%$%8%'%9%HG'>ZMQ$N%G!<%?$H(B - $B4pK\G'>ZMQ$N%G!<%?$rF10l%U%!%$%k$K:.$<$FJ]B8$G$-$J$$!"(B - $B$H$$$&$3$H$KCm0U$7$F$/$@$5$$!#(B</p> + を使用してください。ダイジェスト認証用のデータと + 基本認証用のデータを同一ファイルに混ぜて保存できない、 + ということに注意してください。</p> - <note type="warning"><title>$B%;%-%e%j%F%#(B</title> + <note type="warning"><title>セキュリティ</title> <p><directive>AuthUserFile </directive> - $B$O!"%&%'%V%5!<%P$N%I%-%e%a%s%H%D%j!<$N30B&$KJ]4I$9$k$h$&$K$7$F$/$@$5$$!#(B - $BJ]8n$7$h$&$H$7$F$$$k%G%#%l%/%H%j0J2<$K$O!"(B<strong>$BCV$+$J$$$G2<$5$$(B</strong>$B!#(B - $B$=$&$7$J$$$H(B <directive>AuthUserFile</directive> $B$O(B - $B%@%&%s%m!<%I$G$-$F$7$^$$$^$9!#(B</p> + は、ウェブサーバのドキュメントツリーの外側に保管するようにしてください。 + 保護しようとしているディレクトリ以下には、<strong>置かないで下さい</strong>。 + そうしないと <directive>AuthUserFile</directive> は + ダウンロードできてしまいます。</p> </note> </usage> </directivesynopsis> diff --git a/docs/manual/mod/mod_authz_default.xml.ja b/docs/manual/mod/mod_authz_default.xml.ja index 3e6b71b3b3..2916a261be 100644 --- a/docs/manual/mod/mod_authz_default.xml.ja +++ b/docs/manual/mod/mod_authz_default.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 420990 --> @@ -23,22 +23,22 @@ <modulesynopsis metafile="mod_authz_default.xml.meta"> <name>mod_authz_default</name> -<description>$B>5G'%U%)!<%k%P%C%/%b%8%e!<%k(B</description> +<description>承認フォールバックモジュール</description> <status>Base</status> <sourcefile>mod_authz_default.c</sourcefile> <identifier>authz_default_module</identifier> -<compatibility>Apache 2.1 $B0J9_(B</compatibility> +<compatibility>Apache 2.1 以降</compatibility> <summary> - <p>$B$3$N%b%8%e!<%k$O(B <module>mod_authz_user</module> $B$d(B - <module>mod_authz_groupfile</module> $B$H$$$C$?>5G'%b%8%e!<%k$r(B - $B@_Dj$7$J$+$C$?>l9g$N%U%)!<%k%P%C%/%b%8%e!<%k$H$7$F@_7W$5$l$F$$$^$9!#(B - $B$I$N$h$&$J>5G'%j%/%(%9%H$bC1$K5qH]$7$^$9!#(B</p> + <p>このモジュールは <module>mod_authz_user</module> や + <module>mod_authz_groupfile</module> といった承認モジュールを + 設定しなかった場合のフォールバックモジュールとして設計されています。 + どのような承認リクエストも単に拒否します。</p> </summary> <directivesynopsis> <name>AuthzDefaultAuthoritative</name> -<description>$B>5G'$,Dc0L$N%b%8%e!<%k$KEO$5$l$k$+$I$&$+$r@_Dj$9$k(B</description> +<description>承認が低位のモジュールに渡されるかどうかを設定する</description> <syntax>AuthzDefaultAuthoritative On|Off</syntax> <default>AuthzDefaultAuthoritative On</default> <contextlist><context>directory</context><context>.htaccess</context> @@ -46,17 +46,17 @@ <override>AuthConfig</override> <usage> - <p><directive>AuthzDefaultAuthoritative</directive> $B%G%#%l%/%F%#%V$r(B - $BL@<(E*$K(B <code>Off</code> $B$K@_Dj$9$k$H(B - $BG'>Z$r<!$N(B (<code>modules.c</code> $B%U%!%$%k$GDj5A$5$l$F$$$k(B) - $BDc0L$N%b%8%e!<%k$KEO$9$3$H$r5v2D$7$^$9!#(B</p> + <p><directive>AuthzDefaultAuthoritative</directive> ディレクティブを + 明示的に <code>Off</code> に設定すると + 認証を次の (<code>modules.c</code> ファイルで定義されている) + 低位のモジュールに渡すことを許可します。</p> - <note><title>$BCm0U(B</title> - <p><module>mod_authz_default</module> $B<+BN$,(B<em>$B$H$F$bDc$$(B</em> - $B%l%Y%k$H$7$FDj5A$5$l$F$$$^$9$N$G!"DL>o$O$3$l$h$j$bDc<!$N(B - $B%b%8%e!<%k$OB8:_$7$^$;$s!#$G$9$+$i(B - <directive>AuthDefaultAuthoritative</directive> $B$O%G%U%)%k%H(B - (<code>On</code>) $B$N$^$^$K$7$?$[$&$,NI$$$G$7$g$&!#(B</p> + <note><title>注意</title> + <p><module>mod_authz_default</module> 自体が<em>とても低い</em> + レベルとして定義されていますので、通常はこれよりも低次の + モジュールは存在しません。ですから + <directive>AuthDefaultAuthoritative</directive> はデフォルト + (<code>On</code>) のままにしたほうが良いでしょう。</p> </note> </usage> </directivesynopsis> diff --git a/docs/manual/mod/mod_authz_groupfile.xml.ja b/docs/manual/mod/mod_authz_groupfile.xml.ja index fa8afdfe7a..f8c6448bce 100644 --- a/docs/manual/mod/mod_authz_groupfile.xml.ja +++ b/docs/manual/mod/mod_authz_groupfile.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 151408:574882 (outdated) --> @@ -23,17 +23,17 @@ <modulesynopsis metafile="mod_authz_groupfile.xml.meta"> <name>mod_authz_groupfile</name> -<description>$B%W%l!<%s%F%-%9%H%U%!%$%k$rMQ$$$?%0%k!<%W>5G'(B</description> +<description>プレーンテキストファイルを用いたグループ承認</description> <status>Base</status> <sourcefile>mod_authz_groupfile.c</sourcefile> <identifier>authz_groupfile_module</identifier> -<compatibility>Apache 2.1 $B0J9_(B</compatibility> +<compatibility>Apache 2.1 以降</compatibility> <summary> - <p>$B$3$N%b%8%e!<%k$OG'>Z$5$l$?%f!<%6$,%0%k!<%W$N%a%s%P!<$+(B - $BH]$+$K$h$C$F%&%'%V%5%$%H$N0lIt$X$N%"%/%;%9$r5v2D$9$k$+5qH]$9$k$+$N(B - $B>5G'5!G=$rDs6!$7$^$9!#F1MM$N5!G=$O(B <module>mod_authz_dbm</module> - $B$K$h$C$F$bDs6!$5$l$F$$$^$9!#(B</p> + <p>このモジュールは認証されたユーザがグループのメンバーか + 否かによってウェブサイトの一部へのアクセスを許可するか拒否するかの + 承認機能を提供します。同様の機能は <module>mod_authz_dbm</module> + によっても提供されています。</p> </summary> <seealso><directive module="core">Require</directive></seealso> @@ -41,48 +41,48 @@ <directivesynopsis> <name>AuthGroupFile</name> -<description>$B>ZG'$K;HMQ$9$k%f!<%6%0%k!<%W$N0lMw$,3JG<$5$l$F$$$k!"(B -$B%F%-%9%H%U%!%$%k$NL>A0$r@_Dj$9$k(B</description> +<description>証認に使用するユーザグループの一覧が格納されている、 +テキストファイルの名前を設定する</description> <syntax>AuthGroupFile <var>file-path</var></syntax> <contextlist><context>directory</context><context>.htaccess</context> </contextlist> <override>AuthConfig</override> <usage> - <p><directive>AuthGroupFile</directive> $B%G%#%l%/%F%#%V$O!"(B - $B>ZG'$K;HMQ$9$k%f!<%6%0%k!<%W$N0lMw$,3JG<$5$l$F$$$k!"(B - $B%F%-%9%H%U%!%$%k$NL>A0$r@_Dj$7$^$9!#(B - <var>file-path</var> $B$O%0%k!<%W%U%!%$%k$X$N%Q%9$G$9!#(B - $B@dBP%Q%9$G$J$1$l$P!"(B + <p><directive>AuthGroupFile</directive> ディレクティブは、 + 証認に使用するユーザグループの一覧が格納されている、 + テキストファイルの名前を設定します。 + <var>file-path</var> はグループファイルへのパスです。 + 絶対パスでなければ、 <directive module="core">ServerRoot</directive> - $B$+$i$NAjBP%Q%9$H$7$F07$o$l$^$9!#(B</p> + からの相対パスとして扱われます。</p> - <p>$B%0%k!<%W%U%!%$%k3F9T$O!"%0%k!<%WL>!"%3%m%s!"$=$7$F(B - $B%9%Z!<%96h@Z$j$G$=$N%a%s%P!<$N%f!<%6L>$r5-=R$7$^$9!#(B</p> + <p>グループファイル各行は、グループ名、コロン、そして + スペース区切りでそのメンバーのユーザ名を記述します。</p> - <example><title>$BNc(B:</title> + <example><title>例:</title> mygroup: bob joe anne </example> - <p>$BBg$-$J%U%!%$%k$rC5:w$9$k$N$O!"(B<em>$BHs>o$K(B</em>$B8zN($,0-$$$H$$$&E@$K(B - $BCm0U$7$F$/$@$5$$!#$=$N$h$&$J>l9g$O!"(B + <p>大きなファイルを探索するのは、<em>非常に</em>効率が悪いという点に + 注意してください。そのような場合は、 <directive module="mod_authz_dbm">AuthDBMGroupFile</directive> - $B$NJ}$,$:$C$HNI$$@-G=$rH/4x$7$^$9!#(B</p> - - <note type="warning"><title>$B%;%-%e%j%F%#(B</title> - <p><directive>AuthGroupFile</directive> $B$O!"(B - $B%&%'%V%5!<%P$N%I%-%e%a%s%H%D%j!<$N30B&$K(B - $BJ]4I$9$k$h$&$K$7$F$/$@$5$$!#(B - $BJ]8n$7$h$&$H$7$F$$$k%G%#%l%/%H%j0J2<$K$O!"(B<em>$BCV$+$J$$$G2<$5$$(B</em>$B!#(B - $B$=$&$7$J$$$H%/%i%$%"%s%H$,(B <directive>AuthGroupFile</directive> $B$r(B - $B%@%&%s%m!<%I$G$-$F$7$^$&2DG=@-$,$"$j$^$9!#(B</p> + の方がずっと良い性能を発揮します。</p> + + <note type="warning"><title>セキュリティ</title> + <p><directive>AuthGroupFile</directive> は、 + ウェブサーバのドキュメントツリーの外側に + 保管するようにしてください。 + 保護しようとしているディレクトリ以下には、<em>置かないで下さい</em>。 + そうしないとクライアントが <directive>AuthGroupFile</directive> を + ダウンロードできてしまう可能性があります。</p> </note> </usage> </directivesynopsis> <directivesynopsis> <name>AuthzGroupFileAuthoritative</name> -<description>$B>5G'$,2<0L$N%b%8%e!<%k$KEO$5$l$k$+$I$&$+$r@_Dj$9$k(B</description> +<description>承認が下位のモジュールに渡されるかどうかを設定する</description> <syntax>AuthzGroupFileAuthoritative On|Off</syntax> <default>AuthzGroupFileAuthoritative On</default> <contextlist><context>directory</context><context>.htaccess</context> @@ -90,24 +90,24 @@ <override>AuthConfig</override> <usage> - <p><directive>AuthzGroupFileAuthoritative</directive> $B%G%#%l%/%F%#%V$r(B - $BL@<(E*$K(B <code>Off</code> $B$K@_Dj$9$k$H(B userID $B$KBP1~$9$k(B - <strong>$B%0%k!<%W$,$J$$>l9g$K(B</strong>$B!"(B - (<code>module.c</code> $B$GDj5A$5$l$F$$$k(B) $B2<0L$N%b%8%e!<%k$K%0%k!<%W>5G'$r(B - $BEO$9$3$H$r5v2D$7$^$9!#(B</p> - - - <p>$B%G%U%)%k%H$G$O@)8f$OEO$5$l$:!"L$CN$N%0%k!<%W$N>l9g$O(B Authentication - Required $B1~Ez$,JV$5$l$^$9!#$G$9$+$i!"$3$l$r@_Dj$7$J$$$H(B - $B%7%9%F%`$r0BA4$KJ]$D$3$H$,$G$-!"(BNCSA $B8_49$N?6$kIq$$$r$5$;$k$3$H$K$J$j$^$9!#(B</p> - - <note type="warning"><title>$B%;%-%e%j%F%#(B</title> - <p>$B%f!<%6$N(B <code>.htaccess</code> $B%U%!%$%k$GB>$N>5G'<jCJ$X$N(B - $B0Q>y$,$G$-$k$h$&$K$9$k$3$H$N0UL#$9$k$H$3$m$O==J,$K9MN8$7$F$*$$$F$/$@$5$$!#(B - $B$=$7$F$=$l$,!"K\Ev$KK>$`5sF0$G$"$k$3$H$r3N$+$a$F$/$@$5$$!#(B - $BDL>o$O0l$D$N(B <code>.htpasswd</code> $B%U%!%$%k$r0BA4$K$9$kJ}$,(B - $B$h$jB?$/$N%"%/%;%9%$%s%?%U%'!<%9$r;}$D$+$b$7$l$J$$%G!<%?%Y!<%9$r(B - $B0BA4$K$9$k$h$j$b4JC1$G$9!#(B</p> + <p><directive>AuthzGroupFileAuthoritative</directive> ディレクティブを + 明示的に <code>Off</code> に設定すると userID に対応する + <strong>グループがない場合に</strong>、 + (<code>module.c</code> で定義されている) 下位のモジュールにグループ承認を + 渡すことを許可します。</p> + + + <p>デフォルトでは制御は渡されず、未知のグループの場合は Authentication + Required 応答が返されます。ですから、これを設定しないと + システムを安全に保つことができ、NCSA 互換の振る舞いをさせることになります。</p> + + <note type="warning"><title>セキュリティ</title> + <p>ユーザの <code>.htaccess</code> ファイルで他の承認手段への + 委譲ができるようにすることの意味するところは十分に考慮しておいてください。 + そしてそれが、本当に望む挙動であることを確かめてください。 + 通常は一つの <code>.htpasswd</code> ファイルを安全にする方が + より多くのアクセスインタフェースを持つかもしれないデータベースを + 安全にするよりも簡単です。</p> </note> </usage> </directivesynopsis> diff --git a/docs/manual/mod/mod_authz_owner.xml.ja b/docs/manual/mod/mod_authz_owner.xml.ja index 6f1c5a206e..edbb751584 100644 --- a/docs/manual/mod/mod_authz_owner.xml.ja +++ b/docs/manual/mod/mod_authz_owner.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 151408:574882 (outdated) --> @@ -23,70 +23,70 @@ <modulesynopsis metafile="mod_authz_owner.xml.meta"> <name>mod_authz_owner</name> -<description>$B%U%!%$%k$N=jM-<T$K4p$E$$$?>5G'(B</description> +<description>ファイルの所有者に基づいた承認</description> <status>Extension</status> <sourcefile>mod_authz_owner.c</sourcefile> <identifier>authz_owner_module</identifier> -<compatibility>Apache 2.1 $B0J9_$G;HMQ2DG=(B</compatibility> +<compatibility>Apache 2.1 以降で使用可能</compatibility> <summary> - <p>$B$3$N%b%8%e!<%k$O%j%/%(%9%H$5$l$?%U%!%$%k$N%U%!%$%k%7%9%F%`$N(B - $B=jM-<T$d%0%k!<%W$r(B HTTP $BG'>Z$K;H$o$l$?%f!<%6(B ID ($B%&%'%V%f!<%6(B ID) $B$H(B - $BHf3S$9$k$3$H$G%"%/%;%9$r>5G'$7$^$9!#Ds6!$5$l$?%f!<%6L>$H%Q%9%o!<%I$O(B - <module>mod_auth_basic</module> $B$d(B - <module>mod_auth_digest</module> $B$N$h$&$JG'>Z%b%8%e!<%k$G4{$K(B - $BE,@Z$K8!>Z$5$l$F$$$kI,MW$,$"$j$^$9!#(B<module>mod_authz_owner</module> - $B$O0J2<$N$h$&$K!"(B<directive module="core" - >Require</directive> $B%G%#%l%/%F%#%V$N(B <code>file-owner</code> $B$H(B - <code>file-group</code> $B$H$$$&Fs$D$N0z?t$rG'<1$7$^$9(B:</p> + <p>このモジュールはリクエストされたファイルのファイルシステムの + 所有者やグループを HTTP 認証に使われたユーザ ID (ウェブユーザ ID) と + 比較することでアクセスを承認します。提供されたユーザ名とパスワードは + <module>mod_auth_basic</module> や + <module>mod_auth_digest</module> のような認証モジュールで既に + 適切に検証されている必要があります。<module>mod_authz_owner</module> + は以下のように、<directive module="core" + >Require</directive> ディレクティブの <code>file-owner</code> と + <code>file-group</code> という二つの引数を認識します:</p> <dl> <dt><code>file-owner</code></dt> - <dd>$BDs6!$5$l$?%&%'%V%f!<%6L>$O%j%/%(%9%H$5$l$?%U%!%$%k$N=jM-<T$N(B - $B%7%9%F%`$K$*$1$kL>A0$H0lCW$9$kI,MW$,$"$j$^$9!#$D$^$j!"%*%Z%l!<%F%#%s%0(B - $B%7%9%F%`$,%U%!%$%k$O(B <code>jones</code> $B$K$h$j=jM-$5$l$F$$$k(B - $B$H8@$C$?$H$-$O!"%&%'%V$+$i$N%"%/%;%9$K;H$o$l$k%f!<%6L>$b(B - <code>jones</code> $B$G$J$1$l$P$J$j$^$;$s!#(B</dd> + <dd>提供されたウェブユーザ名はリクエストされたファイルの所有者の + システムにおける名前と一致する必要があります。つまり、オペレーティング + システムがファイルは <code>jones</code> により所有されている + と言ったときは、ウェブからのアクセスに使われるユーザ名も + <code>jones</code> でなければなりません。</dd> <dt><code>file-group</code></dt> - <dd>$B%U%!%$%k$r=jM-$9$k%7%9%F%`$N%0%k!<%W$NL>A0$,!"Nc$($P(B - <module>mod_authz_groupfile</module> $B$d(B <module>mod_authz_dbm</module> - $B$K$h$jDs6!$5$l$k%0%k!<%W%G!<%?%Y!<%9$KB8:_$7$F$$$F!"(B - $B%&%'%V%f!<%6L>$,$=$N%0%k!<%W$KB0$7$F$$$J$1$l$P$J$j$^$;$s!#(B - $BNc$($P!"%*%Z%l!<%F%#%s%0%7%9%F%`$,%U%!%$%k$O(B ($B%7%9%F%`$N(B) $B%0%k!<%W(B - <code>accounts</code> $B$K$h$j=jM-$5$l$F$$$k$H8@$C$?$H$-$O!"(B - <code>accounts</code> $B$,%0%k!<%W%G!<%?%Y!<%9$KB8:_$7$F!"(B - $B%j%/%(%9%H$K;HMQ$5$l$?%&%'%V%f!<%6L>$,$=$N%0%k!<%W$KB0$7$F$$$k(B - $BI,MW$,$"$j$^$9!#(B</dd> + <dd>ファイルを所有するシステムのグループの名前が、例えば + <module>mod_authz_groupfile</module> や <module>mod_authz_dbm</module> + により提供されるグループデータベースに存在していて、 + ウェブユーザ名がそのグループに属していなければなりません。 + 例えば、オペレーティングシステムがファイルは (システムの) グループ + <code>accounts</code> により所有されていると言ったときは、 + <code>accounts</code> がグループデータベースに存在して、 + リクエストに使用されたウェブユーザ名がそのグループに属している + 必要があります。</dd> </dl> - <note><title>$BCm(B</title> - <p>$B%U%!%$%k%7%9%F%`$K<B:]$K$OB8:_$7$J$$%j%=!<%9(B - (<em>$B$D$^$j(B</em> $B%P!<%A%c%k$J%j%=!<%9(B) $B$N>5G'$K(B - <module>mod_authz_owner</module> $B$,;HMQ$5$l$?$H$-$O!"(B - $B%"%/%;%9$O5qH]$5$l$^$9!#(B</p> + <note><title>注</title> + <p>ファイルシステムに実際には存在しないリソース + (<em>つまり</em> バーチャルなリソース) の承認に + <module>mod_authz_owner</module> が使用されたときは、 + アクセスは拒否されます。</p> - <p>$BFC$K!"(B<a - href="../content-negotiation.html#multiviews">$B%3%s%F%s%H(B - $B%M%4%7%(!<%7%g%s$5$l$?(B"MultiViews"</a> $B$N%j%=!<%9$O(B - $B7h$7$F>5G'$7$^$;$s!#(B</p> + <p>特に、<a + href="../content-negotiation.html#multiviews">コンテント + ネゴシエーションされた"MultiViews"</a> のリソースは + 決して承認しません。</p> </note> </summary> <seealso><directive module="core">Require</directive></seealso> <seealso><directive module="core">Satisfy</directive></seealso> -<section id="examples"><title>$B@_DjNc(B</title> +<section id="examples"><title>設定例</title> <section id="examples.file-owner"><title>Require file-owner</title> - <p>$BJ#?t%f!<%6$N%7%9%F%`$G(B Apache $B%&%'%V%5!<%P$,<B9T$5$l$F$$$F!"(B - <code>~/public_html/private</code> $B$K3F%f!<%6$,%U%!%$%k$rCV$$$F$$$k$H$7$^$9!#(B + <p>複数ユーザのシステムで Apache ウェブサーバが実行されていて、 + <code>~/public_html/private</code> に各ユーザがファイルを置いているとします。 <directive module="mod_authn_dbm">AuthDBMUserFile</directive> - $B%G!<%?%Y!<%9$,0l$D$@$1$"$j!"$9$Y$F$N%&%'%V%f!<%6L>$,Ns5s$5$l$F$*$j!"(B - $B$3$N%f!<%6L>$,%5!<%P$G<B:]$K%U%!%$%k$r=jM-$7$F$$$k%f!<%6L>$H0lCW$7$F$$$k>l9g!"(B - $B<!$N@a$N$h$&$J@_Dj$G!"%f!<%6$,<+J,<+?H$N%U%!%$%k$K%"%/%;%9$G$-$k$h$&$K$J$j$^$9!#(B - <code>/home/smith/public_html/private</code> $B$NCf$N%U%!%$%k$O!"=jM-<T$,(B - <code>smith</code> $B$NBe$o$j$K(B <code>jones</code> $B$K$J$C$F$$$J$$8B$j!"(B - <code>jones</code> $B$K$O%"%/%;%9$O5v2D$5$l$^$;$s!#(B</p> + データベースが一つだけあり、すべてのウェブユーザ名が列挙されており、 + このユーザ名がサーバで実際にファイルを所有しているユーザ名と一致している場合、 + 次の節のような設定で、ユーザが自分自身のファイルにアクセスできるようになります。 + <code>/home/smith/public_html/private</code> の中のファイルは、所有者が + <code>smith</code> の代わりに <code>jones</code> になっていない限り、 + <code>jones</code> にはアクセスは許可されません。</p> <example> <Directory /home/*/public_html/private><br /> @@ -103,16 +103,16 @@ </section> <section id="examples.file-group"><title>Require file-group</title> - <p>$B>e5-$N$h$&$J%7%9%F%`$G!"?t?M$N%f!<%6$,%W%m%8%'%/%H$N%U%!%$%k$r(B - <code>~/public_html/project-foo</code> $B$G6&M-$7$F$$$k$H$7$^$9!#(B - $B%U%!%$%k$O%7%9%F%`$N%0%k!<%W(B <code>foo</code> $B$K=jM-$5$l$F$$$F!"(B + <p>上記のようなシステムで、数人のユーザがプロジェクトのファイルを + <code>~/public_html/project-foo</code> で共有しているとします。 + ファイルはシステムのグループ <code>foo</code> に所有されていて、 <directive module="mod_authz_dbm">AuthDBMGroupFile</directive> - $B%G!<%?%Y!<%9$,0l$D$@$1$"$j!"$=$3$K$9$Y$F$N%&%'%V%f!<%6L>$H(B - $B%0%k!<%W$N%a%s%P$,Ns5s$5$l$F$$$k!"(B<em>$B$D$^$j(B</em>$B!"$=$l$i$N(B - $B%f!<%6$O>/$J$/$H$b(B <code>foo</code> $B$H$$$&%0%k!<%W$KB0$7$F$$$k!"$H$7$^$9!#(B - <code>jones</code> $B$H(B<code>smith</code> $B$NFs?M6&$,%0%k!<%W(B - <code>foo</code> $B$N%a%s%P$G$"$k>l9g!"$I$A$i$N?M$bN>J}$N(B - <code>project-foo</code> $B$K%"%/%;%9$,5v2D$5$l$^$9!#(B</p> + データベースが一つだけあり、そこにすべてのウェブユーザ名と + グループのメンバが列挙されている、<em>つまり</em>、それらの + ユーザは少なくとも <code>foo</code> というグループに属している、とします。 + <code>jones</code> と<code>smith</code> の二人共がグループ + <code>foo</code> のメンバである場合、どちらの人も両方の + <code>project-foo</code> にアクセスが許可されます。</p> <example> <Directory /home/*/public_html/project-foo><br /> @@ -135,7 +135,7 @@ <directivesynopsis> <name>AuthzOwnerAuthoritative</name> -<description>$B>5G'$,2<0L>5G'%b%8%e!<%k$KEO$5$l$k$+$I$&$+$r@_Dj$9$k(B</description> +<description>承認が下位承認モジュールに渡されるかどうかを設定する</description> <syntax>AuthzOwnerAuthoritative On|Off</syntax> <default>AuthzOwnerAuthoritative On</default> <contextlist><context>directory</context><context>.htaccess</context> @@ -143,26 +143,26 @@ <override>AuthConfig</override> <usage> - <p><directive>AuthzOwnerAuthoritative</directive> $B%G%#%l%/%F%#%V$r(B - $BL@<(E*$K(B <code>Off</code> $B$K@_Dj$9$k$H!"0J2<$N>l9g$KG'>Z$,(B - (<code>modules.c</code> $B$GDj5A$5$l$F$$$k(B) $B2<0L$N%b%8%e!<%k$K(B - $BEO$5$l$k$h$&$K$7$^$9(B:</p> + <p><directive>AuthzOwnerAuthoritative</directive> ディレクティブを + 明示的に <code>Off</code> に設定すると、以下の場合に認証が + (<code>modules.c</code> で定義されている) 下位のモジュールに + 渡されるようにします:</p> <ul> - <li><code>file-owner</code> $B$N>l9g$O!"Ds6!$5$l$?%&%'%V%f!<%6L>$K(B - $B%U%!%$%k%7%9%F%`$N=jM-<T$,0lCW$7$J$$$+!"=jM-<T$,$o$+$i$J$$>l9g!#(B</li> + <li><code>file-owner</code> の場合は、提供されたウェブユーザ名に + ファイルシステムの所有者が一致しないか、所有者がわからない場合。</li> - <li><code>file-group</code> $B$N>l9g$O!"Ds6!$5$l$?%&%'%V%f!<%6L>$,(B - $B%U%!%$%k%7%9%F%`%0%k!<%W$KB8:_$7$J$$$+!"$o$+$i$J$$>l9g!#(B</li> + <li><code>file-group</code> の場合は、提供されたウェブユーザ名が + ファイルシステムグループに存在しないか、わからない場合。</li> </ul> - <p>$BCM$r(B <code>Off</code> $B$K@_Dj$9$k$H!"(B<code>file-owner</code> $B$H(B - <code>file-group</code> $B$rAH$_9g$o$;$k$3$H$b$G$-$k$h$&$K$J$j!"(B - $B$=$N>l9g$O$I$A$i$+(B ($BN>J}$G$b(B) $B$K%^%C%A$7$?>l9g$K%"%/%;%9$r5v2D$5$l$^$9!#(B</p> + <p>値を <code>Off</code> に設定すると、<code>file-owner</code> と + <code>file-group</code> を組み合わせることもできるようになり、 + その場合はどちらか (両方でも) にマッチした場合にアクセスを許可されます。</p> - <p>$B%G%U%)%k%H$G$O@)8f$OEO$5$l$:!"L$CN$N%0%k!<%W$N>l9g$O(B Authentication - Required $B1~Ez$,JV$5$l$^$9!#$G$9$+$i!"(B<code>Off</code> $B$K@_Dj$7$J$$$3$H$G(B - $B%7%9%F%`$r0BA4$KJ]$D$3$H$,$G$-!"(BNCSA $B8_49$N?6$kIq$$$r$5$;$k$3$H$K$J$j$^$9!#(B</p> + <p>デフォルトでは制御は渡されず、未知のグループの場合は Authentication + Required 応答が返されます。ですから、<code>Off</code> に設定しないことで + システムを安全に保つことができ、NCSA 互換の振る舞いをさせることになります。</p> </usage> </directivesynopsis> diff --git a/docs/manual/mod/mod_authz_user.xml.ja b/docs/manual/mod/mod_authz_user.xml.ja index 97bd114019..cde7733339 100644 --- a/docs/manual/mod/mod_authz_user.xml.ja +++ b/docs/manual/mod/mod_authz_user.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 151408:635137 (outdated) --> @@ -23,27 +23,27 @@ <modulesynopsis metafile="mod_authz_user.xml.meta"> <name>mod_authz_user</name> -<description>$B%f!<%6>5G'(B</description> +<description>ユーザ承認</description> <status>Base</status> <sourcefile>mod_authz_user.c</sourcefile> <identifier>authz_user_module</identifier> -<compatibility>Apache 2.1 $B0J9_$G;HMQ2DG=(B</compatibility> +<compatibility>Apache 2.1 以降で使用可能</compatibility> <summary> - <p>$B$3$N%b%8%e!<%k$O!"G'>Z$5$l$?%f!<%6$K%&%'%V%5%$%H$N0lIt$X$N(B - $B%"%/%;%9$r5v2D$7$?$j5qH]$7$?$j$9$k$?$a$N>5G'5!G=$rDs6!$7$^$9!#(B - <module>mod_authz_user</module> $B$OG'>Z$5$l$?%f!<%6$,(B - <code>Require user</code> $B%G%#%l%/%F%#%V$K=q$+$l$F$$$l$P(B - $B%"%/%;%9$rG'$a$^$9!#G'>Z$K@.8y$7$?%f!<%6$9$Y$F$K%"%/%;%9$r(B - $B5v2D$9$k$K$O!"Be$o$j$K(B <code>require valid-user</code> $B$r(B - $B;H$&$3$H$,$G$-$^$9!#(B</p> + <p>このモジュールは、認証されたユーザにウェブサイトの一部への + アクセスを許可したり拒否したりするための承認機能を提供します。 + <module>mod_authz_user</module> は認証されたユーザが + <code>Require user</code> ディレクティブに書かれていれば + アクセスを認めます。認証に成功したユーザすべてにアクセスを + 許可するには、代わりに <code>require valid-user</code> を + 使うことができます。</p> </summary> <seealso><directive module="core">Require</directive></seealso> <seealso><directive module="core">Satisfy</directive></seealso> <directivesynopsis> <name>AuthzUserAuthoritative</name> -<description>$B>5G'$,2<0L$N%b%8%e!<%k$KEO$5$l$k$+$I$&$+$r@_Dj$9$k(B</description> +<description>承認が下位のモジュールに渡されるかどうかを設定する</description> <syntax>AuthzUserAuthoritative On|Off</syntax> <default>AuthzUserAuthoritative On</default> <contextlist><context>directory</context><context>.htaccess</context> @@ -51,15 +51,15 @@ <override>AuthConfig</override> <usage> - <p><directive>AuthzUserAuthoritative</directive> $B%G%#%l%/%F%#%V$r(B - $BL@<(E*$K(B <code>Off</code> $B$K@_Dj$9$k$H(B userID $B$KBP1~$9$k(B - <strong>$B%0%k!<%W$,$J$$>l9g$K(B</strong>$B!"(B - (<code>module.c</code> $B$GDj5A$5$l$F$$$k(B) $B2<0L$N%b%8%e!<%k$K%0%k!<%W>5G'$r(B - $BEO$9$3$H$r5v2D$7$^$9!#(B</p> + <p><directive>AuthzUserAuthoritative</directive> ディレクティブを + 明示的に <code>Off</code> に設定すると userID に対応する + <strong>グループがない場合に</strong>、 + (<code>module.c</code> で定義されている) 下位のモジュールにグループ承認を + 渡すことを許可します。</p> - <p>$B%G%U%)%k%H$G$O@)8f$OEO$5$l$:!"L$CN$N%0%k!<%W$N>l9g$O(B Authentication - Required $B1~Ez$,JV$5$l$^$9!#$G$9$+$i!"$3$l$r@_Dj$7$J$$$H(B - $B%7%9%F%`$r0BA4$KJ]$D$3$H$,$G$-!"(BNCSA $B8_49$N?6$kIq$$$r$5$;$k$3$H$K$J$j$^$9!#(B</p> + <p>デフォルトでは制御は渡されず、未知のグループの場合は Authentication + Required 応答が返されます。ですから、これを設定しないと + システムを安全に保つことができ、NCSA 互換の振る舞いをさせることになります。</p> </usage> </directivesynopsis> diff --git a/docs/manual/mod/mod_autoindex.xml.ja b/docs/manual/mod/mod_autoindex.xml.ja index 393207e454..b66bc2fc31 100644 --- a/docs/manual/mod/mod_autoindex.xml.ja +++ b/docs/manual/mod/mod_autoindex.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 420990:648945 (outdated) --> @@ -23,135 +23,135 @@ <modulesynopsis metafile="mod_autoindex.xml.meta"> <name>mod_autoindex</name> -<description>Unix $B$N(B <code>ls</code> $B%3%^%s%I$d(B - Win32 $B$N(B <code>dir</code> $B%7%'%k%3%^%s%I$K;w$?(B - $B%G%#%l%/%H%j%$%s%G%C%/%9$r@8@.$9$k(B</description> +<description>Unix の <code>ls</code> コマンドや + Win32 の <code>dir</code> シェルコマンドに似た + ディレクトリインデックスを生成する</description> <status>Base</status> <sourcefile>mod_autoindex.c</sourcefile> <identifier>autoindex_module</identifier> <summary> - <p>$B%G%#%l%/%H%j$N%$%s%G%C%/%9$OFs$D$N>pJs8;$N$&$A$N(B - $B0l$D$+$i@8@.$G$-$^$9(B:</p> + <p>ディレクトリのインデックスは二つの情報源のうちの + 一つから生成できます:</p> <ul> - <li>$BIaDL$O(B <code>index.html</code> $B$H8F$P$l$k(B - $B%f!<%6$K$h$C$F=q$+$l$?%U%!%$%k!#(B + <li>普通は <code>index.html</code> と呼ばれる + ユーザによって書かれたファイル。 <directive module="mod_dir">DirectoryIndex</directive> - $B%G%#%l%/%F%#%V$G$3$N%U%!%$%kL>$r@_Dj$7$^$9!#(B - $B$3$l$O(B <module>mod_dir</module> $B$G@)8f$5$l$^$9!#(B</li> + ディレクティブでこのファイル名を設定します。 + これは <module>mod_dir</module> で制御されます。</li> - <li>$B$b$7$/$O!"%5!<%P$K$h$C$F@8@.$5$l$?0lMw!#(B - $B$=$NB>$N%G%#%l%/%F%#%V$G$3$N0lMw$N=q<0$r@)8f$7$^$9!#(B + <li>もしくは、サーバによって生成された一覧。 + その他のディレクティブでこの一覧の書式を制御します。 <directive module="mod_autoindex">AddIcon</directive>, <directive - module="mod_autoindex">AddIconByEncoding</directive> $B$H(B + module="mod_autoindex">AddIconByEncoding</directive> と <directive module="mod_autoindex">AddIconByType</directive> - $B$r;H$&$3$H$G!"MM!9$J%U%!%$%k%?%$%W$KBP$7$F%"%$%3%s0lMw$r(B - $B%;%C%H$7$^$9!#$D$^$j!"%j%9%H$5$l$?%U%!%$%kKh$K!"(B - $B%U%!%$%k$K%^%C%A$7$?0lHV:G=i$N%"%$%3%s$,I=<($5$l$^$9!#(B - $B$3$l$i$O(B <module>mod_autoindex</module> $B$G@)8f$5$l$^$9!#(B</li> + を使うことで、様々なファイルタイプに対してアイコン一覧を + セットします。つまり、リストされたファイル毎に、 + ファイルにマッチした一番最初のアイコンが表示されます。 + これらは <module>mod_autoindex</module> で制御されます。</li> </ul> - <p>$BK>$`$J$i$P!"<+F0%$%s%G%C%/%9@8@.$r40A4$K=|5n(B ($B$"$k$$$OCV49(B) - $B$G$-$k$h$&$K!"$3$NFs$D$N5!G=$OJ,N%$5$l$F$$$^$9!#(B</p> + <p>望むならば、自動インデックス生成を完全に除去 (あるいは置換) + できるように、この二つの機能は分離されています。</p> - <p>$B<+F0%$%s%G%C%/%9@8@.$O(B <code>Options +Indexes</code> - $B$r;H$&$3$H$GM-8z$K$J$j$^$9!#>\:Y$K$D$$$F$O!"(B + <p>自動インデックス生成は <code>Options +Indexes</code> + を使うことで有効になります。詳細については、 <directive module="core">Options</directive> - $B%G%#%l%/%F%#%V$r$4Mw2<$5$$!#(B</p> + ディレクティブをご覧下さい。</p> - <p>$B$b$7(B <code><a href="#indexoptions.fancyindexing" - >FancyIndexing</a></code>$B%*%W%7%g%s$,(B + <p>もし <code><a href="#indexoptions.fancyindexing" + >FancyIndexing</a></code>オプションが <directive module="autoindex">IndexOptions</directive> - $B%G%#%l%/%F%#%V$KM?$($i$l$F$$$k$J$i$P!"(B - $BNs$N@hF,$OI=<($N=gHV$r@)8f$9$k%j%s%/$K$J$j$^$9!#(B - $B@hF,$N%j%s%/$rA*Br$9$k$H!"0lMw$O:F@8@.$5$l$F(B - $B$=$NNs$NCM$G%=!<%H$5$l$^$9!#(B - $BF1$8@hF,$rB3$1$FA*Br$9$k$H!"8r8_$K>:=g$H9_=g$H$K$J$j$^$9!#(B - $B$3$l$i$NNs$N@hF,$N%j%s%/$O!"(B + ディレクティブに与えられているならば、 + 列の先頭は表示の順番を制御するリンクになります。 + 先頭のリンクを選択すると、一覧は再生成されて + その列の値でソートされます。 + 同じ先頭を続けて選択すると、交互に昇順と降順とになります。 + これらの列の先頭のリンクは、 <directive module="mod_autoindex">IndexOptions</directive> - $B%G%#%l%/%F%#%V$N(B + ディレクティブの <code>SuppressColumnSorting</code> - $B%*%W%7%g%s$G>C$9$3$H$,$G$-$^$9!#(B</p> - - <p>"Size" $B$G%=!<%H$7$?>l9g$O!"MQ$$$i$l$k$N$O(B - <em>$B<B:]$N(B</em>$B%U%!%$%k$N%5%$%:$G$"$C$F!"(B - $BI=<($NCM$G$O$J$$$3$H$KCm0U$7$F$/$@$5$$(B - - $B$?$H$(N>J}$H$b$,(B "1K" $B$HI=<($5$l$F$$$?$H$7$F$b!"(B - 1010 $B%P%$%H$N%U%!%$%k$OI,$:(B 1011 - $B%P%$%H$N%U%!%$%k$h$j$bA0(B ($B>:=g$N>l9g(B) $B$KI=<($5$l$^$9!#(B</p> + オプションで消すことができます。</p> + + <p>"Size" でソートした場合は、用いられるのは + <em>実際の</em>ファイルのサイズであって、 + 表示の値ではないことに注意してください - + たとえ両方ともが "1K" と表示されていたとしても、 + 1010 バイトのファイルは必ず 1011 + バイトのファイルよりも前 (昇順の場合) に表示されます。</p> </summary> <section id="query"> - <title>Autoindex $B%j%/%(%9%H%/%(%j!<0z?t(B</title> + <title>Autoindex リクエストクエリー引数</title> - <p>Apache 2.0.23 $B$G!"(B - $B%3%i%`%=!<%H$N$?$a$K%/%(%j!<0z?t$r:FJT@.$7$F!"(B - $B?7$7$$%/%(%j!<%*%W%7%g%s$N%0%k!<%W$rF3F~$7$^$7$?!#(B - $B=PNO$KBP$9$k%/%i%$%"%s%H$N$9$Y$F$N@)8f$r8zN(E*$KKu>C(B - $B$G$-$k$h$&$K!"(B + <p>Apache 2.0.23 で、 + コラムソートのためにクエリー引数を再編成して、 + 新しいクエリーオプションのグループを導入しました。 + 出力に対するクライアントのすべての制御を効率的に抹消 + できるように、 <code><a href="#indexoptions.ignoreclient">IndexOptions - IgnoreClient</a></code> $B$,F3F~$5$l$^$7$?!#(B</p> + IgnoreClient</a></code> が導入されました。</p> - <p>$B%3%i%`%=!<%H$N%X%C%@$=$l<+BN$,!"(B - $B2<5-$N%=!<%H%/%(%j!<%*%W%7%g%s$rIU2C$9$k(B - $B<+J,<+?H$r;2>H$9$k%j%s%/$G$9!#(B - $B2<5-$N%*%W%7%g%s$N$I$l$G$b!"(B - $B%G%#%l%/%H%j%j%=!<%9$X$N%j%/%(%9%H$K2C$($k$3$H$,$G$-$^$9!#(B</p> + <p>コラムソートのヘッダそれ自体が、 + 下記のソートクエリーオプションを付加する + 自分自身を参照するリンクです。 + 下記のオプションのどれでも、 + ディレクトリリソースへのリクエストに加えることができます。</p> <ul> - <li><code>C=N</code> $B$O!"%U%!%$%kL>$G%=!<%H$7$^$9!#(B</li> + <li><code>C=N</code> は、ファイル名でソートします。</li> - <li><code>C=M</code> $B$O!"99?7F|;~!"(B - $B%G%#%l%/%H%j!"%U%!%$%kL>$N=g$G%=!<%H$7$^$9!#(B</li> + <li><code>C=M</code> は、更新日時、 + ディレクトリ、ファイル名の順でソートします。</li> - <li><code>C=S</code> $B$O!"%5%$%:!"(B - $B%G%#%l%/%H%j!"%U%!%$%kL>$N=g$G%=!<%H$7$^$9!#(B</li> + <li><code>C=S</code> は、サイズ、 + ディレクトリ、ファイル名の順でソートします。</li> - <li class="separate"><code>C=D</code> $B$O!"@bL@!"(B - $B%G%#%l%/%H%j!"%U%!%$%kL>$N=g$G%=!<%H$7$^$9!#(B</li> + <li class="separate"><code>C=D</code> は、説明、 + ディレクトリ、ファイル名の順でソートします。</li> - <li><code>O=A</code> $B$O!">:=g$GI=$r%=!<%H$7$^$9!#(B</li> + <li><code>O=A</code> は、昇順で表をソートします。</li> - <li class="separate"><code>O=D</code> $B$O!"9_=g$GI=$r%=!<%H$7$^$9!#(B</li> + <li class="separate"><code>O=D</code> は、降順で表をソートします。</li> - <li><code>F=0</code> $B$O!"C1=c$JI=$N=q<0$K$7$^$9!#(B - (FancyIndex $B$G$O$"$j$^$;$s!#(B)</li> + <li><code>F=0</code> は、単純な表の書式にします。 + (FancyIndex ではありません。)</li> - <li><code>F=1</code> $B$O!"(BFancyIndex - $BI=<($NI=$N=q<0$K$7$^$9!#(B</li> + <li><code>F=1</code> は、FancyIndex + 表示の表の書式にします。</li> - <li><code>F=2</code> $B$O!"I=$r(B HTML - $B$N%F!<%V%k$r;H$C$?(B FancyIndex $B$N=q<0$K$7$^$9!#(B</li> + <li><code>F=2</code> は、表を HTML + のテーブルを使った FancyIndex の書式にします。</li> <li><code>V=0</code> - $B$O!"%P!<%8%g%s$K$h$k%=!<%H$rL58z$K$7$^$9!#(B</li> + は、バージョンによるソートを無効にします。</li> <li class="separate"><code>V=1</code> - $B$O!"%P!<%8%g%s$K$h$k%=!<%H$rM-8z$K$7$^$9!#(B</li> + は、バージョンによるソートを有効にします。</li> <li><code>P=<var>pattern</var></code> - $B$O!"M?$($i$l$?(B <var>pattern</var> - $B$KE,9g$7$?%U%!%$%k$N$_$rI=<($7$^$9!#(B</li> + は、与えられた <var>pattern</var> + に適合したファイルのみを表示します。</li> </ul> - <p>"P ($B%Q%?!<%s$N(B P)" $B%/%(%j!<0z?t$O!"(B - $BDL>o$N(B <directive module="mod_autoindex">IndexIgnore</directive> - $B%G%#%l%/%F%#%V$,=hM}$5$l$?(B<em>$B8e(B</em>$B$K8!::$5$l!"(B - $B%U%!%$%kL>A4$F$,!"B>$N(B autoindex - $B%j%9%H=hM}$HF1MM$NH=Dj4p=`2<$KCV$+$lB3$1$k(B - $B$3$H$KCm0U$7$F$/$@$5$$!#(B - <module>mod_autoindex</module> $B$N%/%(%j!<0z?t%Q!<%5(B ($B2r@O(B) $B$O!"(B - $BG'<1ITG=$J%*%W%7%g%s$K$V$D$+$k$HB(:B$KDd;_$7$^$9!#(B - $B%/%(%j!<0z?t$O>e$NI=$K=>$C$F(B - $B@5$7$$7A<0$K$J$C$F$$$J$1$l$P$J$j$^$;$s!#(B</p> - - <p>$B2<$NC1=c$JNc$O!"$3$l$i$N%/%(%j!<%*%W%7%g%s$r(B - $BI=$7$^$9!#$3$l$r$=$N$^$^@Z$j<h$C$F(B HEADER.html - $B%U%!%$%k$KJ]B8$9$k$3$H$b$G$-$^$9!#(B - mod_autoindex $B$,(B X=Go $BF~NO$K$V$D$+$kA0$K(B - $B0z?t$,A4$F2r<a$5$l$k$h$&$K!"(B - $BL$CN$N0z?t(B "X" $B$O%j%9%H$N:G8e$KCV$+$l$F$$$^$9!#(B</p> + <p>"P (パターンの P)" クエリー引数は、 + 通常の <directive module="mod_autoindex">IndexIgnore</directive> + ディレクティブが処理された<em>後</em>に検査され、 + ファイル名全てが、他の autoindex + リスト処理と同様の判定基準下に置かれ続ける + ことに注意してください。 + <module>mod_autoindex</module> のクエリー引数パーサ (解析) は、 + 認識不能なオプションにぶつかると即座に停止します。 + クエリー引数は上の表に従って + 正しい形式になっていなければなりません。</p> + + <p>下の単純な例は、これらのクエリーオプションを + 表します。これをそのまま切り取って HEADER.html + ファイルに保存することもできます。 + mod_autoindex が X=Go 入力にぶつかる前に + 引数が全て解釈されるように、 + 未知の引数 "X" はリストの最後に置かれています。</p> <example> <form action="" method="get"><br /> @@ -193,8 +193,8 @@ <directivesynopsis> <name>AddAlt</name> -<description>$B%"%$%3%s$NBe$o$j$K(B -$BI=<($5$l$k!"%U%!%$%kL>$GA*Br$5$l$?BeBX%F%-%9%H(B</description> +<description>アイコンの代わりに +表示される、ファイル名で選択された代替テキスト</description> <syntax>AddAlt <var>string</var> <var>file</var> [<var>file</var>] ...</syntax> <contextlist><context>server config</context> <context>virtual host</context> @@ -203,19 +203,19 @@ <override>Indexes</override> <usage> - <p><directive>AddAlt</directive> $B$O!"(B<code><a + <p><directive>AddAlt</directive> は、<code><a href="#indexoptions.fancyindexing">FancyIndexing</a></code> - $B$K$*$$$F!"%"%$%3%s$NBe$o$j$KI=<($9$kBeBX%F%-%9%H$rDs6!$7$^$9!#(B - <var>file</var> $B$O!"@bL@$9$k%U%!%$%k$N%U%!%$%k3HD%;R!"(B - $B%U%!%$%kL>$N0lIt!"%o%$%k%I%+!<%II=8=!"40A4$J%U%!%$%kL>$N(B - $B$I$l$+$K$J$j$^$9!#(B - <var>string</var> $B$K6uGr$,$"$k>l9g$O0zMQId(B (<code>"</code> - $B$+(B <code>'</code>) $B$G0O$`I,MW$,$"$j$^$9!#(B - $B$3$NJ8;zNs$O!"%/%i%$%"%s%H$,2hA|$rI=<($G$-$J$$>l9g$d(B - $B2hA|$N%m!<%I$rL58z$K$7$F$$$k>l9g$d(B - $B%"%$%3%s$N<hF@$K<:GT$7$?$H$-$KI=<($5$l$^$9!#(B</p> - - <example><title>$BNc(B</title> + において、アイコンの代わりに表示する代替テキストを提供します。 + <var>file</var> は、説明するファイルのファイル拡張子、 + ファイル名の一部、ワイルドカード表現、完全なファイル名の + どれかになります。 + <var>string</var> に空白がある場合は引用符 (<code>"</code> + か <code>'</code>) で囲む必要があります。 + この文字列は、クライアントが画像を表示できない場合や + 画像のロードを無効にしている場合や + アイコンの取得に失敗したときに表示されます。</p> + + <example><title>例</title> AddAlt "PDF file" *.pdf<br /> AddAlt Compressed *.gz *.zip *.Z </example> @@ -224,8 +224,8 @@ <directivesynopsis> <name>AddAltByEncoding</name> -<description>$B%"%$%3%s$NBe$o$j$KI=<($5$l$k!"(BMIME $BId9f2=J}K!$GA*Br$5$l$?(B -$BBeBX%F%-%9%H(B</description> +<description>アイコンの代わりに表示される、MIME 符号化方法で選択された +代替テキスト</description> <syntax>AddAltByEncoding <var>string</var> <var>MIME-encoding</var> [<var>MIME-encoding</var>] ...</syntax> <contextlist><context>server config</context> @@ -235,19 +235,19 @@ <override>Indexes</override> <usage> - <p><directive>AddAltByEncoding</directive> $B$O!"(B + <p><directive>AddAltByEncoding</directive> は、 <code><a href="#indexoptions.fancyindexing">FancyIndexing</a></code> - $B$K$*$$$F!"%"%$%3%s$NBe$o$j$KI=<($9$kBeBXJ8;zNs$rDs6!$7$^$9!#(B - <var>MIME-encoding</var> $B$OM-8z$JId9f2=!"Nc$($P(B + において、アイコンの代わりに表示する代替文字列を提供します。 + <var>MIME-encoding</var> は有効な符号化、例えば <code>x-compress</code> - $B$G$9!#(B - <var>string</var> $B$K6uGr$,$"$k$H$-$O!"0zMQId(B (<code>"</code> $B$+(B - <code>'</code>) $B$G0O$`I,MW$,$"$j$^$9!#(B - $B$3$NJ8;zNs$O!"%/%i%$%"%s%H$,2hA|$rI=<($G$-$J$$>l9g$d(B - $B2hA|$N%m!<%I$rL58z$K$7$F$$$k>l9g$d(B - $B%"%$%3%s$N<hF@$K<:GT$7$?$H$-$KI=<($5$l$^$9!#(B</p> - - <example><title>$BNc(B</title> + です。 + <var>string</var> に空白があるときは、引用符 (<code>"</code> か + <code>'</code>) で囲む必要があります。 + この文字列は、クライアントが画像を表示できない場合や + 画像のロードを無効にしている場合や + アイコンの取得に失敗したときに表示されます。</p> + + <example><title>例</title> AddAltByEncoding gzip x-gzip </example> </usage> @@ -255,8 +255,8 @@ <directivesynopsis> <name>AddAltByType</name> -<description>$B%"%$%3%s$NBe$o$j$K(B -$BI=<($5$l$k!"(BMIME $B%?%$%W$GA*Br$5$l$?BeBX%F%-%9%H(B</description> +<description>アイコンの代わりに +表示される、MIME タイプで選択された代替テキスト</description> <syntax>AddAltByType <var>string</var> <var>MIME-type</var> [<var>MIME-type</var>] ...</syntax> <contextlist><context>server config</context> @@ -266,19 +266,19 @@ <override>Indexes</override> <usage> - <p><directive>AddAltByType</directive> $B$O!"(B + <p><directive>AddAltByType</directive> は、 <code><a href="#indexoptions.fancyindexing">FancyIndexing</a></code> - $B$K$*$$$F!"%"%$%3%s$NBe$o$j$KI=<($9$kBeBXJ8;zNs$r@_Dj$7$^$9!#(B - <var>MIME-type</var> $B$OM-8z$J%?%$%W!"Nc$($P(B + において、アイコンの代わりに表示する代替文字列を設定します。 + <var>MIME-type</var> は有効なタイプ、例えば <code>text/html</code> - $B$G$9!#(B - <var>string</var> $B$K6uGr$,$"$k$H$-$O!"0zMQId(B (<code>"</code> $B$+(B - <code>'</code>) $B$G0O$`I,MW$,$"$j$^$9!#(B - $B$3$NJ8;zNs$O!"%/%i%$%"%s%H$,2hA|$rI=<($G$-$J$$>l9g$d(B - $B2hA|$N%m!<%I$rL58z$K$7$F$$$k>l9g$d(B - $B%"%$%3%s$N<hF@$K<:GT$7$?$H$-$KI=<($5$l$^$9!#(B</p> - - <example><title>$BNc(B</title> + です。 + <var>string</var> に空白があるときは、引用符 (<code>"</code> か + <code>'</code>) で囲む必要があります。 + この文字列は、クライアントが画像を表示できない場合や + 画像のロードを無効にしている場合や + アイコンの取得に失敗したときに表示されます。</p> + + <example><title>例</title> AddAltByType 'plain text' text/plain </example> </usage> @@ -286,7 +286,7 @@ <directivesynopsis> <name>AddDescription</name> -<description>$B%U%!%$%k$KBP$7$FI=<($9$k@bL@(B</description> +<description>ファイルに対して表示する説明</description> <syntax>AddDescription <var>string</var> <var>file</var> [<var>file</var>] ...</syntax> <contextlist><context>server config</context> <context>virtual host</context> @@ -296,50 +296,50 @@ <usage> <p><code><a href="#indexoptions.fancyindexing">FancyIndexing</a></code> - $B$K$*$$$F!"%U%!%$%k$KBP$7$FI=<($9$k@bL@$r@_Dj$7$^$9!#(B - <var>file</var> $B$O@bL@$9$k%U%!%$%k$N%U%!%$%k3HD%;R!"(B - $B%U%!%$%kL>$N0lIt!"%o%$%k%I%+!<%II=8=!"40A4$J%U%!%$%kL>$N(B - $B$I$l$+$K$J$j$^$9!#(B - <var>string</var> $B$OFs=E0zMQId(B (<code>"</code>) $B$G0O$^$l$^$9!#(B</p> + において、ファイルに対して表示する説明を設定します。 + <var>file</var> は説明するファイルのファイル拡張子、 + ファイル名の一部、ワイルドカード表現、完全なファイル名の + どれかになります。 + <var>string</var> は二重引用符 (<code>"</code>) で囲まれます。</p> - <example><title>$BNc(B</title> + <example><title>例</title> AddDescription "The planet Mars" /web/pics/mars.gif </example> - <p>$BDL>o$N%G%U%)%k%H$N@bL@NN0h$O(B 23 $B%P%$%H$NI}$G$9!#(B + <p>通常のデフォルトの説明領域は 23 バイトの幅です。 <code><a href="#indexoptions.suppressicon" >IndexOptions SuppressIcon</a></code> - $B%*%W%7%g%s$G(B 6 $B%P%$%HDI2C!"(B + オプションで 6 バイト追加、 <code><a href="#indexoptions.suppresssize" >IndexOptions SuppressSize</a></code> - $B%*%W%7%g%s$G(B 7 $B%P%$%HDI2C!"(B + オプションで 7 バイト追加、 <code><a href="#indexoptions.suppresslastmodified" >IndexOptions SuppressLastModified</a></code> - $B%*%W%7%g%s$G(B 19 $B%P%$%HDI2C$5$l$^$9!#(B - $B$G$9$+$i!"%G%U%)%k%H$N@bL@%3%i%`$N:GBgI}$O(B - 55 $B%P%$%H$K$J$j$^$9!#(B</p> + オプションで 19 バイト追加されます。 + ですから、デフォルトの説明コラムの最大幅は + 55 バイトになります。</p> - <p>$B$3$N%3%i%`$NBg$-$5$r>e=q$-$7$?$j!"(B - $B@bL@$,L5@)8BD9$G$b$h$$$h$&$K$9$k$?$a$N>\:Y$K4X$7$F$O!"(B + <p>このコラムの大きさを上書きしたり、 + 説明が無制限長でもよいようにするための詳細に関しては、 <a href="#indexoptions.descriptionwidth">DescriptionWidth</a> - $B$H$$$&(B + という <directive module="mod_autoindex">IndexOptions</directive> - $B$N%-!<%o!<%I$r$4Mw2<$5$$!#(B</p> + のキーワードをご覧下さい。</p> - <note><title>$B7Y9p(B</title> + <note><title>警告</title> <p><directive>AddDescription</directive> - $B$GDj5A$5$l$?@bL@%F%-%9%H$O!"%?%0$dJ8;zNs$H$$$C$?(B - HTML $B%^!<%/%"%C%W$r4^$`$3$H$,$G$-$^$9!#(B - $B$b$7!"@bL@%3%i%`$NI}$K$h$C$F%?%0IU$1$5$l$?MWAG$,4]$a9~$^$l$?(B - ($BB@;z$N8l6g$N:G8e$,@Z$l$k$H$$$C$?(B) $B>l9g!"(B - $B=PNO7k2L$O!"%G%#%l%/%H%j0lMw$N;D$j$NItJ,$K1F6A$rM?$($k$G$7$g$&!#(B</p> + で定義された説明テキストは、タグや文字列といった + HTML マークアップを含むことができます。 + もし、説明コラムの幅によってタグ付けされた要素が丸め込まれた + (太字の語句の最後が切れるといった) 場合、 + 出力結果は、ディレクトリ一覧の残りの部分に影響を与えるでしょう。</p> </note> </usage> </directivesynopsis> <directivesynopsis> <name>AddIcon</name> -<description>$B%U%!%$%k$KI=<($9$k%"%$%3%s$rL>A0$GA*Br(B</description> +<description>ファイルに表示するアイコンを名前で選択</description> <syntax>AddIcon <var>icon</var> <var>name</var> [<var>name</var>] ...</syntax> <contextlist><context>server config</context> @@ -350,37 +350,37 @@ <usage> <p><code><a href="#indexoptions.fancyindexing">FancyIndexing</a></code> - $B$K$*$$$F!"(B - <var>name</var> $B$G=*$o$k%U%!%$%k$NNY$KI=<($9$k%"%$%3%s$r@_Dj$7$^$9!#(B - <var>icon</var> $B$O!"(B(% $B$G%(%9%1!<%W$5$l$?(B) $B%"%$%3%s$X$NAjBP(B URL - $B$+!"B>$N=q<0(B (<var>alttext</var>, <var>url</var>) $B$G$9!#(B - $B$3$3$G(B <var>alttext</var> - $B$O!"Hs%0%i%U%#%+%k%V%i%&%68~$1$K%"%$%3%s$KIU$1$i$l$?%F%-%9%H%?%0$G$9!#(B + において、 + <var>name</var> で終わるファイルの隣に表示するアイコンを設定します。 + <var>icon</var> は、(% でエスケープされた) アイコンへの相対 URL + か、他の書式 (<var>alttext</var>, <var>url</var>) です。 + ここで <var>alttext</var> + は、非グラフィカルブラウザ向けにアイコンに付けられたテキストタグです。 </p> - <p><var>name</var> $B$O!"%G%#%l%/%H%j$KBP1~$9$k(B <code>^^DIRECTORY^^</code> - $B$+!"6uGr9T$KBP1~$9$k(B <code>^^BLANKICON^^</code> ($B0lMw$,@5$7$/I=<($5$l$k$?$a$K(B) $B$+!"(B - $B%U%!%$%k3HD%;R$+!"%o%$%k%I%+!<%II=8=$+!"%U%!%$%kL>$N0lIt$+(B - $B40A4$J%U%!%$%kL>$G$9!#(B</p> + <p><var>name</var> は、ディレクトリに対応する <code>^^DIRECTORY^^</code> + か、空白行に対応する <code>^^BLANKICON^^</code> (一覧が正しく表示されるために) か、 + ファイル拡張子か、ワイルドカード表現か、ファイル名の一部か + 完全なファイル名です。</p> - <example><title>$BNc(B</title> + <example><title>例</title> AddIcon (IMG,/icons/image.xbm) .gif .jpg .xbm<br /> AddIcon /icons/dir.xbm ^^DIRECTORY^^<br /> AddIcon /icons/backup.xbm *~ </example> - <p>$B$b$72DG=$J$i!"(B + <p>もし可能なら、 <directive>AddIcon</directive> - $B$h$j(B + より <directive module="mod_autoindex">AddIconByType</directive> - $B$rM%@hE*$K;H$&$Y$-$G$7$g$&!#(B</p> + を優先的に使うべきでしょう。</p> </usage> </directivesynopsis> <directivesynopsis> <name>AddIconByEncoding</name> -<description>$B%U%!%$%k$KI=<($9$k%"%$%3%s$r(B MIME -$BId9f2=J}K!$GA*Br(B</description> +<description>ファイルに表示するアイコンを MIME +符号化方法で選択</description> <syntax>AddIconByEncoding <var>icon</var> <var>MIME-encoding</var> [<var>MIME-encoding</var>] ...</syntax> <contextlist><context>server config</context> @@ -391,17 +391,17 @@ <usage> <p><code><a href="#indexoptions.fancyindexing">FancyIndexing</a></code> - $B$K$*$$$F!"%U%!%$%k$NNY$KI=<($9$k%"%$%3%s$r@_Dj$7$^$9!#(B - <var>icon</var> $B$O!"(B(% $B$G%(%9%1!<%W$5$l$?(B) $B%"%$%3%s$X$NAjBP(B URL - $B$+!"B>$N=q<0(B <code>(<var>alttext</var>, <var>url</var>)</code> $B$G$9!#(B - $B$3$3$G(B <var>alttext</var> - $B$O!"Hs%0%i%U%#%+%k%V%i%&%68~$1$K%"%$%3%s$KIU$1$i$l$?%F%-%9%H%?%0$G$9!#(B + において、ファイルの隣に表示するアイコンを設定します。 + <var>icon</var> は、(% でエスケープされた) アイコンへの相対 URL + か、他の書式 <code>(<var>alttext</var>, <var>url</var>)</code> です。 + ここで <var>alttext</var> + は、非グラフィカルブラウザ向けにアイコンに付けられたテキストタグです。 </p> - <p><var>MIME-encoding</var> $B$O!"MW5a$5$l$?%(%s%3!<%I$K3:Ev$9$k(B - $B%o%$%k%I%+!<%II=8=$G$9!#(B</p> + <p><var>MIME-encoding</var> は、要求されたエンコードに該当する + ワイルドカード表現です。</p> - <example><title>$BNc(B</title> + <example><title>例</title> AddIconByEncoding /icons/compress.xbm x-compress </example> </usage> @@ -409,8 +409,8 @@ <directivesynopsis> <name>AddIconByType</name> -<description>$B%U%!%$%k$NNY$KI=<($9$k%"%$%3%s$r(B -MIME $B%?%$%W$K$h$C$FA*Br(B</description> +<description>ファイルの隣に表示するアイコンを +MIME タイプによって選択</description> <syntax>AddIconByType <var>icon</var> <var>MIME-type</var> [<var>MIME-type</var>] ...</syntax> <contextlist><context>server config</context> @@ -421,17 +421,17 @@ MIME $B%?%$%W$K$h$C$FA*Br(B</description> <usage> <p><code><a href="#indexoptions.fancyindexing">FancyIndexing</a></code> - $B$K$*$$$F!"%U%!%$%k$NNY$KI=<($9$k%"%$%3%s$r@_Dj$7$^$9!#(B - <var>icon</var> $B$O!"(B(% $B$G%(%9%1!<%W$5$l$?(B) $B%"%$%3%s$X$NAjBP(B URL - $B$+!"B>$N=q<0(B <code>(<var>alttext</var>, <var>url</var>)</code> $B$G$9!#(B - $B$3$3$G(B <var>alttext</var> - $B$O!"Hs%0%i%U%#%+%k%V%i%&%68~$1$K%"%$%3%s$KIU$1$i$l$?%F%-%9%H%?%0$G$9!#(B + において、ファイルの隣に表示するアイコンを設定します。 + <var>icon</var> は、(% でエスケープされた) アイコンへの相対 URL + か、他の書式 <code>(<var>alttext</var>, <var>url</var>)</code> です。 + ここで <var>alttext</var> + は、非グラフィカルブラウザ向けにアイコンに付けられたテキストタグです。 </p> - <p><var>MIME-type</var> $B$O!"MW5a$5$l$?%?%$%W$K3:Ev$9$k(B - $B%o%$%k%I%+!<%II=8=$G$9!#(B</p> + <p><var>MIME-type</var> は、要求されたタイプに該当する + ワイルドカード表現です。</p> - <example><title>$BNc(B</title> + <example><title>例</title> AddIconByType (IMG,/icons/image.xbm) image/* </example> </usage> @@ -439,8 +439,8 @@ MIME $B%?%$%W$K$h$C$FA*Br(B</description> <directivesynopsis> <name>DefaultIcon</name> -<description>$BFCDj$N%"%$%3%s$,2?$b@_Dj$5$l$F$$$J$$;~$K(B -$B%U%!%$%k$KI=<($9$k%"%$%3%s(B</description> +<description>特定のアイコンが何も設定されていない時に +ファイルに表示するアイコン</description> <syntax>DefaultIcon <var>url-path</var></syntax> <contextlist><context>server config</context> <context>virtual host</context> @@ -450,12 +450,12 @@ MIME $B%?%$%W$K$h$C$FA*Br(B</description> <usage> <p><code><a href="#indexoptions.fancyindexing">FancyIndexing</a></code> - $B$K$*$$$F!"(B - $BFCDj$N%"%$%3%s$,$J$$>l9g$K%U%!%$%k$KI=<($9$k%"%$%3%s$r@_Dj$7$^$9!#(B - <var>url-path</var> $B$O!"(B(% $B$G%(%9%1!<%W$5$l$?(B) $B%"%$%3%s$X$NAjBP(B URL - $B$G$9!#(B</p> + において、 + 特定のアイコンがない場合にファイルに表示するアイコンを設定します。 + <var>url-path</var> は、(% でエスケープされた) アイコンへの相対 URL + です。</p> - <example><title>$BNc(B</title> + <example><title>例</title> DefaultIcon /icon/unknown.xbm </example> </usage> @@ -464,7 +464,7 @@ MIME $B%?%$%W$K$h$C$FA*Br(B</description> <directivesynopsis> <name>HeaderName</name> <description> -$B%$%s%G%C%/%90lMw$N@hF,$KA^F~$5$l$k%U%!%$%k$NL>A0(B</description> +インデックス一覧の先頭に挿入されるファイルの名前</description> <syntax>HeaderName <var>filename</var></syntax> <contextlist><context>server config</context> <context>virtual host</context> @@ -474,71 +474,71 @@ MIME $B%?%$%W$K$h$C$FA*Br(B</description> <usage> <p><directive>HeaderName</directive> - $B%G%#%l%/%F%#%V$O!"(B - $B%$%s%G%C%/%90lMw$N@hF,$KA^F~$9$k%U%!%$%k$NL>A0$r@_Dj$7$^$9!#(B - <var>Filename</var> $B$O<h$j9~$`%U%!%$%k$NL>A0$G$9!#(B</p> + ディレクティブは、 + インデックス一覧の先頭に挿入するファイルの名前を設定します。 + <var>Filename</var> は取り込むファイルの名前です。</p> - <example><title>$BNc(B</title> + <example><title>例</title> HeaderName HEADER.html </example> <note> - <p>HeaderName $B$b(B <directive + <p>HeaderName も <directive module="mod_autoindex">ReadmeName</directive> - $B$bN>J}$H$b8=:_$O!"(B<var>filename</var> - $B$r%$%s%G%C%/%9$5$l$F$$$k%G%#%l%/%H%j$KMQ$$$i$l$?(B URI - $B$KBP$9$kAjBP(B URI $B%Q%9$H$7$F07$$$^$9!#(B - <var>filename</var> $B$,%9%i%C%7%e$G;O$^$k>l9g$O!"(B + も両方とも現在は、<var>filename</var> + をインデックスされているディレクトリに用いられた URI + に対する相対 URI パスとして扱います。 + <var>filename</var> がスラッシュで始まる場合は、 <directive module="core">DocumentRoot</directive> - $B$+$i$NAjBP%Q%9$H$J$j$^$9!#(B</p> + からの相対パスとなります。</p> - <example><title>$BNc(B</title> + <example><title>例</title> HeaderName /include/HEADER.html </example> - <p><var>filename</var> $B$O(B - $B%a%8%c!<%3%s%F%s%H%?%$%W$,(B "<code>text/*</code>" - (<em>$BNc$($P(B</em>$B!"(B<code>text/html</code>, - <code>text/plain</code> $BEy$G$9!#(B) - $B$N%I%-%e%a%s%H$H$7$F2r7h(B - $B$5$l$J$1$l$P$J$j$^$;$s!#$3$l$O$D$^$j!"(B - $B$b$7(B CGI $B%9%/%j%W%H$N<B:]$N%U%!%$%k%?%$%W$,(B - $B<!$N%G%#%l%/%F%#%V$N$h$&$K$7$F<B:]$N=PNO$H$O0[$J$C$F(B - <code>text/html</code> $B$H$7$F%^!<%/$5$l$F$$$k>l9g!"(B + <p><var>filename</var> は + メジャーコンテントタイプが "<code>text/*</code>" + (<em>例えば</em>、<code>text/html</code>, + <code>text/plain</code> 等です。) + のドキュメントとして解決 + されなければなりません。これはつまり、 + もし CGI スクリプトの実際のファイルタイプが + 次のディレクティブのようにして実際の出力とは異なって + <code>text/html</code> としてマークされている場合、 <var>filename</var> - $B$O(B CGI $B%9%/%j%W%H$r;2>H$9$k$+$bCN$l$J$$!"(B - $B$H$$$&$3$H$r0UL#$7$^$9(B:</p> + は CGI スクリプトを参照するかも知れない、 + ということを意味します:</p> <example> AddType text/html .cgi </example> - <p><directive module="core">Options</directive> <code>MultiViews</code> $B$,(B - $BM-8z$K$J$C$F$$$k>l9g$O!"(B - <a href="../content-negotiation.html">$B%3%s%F%s%H%M%4%7%(!<%7%g%s(B</a> - $B$,9T$J$o$l$^$9!#(B - $B$b$7(B <var>filename</var> $B$,(B (CGI $B%9%/%j%W%H$G$J$$(B) $B@EE*$J(B - <code>text/html</code> $B%I%-%e%a%s%H$G2r7h$5$l!"(B + <p><directive module="core">Options</directive> <code>MultiViews</code> が + 有効になっている場合は、 + <a href="../content-negotiation.html">コンテントネゴシエーション</a> + が行なわれます。 + もし <var>filename</var> が (CGI スクリプトでない) 静的な + <code>text/html</code> ドキュメントで解決され、 <directive module="core">options</directive> - <code>Includes</code> $B$+(B <code>IncludesNOEXEC</code> - $B$,M-8z$K$J$C$F$$$k>l9g$O!"(B - $B%U%!%$%k$O%5!<%P!<%5%$%I%$%s%/%k!<%I$G=hM}$5$l$^$9(B - (<module>mod_include</module> $B%I%-%e%a%s%H$r;2>H$7$F2<$5$$(B)$B!#(B</p> + <code>Includes</code> か <code>IncludesNOEXEC</code> + が有効になっている場合は、 + ファイルはサーバーサイドインクルードで処理されます + (<module>mod_include</module> ドキュメントを参照して下さい)。</p> </note> - <p>$B$b$7(B <directive>HeaderName</directive> $B$G;XDj$5$l$?%U%!%$%k$,(B - HTML $B%I%-%e%a%s%H$N3+;OItJ,(B (<html>, <head>, - $BEy(B) $B$r4^$s$G$$$?$i!"(B + <p>もし <directive>HeaderName</directive> で指定されたファイルが + HTML ドキュメントの開始部分 (<html>, <head>, + 等) を含んでいたら、 <a href="#indexoptions.suppresshtmlpreamble"><code>IndexOptions +SuppressHTMLPreamble</code></a> - $B$r@_Dj$7$F!"$3$l$i$N%?%0$,7+$jJV$5$l$J$$$h$&$K$7$?$$$H;W$&$G$7$g$&!#(B</p> + を設定して、これらのタグが繰り返されないようにしたいと思うでしょう。</p> </usage> </directivesynopsis> <directivesynopsis> <name>IndexIgnore</name> -<description>$B%G%#%l%/%H%j0lMw$r9T$J$&:]$KL5;k$9$Y$-(B -$B%U%!%$%k%j%9%H$KDI2C(B</description> +<description>ディレクトリ一覧を行なう際に無視すべき +ファイルリストに追加</description> <syntax>IndexIgnore <var>file</var> [<var>file</var>] ...</syntax> <contextlist><context>server config</context> <context>virtual host</context> @@ -547,13 +547,13 @@ MIME $B%?%$%W$K$h$C$FA*Br(B</description> <override>Indexes</override> <usage> - <p><directive>IndexIgnore</directive> $B%G%#%l%/%F%#%V$O!"(B - $B%G%#%l%/%H%j$N0lMw$r9T$&:]$KL5;k$9$Y$-%U%!%$%k%j%9%H$KDI2C$7$^$9!#(B - <var>file</var> $B$O!"(B - $B%7%'%k7A<0$N%o%$%k%I%+!<%II=8=$+40A4$J%U%!%$%kL>$G$9!#(B - IndexIgnore $B$,J#?t$"$k>l9g$O!"L5;k$9$k%j%9%H$KDI2C$,9T$o$l!"(B - $BCV49$O9T$o$l$^$;$s!#%G%U%)%k%H$G$O%j%9%H$K$O(B <code>.</code> - ($B%+%l%s%H%G%#%l%/%H%j(B) $B$,4^$^$l$F$$$^$9!#(B</p> + <p><directive>IndexIgnore</directive> ディレクティブは、 + ディレクトリの一覧を行う際に無視すべきファイルリストに追加します。 + <var>file</var> は、 + シェル形式のワイルドカード表現か完全なファイル名です。 + IndexIgnore が複数ある場合は、無視するリストに追加が行われ、 + 置換は行われません。デフォルトではリストには <code>.</code> + (カレントディレクトリ) が含まれています。</p> <example> IndexIgnore README .htaccess *.bak *~ @@ -563,7 +563,7 @@ MIME $B%?%$%W$K$h$C$FA*Br(B</description> <directivesynopsis> <name>IndexOptions</name> -<description>$B%G%#%l%/%H%j%$%s%G%C%/%9$NMM!9$J@_Dj9`L\(B +<description>ディレクトリインデックスの様々な設定項目 </description> <syntax>IndexOptions [+|-]<var>option</var> [[+|-]<var>option</var>] ...</syntax> <contextlist><context>server config</context> @@ -574,268 +574,268 @@ MIME $B%?%$%W$K$h$C$FA*Br(B</description> <usage> <p><directive>IndexOptions</directive> - $B$O!"%G%#%l%/%H%j%$%s%G%C%/%9$N5sF0$r;XDj$7$^$9!#(B - <var>option</var> $B$O<!$N$I$l$+$G$9(B:</p> + は、ディレクトリインデックスの挙動を指定します。 + <var>option</var> は次のどれかです:</p> <dl> <dt><a name="indexoptions.descriptionwidth" id="indexoptions.descriptionwidth" >DescriptionWidth=[<var>n</var> | *]</a> - (<em>2.0.23 $B0J9_(B</em>)</dt> + (<em>2.0.23 以降</em>)</dt> <dd><code>DescriptionWidth</code> - $B%-!<%o!<%I$O@bL@%3%i%`$NI}$rJ8;z?t$G;XDj$9$k$3$H$,$G$-$^$9!#(B</dd> + キーワードは説明コラムの幅を文字数で指定することができます。</dd> - <dd><code>-DescriptionWidth</code> ($B$^$?$OHs@_Dj(B) $B$G!"(B - <module>mod_autoindex</module> $B$,:GE,$JI}$r7W;;$9$k$h$&$K$G$-$^$9!#(B</dd> + <dd><code>-DescriptionWidth</code> (または非設定) で、 + <module>mod_autoindex</module> が最適な幅を計算するようにできます。</dd> <dd><code>DescriptionWidth=<var>n</var></code> - $B$G!"%3%i%`I}$r(B <var>n</var> $B%P%$%H$K8GDj$7$^$9!#(B</dd> + で、コラム幅を <var>n</var> バイトに固定します。</dd> <dd><code>DescriptionWidth=*</code> - $B$O!":GD9$N@bL@$K9g$o$;$FI,MW$JD9$5$^$G%3%i%`$r1d$P$7$^$9!#(B</dd> + は、最長の説明に合わせて必要な長さまでコラムを延ばします。</dd> - <dd><strong>$B@bL@$r4]$a9~$s$@>l9gFCM-$N4m81$K$D$$$F$O(B + <dd><strong>説明を丸め込んだ場合特有の危険については <directive module="mod_autoindex">AddDescription</directive> - $B%;%/%7%g%s$r$*FI$_2<$5$$!#(B</strong></dd> + セクションをお読み下さい。</strong></dd> <dt><a name="indexoptions.fancyindexing" id="indexoptions.fancyindexing">FancyIndexing</a></dt> - <dd>$B>~$jIU$-%$%s%G%C%/%9$r%*%s$K$7$^$9!#(B</dd> + <dd>飾り付きインデックスをオンにします。</dd> <dt><a name="indexoptions.foldersfirst" id="indexoptions.foldersfirst">FoldersFirst</a> - (<em>2.0.23 $B0J9_(B</em>)</dt> - - <dd>$B$3$N%*%W%7%g%s$,M-8z$K$J$C$?>l9g!"%5%V%G%#%l%/%H%j$N0lMw$O(B - <em>$BI,$:(B</em>$B:G=i$K8=$o$l$F!"$=$N%G%#%l%/%H%j$NDL>o$N%U%!%$%k$O(B - $B$=$N8e$KB3$-$^$9!#(B - $B0lMw$O4pK\E*$K$O!"%U%!%$%k$H%G%#%l%/%H%j$NFs$D$NItJ,$KJ,$1$i$l$F!"(B - $B$=$l$>$l$OJL!9$K%=!<%H$5$l!"$=$N8e%5%V%G%#%l%/%H%j$r@h$K$7$F(B - $BI=<($,9T$J$o$l$^$9!#Nc$($P%=!<%H=g$,L>A0$N9_=g$K$J$C$F$$$F!"(B - <code>FoldersFirst</code> $B$,M-8z$K$J$C$F$$$k>l9g$O!"(B - $B%5%V%G%#%l%/%H%j(B <code>Zed</code> $B$O%5%V%G%#%l%/%H%j(B - <code>Beta</code> $B$h$j$bA0$K%j%9%H$5$l!"DL>o$N%U%!%$%k(B - <code>Gamma</code> $B$d(B <code>Alpha</code> - $B$h$j$bA0$K%j%9%H$5$l$^$9!#(B<strong>$B$3$N%*%W%7%g%s$O(B + (<em>2.0.23 以降</em>)</dt> + + <dd>このオプションが有効になった場合、サブディレクトリの一覧は + <em>必ず</em>最初に現われて、そのディレクトリの通常のファイルは + その後に続きます。 + 一覧は基本的には、ファイルとディレクトリの二つの部分に分けられて、 + それぞれは別々にソートされ、その後サブディレクトリを先にして + 表示が行なわれます。例えばソート順が名前の降順になっていて、 + <code>FoldersFirst</code> が有効になっている場合は、 + サブディレクトリ <code>Zed</code> はサブディレクトリ + <code>Beta</code> よりも前にリストされ、通常のファイル + <code>Gamma</code> や <code>Alpha</code> + よりも前にリストされます。<strong>このオプションは <a href="#indexoptions.fancyindexing"><code>FancyIndexing</code></a> - $B$bM-8z$K$J$C$F$$$k$H$-$K$N$_!"8z2L$,$"$j$^$9!#(B</strong></dd> + も有効になっているときにのみ、効果があります。</strong></dd> <dt><a name="indexoptions.htmltable" - id="indexoptions.htmltable">HTMLTable</a> <em>($B<B83E*!"(B - Apache 2.0.23 $B0J9_(B)</em></dt> + id="indexoptions.htmltable">HTMLTable</a> <em>(実験的、 + Apache 2.0.23 以降)</em></dt> - <dd>$B$3$N<B83E*$J%*%W%7%g%s$O(B FancyIndexing $B$H$H$b$K;XDj$9$k$3$H$G!"(B - $B>~$j$NIU$$$?%G%#%l%/%H%j0lMw$N$?$a$K%F!<%V%k$r;H$C$?C1=c$JI=$r:n$j$^$9!#(B - $B$3$l$O8E$$%V%i%&%6$r:.Mp$5$;$k$+$b$7$l$J$$$3$H$KCm0U$7$F$/$@$5$$!#(B - WinNT $B$d$=$NB>(B utf-8 - $B$,M-8z$J%W%i%C%H%[!<%`$N$h$&$K!"%U%!%$%kL>$d@bL@%F%-%9%H$,(B - $B1&FI$_$K$J$C$?$j:8FI$_$K$J$j$($k>l9g$OFC$KI,MW$G$9!#(B</dd> + <dd>この実験的なオプションは FancyIndexing とともに指定することで、 + 飾りの付いたディレクトリ一覧のためにテーブルを使った単純な表を作ります。 + これは古いブラウザを混乱させるかもしれないことに注意してください。 + WinNT やその他 utf-8 + が有効なプラットホームのように、ファイル名や説明テキストが + 右読みになったり左読みになりえる場合は特に必要です。</dd> <dt><a name="indexoptions.iconsarelinks" id="indexoptions.iconsarelinks">IconsAreLinks</a></dt> - <dd>$B$3$l$O!"(BFancyIndexing $B$K$*$$$F!"(B - $B%"%$%3%s$b%U%!%$%kL>$X$N%j%s%/$N0lIt$K$7$^$9!#(B</dd> + <dd>これは、FancyIndexing において、 + アイコンもファイル名へのリンクの一部にします。</dd> <dt><a name="indexoptions.iconheight" id="indexoptions.iconheight">IconHeight[=<var >pixels</var>]</a></dt> - <dd>$B$3$N%*%W%7%g%s$,!"(BIconWidth $B$H$H$b$K;H$o$l$F$$$k>l9g$O!"(B - $B%5!<%P$O%U%!%$%k%"%$%3%s$N$?$a$N(B <code>img</code> - $B%?%0$K(B <code>height</code> $B$H(B <code>width</code> - $BB0@-$r<h$j9~$`$h$&$K$J$j$^$9!#(B - $B$3$l$K$h$C$F!"%$%a!<%8A4$F$r%m!<%I$7=*$o$k$^$GBT$?$J$/$F$b!"(B - $B%V%i%&%6$O%Z!<%8%l%$%"%&%H$r$"$i$+$8$a7W;;$9$k$3$H$,$G$-$^$9!#(B - $B$3$N%*%W%7%g%s$K2?$bCM$,M?$($i$l$J$1$l$P!"(BApache - $B%=%U%H%&%'%"$GDs6!$5$l$F$$$k%"%$%3%s$NI8=`$N9b$5$,(B - $B%G%U%)%k%H$J$j$^$9!#(B</dd> + <dd>このオプションが、IconWidth とともに使われている場合は、 + サーバはファイルアイコンのための <code>img</code> + タグに <code>height</code> と <code>width</code> + 属性を取り込むようになります。 + これによって、イメージ全てをロードし終わるまで待たなくても、 + ブラウザはページレイアウトをあらかじめ計算することができます。 + このオプションに何も値が与えられなければ、Apache + ソフトウェアで提供されているアイコンの標準の高さが + デフォルトなります。</dd> <dt><a name="indexoptions.iconwidth" id="indexoptions.iconwidth">IconWidth[=<var >pixels</var>]</a></dt> - <dd>$B$3$N%*%W%7%g%s$,!"(B<code>IconHeight</code> $B$H$H$b$K;H$o$l$F$$$k>l9g$O!"(B - $B%5!<%P$O%U%!%$%k%"%$%3%s$N$?$a$N(B <code>img</code> - $B%?%0$K(B <code>height</code> $B$H(B <code>width</code> - $BB0@-$r<h$j9~$`$h$&$K$J$j$^$9!#(B - $B$3$l$K$h$C$F!"%$%a!<%8A4$F$r%m!<%I$7=*$o$k$^$GBT$?$J$/$F$b!"(B - $B%V%i%&%6$O%Z!<%8%l%$%"%&%H$r$"$i$+$8$a7W;;$9$k$3$H$,$G$-$^$9!#(B - $B$3$N%*%W%7%g%s$K2?$bCM$,M?$($i$l$J$1$l$P!"(BApache - $B%=%U%H%&%'%"$GDs6!$5$l$F$$$k%"%$%3%s$NI8=`$N9b$5$,(B - $B%G%U%)%k%H$J$j$^$9!#(B</dd> + <dd>このオプションが、<code>IconHeight</code> とともに使われている場合は、 + サーバはファイルアイコンのための <code>img</code> + タグに <code>height</code> と <code>width</code> + 属性を取り込むようになります。 + これによって、イメージ全てをロードし終わるまで待たなくても、 + ブラウザはページレイアウトをあらかじめ計算することができます。 + このオプションに何も値が与えられなければ、Apache + ソフトウェアで提供されているアイコンの標準の高さが + デフォルトなります。</dd> <dt><a name="indexoptions.ignorecase" id="indexoptions.ignorecase">IgnoreCase</a></dt> - <dd>$B$3$N%*%W%7%g%s$,M-8z$G$"$k$H!"%U%!%$%kL>$OBgJ8;z>.J8;z$r6hJL$;$:$K%=!<%H$5$l$^$9!#(B - $BNc$($P%U%!%$%kL>$,>:=g$G%=!<%H$5$l!"(BIgnoreCase $B$,M-8z$G$"$l$P!"(B - Zeta $B$O(B alfa $B$N8e$K%j%9%H$5$l$^$9(B - ($BCm0U(B: GAMMA $B$O>o$K(B gamma $B$NA0$K$J$j$^$9(B)$B!#(B</dd> + <dd>このオプションが有効であると、ファイル名は大文字小文字を区別せずにソートされます。 + 例えばファイル名が昇順でソートされ、IgnoreCase が有効であれば、 + Zeta は alfa の後にリストされます + (注意: GAMMA は常に gamma の前になります)。</dd> <dt><a name="indexoptions.ignoreclient" id="indexoptions.ignoreclient">IgnoreClient</a></dt> - <dd>$B$3$N%*%W%7%g%s$G(B <module>mod_autoindex</module> $B$O!"(B - $B%/%i%$%"%s%H$+$i$NA4$F$N%/%(%j!<JQ?t$rL5;k$9$k$h$&$K$J$j$^$9!#(B - $B$3$l$O%=!<%H=g$b4^$_$^$9!#(B - ($B$D$^$j(B <code><a href="#indexoptions.suppresscolumnsorting" + <dd>このオプションで <module>mod_autoindex</module> は、 + クライアントからの全てのクエリー変数を無視するようになります。 + これはソート順も含みます。 + (つまり <code><a href="#indexoptions.suppresscolumnsorting" >SuppressColumnSorting</a></code> - $B$r0E$K0UL#$7$^$9!#(B)</dd> + を暗に意味します。)</dd> <dt><a name="indexoptions.namewidth" id="indexoptions.namewidth">NameWidth=[<var>n</var> | *]</a></dt> - <dd><code>NameWidth</code> $B%-!<%o!<%I$G%U%!%$%kL>%3%i%`$NI}$r%P%$%H?t$G(B - $B;XDj$G$-$^$9!#(B</dd> + <dd><code>NameWidth</code> キーワードでファイル名コラムの幅をバイト数で + 指定できます。</dd> - <dd><code>-NameWidth</code> ($B$^$?$OHs@_Dj(B) $B$G!"(B - <module>mod_autoindex</module> $B$,:GE,$JI}$r7W;;$9$k$h$&$K$G$-$^$9!#(B</dd> + <dd><code>-NameWidth</code> (または非設定) で、 + <module>mod_autoindex</module> が最適な幅を計算するようにできます。</dd> <dd><code>NameWidth=<var>n</var></code> - $B$G!"%3%i%`I}$r(B <var>n</var> $B%P%$%H$K8GDj$7$^$9!#(B</dd> + で、コラム幅を <var>n</var> バイトに固定します。</dd> <dd><code>NameWidth=*</code> - $B$O!"I,MW$JD9$5$^$G%3%i%`$r1d$P$7$^$9!#(B</dd> + は、必要な長さまでコラムを延ばします。</dd> <dt><a name="indexoptions.scanhtmltitles" id="indexoptions.scanhtmltitles">ScanHTMLTitles</a></dt> - <dd>FancyIndexing $B$N$?$a$K!"(B - HTML $B%I%-%e%a%s%H$+$i%?%$%H%k$r<h$j=P$9$3$H$r2DG=$K$7$^$9!#(B - $B$b$7%U%!%$%k$K(B + <dd>FancyIndexing のために、 + HTML ドキュメントからタイトルを取り出すことを可能にします。 + もしファイルに <directive module="mod_autoindex">AddDescription</directive> - $B$G@bL@$,M?$($i$l$F$$$J$1$l$P!"(B - httpd $B$O(B <code>title</code> $B%?%0$NCM$rFI$`$?$a$K%I%-%e%a%s%H$rFI$_;O$a$^$9!#(B - $B$3$l$O(B CPU $B$d(B disk $B$KIi2Y$r$+$1$^$9!#(B</dd> + で説明が与えられていなければ、 + httpd は <code>title</code> タグの値を読むためにドキュメントを読み始めます。 + これは CPU や disk に負荷をかけます。</dd> <dt><a name="indexoptions.showforbidden" id="indexoptions.showforbidden">ShowForbidden</a></dt> - <dd>$B;XDj$7$?>l9g$G$"$C$F$b!"%5%V%j%/%(%9%H$N7k2L$,(B HTTP_UNAUTHORIZED $B$d(B - HTTP_FORBIDDEN $B$N%U%!%$%k$ODL>oDL$j1#$5$l$?>uBV$N$^$^!"(B - $B%U%!%$%k0lMw$,@8@.$5$l$^$9!#(B</dd> + <dd>指定した場合であっても、サブリクエストの結果が HTTP_UNAUTHORIZED や + HTTP_FORBIDDEN のファイルは通常通り隠された状態のまま、 + ファイル一覧が生成されます。</dd> <dt><a name="indexoptions.suppresscolumnsorting" id="indexoptions.suppresscolumnsorting" >SuppressColumnSorting</a></dt> - <dd>$B$b$7;XDj$5$l$F$$$l$P!"(BApache $B$O(B - FancyIndexing $B$GI=<($5$l$F$$$k%G%#%l%/%H%j0lMw$G$N(B - $B%3%i%`$N@hF,$r!"%=!<%H$N$?$a$N%j%s%/$K$7$J$/$J$j$^$9!#(B - $B%G%U%)%k%H$N5sF0$O!"%j%s%/$H$7$^$9!#(B - $B%3%i%`$N@hF,$rA*$V$H%3%i%`$NCM$K=>$C$F%G%#%l%/%H%j%j%9%H$r(B - $B%=!<%H$7$^$9!#(B - <strong>Apache 2.0.23 $B0JA0$G$O!"$3$l$OF1;~$K(B - $B%=!<%HJ8;zNs$N$?$a$N%/%(%j!<0z?t$N2r@O$bL58z$K$7$^$9!#(B + <dd>もし指定されていれば、Apache は + FancyIndexing で表示されているディレクトリ一覧での + コラムの先頭を、ソートのためのリンクにしなくなります。 + デフォルトの挙動は、リンクとします。 + コラムの先頭を選ぶとコラムの値に従ってディレクトリリストを + ソートします。 + <strong>Apache 2.0.23 以前では、これは同時に + ソート文字列のためのクエリー引数の解析も無効にします。 </strong> - $B$3$N5sF0$O(B Apache 2.0.23 $B$G$O(B + この挙動は Apache 2.0.23 では <a href="#indexoptions.ignoreclient">IndexOptions - IgnoreClient</a> $B$G@)8f$5$l$k$h$&$K$J$C$F$$$^$9!#(B</dd> + IgnoreClient</a> で制御されるようになっています。</dd> <dt><a name="indexoptions.suppressdescription" id="indexoptions.suppressdescription" >SuppressDescription</a></dt> - <dd>$B$3$l$O(B FancyIndexing $B$K$*$1$k%U%!%$%k$N@bL@$r>C5n$7$^$9!#(B - $B%G%U%)%k%H$G$O!"@bL@$ODj5A$5$l$F$*$i$:!"(B - $B$3$N%*%W%7%g%s$r;H$&$HB>$N$?$a$K(B 23 - $BJ8;z$N6uGr$r2T$0$3$H$,$G$-$^$9!#(B $B%U%!%$%k$N@bL@$K4X$9$k>pJs$O!"(B + <dd>これは FancyIndexing におけるファイルの説明を消去します。 + デフォルトでは、説明は定義されておらず、 + このオプションを使うと他のために 23 + 文字の空白を稼ぐことができます。 ファイルの説明に関する情報は、 <directive module="mod_autoindex">AddDescription</directive> - $B$r$4Mw2<$5$$!#$^$?!"@bL@$N%3%i%`%5%$%:$r@)8B$9$k(B + をご覧下さい。また、説明のコラムサイズを制限する <code><a href="#indexoptions.descriptionwidth">DescriptionWidth</a></code> - $B%$%s%G%C%/%9%*%W%7%g%s$b$4Mw2<$5$$!#(B</dd> + インデックスオプションもご覧下さい。</dd> <dt><a name="indexoptions.suppresshtmlpreamble" id="indexoptions.suppresshtmlpreamble" >SuppressHTMLPreamble</a></dt> - <dd>$BDL>o!"(B + <dd>通常、 <directive module="mod_autoindex">HeaderName</directive> - $B%G%#%l%/%F%#%V$G;XDj$7$?%U%!%$%k$r(B - $B%G%#%l%/%H%j$,<B:]$K4^$s$G$$$l$P!"I8=`E*$J(B HTML $B%W%j%"%s%V%k(B - (<code><html></code>, <code><head></code>, <em>$BEy(B</em>) $B$N8e$K!"(B - $B%b%8%e!<%k$O%U%!%$%k$NCf?H$r%$%s%/%k!<%I$7$^$9!#(B - <code>SuppressHTMLPreamble</code> $B%*%W%7%g%s$O!"(B - $B$3$N5sF0$rL58z$K$G$-$F!"(B - $B%b%8%e!<%k$,%X%C%@!<%U%!%$%k$NCf?H$+$iI=<($r;O$a$^$9!#(B - $B$3$N>l9g!"%X%C%@!<%U%!%$%k$O@5$7$$(B HTML - $BL?Na$r4^$s$G$$$J$1$l$P$J$j$^$;$s!#(B - $B%X%C%@!<%U%!%$%k$,B8:_$7$J$$>l9g$O!"%W%j%"%s%V%k$ODL>oDL$j(B - $B@8@.$5$l$^$9!#(B</dd> + ディレクティブで指定したファイルを + ディレクトリが実際に含んでいれば、標準的な HTML プリアンブル + (<code><html></code>, <code><head></code>, <em>等</em>) の後に、 + モジュールはファイルの中身をインクルードします。 + <code>SuppressHTMLPreamble</code> オプションは、 + この挙動を無効にできて、 + モジュールがヘッダーファイルの中身から表示を始めます。 + この場合、ヘッダーファイルは正しい HTML + 命令を含んでいなければなりません。 + ヘッダーファイルが存在しない場合は、プリアンブルは通常通り + 生成されます。</dd> <dt><a name="indexoptions.suppressicon" id="indexoptions.suppressicon">SuppressIcon</a> (<em>Apache - 2.0.23 $B0J9_(B</em>)</dt> + 2.0.23 以降</em>)</dt> <dd> - $B$3$l$O(B FancyIndexing $B$N0lMw$+$i%"%$%3%s$r>C5n$7$^$9!#(B - <code>SuppressIcon</code> $B$H(B <code>SuppressRules</code> - $B$HAH9g$o$;$k$3$H$K$h$C$F@5$7$$(B HTML 3.2 $B$N=PNO$,F@$i$l$^$9!#(B - $B@5$7$$(B HTML 3.2 $B=PNO$O!":G=*5,3J$K$*$$$F(B <code>img</code> $B$H(B <code>hr</code> - $B$,(B <code>pre</code> $B%V%m%C%/$KF~$k(B (FancyIndexing $B0lMw$G=q<0$K;H$o$l$F$$$^$9(B) - $B$3$H$r6X;_$7$F$$$^$9!#(B</dd> + これは FancyIndexing の一覧からアイコンを消去します。 + <code>SuppressIcon</code> と <code>SuppressRules</code> + と組合わせることによって正しい HTML 3.2 の出力が得られます。 + 正しい HTML 3.2 出力は、最終規格において <code>img</code> と <code>hr</code> + が <code>pre</code> ブロックに入る (FancyIndexing 一覧で書式に使われています) + ことを禁止しています。</dd> <dt><a name="indexoptions.suppresslastmodified" id="indexoptions.suppresslastmodified" >SuppressLastModified</a></dt> - <dd>FancyIndexing $B0lMw$K$*$$$F:G=*99?7F|;~$NI=<($r>C5n$7$^$9!#(B</dd> + <dd>FancyIndexing 一覧において最終更新日時の表示を消去します。</dd> <dt><a name="indexoptions.suppressrules" id="indexoptions.suppressrules">SuppressRules</a> - (<em>Apache 2.0.23 $B0J9_(B</em>) </dt> + (<em>Apache 2.0.23 以降</em>) </dt> - <dd>$B%G%#%l%/%H%j0lMw$K$*$$$F?eJ?6h@Z$j@~(B (<code>hr</code> $B%?%0(B) $B$r>C5n$7$^$9!#(B - <code>SuppressIcon</code> $B$H(B <code>SuppressRules</code> - $B$HAH9g$o$;$k$3$H$K$h$C$F@5$7$$(B HTML 3.2 $B$N=PNO$,F@$i$l$^$9!#(B - $B@5$7$$(B HTML 3.2 $B=PNO$O!":G=*5,3J$K$*$$$F(B <code>img</code> $B$H(B <code>hr</code> - $B$,(B <code>pre</code> $B%V%m%C%/$KF~$k(B (FancyIndexing $B0lMw$G=q<0$K;H$o$l$F$$$^$9(B) - $B$3$H$r6X;_$7$F$$$^$9!#(B</dd> + <dd>ディレクトリ一覧において水平区切り線 (<code>hr</code> タグ) を消去します。 + <code>SuppressIcon</code> と <code>SuppressRules</code> + と組合わせることによって正しい HTML 3.2 の出力が得られます。 + 正しい HTML 3.2 出力は、最終規格において <code>img</code> と <code>hr</code> + が <code>pre</code> ブロックに入る (FancyIndexing 一覧で書式に使われています) + ことを禁止しています。</dd> <dt><a name="indexoptions.suppresssize" id="indexoptions.suppresssize">SuppressSize</a></dt> - <dd>FancyIndexing $B0lMw$K$*$$$F%U%!%$%k%5%$%:$NI=<($r>C5n$7$^$9!#(B</dd> + <dd>FancyIndexing 一覧においてファイルサイズの表示を消去します。</dd> <dt><a name="indexoptions.trackmodified" id="indexoptions.trackmodified">TrackModified</a> - (<em>Apache 2.0.23 $B0J9_(B</em>)</dt> - - <dd>$B$3$l$O(B HTTP $B%X%C%@Cf$K!"(B - $B%j%9%H$5$l$?%G%#%l%/%H%j$N:G=*99?7F|$d(B ETag $BCM$r4^$a$^$9!#(B - $B$3$l$O!"%*%Z%l!<%F%#%s%0%7%9%F%`$d%U%!%$%k%7%9%F%`$,(B - $BE,@Z$J(B stat() $B$NJV$jCM$rJV$9>l9g$K$N$_M-8z$G$9!#(B - $B$$$/$D$+$N(B UNIX $B%7%9%F%`!"(BOS2 $B$N(B JFS $B$d(B Win32 $B$N(B NTFS - $B%\%j%e!<%`$O$=$&$J$C$F$$$^$9!#(B - $BNc$($P!"(BOS2 $B$H(B Win32 FAT $B%\%j%e!<%`$O$=$&$G$O$"$j$^$;$s!#(B - $B$3$N5!G=$,M-8z$K$J$k$H!"%/%i%$%"%s%H$d%W%m%-%7$O(B - <code>HEAD</code> $B%j%/%(%9%H$r9T$&$3$H$K$h$C$F!"(B - $B%U%!%$%k0lMw$NJQ2=$rDI@W$9$k$3$H$,$G$-$k$h$&$K$J$j$^$9!#(B - $B$$$/$D$+$N%*%Z%l!<%F%#%s%0%7%9%F%`$O!"?75,%U%!%$%k$d(B - $B0\F0%U%!%$%k$O@5$7$/DI@W$9$k$1$l$I$b!"(B - $B%G%#%l%/%H%jCf$N%U%!%$%k$N%5%$%:$dF|IU$ODI@W$J$$$H$$$&$3$H$K(B - $BCm0U$7$F$/$@$5$$!#(B - <strong>$B4{$KB8:_$9$k%U%!%$%k$N%5%$%:$dF|IU$N%9%?%s%W$,JQ2=$7$F$b!"(B - $BA4$F$N(B Unix $B%W%i%C%H%[!<%`$G$O!"(B - $B:G=*99?7F|%X%C%@!<$r99?7$7$^$;$s!#(B</strong> - $B$b$7$3$l$,=EMW$G$"$l$P!"(B - $B$3$N%*%W%7%g%s$rL58z$N$^$^$K$7$F$/$@$5$$!#(B</dd> + (<em>Apache 2.0.23 以降</em>)</dt> + + <dd>これは HTTP ヘッダ中に、 + リストされたディレクトリの最終更新日や ETag 値を含めます。 + これは、オペレーティングシステムやファイルシステムが + 適切な stat() の返り値を返す場合にのみ有効です。 + いくつかの UNIX システム、OS2 の JFS や Win32 の NTFS + ボリュームはそうなっています。 + 例えば、OS2 と Win32 FAT ボリュームはそうではありません。 + この機能が有効になると、クライアントやプロキシは + <code>HEAD</code> リクエストを行うことによって、 + ファイル一覧の変化を追跡することができるようになります。 + いくつかのオペレーティングシステムは、新規ファイルや + 移動ファイルは正しく追跡するけれども、 + ディレクトリ中のファイルのサイズや日付は追跡ないということに + 注意してください。 + <strong>既に存在するファイルのサイズや日付のスタンプが変化しても、 + 全ての Unix プラットホームでは、 + 最終更新日ヘッダーを更新しません。</strong> + もしこれが重要であれば、 + このオプションを無効のままにしてください。</dd> <dt><a name="indexoptions.versionsort" id="indexoptions.versionsort">VersionSort</a> - (<em>Apache 2.0a3 $B0J9_(B</em>)</dt> + (<em>Apache 2.0a3 以降</em>)</dt> - <dd><code>VersionSort</code> $B%-!<%o!<%I$O%P!<%8%g%sHV9f$r4^$s$@%U%!%$%k$,(B - $B<+A3$JJ}K!$G%=!<%H$5$l$k$h$&$K$7$^$9!#(B - $BJ8;zNs$ODL>oDL$j%=!<%H$5$l!"(B - $B$=$l0J30$N!"@bL@$dL>A0Cf$N?t$H$J$kItJ,J8;zNs$O(B - $B$=$N?tCM$GHf3S$5$l$^$9!#(B + <dd><code>VersionSort</code> キーワードはバージョン番号を含んだファイルが + 自然な方法でソートされるようにします。 + 文字列は通常通りソートされ、 + それ以外の、説明や名前中の数となる部分文字列は + その数値で比較されます。 - <example><title>$BNc(B:</title> + <example><title>例:</title> foo-1.7<br /> foo-1.7.2<br /> foo-1.7.12<br /> @@ -844,7 +844,7 @@ MIME $B%?%$%W$K$h$C$FA*Br(B</description> foo-1.12 </example> - <p>$BHV9f$,(B 0 $B$+$i;O$^$k>l9g$O!"C<?t$H9M$($i$l$^$9(B</p> + <p>番号が 0 から始まる場合は、端数と考えられます</p> <example> foo-1.001<br /> @@ -856,28 +856,28 @@ MIME $B%?%$%W$K$h$C$FA*Br(B</description> <dt><a name="indexoptions.xhtml" id="indexoptions.xhtml">XHTML</a> - (<em>Apache 2.0.49 $B0J9_(B</em>)</dt> + (<em>Apache 2.0.49 以降</em>)</dt> - <dd><code>XHTML</code> $B%-!<%o!<%I$r;XDj$9$k$H!"(B<module>mod_autoindex</module> - $B$O(B HTML 3.2 $B$NBe$o$j$K(B XHTML 1.0 $B$N%3!<%I$r=PNO$9$k$h$&$K$J$j$^$9!#(B</dd> + <dd><code>XHTML</code> キーワードを指定すると、<module>mod_autoindex</module> + は HTML 3.2 の代わりに XHTML 1.0 のコードを出力するようになります。</dd> </dl> <!-- XXX: we should consider to allow sections inside <usage> this would require some xslt changes... --> - <dl><dt>$BA}8:;XDj$G$-$k(B IndexOptions</dt> + <dl><dt>増減指定できる IndexOptions</dt> <dd> - <p>Apache 1.3.3 $B$G$O!"(B + <p>Apache 1.3.3 では、 <directive>IndexOptions</directive> - $B%G%#%l%/%F%#%V$N07$$$G4v$D$+$NBg$-$JJQ2=$,F3F~$5$l$^$7$?!#(B - $BFC$K!"(B</p> + ディレクティブの扱いで幾つかの大きな変化が導入されました。 + 特に、</p> <ul> - <li>$B0l$D$N%G%#%l%/%H%j$KBP$9$kJ#?t$N(B + <li>一つのディレクトリに対する複数の <directive>IndexOptions</directive> - $B%G%#%l%/%F%#%V$O!"8=:_$G$O0l$D$K%^!<%8$5$l$^$9!#(B - $B>e$NNc$N7k2L$O!"(B + ディレクティブは、現在では一つにマージされます。 + 上の例の結果は、 <example> <Directory /foo> @@ -888,42 +888,42 @@ MIME $B%?%$%W$K$h$C$FA*Br(B</description> </Directory> </example> - <p>$B$HF10l$K$J$j$^$9!#(B</p> + <p>と同一になります。</p> <example> IndexOptions HTMLTable SuppressColumnsorting </example> </li> - <li>$BA}8:9=J8(B - (<em>$B$9$J$o$A(B</em>$B!"(B'+' $B$d(B '-' - $B$N@\F,<-$,IU$/%-!<%o!<%I(B) $B$NDI2C!#(B</li> + <li>増減構文 + (<em>すなわち</em>、'+' や '-' + の接頭辞が付くキーワード) の追加。</li> </ul> - <p>'+' $B$d(B '-' $B@\F,<-$NIU$$$?%-!<%o!<%I$K=P2q$&$H$=$l$O!"(B - $B$=$N;~E@$G$N(B <directive>IndexOptions</directive> - $B$N@_Dj(B ($B$3$l$O>eN.$N%G%#%l%/%H%j$r<u$17Q$.$^$9(B) - $B$KBP$7$FE,1~$5$l$^$9!#(B - $B$7$+$7$J$,$i!"@\F,<-$NIU$+$J$$%-!<%o!<%I$,=hM}$5$l$?>l9g$O!"(B - $B<u$17Q$$$@%*%W%7%g%sA4$F$H$=$l$^$G=P2q$C$?A}8:@_DjA4$F$,(B - $B>C5n$5$l$^$9!#<!$NNc$r9M$($F$_$F$/$@$5$$(B:</p> + <p>'+' や '-' 接頭辞の付いたキーワードに出会うとそれは、 + その時点での <directive>IndexOptions</directive> + の設定 (これは上流のディレクトリを受け継ぎます) + に対して適応されます。 + しかしながら、接頭辞の付かないキーワードが処理された場合は、 + 受け継いだオプション全てとそれまで出会った増減設定全てが + 消去されます。次の例を考えてみてください:</p> <example> IndexOptions +ScanHTMLTitles -IconsAreLinks FancyIndexing<br /> IndexOptions +SuppressSize </example> - <p>$BCf?H$N8z2L$O(B + <p>中身の効果は <code>IndexOptions FancyIndexing +SuppressSize</code> - $B$HF10l$G$9!#(B - $B@\F,<-$NIU$+$J$$(B <code>FancyIndexing</code> - $B$G$=$l0JA0$NA}8:%-!<%o!<%I$rL58z$K$5$l$F!"(B - $B$=$N8e$NN_@Q$,;O$^$k$+$i$G$9!#(B</p> - - <p>$BL5>r7o$K(B <directive>IndexOptions</directive> - $B$r$"$k%G%#%l%/%H%j$G@_Dj$9$k$3$H$K$h$C$F(B - $B7Q>5$7$?@_Dj$r>C5n$7$F!"(B<code>+</code> $B$d(B <code>-</code> - $B@\F,<-$NIU$+$J$$%-!<%o!<%I$G@_Dj$7$F$/$@$5$$!#(B</p> + と同一です。 + 接頭辞の付かない <code>FancyIndexing</code> + でそれ以前の増減キーワードを無効にされて、 + その後の累積が始まるからです。</p> + + <p>無条件に <directive>IndexOptions</directive> + をあるディレクトリで設定することによって + 継承した設定を消去して、<code>+</code> や <code>-</code> + 接頭辞の付かないキーワードで設定してください。</p> </dd> </dl> </usage> @@ -932,7 +932,7 @@ MIME $B%?%$%W$K$h$C$FA*Br(B</description> <directivesynopsis> <name>IndexOrderDefault</name> <description> -$B%G%#%l%/%H%j%$%s%G%C%/%9$NI8=`$N=gHVIU$1$r@_Dj(B</description> +ディレクトリインデックスの標準の順番付けを設定</description> <syntax>IndexOrderDefault Ascending|Descending Name|Date|Size|Description</syntax> <default>IndexOrderDefault Ascending Name</default> @@ -943,34 +943,34 @@ Name|Date|Size|Description</syntax> <override>Indexes</override> <usage> - <p><directive>IndexOrderDefault</directive> $B%G%#%l%/%F%#%V$O(B + <p><directive>IndexOrderDefault</directive> ディレクティブは <code><a href="#indexoptions.fancyindexing">FancyIndexing</a></code> - $B%$%s%G%C%/%9%*%W%7%g%s$HJ;$;$FMQ$$$l$l$^$9!#(B - $B%G%U%)%k%H$G$O!"(BFancyIndexing - $B$N%G%#%l%/%H%j0lMw$O%U%!%$%kL>$N>:=g$GI=<($5$l$^$9!#(B + インデックスオプションと併せて用いれれます。 + デフォルトでは、FancyIndexing + のディレクトリ一覧はファイル名の昇順で表示されます。 <directive>IndexOrderDefault</directive> - $B$G!"=i4|>uBV$NI=<(=gHV$rJQ$($k$3$H$,$G$-$^$9!#(B</p> + で、初期状態の表示順番を変えることができます。</p> <p><directive>IndexOrderDefault</directive> - $B$OFs$D$N0z?t$r$H$j$^$9!#0l$DL\$O%=!<%H$NJ}8~$r;X<($9$k(B - <code>Ascending</code> $B$+(B <code>Descending</code> $B$N$$$:$l$+$G$9!#(B - $BFs$DL\$N0z?t$O(B <code>Name</code>, <code>Date</code>, - <code>Size</code> $B$+(B <code>Description</code> - $B$N$$$:$l$+0l$D$N%-!<%o!<%I$G$"$C$F!"%W%i%$%^%j%-!<$r;XDj$7$^$9!#(B - $BFs$DL\$N%-!<$O(B<em>$B>o$K(B</em>$B%U%!%$%kL>$N>:=g$K$J$j$^$9!#(B</p> - - <p>$B$3$N%G%#%l%/%F%#%V$H(B <code><a + は二つの引数をとります。一つ目はソートの方向を指示する + <code>Ascending</code> か <code>Descending</code> のいずれかです。 + 二つ目の引数は <code>Name</code>, <code>Date</code>, + <code>Size</code> か <code>Description</code> + のいずれか一つのキーワードであって、プライマリキーを指定します。 + 二つ目のキーは<em>常に</em>ファイル名の昇順になります。</p> + + <p>このディレクティブと <code><a href="#indexoptions.suppresscolumnsorting">SuppressColumnSorting</a></code> - $B%$%s%G%C%/%9%*%W%7%g%s$H$rAH$_9g$o$;$k$3$H$G!"(B - $B%G%#%l%/%H%j0lMw$r$"$kFCDj$N=gHV$G$N$_I=<($9$k$h$&$K$G$-$^$9!#(B - $B$3$l$O!"(B - $B%/%i%$%"%s%H$,JL$N=gHV$G%G%#%l%/%H%j0lMw$r%j%/%(%9%H$9$k$3$H$rKI$.$^$9!#(B</p> + インデックスオプションとを組み合わせることで、 + ディレクトリ一覧をある特定の順番でのみ表示するようにできます。 + これは、 + クライアントが別の順番でディレクトリ一覧をリクエストすることを防ぎます。</p> </usage> </directivesynopsis> <directivesynopsis> <name>IndexStyleSheet</name> -<description>$B%G%#%l%/%H%j%$%s%G%C%/%9$K(B CSS $B%9%?%$%k%7!<%H$rDI2C$9$k(B</description> +<description>ディレクトリインデックスに CSS スタイルシートを追加する</description> <syntax>IndexStyleSheet <var>url-path</var></syntax> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context> @@ -978,11 +978,11 @@ Name|Date|Size|Description</syntax> <override>Indexes</override> <usage> - <p><directive>IndexStyleSheet</directive> $B%G%#%l%/%F%#%V$O(B - $B%$%s%G%C%/%9I=<($K;HMQ$5$l$k(B CSS $B$N%U%!%$%kL>$r@_Dj$7$^$9!#(B + <p><directive>IndexStyleSheet</directive> ディレクティブは + インデックス表示に使用される CSS のファイル名を設定します。 </p> <example> - <title>$BNc(B</title> + <title>例</title> IndexStyleSheet "/css/style.css" </example> </usage> @@ -990,7 +990,7 @@ Name|Date|Size|Description</syntax> <directivesynopsis> <name>ReadmeName</name> -<description>$B%$%s%G%C%/%90lMw$N:G8e$KA^F~$5$l$k%U%!%$%k$NL>A0(B</description> +<description>インデックス一覧の最後に挿入されるファイルの名前</description> <syntax>ReadmeName <var>filename</var></syntax> <contextlist><context>server config</context> <context>virtual host</context> @@ -999,25 +999,25 @@ Name|Date|Size|Description</syntax> <override>Indexes</override> <usage> - <p><directive>ReadmeName</directive> $B%G%#%l%/%F%#%V$O!"(B - $B%$%s%G%C%/%9$N=*$o$j$KIU$12C$($i$l$k%U%!%$%k$NL>A0$r@_Dj$7$^$9!#(B - <var>filename</var> $B$OA^F~$9$k%U%!%$%k$NL>A0$G!"(B - $B0lMw$N9T$o$l$F$$$k0LCV$+$iAjBPE*$J$b$N$H$7$F2r<a$5$l$^$9!#(B - <var>filename</var> $B$,%9%i%C%7%e$G;O$^$k>l9g$O!"(B + <p><directive>ReadmeName</directive> ディレクティブは、 + インデックスの終わりに付け加えられるファイルの名前を設定します。 + <var>filename</var> は挿入するファイルの名前で、 + 一覧の行われている位置から相対的なものとして解釈されます。 + <var>filename</var> がスラッシュで始まる場合は、 <directive module="core">DocumentRoot</directive> - $B$+$i$NAjBP%Q%9$H$J$j$^$9!#(B</p> + からの相対パスとなります。</p> - <example><title>$BNc(B</title> + <example><title>例</title> ReadmeName FOOTER.html </example> - <example><title>$BNc(B 2</title> + <example><title>例 2</title> ReadmeName /include/FOOTER.html </example> - <p>$B$h$j>\:Y$K$^$G$3$N5sF0$K$D$$$F5-=R$7$F$$$k(B <directive + <p>より詳細にまでこの挙動について記述している <directive module="mod_autoindex">HeaderName</directive> - $B$b$4Mw2<$5$$!#(B</p> + もご覧下さい。</p> </usage> </directivesynopsis> diff --git a/docs/manual/mod/mod_cache.xml.ja b/docs/manual/mod/mod_cache.xml.ja index a45bedde0f..c01a0d5a85 100644 --- a/docs/manual/mod/mod_cache.xml.ja +++ b/docs/manual/mod/mod_cache.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 151408:504183 (outdated) --> @@ -23,44 +23,44 @@ <modulesynopsis metafile="mod_cache.xml.meta"> <name>mod_cache</name> -<description>URI $B$r%-!<$K$7$?%3%s%F%s%D$N%-%c%C%7%e(B</description> +<description>URI をキーにしたコンテンツのキャッシュ</description> <status>Extension</status> <sourcefile>mod_cache.c</sourcefile> <identifier>cache_module</identifier> <summary> <note type="warning"> - $B$3$l$O<B83E*$J%b%8%e!<%k$G$9!#J8=q$b$^$@3+H/Cf$G$9(B... + これは実験的なモジュールです。文書もまだ開発中です... </note> - <p><module>mod_cache</module> $B$O%m!<%+%k$N%3%s%F%s%D$d%W%m%-%7$5$l$?(B - $B%3%s%F%s%D$r%-%c%C%7%e$9$k$?$a$K;H$o$l$k(B <a - href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a> $B=`5r$N(B - HTTP $B%3%s%F%s%D%-%c%C%7%e$r<BAu$7$F$$$^$9!#(B<module>mod_cache</module> - $B$NF0:n$K$O%9%H%l!<%8$r4IM}$9$k%b%8%e!<%k$,I,MW$G$9!#I8=`(B - Apache $BG[I[$K$OFs$D%9%H%l!<%84IM}%b%8%e!<%k$,4^$^$l$F$$$^$9(B:</p> + <p><module>mod_cache</module> はローカルのコンテンツやプロキシされた + コンテンツをキャッシュするために使われる <a + href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a> 準拠の + HTTP コンテンツキャッシュを実装しています。<module>mod_cache</module> + の動作にはストレージを管理するモジュールが必要です。標準 + Apache 配布には二つストレージ管理モジュールが含まれています:</p> <dl> <dt><module>mod_disk_cache</module></dt> - <dd>$B%G%#%9%/$r;HMQ$7$?%9%H%l!<%84IM}5!9=$r<BAu$7$F$$$^$9!#(B</dd> + <dd>ディスクを使用したストレージ管理機構を実装しています。</dd> <dt><module>mod_mem_cache</module></dt> - <dd>$B%a%b%j$r;HMQ$7$?%9%H%l!<%84IM}5!9=$r<BAu$7$F$$$^$9!#(B - <module>mod_mem_cache</module> $B$O<!$NFs$D$N%b!<%I$N$I$A$i$+$GF0:n$9$k(B - $B$h$&$K@_Dj$G$-$^$9(B: $B%*!<%W%s$5$l$F$$$k%U%!%$%k5-=R;R$r%-%c%C%7%e$9$k%b!<%I$+!"(B - $B%R!<%W>e$G$N%*%V%8%'%/%H$N<+BN$r%-%c%C%7%e$r$9$k%b!<%I$G$9!#(B - <module>mod_mem_cache</module> $B$O%m!<%+%k$G@8@.$5$l$k%3%s%F%s%D$d!"(B - <module>mod_proxy</module> $B$,(B - <directive module="mod_proxy">ProxyPass</directive> $B$r;H$C$F@_Dj$5$l$F$$$k(B - $B$H$-$N(B ($B$D$^$j(B<dfn>$B%j%P!<%9%W%m%-%7(B</dfn> $B$G$N(B) $B%P%C%/%(%s%I%5!<%P$N(B - $B%3%s%F%s%D$r%-%c%C%7%e$9$k$N$K;H$($^$9!#(B</dd> + <dd>メモリを使用したストレージ管理機構を実装しています。 + <module>mod_mem_cache</module> は次の二つのモードのどちらかで動作する + ように設定できます: オープンされているファイル記述子をキャッシュするモードか、 + ヒープ上でのオブジェクトの自体をキャッシュをするモードです。 + <module>mod_mem_cache</module> はローカルで生成されるコンテンツや、 + <module>mod_proxy</module> が + <directive module="mod_proxy">ProxyPass</directive> を使って設定されている + ときの (つまり<dfn>リバースプロキシ</dfn> での) バックエンドサーバの + コンテンツをキャッシュするのに使えます。</dd> </dl> - <p>$B%3%s%F%s%D$N%-%c%C%7%e$X$NJ]B8$H<hF@$O(B URI $B$K4p$E$$$?%-!<$,;H$o$l$^$9!#(B - $B%"%/%;%9J]8n$N$+$1$i$l$F$$$k%3%s%F%s%D$O%-%c%C%7%e$5$l$^$;$s!#(B</p> + <p>コンテンツのキャッシュへの保存と取得は URI に基づいたキーが使われます。 + アクセス保護のかけられているコンテンツはキャッシュされません。</p> </summary> -<section id="related"><title>$B4XO"%b%8%e!<%k$H%G%#%l%/%F%#%V(B</title> +<section id="related"><title>関連モジュールとディレクティブ</title> <related> <modulelist> <module>mod_disk_cache</module> @@ -83,7 +83,7 @@ </related> </section> -<section id="sampleconf"><title>$B%5%s%W%k@_Dj(B</title> +<section id="sampleconf"><title>サンプル設定</title> <example><title>Sample httpd.conf</title> #<br /> # Sample Cache Configuration<br /> @@ -121,30 +121,30 @@ <directivesynopsis> <name>CacheEnable</name> -<description>$B;XDj$7$?%9%H%l!<%84IM}J}<0$r;H$C$F$N%-%c%C%7%e$rM-8z$K$9$k(B</description> +<description>指定したストレージ管理方式を使ってのキャッシュを有効にする</description> <syntax>CacheEnable <var>cache_type</var> <var>url-string</var></syntax> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p><directive>CacheEnable</directive> $B%G%#%l%/%F%#%V$G(B <module>mod_cache</module> - $B%b%8%e!<%k$,(B <var>url-string</var> $B0J2<$N(B URL $B$r%-%c%C%7%e$9$k$h$&$K$7$^$9!#(B - $B%-%c%C%7%e%9%H%l!<%84IM}J}<0$O(B <var>cache_type</var> $B0z?t$G;XDj$7$^$9!#(B - <var>cache_type</var> <code> mem</code> $B$G!"(B - <module>mod_mem_cache</module> $B$G<BAu$5$l$F$$$k%a%b%j$r;H$C$?%9%H%l!<%8(B - $B4IM}J}<0$r;H$&$h$&$K(B <module>mod_cache</module> $B$K;X<($7$^$9!#(B - <var>cache_type</var> <code>disk</code> $B$G!"(B - <module>mod_disk_cache</module> $B$G<BAu$5$l$F$$$k%G%#%9%/$r;H$C$?%9%H%l!<%8(B - $B4IM}$r;H$&$h$&$K(B <module>mod_cache</module> $B$K;X<($7$^$9!#(B - <var>cache_type</var> <code>fd</code> $B$O(B <module>mod_cache</module> $B$K(B - <module>mod_mem_cache</module> $B$K$h$j<BAu$5$l$F$$$k%U%!%$%k5-=R;R$N(B - $B%-%c%C%7%e$r;H$&$h$&$K;X<($7$^$9!#(B</p> - - <p>($B2<$NNc$N$h$&$K(B) <directive>CacheEnable</directive> $B%G%#%l%/%F%#%V$N(B - URL $B6u4V$,=EJ#$7$F$$$k$H$-$O!"3:Ev$9$k%9%H%l!<%8J}<0$r=g$K;n$7$F!"(B - $B<B:]$K%j%/%(%9%H$N=hM}$,$G$-$k$H!"$=$NJ}<0$G=hM}$7$^$9!#(B - $B%9%H%l!<%84IM}J}<0$,<B9T$5$l$k=gHV$O@_Dj%U%!%$%kCf$N(B - <directive>CacheEnable</directive> $B$N=gHV$K$h$j7hDj$5$l$^$9!#(B</p> + <p><directive>CacheEnable</directive> ディレクティブで <module>mod_cache</module> + モジュールが <var>url-string</var> 以下の URL をキャッシュするようにします。 + キャッシュストレージ管理方式は <var>cache_type</var> 引数で指定します。 + <var>cache_type</var> <code> mem</code> で、 + <module>mod_mem_cache</module> で実装されているメモリを使ったストレージ + 管理方式を使うように <module>mod_cache</module> に指示します。 + <var>cache_type</var> <code>disk</code> で、 + <module>mod_disk_cache</module> で実装されているディスクを使ったストレージ + 管理を使うように <module>mod_cache</module> に指示します。 + <var>cache_type</var> <code>fd</code> は <module>mod_cache</module> に + <module>mod_mem_cache</module> により実装されているファイル記述子の + キャッシュを使うように指示します。</p> + + <p>(下の例のように) <directive>CacheEnable</directive> ディレクティブの + URL 空間が重複しているときは、該当するストレージ方式を順に試して、 + 実際にリクエストの処理ができると、その方式で処理します。 + ストレージ管理方式が実行される順番は設定ファイル中の + <directive>CacheEnable</directive> の順番により決定されます。</p> <example> CacheEnable mem /manual<br /> @@ -156,17 +156,17 @@ <directivesynopsis> <name>CacheDisable</name> -<description>$BFCDj$N(B URL $B$r%-%c%C%7%e$7$J$$(B</description> +<description>特定の URL をキャッシュしない</description> <syntax>CacheDisable <var> url-string</var></syntax> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p><directive>CacheDisable</directive> $B%G%#%l%/%F%#%V$G(B - <module>mod_cache</module> $B%b%8%e!<%k$,(B <var>url-string</var> $B0J2<$N(B - URL $B$r%-%c%C%7%e(B<em>$B$7$J$$(B</em>$B$h$&$K$7$^$9!#(B</p> + <p><directive>CacheDisable</directive> ディレクティブで + <module>mod_cache</module> モジュールが <var>url-string</var> 以下の + URL をキャッシュ<em>しない</em>ようにします。</p> - <example><title>$BNc(B</title> + <example><title>例</title> CacheDisable /local_files </example> </usage> @@ -174,18 +174,18 @@ </directivesynopsis> <directivesynopsis> <name>CacheMaxExpire</name> -<description>$B%I%-%e%a%s%H$r%-%c%C%7%e$9$k:GBg;~4V$rIC?t$G8=$7$?$b$N(B</description> +<description>ドキュメントをキャッシュする最大時間を秒数で現したもの</description> <syntax>CacheMaxExpire <var>seconds</var></syntax> -<default>CacheMaxExpire 86400 ($B0lF|(B)</default> +<default>CacheMaxExpire 86400 (一日)</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p><directive>CacheMaxExpire</directive> $B%G%#%l%/%F%#%V$O!"(B - $B%-%c%C%7%e$9$k(B HTTP $B%I%-%e%a%s%H$r!"85$N%5!<%P$KLd$$9g$o$;$J$$$^$^:GBg2?IC(B - $BJ];}$7$F$b$h$$$+$r;XDj$7$^$9!#$D$^$j!"%I%-%e%a%s%H$O:GBg$G$3$NIC?t4V$V$s8E$/(B - $B$J$k$3$H$K$J$j$^$9!#$3$N:GBgCM$O!"(B($BLuCm(B:$B%l%9%]%s%9Cf$G(B)$B%I%-%e%a%s%H$H6&$K(B - $B%I%-%e%a%s%H$N4|F|$,Ds6!$5$l$F$$$k>l9g$G$bE,MQ$5$l$^$9!#(B</p> + <p><directive>CacheMaxExpire</directive> ディレクティブは、 + キャッシュする HTTP ドキュメントを、元のサーバに問い合わせないまま最大何秒 + 保持してもよいかを指定します。つまり、ドキュメントは最大でこの秒数間ぶん古く + なることになります。この最大値は、(訳注:レスポンス中で)ドキュメントと共に + ドキュメントの期日が提供されている場合でも適用されます。</p> <example> CacheMaxExpire 604800 @@ -195,17 +195,17 @@ <directivesynopsis> <name>CacheDefaultExpire</name> -<description>$B4|F|$,;XDj$5$l$F$$$J$$$H$-$K%I%-%e%a%s%H$r%-%c%C%7%e$9$k%G%U%)%k%H$N4|4V(B</description> +<description>期日が指定されていないときにドキュメントをキャッシュするデフォルトの期間</description> <syntax>CacheDefaultExpire <var>seconds</var></syntax> -<default>CacheDefaultExpire 3600 (1$B;~4V(B)</default> +<default>CacheDefaultExpire 3600 (1時間)</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p><directive>CacheDefaultExpire</directive> $B%G%#%l%/%F%#%V$O!"%I%-%e%a%s%H$K(B - $BM-8z4|8B(B (expiry) $B$d:G=*=$@5;~9o(B (last-modified) $B$,;XDj$5$l$F$$$J$$>l9g$N(B - $B%G%U%)%k%H$N;~4V$r;XDj$7$^$9!#(B<directive>CacheMaxExpire</directive> - $B%G%#%l%/%F%#%V$G;XDj$5$l$?CM$O$3$N@_Dj$r>e=q$-(B<em>$B$7$^$;$s(B</em>$B!#(B</p> + <p><directive>CacheDefaultExpire</directive> ディレクティブは、ドキュメントに + 有効期限 (expiry) や最終修正時刻 (last-modified) が指定されていない場合の + デフォルトの時間を指定します。<directive>CacheMaxExpire</directive> + ディレクティブで指定された値はこの設定を上書き<em>しません</em>。</p> <example> CacheDefaultExpire 86400 @@ -215,21 +215,21 @@ <directivesynopsis> <name>CacheIgnoreNoLastMod</name> -<description>$B1~Ez$K(B Last Modified $B$,L5$/$F$b5$$K$7$J$$$h$&$K$9$k(B</description> +<description>応答に Last Modified が無くても気にしないようにする</description> <syntax>CacheIgnoreNoLastMod On|Off</syntax> <default>CacheIgnoreNoLastMod Off</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p>$BDL>o!"(BLast-Modified $B$K$h$k:G=*=$@5;~9o$NL5$$%I%-%e%a%s%H$O%-%c%C%7%e(B - $B$5$l$^$;$s!#(B($BNc$($P(B <module>mod_include</module> $B$K$h$k=hM}$N$H$-$J$I$K(B) - Last-Modified $B;~9o$,>C5n$5$l$?$j!"$=$b$=$b:G=i$+$iDs6!$5$l$F$$$J$$(B - $B>u67$,$"$j$^$9!#(B<directive>CacheIgnoreNoLastMod</directive> - $B%G%#%l%/%F%#%V$r;H$&$H!"(BLast-Modified $BF|;~$,;XDj$5$l$F$$$J$$(B - $B%I%-%e%a%s%H$G$b%-%c%C%7%e$9$k$h$&$K;XDj$G$-$^$9!#%I%-%e%a%s%H$K(B - $B:G=*=$@5;~9o(B (Last-Modified) $BM-8z4|8B(B (expiry) $B$,$J$$>l9g$O!"M-8z4|8B$N(B - $B@8@.$K(B <directive>CacheDefaultExpire</directive> $B$,;H$o$l$^$9!#(B</p> + <p>通常、Last-Modified による最終修正時刻の無いドキュメントはキャッシュ + されません。(例えば <module>mod_include</module> による処理のときなどに) + Last-Modified 時刻が消去されたり、そもそも最初から提供されていない + 状況があります。<directive>CacheIgnoreNoLastMod</directive> + ディレクティブを使うと、Last-Modified 日時が指定されていない + ドキュメントでもキャッシュするように指定できます。ドキュメントに + 最終修正時刻 (Last-Modified) 有効期限 (expiry) がない場合は、有効期限の + 生成に <directive>CacheDefaultExpire</directive> が使われます。</p> <example> CacheIgnoreNoLastMod On @@ -239,31 +239,31 @@ <directivesynopsis> <name>CacheIgnoreCacheControl</name> -<description>$B%-%c%C%7%e$5$l$F$$$k%3%s%F%s%D$rJV$5$J$$$h$&$K%/%i%$%"%s%H$+$i(B -$B%j%/%(%9%H$5$l$F$bL5;k$9$k(B</description> +<description>キャッシュされているコンテンツを返さないようにクライアントから +リクエストされても無視する</description> <syntax>CacheIgnoreCacheControl On|Off</syntax> <default>CacheIgnoreCacheControl Off</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p>Cache-Control: no-cache $B%X%C%@$d(B Pragma: no-store $B%X%C%@$N$"$k%j%/%(%9%H$K(B - $BBP$7$F$O!"DL>o%-%c%C%7%e$r;H$$$^$;$s!#(B<directive>CacheIgnoreCacheControl</directive> - $B%G%#%l%/%F%#%V$r;H$&$H!"$3$NF0:n$r>e=q$-$G$-$^$9!#(B - <directive>CacheIgnoreCacheControl</directive> On $B$H$9$k$H!"(B - $B%j%/%(%9%H$K(B no-cache $B$H$$$&CM$,$"$C$F$b!"%-%c%C%7%e$r;H$C$F%I%-%e%a%s%H$r(B - $BJV$9$h$&$K$J$j$^$9!#G'>Z$rI,MW$H$9$k%I%-%e%a%s%H$O(B<em>$B7h$7$F(B</em> - $B%-%c%C%7%e$5$l$^$;$s!#(B</p> + <p>Cache-Control: no-cache ヘッダや Pragma: no-store ヘッダのあるリクエストに + 対しては、通常キャッシュを使いません。<directive>CacheIgnoreCacheControl</directive> + ディレクティブを使うと、この動作を上書きできます。 + <directive>CacheIgnoreCacheControl</directive> On とすると、 + リクエストに no-cache という値があっても、キャッシュを使ってドキュメントを + 返すようになります。認証を必要とするドキュメントは<em>決して</em> + キャッシュされません。</p> <example> CacheIgnoreCacheControl On </example> - <note type="warning"><title>$B7Y9p(B</title> - $B$3$N%G%#%l%/%F%#%V$r;H$&$H!"%I%-%e%a%s%H<hF@;~$K%-%c%C%7%e$r;H$o$J$$$h$&$K(B - $B%/%i%$%"%s%H$,%j%/%(%9%H$7$F$$$k$K$b$+$+$o$i$:!"%-%c%C%7%e$r(B - $B;H$&$h$&$K$J$j$^$9!#$=$N7k2L!"(B - $B8E$$%3%s%F%s%D$,Aw$i$lB3$1$k$3$H$K$J$C$F$7$^$&$+$b$7$l$^$;$s!#(B + <note type="warning"><title>警告</title> + このディレクティブを使うと、ドキュメント取得時にキャッシュを使わないように + クライアントがリクエストしているにもかかわらず、キャッシュを + 使うようになります。その結果、 + 古いコンテンツが送られ続けることになってしまうかもしれません。 </note> </usage> <seealso><directive module="mod_cache">CacheStorePrivate</directive></seealso> @@ -272,8 +272,8 @@ <directivesynopsis> <name>CacheLastModifiedFactor</name> -<description>LastModified $B$NF|IU$K4p$E$$$FM-8z4|8B(B (expiry) -$B$r7W;;$9$k$?$a$N=E$_$r;XDj$9$k(B +<description>LastModified の日付に基づいて有効期限 (expiry) +を計算するための重みを指定する </description> <syntax>CacheLastModifiedFactor <var>float</var></syntax> <default>CacheLastModifiedFactor 0.1</default> @@ -281,24 +281,24 @@ </contextlist> <usage> - <p>$B%I%-%e%a%s%H$K(B Last-Modified $B$NF|IU$,L5$$$1$l$I$bM-8z4|8B(B (expiry) - $B$NF|IU$,$"$k$H$$$&$H$-$K!"M-8z4|8B$r:G=*=$@5;~9o$+$i$N7P2a;~4V$H$7$F(B - $B7W;;$9$k$h$&$K$G$-$^$9!#M-8z4|8B$r<!$N7W;;<0$K=>$C$F@8@.$9$k$N$G$9$,!"(B - $B$=$N$H$-$K;H$o$l$k(B <var>factor</var> $B$r(B - <directive>CacheLastModifiedFactor</directive> $B%G%#%l%/%F%#%V$G;XDj$7$^$9!#(B + <p>ドキュメントに Last-Modified の日付が無いけれども有効期限 (expiry) + の日付があるというときに、有効期限を最終修正時刻からの経過時間として + 計算するようにできます。有効期限を次の計算式に従って生成するのですが、 + そのときに使われる <var>factor</var> を + <directive>CacheLastModifiedFactor</directive> ディレクティブで指定します。 </p> <p><code>expiry-period = time-since-last-modified-date * <var>factor</var> expiry-date = current-date + expiry-period</code></p> - <p>$BNc$($P!"%I%-%e%a%s%H$,(B 10 $B;~4VA0$K:G8e$K=$@5$5$l$F$$$F!"(B - <var>factor</var> $B$,(B 0.1 $B$G$"$l$P!"4|F|$O(B 10*0.1 = 1 $B;~4V$K(B - $B@_Dj$5$l$^$9!#8=:_;~9o$,(B 3:00pm $B$G$"$l$P!"7W;;$5$l$?4|F|$O(B - 3:00pm + 1hour = 4:00pm $B$K$J$j$^$9!#(B</p> + <p>例えば、ドキュメントが 10 時間前に最後に修正されていて、 + <var>factor</var> が 0.1 であれば、期日は 10*0.1 = 1 時間に + 設定されます。現在時刻が 3:00pm であれば、計算された期日は + 3:00pm + 1hour = 4:00pm になります。</p> - <p>$B4|F|$,(B <directive>CacheMaxExpire</directive> $B$G@_Dj$5$l$F$$$kCM(B - $B$h$jBg$-$/$J$C$F$7$^$C$F$$$k>l9g$O!"(B<directive>CacheMaxExpire</directive> - $B$N@_DjCM$,M%@h$5$l$^$9!#(B</p> + <p>期日が <directive>CacheMaxExpire</directive> で設定されている値 + より大きくなってしまっている場合は、<directive>CacheMaxExpire</directive> + の設定値が優先されます。</p> <example> CacheLastModifiedFactor 0.5 @@ -308,7 +308,7 @@ <directivesynopsis> <name>CacheIgnoreHeaders</name> -<description>$B;XDj$5$l$?(B HTTP $B%X%C%@$r%-%c%C%7%e$KJ]B8$7$J$$!#(B +<description>指定された HTTP ヘッダをキャッシュに保存しない。 </description> <syntax>CacheIgnoreHeaders <var>header-string</var> [<var>header-string</var>] ...</syntax> <default>CacheIgnoreHeaders None</default> @@ -316,10 +316,10 @@ </contextlist> <usage> - <p>RFC 2616 $B$K$h$k$H!"(Bhop-by-hop HTTP $B%X%C%@$O%-%c%C%7%e$K$OJ]4I$5$l$^$;$s!#(B - $B0J2<$N%X%C%@$O(B hop-by-hop $B%X%C%@$K3:Ev$7$^$9$N$G!"(B + <p>RFC 2616 によると、hop-by-hop HTTP ヘッダはキャッシュには保管されません。 + 以下のヘッダは hop-by-hop ヘッダに該当しますので、 <directive>CacheIgnoreHeaders</directive> - $B$N@_Dj$K(B<em>$B4X78$J$/(B</em>$B%-%c%C%7%e$K$OJ]4I$5$l$^$;$s(B:</p> + の設定に<em>関係なく</em>キャッシュには保管されません:</p> <ul> <li><code>Connection</code></li> <li><code>Keep-Alive</code></li> @@ -331,58 +331,58 @@ <li><code>Upgrade</code></li> </ul> - <p><directive>CacheIgnoreHeaders</directive> $B$G(B - $B%-%c%C%7%e$KJ]4I$7$J$$DI2C$N(B HTTP $B%X%C%@$r;XDj$7$^$9!#(B - $BNc$($P!"%/%C%-!<$r%-%c%C%7%e$KJ]4I$7$J$$$h$&$K$7$?J}$,$h$$>l9g$b(B - $B$"$k$G$7$g$&!#(B</p> + <p><directive>CacheIgnoreHeaders</directive> で + キャッシュに保管しない追加の HTTP ヘッダを指定します。 + 例えば、クッキーをキャッシュに保管しないようにした方がよい場合も + あるでしょう。</p> - <p><directive>CacheIgnoreHeaders</directive> $B$N0z?t$O!"(B - $B%-%c%C%7%e$KJ]4I$7$J$$(B HTTP $B%X%C%@$r6uGr6h@Z$j$K$7$?%j%9%H7A<0$G$9!#(B - $B%-%c%C%7%e$KJ]4I$7$J$$%X%C%@$,(B hop-by-hop $B%X%C%@$@$1$N>l9g(B - (RFC 2616 $B=`5r$NF0:n$N$H$-(B) $B$O!"(B - <directive>CacheIgnoreHeaders</directive> $B$r(B <code>None</code> - $B$K@_Dj$G$-$^$9!#(B</p> + <p><directive>CacheIgnoreHeaders</directive> の引数は、 + キャッシュに保管しない HTTP ヘッダを空白区切りにしたリスト形式です。 + キャッシュに保管しないヘッダが hop-by-hop ヘッダだけの場合 + (RFC 2616 準拠の動作のとき) は、 + <directive>CacheIgnoreHeaders</directive> を <code>None</code> + に設定できます。</p> - <example><title>$BNc(B 1</title> + <example><title>例 1</title> CacheIgnoreHeaders Set-Cookie </example> - <example><title>$BNc(B 2</title> + <example><title>例 2</title> CacheIgnoreHeaders None </example> - <note type="warning"><title>$B7Y9p(B:</title> - <code>Expires</code> $B$N$h$&$JE,@Z$N%-%c%C%7%e4IM}$N$?$a$KI,MW$J(B - $B%X%C%@$,(B <directive>CacheIgnoreHeaders</directive> $B$N@_Dj$K$h$j(B - $BJ]4I$5$l$F$$$J$$$H$-$O!"(Bmod_cache $B$NF0:n$ODj5A$5$l$F$$$^$;$s!#(B + <note type="warning"><title>警告:</title> + <code>Expires</code> のような適切のキャッシュ管理のために必要な + ヘッダが <directive>CacheIgnoreHeaders</directive> の設定により + 保管されていないときは、mod_cache の動作は定義されていません。 </note> </usage> </directivesynopsis> <directivesynopsis> <name>CacheStorePrivate</name> -<description>private $B$H;XDj$5$l$F$$$k%l%9%]%s%9$N%-%c%C%7%e$r;n$_$k!#(B</description> +<description>private と指定されているレスポンスのキャッシュを試みる。</description> <syntax>CacheStorePrivate On|Off</syntax> <default>CacheStorePrivate Off</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p>$BDL>o(B Cache-Control: private $B%X%C%@$N$D$$$F$$$k%l%9%]%s%9$O(B - $B%-%c%C%7%e$5$l$^$;$s!#(B<directive>CacheStorePrivate</directive> - $B%G%#%l%/%F%#%V$G$3$N5sF0$r>e=q$-$G$-$^$9!#(B - <directive>CacheStorePrivate</directive> On $B$G(B private $B%X%C%@$N$D$$$F$$$k(B - $B%j%=!<%9$KBP$7$F$b%-%c%C%7%e$r;n$_$k$h$&$K$J$j$^$9!#(B - $B$?$@$7G'>Z$N5a$a$i$l$k%j%=!<%9$O(B <em>$B7h$7$F(B</em> $B%-%c%C%7%e$5$l$^$;$s!#(B</p> + <p>通常 Cache-Control: private ヘッダのついているレスポンスは + キャッシュされません。<directive>CacheStorePrivate</directive> + ディレクティブでこの挙動を上書きできます。 + <directive>CacheStorePrivate</directive> On で private ヘッダのついている + リソースに対してもキャッシュを試みるようになります。 + ただし認証の求められるリソースは <em>決して</em> キャッシュされません。</p> <example> CacheStorePrivate On </example> - <note type="warning"><title>$B7Y9p(B:</title> - $B>eN.%5!<%P$,%-%c%C%7%e$7$J$$$h$&$K;XDj$7$F$-$F$b!"(B - $B$=$l$rL5;k$7$F%-%c%C%7%e$9$k$h$&$K$J$j$^$9!#(B - $BK>$^$7$$5sF0$K$J$k$N$O!"K\Ev$K(B 'private' $B$J%-%c%C%7%e$K$D$$$F$N$_$G$7$g$&!#(B + <note type="warning"><title>警告:</title> + 上流サーバがキャッシュしないように指定してきても、 + それを無視してキャッシュするようになります。 + 望ましい挙動になるのは、本当に 'private' なキャッシュについてのみでしょう。 </note> </usage> <seealso><directive module="mod_cache">CacheIgnoreCacheControl</directive></seealso> @@ -391,30 +391,30 @@ <directivesynopsis> <name>CacheStoreNoStore</name> -<description>no-store $B$H;XDj$5$l$F$$$k%l%9%]%s%9$N%-%c%C%7%e$r;n$_$k!#(B</description> +<description>no-store と指定されているレスポンスのキャッシュを試みる。</description> <syntax>CacheStoreNoStore On|Off</syntax> <default>CacheStoreNoStore Off</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p>$BDL>o(B Cache-Control: no-store $B%X%C%@$N$D$$$F$$$k%l%9%]%s%9$O(B - $B%-%c%C%7%e$5$l$^$;$s!#(B<directive>CacheStoreNoCache</directive> - $B%G%#%l%/%F%#%V$G$3$N5sF0$r>e=q$-$G$-$^$9!#(B - <directive>CacheStoreNoCache</directive> On $B$G(B no-store $B%X%C%@$N$D$$$F$$$k(B - $B%j%=!<%9$KBP$7$F$b%-%c%C%7%e$r;n$_$k$h$&$K$J$j$^$9!#(B - $B$?$@$7G'>Z$N5a$a$i$l$k%j%=!<%9$O(B <em>$B7h$7$F(B</em> $B%-%c%C%7%e$5$l$^$;$s!#(B</p> + <p>通常 Cache-Control: no-store ヘッダのついているレスポンスは + キャッシュされません。<directive>CacheStoreNoCache</directive> + ディレクティブでこの挙動を上書きできます。 + <directive>CacheStoreNoCache</directive> On で no-store ヘッダのついている + リソースに対してもキャッシュを試みるようになります。 + ただし認証の求められるリソースは <em>決して</em> キャッシュされません。</p> <example> CacheStoreNoStore On </example> - <note type="warning"><title>$B7Y9p(B:</title> - RFC 2616 $B$K5-:\$5$l$F$$$k$h$&$K(B no-store $B%G%#%l%/%F%#%V$O!"(B - "$BITCm0U$K$h$k5!L)>pJs$NO31L$d;DN1(B ($B%P%C%/%"%C%W%F!<%WEy(B) $B$rKI$0(B" - $BL\E*$G;H$o$l$^$9$,!"$3$N%*%W%7%g%s$rM-8z$K$9$k$H!"(B - $B5!L)>pJs$rJ];}$9$k$3$H$K$J$C$F$7$^$$$^$9!#(B - $B$G$9$N$G!"$3$3$G7Y9p$7$F$*$-$^$9!#(B + <note type="warning"><title>警告:</title> + RFC 2616 に記載されているように no-store ディレクティブは、 + "不注意による機密情報の漏洩や残留 (バックアップテープ等) を防ぐ" + 目的で使われますが、このオプションを有効にすると、 + 機密情報を保持することになってしまいます。 + ですので、ここで警告しておきます。 </note> </usage> <seealso><directive module="mod_cache">CacheIgnoreCacheControl</directive></seealso> diff --git a/docs/manual/mod/mod_cgi.xml.ja b/docs/manual/mod/mod_cgi.xml.ja index ff0877741a..52b8f17961 100644 --- a/docs/manual/mod/mod_cgi.xml.ja +++ b/docs/manual/mod/mod_cgi.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 420990:558718 (outdated) --> @@ -23,7 +23,7 @@ <modulesynopsis metafile="mod_cgi.xml.meta"> <name>mod_cgi</name> -<description>CGI $B%9%/%j%W%H$N<B9T(B</description> +<description>CGI スクリプトの実行</description> <status>Base</status> <sourcefile>mod_cgi.c</sourcefile> <identifier>cgi_module</identifier> @@ -33,132 +33,132 @@ is the link to howto/cgi not sufficient? -nd --> - <p>Mime $B%?%$%W$,(B <code>application/x-httpd-cgi</code> - $B$G$"$k$+!"%O%s%I%i(B <code>cgi-script</code> (Apache 1.1 $B0J9_(B) - $B$,;XDj$5$l$F$$$k%U%!%$%k$O(B CGI $B%9%/%j%W%H$H$7$F07$o$l!"(B - $B%5!<%P$K$h$j<B9T$5$l!"$=$N=PNO$,%/%i%$%"%s%H$KJV$5$l$^$9!#(B - $B%U%!%$%k$O!"(B<directive module="mod_mime">AddType</directive> - $B%G%#%l%/%F%#%V$K;XDj$5$l$?(B $B3HD%;R$rL>A0$K4^$`$+!"(B + <p>Mime タイプが <code>application/x-httpd-cgi</code> + であるか、ハンドラ <code>cgi-script</code> (Apache 1.1 以降) + が指定されているファイルは CGI スクリプトとして扱われ、 + サーバにより実行され、その出力がクライアントに返されます。 + ファイルは、<directive module="mod_mime">AddType</directive> + ディレクティブに指定された 拡張子を名前に含むか、 <directive module="mod_alias">ScriptAlias</directive> - $B%G%#%l%/%H%j$KB8:_$9$k$3$H$K$h$j$3$N%?%$%W$K$J$j$^$9!#(B</p> + ディレクトリに存在することによりこのタイプになります。</p> - <p>$B%5!<%P$,(B CGI $B%9%/%j%W%H$r<B9T$9$k$H$-$K$O!"(B + <p>サーバが CGI スクリプトを実行するときには、 <code>DOCUMENT_ROOT</code> - $B$H8F$P$l$kJQ?t$r4D6-$KDI2C$7$^$9!#$3$NJQ?t$O(B + と呼ばれる変数を環境に追加します。この変数は <directive module="core">DocumentRoot</directive> - $B$NCM$rJ];}$7$^$9!#(B</p> + の値を保持します。</p> - <p>Apache $B$G(B CGI $B%9%/%j%W%H$r;HMQ$9$k$?$a$N%$%s%H%m%@%/%7%g%s$O!"(B - <a href="../howto/cgi.html">CGI $B$K$h$kF0E*%3%s%F%s%D(B</a> - $B$r;2>H$7$F$/$@$5$$!#(B</p> + <p>Apache で CGI スクリプトを使用するためのイントロダクションは、 + <a href="../howto/cgi.html">CGI による動的コンテンツ</a> + を参照してください。</p> - <p>Unix $B$G%^%k%A%9%l%C%I$N(B MPM $B$r;H$C$F$$$k>l9g$O!"$3$N%b%8%e!<%k$N(B - $BBe$o$j$K(B <module>mod_cgid</module> $B$r;H$&I,MW$,$"$j$^$9!#(B - $B%f!<%6%l%Y%k$G$O$3$NFs$D$N%b%8%e!<%k$OK\<AE*$K$OF10l$G$9!#(B</p> + <p>Unix でマルチスレッドの MPM を使っている場合は、このモジュールの + 代わりに <module>mod_cgid</module> を使う必要があります。 + ユーザレベルではこの二つのモジュールは本質的には同一です。</p> </summary> <seealso><directive module="core">AcceptPathInfo</directive></seealso> <seealso><directive module="core">Options</directive></seealso> <seealso><directive module="mod_alias">ScriptAlias</directive></seealso> <seealso><directive module="mod_mime">AddHandler</directive></seealso> -<seealso><a href="../suexec.html">CGI $B%W%m%0%i%`$rJL$N%f!<%6(B ID $B$G<B9T$9$k(B</a></seealso> -<seealso><a href="http://hoohoo.ncsa.uiuc.edu/cgi/">CGI $B5,3J=q(B</a></seealso> +<seealso><a href="../suexec.html">CGI プログラムを別のユーザ ID で実行する</a></seealso> +<seealso><a href="http://hoohoo.ncsa.uiuc.edu/cgi/">CGI 規格書</a></seealso> -<section id="env"><title>CGI $B4D6-JQ?t(B</title> - <p>$B%5!<%P$O(B <a href="http://hoohoo.ncsa.uiuc.edu/cgi/">CGI - $B5,3J(B</a> $B$G7h$a$i$l$F$$$k(B CGI - $B4D6-JQ?t$r@_Dj$7$^$9!#0J2<$N$b$N$O!">r7oIU$-$G@_Dj$5$l$^$9!#(B</p> +<section id="env"><title>CGI 環境変数</title> + <p>サーバは <a href="http://hoohoo.ncsa.uiuc.edu/cgi/">CGI + 規格</a> で決められている CGI + 環境変数を設定します。以下のものは、条件付きで設定されます。</p> <dl> <dt>PATH_INFO</dt> - <dd>$B$3$l$O(B <directive module="core" - >AcceptPathInfo</directive> $B%G%#%l%/%F%#%V$,L@<(E*$K(B <code>off</code> - $B$K@_Dj$5$l$F$$$k>l9g$O@_Dj$5$l$^$;$s!#%G%U%)%k%H$N!"(B - <directive>AcceptPathInfo</directive> $B$,(B - $B;XDj$5$l$F$$$J$$$H$-$N?6$kIq$$$G$O!"(B<module>mod_cgi</module> $B$O%Q%9>pJs(B - (URI $B$N%9%/%j%W%H$N%U%!%$%kL>$N8e$KB3$/(B <code>/more/path/info</code>) $B$r(B - $B<u$1IU$1$^$9$,!"%3%"$O%5!<%P$O%Q%9>pJs$N$"$k%j%/%(%9%H$K(B - $BBP$7$F(B 404 NOT FOUND $B%(%i!<$rJV$7$^$9!#(B<directive>AcceptPathInfo</directive> - $B%G%#%l%/%F%#%V$r(B - $B>JN,$9$k$H!"(B<module>mod_cgi</module> $B$X$N%j%/%(%9%H$KBP$7$F(B - <code>On</code> $B$r(B - $B@_Dj$7$?$N$HF1$88z2L$K$J$j$^$9!#(B</dd> + <dd>これは <directive module="core" + >AcceptPathInfo</directive> ディレクティブが明示的に <code>off</code> + に設定されている場合は設定されません。デフォルトの、 + <directive>AcceptPathInfo</directive> が + 指定されていないときの振る舞いでは、<module>mod_cgi</module> はパス情報 + (URI のスクリプトのファイル名の後に続く <code>/more/path/info</code>) を + 受け付けますが、コアはサーバはパス情報のあるリクエストに + 対して 404 NOT FOUND エラーを返します。<directive>AcceptPathInfo</directive> + ディレクティブを + 省略すると、<module>mod_cgi</module> へのリクエストに対して + <code>On</code> を + 設定したのと同じ効果になります。</dd> <dt>REMOTE_HOST</dt> <dd><directive module="core">HostnameLookups</directive> - $B$,(B <code>on</code> ($B%G%U%)%k%H$G$O(B off $B$G$9(B) - $B$G!"%"%/%;%9$7$F$$$k%[%9%H$N%"%I%l%9$N(B DNS - $B$N5U0z$-$,<B:]$K%[%9%HL>$r8+$D$1$?$H$-$K$N$_@_Dj$5$l$^$9!#(B</dd> + が <code>on</code> (デフォルトでは off です) + で、アクセスしているホストのアドレスの DNS + の逆引きが実際にホスト名を見つけたときにのみ設定されます。</dd> <dt>REMOTE_IDENT</dt> <dd><directive module="core">IdentityCheck</directive> - $B$,(B <code>on</code> $B$K@_Dj$5$l$F$$$F!"%"%/%;%9$7$F$$$k%[%9%H$,(B - ident $B%W%m%H%3%k$r%5%]!<%H$7$F$$$k$H$-$K$N$_@_Dj$5$l$^$9!#(B - $B$3$l$O4JC1$K56$k$3$H$,$G$-!"%/%i%$%"%s%H$H%5!<%P$N4V$K(B - $B%W%m%-%7$,$"$l$P$^$C$?$/Lr$KN)$?$J$$$N$G!"(B - $B$3$NJQ?t$NCM$O?.MQ$G$-$J$$$H$$$&$3$H$KCm0U$7$F$/$@$5$$!#(B + が <code>on</code> に設定されていて、アクセスしているホストが + ident プロトコルをサポートしているときにのみ設定されます。 + これは簡単に偽ることができ、クライアントとサーバの間に + プロキシがあればまったく役に立たないので、 + この変数の値は信用できないということに注意してください。 </dd> <dt>REMOTE_USER</dt> <dd>CGI - $B%9%/%j%W%H$KG'>Z$,I,MW$J$H$-$K$N$_@_Dj$5$l$^$9!#(B</dd> + スクリプトに認証が必要なときにのみ設定されます。</dd> </dl> </section> -<section id="cgi-debug"><title>CGI $B$N%G%P%C%0(B</title> - <p>CGI $B%9%/%j%W%H$N%G%P%C%0$O!"@5$7$/F0:n$7$F$$$J$$%9%/%j%W%H$N=PNO(B - ($BI8=`=PNO$H%(%i!<(B) - $B$rD4$Y$k$3$H$,$G$-$J$$$?$a$K!"Fq$7$$>uBV$,B3$$$F$$$^$7$?!#(B - $B$3$l$i$N(B Apache 1.2 $B0J9_$K$"$k(B - $B%G%#%l%/%F%#%V$O$h$j>\:Y$J%(%i!<$N%m%0<}=8$rDs6!$7$^$9!#(B</p> +<section id="cgi-debug"><title>CGI のデバッグ</title> + <p>CGI スクリプトのデバッグは、正しく動作していないスクリプトの出力 + (標準出力とエラー) + を調べることができないために、難しい状態が続いていました。 + これらの Apache 1.2 以降にある + ディレクティブはより詳細なエラーのログ収集を提供します。</p> - <section><title>CGI $B%m%0%U%!%$%k$N=q<0(B</title> - <p>$B@_Dj$5$l$F$$$k$H$-$K$O!"(BCGI $B%(%i!<%m%0$OE,@Z$KF0:n$7$J$$$9$Y$F$N(B - CGI $B$r%m%0<}=8$7$^$9!#$=$l$>$l$N@5$7$/F0:n$7$J$$(B CGI - $B%9%/%j%W%H$O(B $BJ#?t$N9T$K$o$?$k>pJs$,%m%0<}=8$5$l$^$9!#:G=i$N(B - 2 $B9T$O>o$K0J2<$N=q<0$G$9(B:</p> + <section><title>CGI ログファイルの書式</title> + <p>設定されているときには、CGI エラーログは適切に動作しないすべての + CGI をログ収集します。それぞれの正しく動作しない CGI + スクリプトは 複数の行にわたる情報がログ収集されます。最初の + 2 行は常に以下の書式です:</p> <example> %% [<var>time</var>] <var>request-line</var><br /> %% <var>HTTP-status</var> <var>CGI-script-filename</var> </example> - <p>$B%(%i!<$,!"(BCGI $B%9%/%j%W%H$,<B9T$G$-$J$$$H$$$&$b$N$G$"$k>l9g$O!"(B - $B%m%0%U%!%$%k$O$5$i$K$b$&(B 2 $B9T=q$+$l$^$9(B:</p> + <p>エラーが、CGI スクリプトが実行できないというものである場合は、 + ログファイルはさらにもう 2 行書かれます:</p> <example> %%error<br /> <var>error-message</var> </example> - <p>$B$=$&$G$O$J$/!"%(%i!<$,@5$7$/$J$$%X%C%@>pJs$rJV$97k2L$G$"$k>l9g(B - ($B%9%/%j%W%H$N%P%0$G$"$k$3$H$,$h$/$"$j$^$9(B)$B!"(B - $B0J2<$N>pJs$,%m%0<}=8$5$l$^$9(B:</p> + <p>そうではなく、エラーが正しくないヘッダ情報を返す結果である場合 + (スクリプトのバグであることがよくあります)、 + 以下の情報がログ収集されます:</p> <example> %request<br /> - <var>$B<u$1<h$C$?$9$Y$F$N(B HTTP $B%j%/%(%9%H%X%C%@(B</var><br /> - <var>($B$b$7$"$l$P(B) POST $B$d(B PUT $B$NCf?H(B</var><br /> + <var>受け取ったすべての HTTP リクエストヘッダ</var><br /> + <var>(もしあれば) POST や PUT の中身</var><br /> %response<br /> - <var>CGI $B%9%/%j%W%H$K$h$j=PNO$5$l$?$9$Y$F$N%X%C%@(B</var><br /> + <var>CGI スクリプトにより出力されたすべてのヘッダ</var><br /> %stdout<br /> - <var>CGI $BI8=`=PNO(B</var><br /> + <var>CGI 標準出力</var><br /> %stderr<br /> - <var>CGI $BI8=`%(%i!<(B</var><br /> + <var>CGI 標準エラー</var><br /> </example> - <p>($B%9%/%j%W%H$,I8=`=PNO$dI8=`%(%i!<$K2?$b=PNO$7$J$+$C$?>l9g$O!"(B - %stdout $B$d(B %stderr $B$O$"$j$^$;$s(B)$B!#(B</p> + <p>(スクリプトが標準出力や標準エラーに何も出力しなかった場合は、 + %stdout や %stderr はありません)。</p> </section> </section> <directivesynopsis> <name>ScriptLog</name> -<description>CGI $B%9%/%j%W%H$N%(%i!<%m%0%U%!%$%k$N>l=j(B</description> +<description>CGI スクリプトのエラーログファイルの場所</description> <syntax>ScriptLog <var>file-path</var></syntax> <contextlist><context>server config</context> <context>virtual host</context> @@ -167,40 +167,40 @@ </modulelist> <usage> - <p><directive>ScriptLog</directive> $B%G%#%l%/%F%#%V$O(B CGI $B%9%/%j%W%H$N(B - $B%(%i!<%m%0%U%!%$%k$r@_Dj$7$^$9!#(B<directive>ScriptLog</directive> $B$,(B - $B@_Dj$5$l$F$$$J$$$H$-$O!"(B - $B%(%i!<%m%0$O:n@.$5$l$^$;$s!#@_Dj$5$l$F$$$k$H$-$O!"(BCGI - $B$N%(%i!<$O$9$Y$F0z?t$H$7$FM?$($i$l$F$$$k%U%!%$%kL>$K%m%0$5$l$^$9!#(B - $BAjBP%Q%9$G;XDj$5$l$F$$$k$H$-$O!"(B - <directive module="core">ServerRoot</directive>$B$+$i$NAjBP%Q%9$H$7$F(B - $B07$o$l$^$9!#(B</p> - - <example><title>$BNc(B</title> + <p><directive>ScriptLog</directive> ディレクティブは CGI スクリプトの + エラーログファイルを設定します。<directive>ScriptLog</directive> が + 設定されていないときは、 + エラーログは作成されません。設定されているときは、CGI + のエラーはすべて引数として与えられているファイル名にログされます。 + 相対パスで指定されているときは、 + <directive module="core">ServerRoot</directive>からの相対パスとして + 扱われます。</p> + + <example><title>例</title> ScriptLog logs/cgi_log </example> - <p>$B$3$N%m%0$O;R%W%m%;%9$,<B9T$5$l$F$$$k%f!<%6$H$7$F%*!<%W%s$5$l$^$9!#(B - <em>$B$9$J$o$A(B</em>$B!"(B<directive module="mpm_commmon" - >User</directive> $B%G%#%l%/%F%#%V$G;XDj$5$l$?(B - $B%f!<%6$G$9!#$3$l$O!"%9%/%j%W%H%m%0$,=q$+$l$k%G%#%l%/%H%j$,$=$N%f!<%6$G(B - $B=q$-9~$_2DG=$+!"%9%/%j%W%H%U%!%$%k$,<jF0$G:n@.$5$l!"$=$N%f!<%6$G(B - $B=q$-9~$_2DG=$K$J$C$F$$$kI,MW$,$"$k$H$$$&$3$H$G$9!#%9%/%j%W%H%m%0$r(B - $B%"%/%;%9%m%0$J$I$N$?$a$N%m%0%G%#%l%/%H%j$K=q$+$l$k$h$&$K$7$?$H$-$O!"(B - $B$=$N%G%#%l%/%H%j$r;R%W%m%;%9$r<B9T$7$F$$$k%f!<%6$N8"8B$G(B - $B=q$-9~$_2DG=$K$O(B<strong>$B$7$J$$(B</strong>$B$h$&$K$7$F$/$@$5$$!#(B</p> - - <p>$B%9%/%j%W%H$N%m%0<}=8$O(B CGI $B%9%/%j%W%H$r=q$/$H$-$N(B - $B%G%P%C%0MQ$N5!G=$H$7$F0U?^$5$l$F$$$F!"DL>o$N%5!<%P$G(B - $B>o$K;HMQ$5$l$k$h$&$K$O0U?^$5$l$F$$$J$$$H$$$&$3$H$KCm0U$7$F$/$@$5$$!#(B - $BB.EY$d8zN($O:GE,2=$5$l$F$*$i$:!"@_7W$5$l$?0J30$NJ}K!$G;HMQ$5$l$k$H(B - $B%;%-%e%j%F%#$NLdBj$,$"$k$+$b$7$l$^$;$s!#(B</p> + <p>このログは子プロセスが実行されているユーザとしてオープンされます。 + <em>すなわち</em>、<directive module="mpm_commmon" + >User</directive> ディレクティブで指定された + ユーザです。これは、スクリプトログが書かれるディレクトリがそのユーザで + 書き込み可能か、スクリプトファイルが手動で作成され、そのユーザで + 書き込み可能になっている必要があるということです。スクリプトログを + アクセスログなどのためのログディレクトリに書かれるようにしたときは、 + そのディレクトリを子プロセスを実行しているユーザの権限で + 書き込み可能には<strong>しない</strong>ようにしてください。</p> + + <p>スクリプトのログ収集は CGI スクリプトを書くときの + デバッグ用の機能として意図されていて、通常のサーバで + 常に使用されるようには意図されていないということに注意してください。 + 速度や効率は最適化されておらず、設計された以外の方法で使用されると + セキュリティの問題があるかもしれません。</p> </usage> </directivesynopsis> <directivesynopsis> <name>ScriptLogLength</name> -<description>CGI $B%9%/%j%W%H$N%m%0%U%!%$%k$NBg$-$5$N>e8B(B</description> +<description>CGI スクリプトのログファイルの大きさの上限</description> <syntax>ScriptLogLength <var>bytes</var></syntax> <default>ScriptLogLength 10385760</default> <contextlist><context>server config</context> @@ -210,20 +210,20 @@ </modulelist> <usage> - <p><directive>ScriptLogLength</directive> $B$O(B CGI $B%9%/%j%W%H$N%m%0%U%!%$%k(B - $B$NBg$-$5$r@)8B$9$k$?$a$K;HMQ$9$k$3$H$,$G$-$^$9!#%m%0%U%!%$%k$O(B - CGI $B$N%(%i!<Kh$KBgNL$N>pJs(B ($B%j%/%(%9%H$N$9$Y$F$N%X%C%@!"(B - $B$9$Y$F$N=PNO(B)$B$r%m%0$7$^$9$N$G!"$9$0$KBg$-$J%U%!%$%k$K$J$j$^$9!#(B - $B$3$NBg$-$5$N@)8B$,$J$$$3$H$K$h$kLdBj$rKI$0$?$a$K!"(B - $B$3$N%G%#%l%/%F%#%V$r;H$C$F(B CGI $B$N%m%0%U%!%$%k$N(B - $B:GBg$N%U%!%$%k%5%$%:$r@_Dj$9$k$3$H$,$G$-$^$9!#(B - $B%U%!%$%k$,$3$NBg$-$5$rD6$($?>l9g$O!"$=$l0J>e$O=q$-9~$^$l$^$;$s!#(B</p> + <p><directive>ScriptLogLength</directive> は CGI スクリプトのログファイル + の大きさを制限するために使用することができます。ログファイルは + CGI のエラー毎に大量の情報 (リクエストのすべてのヘッダ、 + すべての出力)をログしますので、すぐに大きなファイルになります。 + この大きさの制限がないことによる問題を防ぐために、 + このディレクティブを使って CGI のログファイルの + 最大のファイルサイズを設定することができます。 + ファイルがこの大きさを超えた場合は、それ以上は書き込まれません。</p> </usage> </directivesynopsis> <directivesynopsis> <name>ScriptLogBuffer</name> -<description>$B%9%/%j%W%H%m%0$K5-O?$5$l$k(B PUT $B$d(B POST $B%j%/%(%9%H$NFbMF$N>e8B(B</description> +<description>スクリプトログに記録される PUT や POST リクエストの内容の上限</description> <syntax>ScriptLogBuffer <em>bytes</em></syntax> <default>ScriptLogBuffer 1024</default> <contextlist><context>server config</context> @@ -233,11 +233,11 @@ </modulelist> <usage> - <p>$BBg$-$JK\BN$r<u$1<h$C$?$H$-$K%m%0%U%!%$%k$,$9$0$KBg$-$/$J$j$9$.$k(B - $BLdBj$rHr$1$k$?$a$K!"%U%!%$%k$K%m%0<}=8$5$l$k(B PUT $B$H(B POST - $B$NK\BN$NBg$-$5$O@)8B$5$l$F$$$^$9!#%G%U%)%k%H$G$O!"(B1024 - $B%P%$%H$^$G$,%m%0<}=8$5$l$^$9$,!"(B - $B$3$N%G%#%l%/%F%#%V$O$=$l$rJQ99$9$k$3$H$,$G$-$^$9!#(B + <p>大きな本体を受け取ったときにログファイルがすぐに大きくなりすぎる + 問題を避けるために、ファイルにログ収集される PUT と POST + の本体の大きさは制限されています。デフォルトでは、1024 + バイトまでがログ収集されますが、 + このディレクティブはそれを変更することができます。 </p> </usage> </directivesynopsis> diff --git a/docs/manual/mod/mod_cgid.xml.ja b/docs/manual/mod/mod_cgid.xml.ja index 2b4af8bfa3..89a92899c9 100644 --- a/docs/manual/mod/mod_cgid.xml.ja +++ b/docs/manual/mod/mod_cgid.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 425124 --> @@ -23,37 +23,37 @@ <modulesynopsis metafile="mod_cgid.xml.meta"> <name>mod_cgid</name> -<description>$B30It(B CGI $B%G!<%b%s$r;H$C$?(B CGI $B%9%/%j%W%H$N<B9T(B</description> +<description>外部 CGI デーモンを使った CGI スクリプトの実行</description> <status>Base</status> <sourcefile>mod_cgid.c</sourcefile> <identifier>cgid_module</identifier> -<compatibility>Unix $B$N%9%l%C%I(B MPM $B$N$_(B</compatibility> +<compatibility>Unix のスレッド MPM のみ</compatibility> <summary> - <p>$B:GE,2=$,;\$5$l$F$$$k$3$H$H!"0J2<$G@bL@$5$l$F$$$kDI2C$N(B <directive - module="mod_cgid">ScriptSock</directive> $B%G%#%l%/%F%#%V$r=|$$$F$O!"(B - <module>mod_cgid</module> $B$O(B <module>mod_cgi</module> $B$HF1MM$N(B - $BF0:n$r$7$^$9!#(B<strong>Apache $B$H(B CGI $B$K4X$9$k>\:Y$O(B - <module>mod_cgi</module> $B$N35MW$rFI$s$G$/$@$5$$!#(B</strong></p> - - <p>Unix $B%*%Z%l!<%F%#%s%0%7%9%F%`$NCf$K$O!"%^%k%A%9%l%C%I$N%5!<%P$+$i(B - $B%W%m%;%9$r(B fork $B$9$k$N$,Hs>o$K%3%9%H$N9b$$F0:n$K$J$C$F$$$k$b$N$,$"$j$^$9!#(B - $BM}M3$O!"?7$7$$%W%m%;%9$,?F%W%m%;%9$N%9%l%C%I$9$Y$F$rJ#@=$9$k$+$i$G$9!#(B - $B3F(B CGI $B5/F0;~$K$3$N%3%9%H$,$+$+$k$N$rKI$0$?$a$K!"(B<module>mod_cgid</module> - $B$O;R%W%m%;%9$r(B fork $B$7$F(B CGI $B%9%/%j%W%H$r<B9T$9$k$?$a$N(B - $B30It%G!<%b%s$r<B9T$7$^$9!#(B - $B<g%5!<%P$O(B unix $B%I%a%$%s%=%1%C%H$r;H$C$F$3$N%G!<%b%s$HDL?.$7$^$9!#(B</p> - - <p>$B%3%s%Q%$%k;~$K%^%k%A%9%l%C%I(B MPM $B$,A*$P$l$?$H$-$O(B - <module>mod_cgi</module> $B$NBe$o$j$KI,$:$3$N%b%8%e!<%k$,;HMQ$5$l$^$9!#(B - $B%f!<%6$N%l%Y%k$G$O$3$N%b%8%e!<%k$N@_Dj$HF0:n$O(B <module>mod_cgi</module> - $B$H$^$C$?$/F1$8$G$9!#M#0l$NNc30$O(B <code>ScriptSock</code> $B%G%#%l%/%F%#%V$N(B - $BDI2C$G!"$3$N%G%#%l%/%F%#%V$O(B CGI $B%G!<%b%s$H$NDL?.MQ$N%=%1%C%H$NL>A0$r(B - $B;XDj$7$^$9!#(B</p> + <p>最適化が施されていることと、以下で説明されている追加の <directive + module="mod_cgid">ScriptSock</directive> ディレクティブを除いては、 + <module>mod_cgid</module> は <module>mod_cgi</module> と同様の + 動作をします。<strong>Apache と CGI に関する詳細は + <module>mod_cgi</module> の概要を読んでください。</strong></p> + + <p>Unix オペレーティングシステムの中には、マルチスレッドのサーバから + プロセスを fork するのが非常にコストの高い動作になっているものがあります。 + 理由は、新しいプロセスが親プロセスのスレッドすべてを複製するからです。 + 各 CGI 起動時にこのコストがかかるのを防ぐために、<module>mod_cgid</module> + は子プロセスを fork して CGI スクリプトを実行するための + 外部デーモンを実行します。 + 主サーバは unix ドメインソケットを使ってこのデーモンと通信します。</p> + + <p>コンパイル時にマルチスレッド MPM が選ばれたときは + <module>mod_cgi</module> の代わりに必ずこのモジュールが使用されます。 + ユーザのレベルではこのモジュールの設定と動作は <module>mod_cgi</module> + とまったく同じです。唯一の例外は <code>ScriptSock</code> ディレクティブの + 追加で、このディレクティブは CGI デーモンとの通信用のソケットの名前を + 指定します。</p> </summary> <seealso><module>mod_cgi</module></seealso> -<seealso><a href="../suexec.html">CGI $B%W%m%0%i%`$r0c$&%f!<%6(B ID $B$G<B9T$9$k(B</a></seealso> +<seealso><a href="../suexec.html">CGI プログラムを違うユーザ ID で実行する</a></seealso> <directivesynopsis location="mod_cgi"> <name>ScriptLog</name> @@ -69,20 +69,20 @@ <directivesynopsis> <name>ScriptSock</name> -<description>CGI $B%G!<%b%s$H$NDL?.$K;H$o$l$k%=%1%C%H$N%U%!%$%kL>$N@\F,<-(B</description> +<description>CGI デーモンとの通信に使われるソケットのファイル名の接頭辞</description> <syntax>ScriptSock <var>file-path</var></syntax> <default>ScriptSock logs/cgisock</default> <contextlist><context>server config</context></contextlist> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O(B CGI $B%G!<%b%s$H$NDL?.$K;H$o$l$k%=%1%C%H$N(B - $B%U%!%$%kL>$N@\F,<-$r@_Dj$7$^$9!#$^$?!"%U%!%$%kL>$K$O%5!<%P$N%W%m%;%9(BID$B$,(B - $BDI2C$5$l$^$9!#%=%1%C%H$O(B Apache $B$,5/F0$5$l$?%f!<%6(B ($BDL>o(B root) $B$N(B - $B%Q!<%_%C%7%g%s$rMQ$$$F%*!<%W%s$5$l$^$9!#(BCGI $B%9%/%j%W%H$H$NDL?.$N(B - $B%;%-%e%j%F%#$rJ]$D$?$a$K!"%=%1%C%H$NB8:_$9$k%G%#%l%/%H%j$K(B - $BB>$N%f!<%6$,=q$-9~$_8"8B$r;}$C$F$$$J$$$h$&$K$9$k$3$H$,=EMW$G$9!#(B</p> - - <example><title>$BNc(B</title> + <p>このディレクティブは CGI デーモンとの通信に使われるソケットの + ファイル名の接頭辞を設定します。また、ファイル名にはサーバのプロセスIDが + 追加されます。ソケットは Apache が起動されたユーザ (通常 root) の + パーミッションを用いてオープンされます。CGI スクリプトとの通信の + セキュリティを保つために、ソケットの存在するディレクトリに + 他のユーザが書き込み権限を持っていないようにすることが重要です。</p> + + <example><title>例</title> ScriptSock /var/run/cgid.sock </example> diff --git a/docs/manual/mod/mod_dav.xml.ja b/docs/manual/mod/mod_dav.xml.ja index f53ea216b2..272d2f5e03 100644 --- a/docs/manual/mod/mod_dav.xml.ja +++ b/docs/manual/mod/mod_dav.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 151408:659902 (outdated) --> @@ -23,62 +23,62 @@ <modulesynopsis metafile="mod_dav.xml.meta"> <name>mod_dav</name> -<description>$BJ,;6%*!<%5%j%s%0$H%P!<%8%g%s4IM}(B -(<a href="http://www.webdav.org/">WebDAV</a>) $B5!G=(B</description> +<description>分散オーサリングとバージョン管理 +(<a href="http://www.webdav.org/">WebDAV</a>) 機能</description> <status>Extension</status> <sourcefile>mod_dav.c</sourcefile> <identifier>dav_module</identifier> <summary> - <p>$B$3$N%b%8%e!<%k$O%/%i%9(B 1 $B$H%/%i%9(B 2 $B$N(B + <p>このモジュールはクラス 1 とクラス 2 の <a href="http://www.webdav.org">WebDAV</a> - ('$B%&%'%V%Y!<%9$NJ,;6%*!<%5%j%s%0$H%P!<%8%g%s4IM}(B') - $B5!G=$r(B Apache $B$KDs6!$7$^$9!#(B - $B$3$N(B HTTP $B%W%m%H%3%k$N3HD%$K$h$j!"%j%b!<%H$N%&%'%V%5!<%P>e$K$"$k(B - $B%j%=!<%9$d%3%l%/%7%g%s$r(B - $B:n@.!"0\F0!"J#@=!":o=|$G$-$k$h$&$K$J$j$^$9!#(B</p> + ('ウェブベースの分散オーサリングとバージョン管理') + 機能を Apache に提供します。 + この HTTP プロトコルの拡張により、リモートのウェブサーバ上にある + リソースやコレクションを + 作成、移動、複製、削除できるようになります。</p> </summary> <seealso><directive module="mod_dav_fs">DavLockDB</directive></seealso> <seealso><directive module="core">LimitXMLRequestBody</directive></seealso> <seealso><a href="http://www.webdav.org">WebDAV Resources</a></seealso> <section id="example"><title>Enabling WebDAV</title> - <p>mod_dav $B$rM-8z$K$9$k$K$O!"(B<code>httpd.conf</code> - $B%U%!%$%kCf$N%3%s%F%J$K<!$r2C$($^$9(B:</p> + <p>mod_dav を有効にするには、<code>httpd.conf</code> + ファイル中のコンテナに次を加えます:</p> <example>Dav On</example> - <p>$B$3$l$O(B DAV $B%U%!%$%k%7%9%F%`%W%m%P%$%@$rM-8z$K$7$^$9!#(BDAV - $B%U%!%$%k%7%9%F%`%W%m%P%$%@$O(B <module>mod_dav_fs</module> - $B%b%8%e!<%k$G<BAu$5$l$F$$$^$9!#$G$9$+$i!"$3$N%b%8%e!<%k$O%3%s%Q%$%k;~$K(B - $B%5!<%P$KAH$_9~$^$l$F$$$k$+!"$"$k$$$O(B + <p>これは DAV ファイルシステムプロバイダを有効にします。DAV + ファイルシステムプロバイダは <module>mod_dav_fs</module> + モジュールで実装されています。ですから、このモジュールはコンパイル時に + サーバに組み込まれているか、あるいは <directive module="mod_so">LoadModule</directive> - $B$r;HMQ$7$F<B9T;~$K%m!<%I$5$l$F$$$kI,MW$,$"$j$^$9!#(B</p> + を使用して実行時にロードされている必要があります。</p> - <p>$B$5$i$K!"(BDAV $B%m%C%/%G!<%?%Y!<%9$N>l=j$,(B - <directive module="mod_dav_fs">DavLockDB</directive> $B%G%#%l%/%F%#%V$r;H$C$F(B - <code>httd.conf</code> $B%U%!%$%k$N%0%m!<%P%k%;%/%7%g%s$K;XDj$5$l$F$$$k(B - $BI,MW$,$"$j$^$9!#(B</p> + <p>さらに、DAV ロックデータベースの場所が + <directive module="mod_dav_fs">DavLockDB</directive> ディレクティブを使って + <code>httd.conf</code> ファイルのグローバルセクションに指定されている + 必要があります。</p> <example> DavLockDB /usr/local/apache2/var/DavLock </example> - <p>$B%m%C%/%G!<%?%Y!<%9%U%!%$%k$N$"$k%G%#%l%/%H%j$O(B Apache $B$,<B9T$5$l$F$$$k(B - <directive module="mpm_common">User</directive> $B$H(B <directive - module="mpm_common" >Group</directive> $B$K=q$-9~$_8"8B$,$"$kI,MW$,$"$j$^$9!#(B</p> + <p>ロックデータベースファイルのあるディレクトリは Apache が実行されている + <directive module="mpm_common">User</directive> と <directive + module="mpm_common" >Group</directive> に書き込み権限がある必要があります。</p> <p><directive module="core" type="section">Limit</directive> - $B@a$r(B <directive module="core" type="section">Location</directive> - $B%G%#%l%/%F%#%VFbIt$KDI2C$7$F!"(BDAV $B$,M-8z$J>l=j$X$N(B - $B%"%/%;%9$r@)8B$9$k$3$H$b$G$-$^$9!#(BDAV $B%/%i%$%"%s%H$,(B - $B0lEY$N%j%/%(%9%H$GAw?.$G$-$k:GBg%P%$%H?t$r;XDj$7$?$$$H$-$O!"(B + 節を <directive module="core" type="section">Location</directive> + ディレクティブ内部に追加して、DAV が有効な場所への + アクセスを制限することもできます。DAV クライアントが + 一度のリクエストで送信できる最大バイト数を指定したいときは、 <directive module="core">LimitXMLRequestBody</directive> - $B%G%#%l%/%F%#%V$r;HMQ$9$kI,MW$,$"$j$^$9!#!VDL>o$N!W(B + ディレクティブを使用する必要があります。「通常の」 <directive module="core">LimitRequestBody</directive> - $B%G%#%l%/%F%#%V$O(B DAV $B%j%/%(%9%H$KBP$7$F$O8zNO$r;}$A$^$;$s!#(B</p> + ディレクティブは DAV リクエストに対しては効力を持ちません。</p> - <example><title>$B40A4$JNc(B</title> + <example><title>完全な例</title> DavLockDB /usr/local/apache2/var/DavLock<br /> <br /> <Location /foo><br /> @@ -98,57 +98,57 @@ </Location><br /> </example> - <p><module>mod_dav</module> $B$O(B Greg Stein $B$5$s$N(B <a - href="http://www.webdav.org/mod_dav/">Apache 1.3 $BMQ$N(B mod_dav</a> $B$K(B - $BM3Mh$9$k$b$N$G$9!#$=$N%5%$%H$+$i$h$jB?$/$N>pJs$r<j$KF~$l$k$3$H$,$G$-$^$9!#(B</p> + <p><module>mod_dav</module> は Greg Stein さんの <a + href="http://www.webdav.org/mod_dav/">Apache 1.3 用の mod_dav</a> に + 由来するものです。そのサイトからより多くの情報を手に入れることができます。</p> </section> -<section id="security"><title>$B%;%-%e%j%F%#$NLdBj(B</title> - - <p>DAV $B$N%"%/%;%9%a%=%C%I$O1s3V%/%i%$%"%s%H$,%5!<%P$N%U%!%$%k$r(B - $BA`:n$9$k$3$H$r2DG=$K$7$^$9$N$G!"(B <module>mod_dav</module> $B$r;HMQ$9$k(B - $BA0$K!"%5!<%P$,0BA4$G$"$k$3$H$rFC$KCm0U$7$F3NG'$7$J$1$l$P$J$j$^$;$s!#(B</p> - - <p>$B%5!<%P>e$N(B DAV $B$,;HMQ2DG=$K$J$C$F$$$k>l=j$O$9$Y$FG'>Z$GJ]8n$7$F$/$@$5$$!#(B - HTTP $B4pK\G'>Z$N;HMQ$O?d>)$G$-$^$;$s!#>/$J$/$H$b(B - <module>mod_auth_digest</module> $B%b%8%e!<%k$GDs6!$5$l$k(B HTTP - $B%@%$%8%'%9%HG'>Z$rMQ$$$k$Y$-$G$9!#(BWebDAV $B%/%i%$%"%s%H$N$[$H$s$I$O(B - $B$3$NG'>ZJ}K!$KBP1~$7$F$$$^$9!#Be$o$j$K!"(B<a href="../ssl/">SSL</a> $B$,(B - $BM-8z$J%3%M%/%7%g%s$rDL$7$?4pK\G'>Z$r;H$&$3$H$b$G$-$^$9!#(B</p> - - <p><module>mod_dav</module> $B$,%U%!%$%k$rA`:n$G$-$k$h$&$K$9$k$?$a$K$O!"(B - $B4IM}2<$N%G%#%l%/%H%j$H%U%!%$%k$H$K(B Apache $B$,<B9T$5$l$F$$$k(B <directive - module="mpm_common">User</directive> $B$H(B <directive - module="mpm_common">Group</directive> $B$G=q$-9~$_2DG=$G$"$kI,MW$,$"$j$^$9!#(B - $B?7$7$/:n@.$5$l$k%U%!%$%k$b$3$N(B <directive module="mpm_common">User</directive> - $B$H(B <directive module="mpm_common">Group</directive> $B$K=jM-$5$l$k(B - $B$3$H$K$J$j$^$9!#$3$NM}M3$+$i!"$=$N%"%+%&%s%H$X$N%"%/%;%9$r@)8f$9$k$3$H$O(B - $B=EMW$G$9!#(BDAV $B%j%]%8%H%j$O(B Apache $B@lMQ$N$b$N$@$H$_$J$5$l$F$$$^$9!#(B - Apache $B0J30$NJ}K!$G%U%!%$%k$r=$@5$9$k$3$H(B ($BNc$($P(B FTP $B$d%U%!%$%k%7%9%F%`(B - $BMQ$N%D!<%k$J$I$r;H$C$F(B) $B$O5v2D$5$l$F$$$^$;$s!#(B</p> - - <p><module>mod_dav</module> $B$O$$$m$$$m$J<oN`$N%5!<%S%95qH]967b$K$5$i$5$l$k(B - $B$+$b$7$l$^$;$s!#(B<directive - module="core">LimitXMLRequestBody</directive> $B%G%#%l%/%F%#%V$r;H$&$H(B - $BBg$-$J(B DAV $B%j%/%(%9%H$r2r@O$9$k$H$-$K>CHq$5$l$k%a%b%j$NNL$r@)8B$9$k$3$H$,(B - $B$G$-$^$9!#(B<directive - module="mod_dav">DavDepthInfinity</directive> $B%G%#%l%/%F%#%V$O(B - <code>PROPFIND</code> $B%j%/%(%9%H$,5pBg%j%]%8%H%j$GBgNL$N%a%b%j$r>CHq$9$k$N$r(B - $BKI$0$3$H$,$G$-$^$9!#B>$N%5!<%S%95qH]967b$K$OC1=c$K;HMQ2DG=$J%G%#%9%/NN0h$r(B - $BB?$/$NBg$-$J%U%!%$%k$GKd$a$F$7$^$&$s$b$N$,$"$j$^$9!#$3$l$rD>@\KI$0J}K!$O(B - Apache $B$K$O$"$j$^$;$s$N$G!"?.MQ$G$-$J$$%f!<%6$K(B DAV $B%"%/%;%9$rDs6!$9$k$N$O(B - $BHr$1$?J}$,NI$$$G$7$g$&!#(B</p> +<section id="security"><title>セキュリティの問題</title> + + <p>DAV のアクセスメソッドは遠隔クライアントがサーバのファイルを + 操作することを可能にしますので、 <module>mod_dav</module> を使用する + 前に、サーバが安全であることを特に注意して確認しなければなりません。</p> + + <p>サーバ上の DAV が使用可能になっている場所はすべて認証で保護してください。 + HTTP 基本認証の使用は推奨できません。少なくとも + <module>mod_auth_digest</module> モジュールで提供される HTTP + ダイジェスト認証を用いるべきです。WebDAV クライアントのほとんどは + この認証方法に対応しています。代わりに、<a href="../ssl/">SSL</a> が + 有効なコネクションを通した基本認証を使うこともできます。</p> + + <p><module>mod_dav</module> がファイルを操作できるようにするためには、 + 管理下のディレクトリとファイルとに Apache が実行されている <directive + module="mpm_common">User</directive> と <directive + module="mpm_common">Group</directive> で書き込み可能である必要があります。 + 新しく作成されるファイルもこの <directive module="mpm_common">User</directive> + と <directive module="mpm_common">Group</directive> に所有される + ことになります。この理由から、そのアカウントへのアクセスを制御することは + 重要です。DAV リポジトリは Apache 専用のものだとみなされています。 + Apache 以外の方法でファイルを修正すること (例えば FTP やファイルシステム + 用のツールなどを使って) は許可されていません。</p> + + <p><module>mod_dav</module> はいろいろな種類のサービス拒否攻撃にさらされる + かもしれません。<directive + module="core">LimitXMLRequestBody</directive> ディレクティブを使うと + 大きな DAV リクエストを解析するときに消費されるメモリの量を制限することが + できます。<directive + module="mod_dav">DavDepthInfinity</directive> ディレクティブは + <code>PROPFIND</code> リクエストが巨大リポジトリで大量のメモリを消費するのを + 防ぐことができます。他のサービス拒否攻撃には単純に使用可能なディスク領域を + 多くの大きなファイルで埋めてしまうんものがあります。これを直接防ぐ方法は + Apache にはありませんので、信用できないユーザに DAV アクセスを提供するのは + 避けた方が良いでしょう。</p> </section> -<section id="complex"><title>$BJ#;($J@_Dj(B</title> +<section id="complex"><title>複雑な設定</title> - <p>$B$h$/$"$kMW5a$K!"(B<module>mod_dav</module> $B$r;H$C$FF0E*$J%U%!%$%k(B - (PHP $B%9%/%j%W%H!"(BCGI $B%9%/%j%W%H$J$I(B) $B$rA`:n$7$?$$$H$$$&$b$N$,$"$j$^$9!#(B - $B$3$l$N<B8=$O!"(B<code>GET</code> $B%j%/%(%9%H$O%9%/%j%W%H$NFbMF$r%@%&%s%m!<%I$5$;$k(B - $BBe$o$j$K!"%9%/%j%W%H$r>o$K<B9T$5$;$F$7$^$&$N$GFq$7$/$J$C$F$$$^$9!#(B - $B$3$l$r2sHr$9$kJ}K!$K$O!"Fs$D$N0c$&(B URL $B$rF1$8%3%s%F%s%D$K%^%C%W$7!"(B - $B0l$D$O%9%/%j%W%H$r<B9T$5$;!"$b$&0l$D$O%@%&%s%m!<%I$5$;$?$j!"(BDAV $B$+$i(B - $BA`:n$5$l$?$j$9$k$h$&$K@_Dj$9$k$H$$$&$b$N$,$"$j$^$9!#(B</p> + <p>よくある要求に、<module>mod_dav</module> を使って動的なファイル + (PHP スクリプト、CGI スクリプトなど) を操作したいというものがあります。 + これの実現は、<code>GET</code> リクエストはスクリプトの内容をダウンロードさせる + 代わりに、スクリプトを常に実行させてしまうので難しくなっています。 + これを回避する方法には、二つの違う URL を同じコンテンツにマップし、 + 一つはスクリプトを実行させ、もう一つはダウンロードさせたり、DAV から + 操作されたりするように設定するというものがあります。</p> <example> Alias /phparea /home/gstein/php_files<br /> @@ -161,22 +161,22 @@ Alias /php-source /home/gstein/php_files<br /> </Location> </example> - <p>$B$3$N@_Dj$K$h$j!"(B<code>http://example.com/phparea</code> $B$r(B PHP $B%9%/%j%W%H$N(B - $B=PNO$r%"%/%;%9$9$k$?$a$K;H$&$3$H$,$G$-!"(B - <code>http://example.com/php-source</code> $B$r(B DAV $B%/%i%$%"%s%H$K$h$k(B - $B$,A`:n$N$?$a$K;H$&$3$H$,$G$-$^$9!#(B</p> + <p>この設定により、<code>http://example.com/phparea</code> を PHP スクリプトの + 出力をアクセスするために使うことができ、 + <code>http://example.com/php-source</code> を DAV クライアントによる + が操作のために使うことができます。</p> </section> <directivesynopsis> <name>Dav</name> -<description>WebDAV HTTP $B%a%=%C%I$rM-8z$K$7$^$9(B</description> +<description>WebDAV HTTP メソッドを有効にします</description> <syntax>Dav On|Off|<var>provider-name</var></syntax> <default>Dav Off</default> <contextlist><context>directory</context></contextlist> <usage> - <p>$BM?$($i$l$?%3%s%F%J$G(B WebDAV HTTP $B%a%=%C%I$,;H$($k$h$&$K$9$k$K$O(B - $B<!$N$h$&$K$7$^$9!#(B</p> + <p>与えられたコンテナで WebDAV HTTP メソッドが使えるようにするには + 次のようにします。</p> <example> <Location /foo><br /> @@ -186,24 +186,24 @@ Alias /php-source /home/gstein/php_files<br /> </Location> </example> - <p><code>On</code> $B$H$$$&;XDj$O<B:]$K$O(B <module>mod_dav_fs</module> - $B$GDs6!$5$l$F$$$k%G%U%)%k%H$N%W%m%P%$%@!"(B<code>filesystem</code> - $B$X$N%(%$%j%"%9$K$J$C$F$$$^$9!#0lEY$"$k%m%1!<%7%g%s$G(B DAV - $B$rM-8z$K$7$?8e$O!"$=$N%5%V%m%1!<%7%g%s$G(B<em>$BL58z2=$9$k$3$H$O$G$-$J$$(B</em> - $B$H$$$&$3$H$KCm0U$7$F$/$@$5$$!#40A4$J@_DjNc$O(B<a - href="#example">$B>e5-$N%;%/%7%g%s(B</a> $B$r$4Mw2<$5$$!#(B</p> + <p><code>On</code> という指定は実際には <module>mod_dav_fs</module> + で提供されているデフォルトのプロバイダ、<code>filesystem</code> + へのエイリアスになっています。一度あるロケーションで DAV + を有効にした後は、そのサブロケーションで<em>無効化することはできない</em> + ということに注意してください。完全な設定例は<a + href="#example">上記のセクション</a> をご覧下さい。</p> <note type="warning"> - $B%5!<%P$N%;%-%e%j%F%#$,3NJ]$G$-$k$^$G(B WebDAV $B$rM-8z$K$7$J$$$G$/$@$5$$!#(B - $B$=$&$7$J$1$l$PC/$G$b$=$N%5!<%P$G%U%!%$%k$rG[I[$9$k$3$H$,$G$-$k$h$&$K(B - $B$J$C$F$7$^$$$^$9!#(B + サーバのセキュリティが確保できるまで WebDAV を有効にしないでください。 + そうしなければ誰でもそのサーバでファイルを配布することができるように + なってしまいます。 </note> </usage> </directivesynopsis> <directivesynopsis> <name>DavMinTimeout</name> -<description>$B%5!<%P$,(B DAV $B%j%=!<%9$N%m%C%/$r0];}$9$k:G>.;~4V$G$9!#(B +<description>サーバが DAV リソースのロックを維持する最小時間です。 </description> <syntax>DavMinTimeout <var>seconds</var></syntax> <default>DavMinTimeout 0</default> @@ -211,21 +211,21 @@ Alias /php-source /home/gstein/php_files<br /> <context>directory</context></contextlist> <usage> - <p>$B%/%i%$%"%s%H$,(B DAV $B%j%=!<%9%m%C%/$rMW5a$7$?>l9g!"(B - $B%m%C%/$,%5!<%P$K$h$C$F<+F0E*$K2r=|$5$l$k$^$G$N;~4V$r(B - $BF1;~$K;XDj$9$k$3$H$,$G$-$^$9!#$3$NCM$OC1$J$k%j%/%(%9%H$G$"$C$F!"(B - $B%5!<%P$O$3$l$rL5;k$9$k$3$H$b$G$-$^$9$7!"(B - $BG$0U$NCM$r%/%i%$%"%s%H$KDLCN$9$k$3$H$b$G$-$^$9!#(B</p> - - <p>$B%/%i%$%"%s%H$KLa$9%m%C%/%?%$%`%"%&%H$N:G>.;~4V$r!"(B - $BIC$G!";XDj$9$k$?$a$K(B <directive>DavMinTimeout</directive> - $B%G%#%l%/%F%#%V$r;H$$$^$9!#(B - $B%^%$%/%m%=%U%H$N%&%'%V%U%)%k%@$N%G%U%)%k%H$G$O(B 120 $BIC$G$9$,!((B - $B%M%C%H%o!<%/$NCY1d$N$;$$$G%/%i%$%"%s%H$,%m%C%/$r<:$&$N$r8:$i$9$?$a$K!"(B - <directive>DavMinTimeout</directive> $B$r;H$C$F(B - $B$3$l$r$b$C$HBg$-$JCM(B ($BNc$($P(B 600 $BIC(B) $B$K>e=q$-$G$-$^$9!#(B</p> - - <example><title>$BNc(B</title> + <p>クライアントが DAV リソースロックを要求した場合、 + ロックがサーバによって自動的に解除されるまでの時間を + 同時に指定することができます。この値は単なるリクエストであって、 + サーバはこれを無視することもできますし、 + 任意の値をクライアントに通知することもできます。</p> + + <p>クライアントに戻すロックタイムアウトの最小時間を、 + 秒で、指定するために <directive>DavMinTimeout</directive> + ディレクティブを使います。 + マイクロソフトのウェブフォルダのデフォルトでは 120 秒ですが; + ネットワークの遅延のせいでクライアントがロックを失うのを減らすために、 + <directive>DavMinTimeout</directive> を使って + これをもっと大きな値 (例えば 600 秒) に上書きできます。</p> + + <example><title>例</title> <Location /MSWord><br /> <indent> DavMinTimeout 600<br /> @@ -237,19 +237,19 @@ Alias /php-source /home/gstein/php_files<br /> <directivesynopsis> <name>DavDepthInfinity</name> -<description>PROPFIND, Depth: Infinity $B%j%/%(%9%H$r5v2D$7$^$9(B</description> +<description>PROPFIND, Depth: Infinity リクエストを許可します</description> <syntax>DavDepthInfinity on|off</syntax> <default>DavDepthInfinity off</default> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context></contextlist> <usage> - <p>'Depth: Infinity' $B$r4^$s$G$$$k(B - <code>PROPFIND</code> $B%j%/%(%9%H$r=hM}$G$-$k$h$&$K$9$k$K$O!"(B + <p>'Depth: Infinity' を含んでいる + <code>PROPFIND</code> リクエストを処理できるようにするには、 <directive>DavDepthInfinity</directive> - $B%G%#%l%/%F%#%V$r;H$$$^$9!#$3$N%?%$%W$N%j%/%(%9%H$O(B - denial-of-service $B%"%?%C%/$H$J$j$&$k$N$G!"(B - $B%G%U%)%k%H$G$O5v2D$5$l$F$$$^$;$s!#(B</p> + ディレクティブを使います。このタイプのリクエストは + denial-of-service アタックとなりうるので、 + デフォルトでは許可されていません。</p> </usage> </directivesynopsis> diff --git a/docs/manual/mod/mod_dav_fs.xml.ja b/docs/manual/mod/mod_dav_fs.xml.ja index 5f5bfb791e..e233e88797 100644 --- a/docs/manual/mod/mod_dav_fs.xml.ja +++ b/docs/manual/mod/mod_dav_fs.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 420990 --> @@ -23,50 +23,50 @@ <modulesynopsis metafile="mod_dav_fs.xml.meta"> <name>mod_dav_fs</name> -<description><module>mod_dav</module> $B$N$?$a$N%U%!%$%k%7%9%F%`%W%m%P%$%@(B</description> +<description><module>mod_dav</module> のためのファイルシステムプロバイダ</description> <status>Extension</status> <sourcefile>mod_dav_fs.c</sourcefile> <identifier>dav_fs_module</identifier> <summary> - <p>$B$3$N%b%8%e!<%k$O(B <module>mod_dav</module> - $B$N%5!<%S%9$r(B<em>$BI,MW$H$7$^$9(B</em>$B!#(B<module>mod_dav</module> - $B$N%5%]!<%H%b%8%e!<%k$H$7$FF0:n$7!"%5!<%P%U%!%$%k%7%9%F%`>e$K(B - $B0LCV$9$k%j%=!<%9$X$N%"%/%;%9$rDs6!$7$^$9!#$3$N%W%m%P%$%@$N@5<0$JL>A0$O(B - <code>filesystem</code> $B$G$9!#(B<module>mod_dav</module> - $B%P%C%/%(%s%I%W%m%P%$%@$O(B <directive module="mod_dav">Dav</directive> - $B%G%#%l%/%F%#%V$r;HMQ$7$F5/F0$5$l$^$9!#(B</p> + <p>このモジュールは <module>mod_dav</module> + のサービスを<em>必要とします</em>。<module>mod_dav</module> + のサポートモジュールとして動作し、サーバファイルシステム上に + 位置するリソースへのアクセスを提供します。このプロバイダの正式な名前は + <code>filesystem</code> です。<module>mod_dav</module> + バックエンドプロバイダは <directive module="mod_dav">Dav</directive> + ディレクティブを使用して起動されます。</p> - <example><title>$BNc(B</title> + <example><title>例</title> Dav filesystem </example> - <p><code>filesystem</code> $B$O(B <module>mod_dav</module> - $B$N%G%U%)%k%H%W%m%P%$%@$K$J$C$F$$$^$9$+$i!"Be$o$j$KC1$K(B - <code>On</code> $B$H;XDj$9$k$3$H$b$G$-$^$9!#(B</p> + <p><code>filesystem</code> は <module>mod_dav</module> + のデフォルトプロバイダになっていますから、代わりに単に + <code>On</code> と指定することもできます。</p> </summary> <seealso><module>mod_dav</module></seealso> <directivesynopsis> <name>DavLockDB</name> -<description>DAV $B%m%C%/%G!<%?%Y!<%9$N0LCV(B</description> +<description>DAV ロックデータベースの位置</description> <syntax>DavLockDB <var>file-path</var></syntax> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p>$B%m%C%/%G!<%?%Y!<%9$X$N%U%k%Q%9$r!"3HD%;R$r=|$$$?7A$G(B - $B;XDj$9$k$K$O!"(B<directive>DavLockDB</directive> - $B$r;H$$$^$9!#%Q%9$,@dBP%Q%9$G$J$1$l$P!"(B<directive module= - "core">ServerRoot</directive> $B$+$i$NAjBP%Q%9$H2r<a$5$l$^$9!#(B - <module>mod_dav_fs</module> $B<BAu$G$O!"%f!<%6%m%C%/$r(B - $BDI@W$9$k$?$a$K(B SDBM $B%G!<%?%Y!<%9$r;H$$$^$9!#(B</p> + <p>ロックデータベースへのフルパスを、拡張子を除いた形で + 指定するには、<directive>DavLockDB</directive> + を使います。パスが絶対パスでなければ、<directive module= + "core">ServerRoot</directive> からの相対パスと解釈されます。 + <module>mod_dav_fs</module> 実装では、ユーザロックを + 追跡するために SDBM データベースを使います。</p> <!-- XXX: someone should add that tool to the support directory... The utility <code>modules/dav/util/lockview</code> can be used from the server to display all locks in a lock database.</p> --> - <example><title>$BNc(B</title> + <example><title>例</title> DavLockDB logs/DavLock </example> </usage> diff --git a/docs/manual/mod/mod_dav_lock.xml.ja b/docs/manual/mod/mod_dav_lock.xml.ja index 3b39ec2af0..23b426fc5a 100644 --- a/docs/manual/mod/mod_dav_lock.xml.ja +++ b/docs/manual/mod/mod_dav_lock.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 420993 --> @@ -23,71 +23,71 @@ <modulesynopsis metafile="mod_dav_lock.xml.meta"> <name>mod_dav_lock</name> -<description><module>mod_dav</module> $BMQ$NHFMQ%m%C%/%b%8%e!<%k(B</description> +<description><module>mod_dav</module> 用の汎用ロックモジュール</description> <status>Extension</status> <sourcefile>mod_dav_lock.c</sourcefile> <identifier>dav_lock_module</identifier> - <compatibility>$B%P!<%8%g%s(B 2.1 $B0J9_(B</compatibility> + <compatibility>バージョン 2.1 以降</compatibility> <summary> - <p>$B$3$N%b%8%e!<%k$O(B <module>mod_dav</module> $B$N$I$N%P%C%/%(%s%I(B - $B$+$i$G$b;H$($kHFMQ%m%C%/(B API $B$rDs6!$7$^$9!#(B - $B;HMQ$K$O:GDc8B(B <module>mod_dav</module> - $B$rI,MW$H$7$^$9$,!"$3$l$rMxMQ$9$k%P%C%/%(%s%I$,B8:_$7$J$$$HLr$KN)$?$J$$$N$G!"(B - $B$=$N$h$&$J>l9g$O%5!<%P$KFI$_9~$`$Y$-$G$O$"$j$^$;$s!#(B + <p>このモジュールは <module>mod_dav</module> のどのバックエンド + からでも使える汎用ロック API を提供します。 + 使用には最低限 <module>mod_dav</module> + を必要としますが、これを利用するバックエンドが存在しないと役に立たないので、 + そのような場合はサーバに読み込むべきではありません。 <module>mod_dav_lock</module> - $B$r<B:]$KMxMQ$9$k%P%C%/%(%s%I%b%8%e!<%k$NNc$H$7$F$O(B subversion - $B%W%m%P%$%@%b%8%e!<%k$N(B <a href="http://subversion.tigris.org/" - >mod_dav_svn</a> $B$,$"$j$^$9!#(B</p> - - <p><module>mod_dav_fs</module> $B$OFC2=$5$l$?@lMQ$N%P!<%8%g%s$r(B - $B;H$&$?$a!"$3$NHFMQ%b%8%e!<%k$O(B<em>$BI,MW$J$$(B</em>$B$3$H$KCm0U$7$F(B - $B$/$@$5$$!#(B</p> - - <p><module>mod_dav_lock</module> $B$r5!G=$5$;$k$K$O!"(B - $B0J2<$G@bL@$5$l$F$$$k(B <directive - module="mod_dav_lock">DavGenericLockDB</directive> $B$r;H$C$F(B - $B%m%C%/%G!<%?%Y!<%9$N>l=j$r;XDj$9$k$@$1$G$9!#(B</p> - - <note><title>$B3+H/<T8~$1$N%a%b(B</title> - <p>$B%m%C%/$rDs6!$7$F$$$k4X?t$X$N%]%$%s%?$r<hF@$9$k$?$a$K$O!"(B - <code>ap_lookup_provider</code> API $B$r!"0z?t(B <code>dav-lock</code>, - <code>generic</code>, <code>0</code> $B$r;XDj$7$F;H$&I,MW$,(B - $B$"$j$^$9!#(B</p> + を実際に利用するバックエンドモジュールの例としては subversion + プロバイダモジュールの <a href="http://subversion.tigris.org/" + >mod_dav_svn</a> があります。</p> + + <p><module>mod_dav_fs</module> は特化された専用のバージョンを + 使うため、この汎用モジュールは<em>必要ない</em>ことに注意して + ください。</p> + + <p><module>mod_dav_lock</module> を機能させるには、 + 以下で説明されている <directive + module="mod_dav_lock">DavGenericLockDB</directive> を使って + ロックデータベースの場所を指定するだけです。</p> + + <note><title>開発者向けのメモ</title> + <p>ロックを提供している関数へのポインタを取得するためには、 + <code>ap_lookup_provider</code> API を、引数 <code>dav-lock</code>, + <code>generic</code>, <code>0</code> を指定して使う必要が + あります。</p> </note> </summary> <seealso><module>mod_dav</module></seealso> <directivesynopsis> <name>DavGenericLockDB</name> -<description>DAV $B%m%C%/%G!<%?%Y!<%9$N>l=j(B</description> +<description>DAV ロックデータベースの場所</description> <syntax>DavGenericLockDB <var>file-path</var></syntax> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context> </contextlist> <usage> - <p><directive>DavGenericLockDB</directive> $B%G%#%l%/%F%#%V$r(B - $B;H$C$F!"3HD%;R$r=|$$$?%m%C%/%G!<%?%Y!<%9$X$N%U%k%Q%9$r(B - $B;XDj$7$^$9!#@dBP%Q%9$G$J$$$H$-$O(B <directive - module="core">ServerRoot</directive> $B$+$i$NAjBP%Q%9$H$7$F(B - $B07$o$l$^$9!#(B<module>mod_dav_lock</module> $B$N<BAu$G$O%f!<%6$N(B - $B%m%C%/$rDI@W$9$k$N$K(B SDBM $B%G!<%?%Y!<%9$r;H$$$^$9!#(B</p> - - <example><title>$BNc(B</title> + <p><directive>DavGenericLockDB</directive> ディレクティブを + 使って、拡張子を除いたロックデータベースへのフルパスを + 指定します。絶対パスでないときは <directive + module="core">ServerRoot</directive> からの相対パスとして + 扱われます。<module>mod_dav_lock</module> の実装ではユーザの + ロックを追跡するのに SDBM データベースを使います。</p> + + <example><title>例</title> DavGenericLockDB var/DavLock </example> - <p>$B%m%C%/%G!<%?%Y!<%9%U%!%$%k$N$"$k%G%#%l%/%H%j$O(B - Apache $B$,<B9T$5$l$F$$$k(B <directive module="mpm_common">User</directive> - $B$H(B <directive module="mpm_common" >Group</directive> $B$K$h$C$F(B - $B=q$-9~$_2DG=$G$J$1$l$P$J$j$^$;$s!#%;%-%e%j%F%#>e$NM}M3$+$i!"(B - $B4{B8$N%G%#%l%/%H%j$N%Q!<%_%C%7%g%s$rJQ99$9$k$N$G$O$J$/!"(B - $B@lMQ$N%G%#%l%/%H%j$r:n$k$N$,NI$$$G$7$g$&!#>e$NNc$G$O!"(B - Apache $B$O(B <directive - module="core">ServerRoot</directive> $B$N2<$N(B <code>var/</code> - $B%G%#%l%/%H%j$K!"%U%!%$%kL>$NK\BN$,(B <code>DavLock</code> $B$G(B - $B%5!<%P$,A*Br$7$?3HD%;R$r;}$D%U%!%$%k$r:n@.$7$^$9!#(B</p> + <p>ロックデータベースファイルのあるディレクトリは + Apache が実行されている <directive module="mpm_common">User</directive> + と <directive module="mpm_common" >Group</directive> によって + 書き込み可能でなければなりません。セキュリティ上の理由から、 + 既存のディレクトリのパーミッションを変更するのではなく、 + 専用のディレクトリを作るのが良いでしょう。上の例では、 + Apache は <directive + module="core">ServerRoot</directive> の下の <code>var/</code> + ディレクトリに、ファイル名の本体が <code>DavLock</code> で + サーバが選択した拡張子を持つファイルを作成します。</p> </usage> </directivesynopsis> diff --git a/docs/manual/mod/mod_deflate.xml.ja b/docs/manual/mod/mod_deflate.xml.ja index a3b74a1970..03614207e1 100644 --- a/docs/manual/mod/mod_deflate.xml.ja +++ b/docs/manual/mod/mod_deflate.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 151408:420990 (outdated) --> @@ -23,29 +23,29 @@ <modulesynopsis metafile="mod_deflate.xml.meta"> <name>mod_deflate</name> -<description>$B%/%i%$%"%s%H$XAw$i$l$kA0$K%3%s%F%s%D$r05=L$9$k(B</description> +<description>クライアントへ送られる前にコンテンツを圧縮する</description> <status>Extension</status> <sourcefile>mod_deflate.c</sourcefile> <identifier>deflate_module</identifier> <summary> - <p><module>mod_deflate</module> $B%b%8%e!<%k$O(B <code>DEFLATE</code> - $B=PNO%U%#%k%?$rDs6!$7$^$9!#$3$l$O%5!<%P$+$i$N=PNO$r!"%M%C%H%o!<%/$r(B - $BDL$7$F%/%i%$%"%s%H$KAw$kA0$K05=L$9$k$3$H$r2DG=$K$7$^$9!#(B</p> + <p><module>mod_deflate</module> モジュールは <code>DEFLATE</code> + 出力フィルタを提供します。これはサーバからの出力を、ネットワークを + 通してクライアントに送る前に圧縮することを可能にします。</p> </summary> <seealso><a href="../filter.html">Filters</a></seealso> -<section id="recommended"><title>$B%5%s%W%k@_Dj(B</title> - <p>$B2<$K$;$C$+$A$J?M8~$1$N4JC1$J@_DjNc$r<($7$^$9!#(B</p> +<section id="recommended"><title>サンプル設定</title> + <p>下にせっかちな人向けの簡単な設定例を示します。</p> - <example><title>$B?t%?%$%W$N$_05=L$9$k(B</title> + <example><title>数タイプのみ圧縮する</title> AddOutputFilterByType DEFLATE text/html text/plain text/xml </example> - <p>$B0J2<$N@_Dj$O%3%s%F%s%D$r$h$j05=L$7$^$9$,!"$:$C$HJ#;($J@_Dj$K$J$j$^$9!#(B - $B@_Dj$N6y!9$^$G$h$/M}2r$7$J$$$G;H$o$J$$$G$/$@$5$$!#(B</p> + <p>以下の設定はコンテンツをより圧縮しますが、ずっと複雑な設定になります。 + 設定の隅々までよく理解しないで使わないでください。</p> - <example><title>$B2hA|0J30A4$F05=L$9$k(B</title> + <example><title>画像以外全て圧縮する</title> <Location /><br /> <indent> # Insert filter<br /> @@ -79,27 +79,27 @@ </section> -<section id="enable"><title>$B05=L$rM-8z$K$9$k(B</title> +<section id="enable"><title>圧縮を有効にする</title> <section id="output"><title>Output Compression</title> - <p>$B05=L5!G=$O(B <code>DEFLATE</code> <a href="../filter.html">$B%U%#%k%?(B</a> - $B$K$h$j<BAu$5$l$F$$$^$9!#0J2<$N%G%#%l%/%F%#%V$O$=$N%G%#%l%/%F%#%V$N$"$k(B - $B%3%s%F%JCf$N%I%-%e%a%s%H$r05=L$9$k$h$&$K$7$^$9(B:</p> + <p>圧縮機能は <code>DEFLATE</code> <a href="../filter.html">フィルタ</a> + により実装されています。以下のディレクティブはそのディレクティブのある + コンテナ中のドキュメントを圧縮するようにします:</p> <example> SetOutputFilter DEFLATE </example> - <p>$B$h$/;H$o$l$F$$$k%V%i%&%6$G$O!"$9$Y$F$N%3%s%F%s%D$KBP$9$k(B - $B05=L$r07$($k$o$1$G$O$"$j$^$;$s!#$G$9$+$i!"(B<code>gzip-only-text/html</code> - $B%N!<%H$r(B <code>1</code> $B$K$7$F!"(Bhtml $B%U%!%$%k$KBP$7$F$N$_(B - $B05=L$,F/$/$h$&$K$7$?J}$,$h$$$+$b$7$l$^$;$s(B ($B0J2<;2>H(B) - $B$3$NCM$r(B <em><code>1</code> $B0J30$NCM(B</em>$B$K@_Dj$7$?>l9g$OL5;k$5$l$^$9!#(B</p> + <p>よく使われているブラウザでは、すべてのコンテンツに対する + 圧縮を扱えるわけではありません。ですから、<code>gzip-only-text/html</code> + ノートを <code>1</code> にして、html ファイルに対してのみ + 圧縮が働くようにした方がよいかもしれません (以下参照) + この値を <em><code>1</code> 以外の値</em>に設定した場合は無視されます。</p> - <p>$BDL>o!"FCDj$N(BMIME$B%?%$%W$K$D$$$F$N$_05=L$7$?$$$N$G$"$l$P!"(B + <p>通常、特定のMIMEタイプについてのみ圧縮したいのであれば、 <directive module="core">AddOutputFilterByType</directive> - $B%G%#%l%/%F%#%V$r;HMQ$7$^$9!#<!$K(B Apache $B$N%I%-%e%a%s%H$N(B html - $B%U%!%$%k$N$_$N05=L$rM-8z$K$9$kNc$r<($7$^$9!#(B</p> + ディレクティブを使用します。次に Apache のドキュメントの html + ファイルのみの圧縮を有効にする例を示します。</p> <example> <Directory "/your-server-root/manual"><br /> @@ -109,15 +109,15 @@ </Directory> </example> - <p>$BA4$F$N%U%!%$%k%?%$%W$G$N05=L$KLdBj$rJz$($F$$$k%V%i%&%6$KBP$7$F$O!"(B + <p>全てのファイルタイプでの圧縮に問題を抱えているブラウザに対しては、 <directive module="mod_setenvif">BrowserMatch</directive> - $B%G%#%l%/%F%#%V$r;HMQ$7$F!"FCDj$N%V%i%&%6$K(B <code>no-gzip</code> - $B%N!<%H$r%;%C%H$7!"05=L$,9T$J$o$l$J$$$h$&$K$7$^$9!#(B - <code>no-gzip</code> $B$H(B <code>gzip-only-text/html</code> - $B$rAH$_9g$o$;$k$3$H$G>e<j$/BP=h$G$-$^$9!#(B - $B$3$N>l9g!"A0<T$,8e<T$r%*!<%P!<%i%$%I$7$^$9!#(B - $B>e5-$N(B<a href="#recommended">$B@_DjNc(B</a>$B$NH4?h$r(B - $B<!$K<($7$^$9$N$G$4Mw2<$5$$!#(B</p> + ディレクティブを使用して、特定のブラウザに <code>no-gzip</code> + ノートをセットし、圧縮が行なわれないようにします。 + <code>no-gzip</code> と <code>gzip-only-text/html</code> + を組み合わせることで上手く対処できます。 + この場合、前者が後者をオーバーライドします。 + 上記の<a href="#recommended">設定例</a>の抜粋を + 次に示しますのでご覧下さい。</p> <example> BrowserMatch ^Mozilla/4 gzip-only-text/html<br /> @@ -125,39 +125,39 @@ BrowserMatch \bMSIE !no-gzip !gzip-only-text/html </example> - <p>$B$^$:;O$a$K(B <code>User-Agent</code> $BJ8;zNs$+$i(B Netscape Navigator - 4.x $B$G$"$k$+$I$&$+$rD4$Y$^$9!#$3$l$i$N%P!<%8%g%s$G$O!"(B - <code>text/html</code> $B0J30$N%?%$%W$N05=L$r07$&$3$H$,$G$-$^$;$s!#(B - 4.06, 4.07, 4.08 $B$O(B html $B%U%!%$%k$N?-D%$K$bLdBj$rJz$($F$$$^$9!#(B - $B$G$9$+$i$3$l$i$KBP$7$F$O!"40A4$K(B deflate $B%U%#%k%?$r%*%U$K$7$^$9!#(B</p> - - <p>3 $BHVL\$N(B <directive module="mod_setenvif">BrowserMatch</directive> - $B%G%#%l%/%F%#%V$G!"?dB,$7$?%f!<%6!<%(!<%8%'%s%H$r=$@5$7$^$9!#(B - $B$J$<$J$i(B Microsoft Internet Explorer $B$b(B "Mozilla/4" $B$HFCDj$5$l$^$9$,!"(B - $B$3$l$i$O<B:]$K$O05=L$r07$&$3$H$,$G$-$k$+$i$G$9!#(B - <code>User-Agent</code> $B%X%C%@$r(B "MSIE" - (<code>\b</code> $B$O!VC18l$N6-3&!W$r0UL#$7$^$9(B) $B$NDI2CJ8;z$G8!::$7$F!"(B - $B$3$l0JA0$K@_Dj$7$?@)8B$r:F$S2r=|$7$^$9!#(B</p> - - <note><title>$BCm(B</title> - <code>DEFLATE</code> $B%U%#%k%?$OI,$:!"(BPHP $B$d(B SSI $B$H$$$C$?(B RESOURCE - $B%U%#%k%?$N8e$K$J$j$^$9!#(B - DEFLATE $B%U%#%k%?$OFbItE*$J%5%V%j%/%(%9%H$r4XCN$7$^$;$s!#(B + <p>まず始めに <code>User-Agent</code> 文字列から Netscape Navigator + 4.x であるかどうかを調べます。これらのバージョンでは、 + <code>text/html</code> 以外のタイプの圧縮を扱うことができません。 + 4.06, 4.07, 4.08 は html ファイルの伸張にも問題を抱えています。 + ですからこれらに対しては、完全に deflate フィルタをオフにします。</p> + + <p>3 番目の <directive module="mod_setenvif">BrowserMatch</directive> + ディレクティブで、推測したユーザーエージェントを修正します。 + なぜなら Microsoft Internet Explorer も "Mozilla/4" と特定されますが、 + これらは実際には圧縮を扱うことができるからです。 + <code>User-Agent</code> ヘッダを "MSIE" + (<code>\b</code> は「単語の境界」を意味します) の追加文字で検査して、 + これ以前に設定した制限を再び解除します。</p> + + <note><title>注</title> + <code>DEFLATE</code> フィルタは必ず、PHP や SSI といった RESOURCE + フィルタの後になります。 + DEFLATE フィルタは内部的なサブリクエストを関知しません。 </note> - <note><title>$BCm(B</title> - <directive module="core">SetEnv</directive> $B$G@_Dj$5$l$k(B - <code>force-gzip</code> $B4D6-JQ?t$,$"$j$^$9$,!"$3$l$O(B - $B%V%i%&%6$N(B accept-encoding $B@_Dj$rL5;k$7!"05=L$7$?=PNO$r$7$^$9!#(B + <note><title>注</title> + <directive module="core">SetEnv</directive> で設定される + <code>force-gzip</code> 環境変数がありますが、これは + ブラウザの accept-encoding 設定を無視し、圧縮した出力をします。 </note> </section> - <section id="inflate"><title>$B=PNO$N?-D9(B</title> - <p><module>mod_deflate</module> $B%b%8%e!<%k$O!"(Bgzip $B05=L$5$l$?%l%9%]%s%9(B - $BK\J8$r(B inflate/uncompress $B$9$k%U%#%k%?$bDs6!$7$F$$$^$9!#(B - $B$3$N5!G=$rM-8z$K$9$k$K$O!"(B<directive module="core">SetOutputFilter</directive> - $B$d(B <directive module="mod_mime">AddOutputFilter</directive> $B$r;H$C$F!"(B - <code>INFLATE</code> $B%U%#%k%?$r=PNO%U%#%k%?%A%'%$%s$KA^F~$7$^$9!#(B - $BNc$($P<!$N$h$&$K$7$^$9!#(B</p> + <section id="inflate"><title>出力の伸長</title> + <p><module>mod_deflate</module> モジュールは、gzip 圧縮されたレスポンス + 本文を inflate/uncompress するフィルタも提供しています。 + この機能を有効にするには、<directive module="core">SetOutputFilter</directive> + や <directive module="mod_mime">AddOutputFilter</directive> を使って、 + <code>INFLATE</code> フィルタを出力フィルタチェインに挿入します。 + 例えば次のようにします。</p> <example> <Location /dav-area><br /> @@ -168,18 +168,18 @@ </Location> </example> - <p>$B$3$NNc$G$O!"(Bexample.com $B$+$i$N(B gzip $B05=L$5$l$?=PNO$r?-D9$7!"(B - $B$=$NB>$N%U%#%k%?$,$5$i$K$=$N=PNO$r=hM}$G$-$k$h$&$K$7$^$9!#(B + <p>この例では、example.com からの gzip 圧縮された出力を伸長し、 + その他のフィルタがさらにその出力を処理できるようにします。 </p> </section> - <section id="input"><title>$BF~NO$N?-D%(B</title> - <p><module>mod_deflate</module> $B%b%8%e!<%k$O!"(Bgzip - $B$G05=L$5$l$?%j%/%(%9%HK\BN$r?-D%$9$k%U%#%k%?$bDs6!$7$F$$$^$9!#(B - $B$3$N5!G=$rM-8z$K$9$k$K$O!"(B<directive module="core">SetInputFilter</directive> - $B$+(B <directive module="mod_mime">AddInputFilter</directive> $B$r;HMQ$7$F!"(B - <code>DEFLATE</code> $B%U%#%k%?$rF~NO%U%#%k%?%A%'%$%s$KAH$_9~$_$^$9!#(B - $BNc$($P<!$N$h$&$K$J$j$^$9!#(B</p> + <section id="input"><title>入力の伸張</title> + <p><module>mod_deflate</module> モジュールは、gzip + で圧縮されたリクエスト本体を伸張するフィルタも提供しています。 + この機能を有効にするには、<directive module="core">SetInputFilter</directive> + か <directive module="mod_mime">AddInputFilter</directive> を使用して、 + <code>DEFLATE</code> フィルタを入力フィルタチェインに組み込みます。 + 例えば次のようになります。</p> <example> <Location /dav-area><br /> @@ -189,92 +189,92 @@ </Location> </example> - <p>$B$3$N@_Dj$G$"$l$P!"(B<code>Content-Encoding: gzip</code> - $B%X%C%@$r4^$`%j%/%(%9%H$,Mh$k$H!"K\BN$O<+F0E*$K?-D%$5$l$^$9!#(B - gzip $B%j%/%(%9%HK\BN$rAw?.$9$k%V%i%&%6$O$"$^$j$"$j$^$;$s!#(B - $B$7$+$7!"Nc$($P(B <a href="http://www.webdav.org">WebDAV</a> - $B%/%i%$%"%s%H$N4v$D$+$J$I!"FCJL$J%"%W%j%1!<%7%g%s$G%j%/%(%9%H$N(B - $B05=L$r<B:]$K%5%]!<%H$7$F$$$k$b$N$b$"$j$^$9!#(B</p> - - <note type="warning"><title>Content-Length $B$K4X$9$kCm0U(B</title> - <p>$B%j%/%(%9%HK\BN$=$l<+BN$rI>2A$9$k>l9g$O!"(B<em><code>Content-Length</code> - $B%X%C%@$r?.MQ$7$J$$$G$/$@$5$$(B</em>$B!#(BContent-Length $B%X%C%@$O!"(B - $B%/%i%$%"%s%H$+$iAw?.$5$l$k%G!<%?$ND9$5$rH?1G$7$F$$$k$N$G$"$C$F!"(B - $B?-D%$5$l$?%G!<%?%9%H%j!<%`$N(B<em>$B%P%$%H%+%&%s%H$G$O$"$j$^$;$s(B</em>$B!#(B</p> + <p>この設定であれば、<code>Content-Encoding: gzip</code> + ヘッダを含むリクエストが来ると、本体は自動的に伸張されます。 + gzip リクエスト本体を送信するブラウザはあまりありません。 + しかし、例えば <a href="http://www.webdav.org">WebDAV</a> + クライアントの幾つかなど、特別なアプリケーションでリクエストの + 圧縮を実際にサポートしているものもあります。</p> + + <note type="warning"><title>Content-Length に関する注意</title> + <p>リクエスト本体それ自体を評価する場合は、<em><code>Content-Length</code> + ヘッダを信用しないでください</em>。Content-Length ヘッダは、 + クライアントから送信されるデータの長さを反映しているのであって、 + 伸張されたデータストリームの<em>バイトカウントではありません</em>。</p> </note> </section> </section> -<section id="proxies"><title>Proxy $B%5!<%P$G$N07$$(B</title> +<section id="proxies"><title>Proxy サーバでの扱い</title> - <p><module>mod_deflate</module> $B%b%8%e!<%k$O(B <code>Vary: Accept-Encoding</code> - HTTP $B1~Ez%X%C%@$rAw?.$7$F!"E,@Z$J(B <code>Accept-Encoding</code> - $B%j%/%(%9%H%X%C%@$rAw?.$9$k%/%i%$%"%s%H$KBP$7$F$N$_!"(B - $B%W%m%/%7%5!<%P$,%-%c%C%7%e$7$?1~Ez$rAw?.$9$k$h$&$KCm0U$r4-5/$7$^$9!#(B - $B$3$N$h$&$K$7$F!"05=L$r07$&$3$H$N$G$-$J$$%/%i%$%"%s%H$K(B - $B05=L$5$l$?FbMF$,Aw$i$l$k$3$H$N$J$$$h$&$K$7$^$9!#(B</p> + <p><module>mod_deflate</module> モジュールは <code>Vary: Accept-Encoding</code> + HTTP 応答ヘッダを送信して、適切な <code>Accept-Encoding</code> + リクエストヘッダを送信するクライアントに対してのみ、 + プロクシサーバがキャッシュした応答を送信するように注意を喚起します。 + このようにして、圧縮を扱うことのできないクライアントに + 圧縮された内容が送られることのないようにします。</p> - <p>$B$b$7FCJL$K2?$+$K0MB8$7$F=|30$7$?$$>l9g!"Nc$($P(B <code>User-Agent</code> - $B%X%C%@$J$I$K0MB8$7$F$$$k>l9g!"<jF0$G(B <code>Vary</code> $B%X%C%@$r@_Dj$7$F!"(B - $BDI2C$N@)8B$K$D$$$F%W%m%/%7%5!<%P$KCm0U$r9T$J$&I,MW$,$"$j$^$9!#(B - $BNc$($P(B <code>User-Agent</code> $B$K0MB8$7$F(B <code>DEFLATE</code> - $B$rDI2C$9$kE57?E*$J@_Dj$G$O!"<!$N$h$&$KDI2C$9$k$3$H$K$J$j$^$9!#(B</p> + <p>もし特別に何かに依存して除外したい場合、例えば <code>User-Agent</code> + ヘッダなどに依存している場合、手動で <code>Vary</code> ヘッダを設定して、 + 追加の制限についてプロクシサーバに注意を行なう必要があります。 + 例えば <code>User-Agent</code> に依存して <code>DEFLATE</code> + を追加する典型的な設定では、次のように追加することになります。</p> <example> Header append Vary User-Agent </example> - <p>$B%j%/%(%9%H%X%C%@0J30$N>pJs(B (<em>$BNc$($P(B</em> HTTP $B%P!<%8%g%s(B) - $B$K0MB8$7$F05=L$9$k$+$I$&$+7h$a$k>l9g!"(B - <code>Vary</code> $B%X%C%@$r(B <code>*</code> $B$K@_Dj$9$kI,MW$,$"$j$^$9!#(B - $B$3$N$h$&$K$9$k$H!";EMM$K=`5r$7$?%W%m%/%7$O%-%c%C%7%e$rA4$/9T$J$o$J$/$J$j$^$9!#(B</p> + <p>リクエストヘッダ以外の情報 (<em>例えば</em> HTTP バージョン) + に依存して圧縮するかどうか決める場合、 + <code>Vary</code> ヘッダを <code>*</code> に設定する必要があります。 + このようにすると、仕様に準拠したプロクシはキャッシュを全く行なわなくなります。</p> - <example><title>$BNc(B</title> + <example><title>例</title> Header set Vary * </example> </section> <directivesynopsis> <name>DeflateFilterNote</name> -<description>$B%m%.%s%0MQ$K05=LHf$r%a%b$KDI2C(B</description> +<description>ロギング用に圧縮比をメモに追加</description> <syntax>DeflateFilterNote [<var>type</var>] <var>notename</var></syntax> <contextlist><context>server config</context> <context>virtual host</context></contextlist> <compatibility><var>type</var> is available since Apache 2.0.45</compatibility> <usage> - <p><directive>DeflateFilterNote</directive> $B%G%#%l%/%F%#%V$O(B - $B05=LHf$K4X$9$k%a%b$,%j%/%(%9%H$KIU2C$5$l$k$3$H$r;XDj$7$^$9!#(B - $B%a%b(B (note) $B$NL>A0$O%G%#%l%/%F%#%V$K;XDj$5$l$?CM$G$9!#(B - $B%a%b$O(B<a href="../logs.html#accesslog">$B%"%/%;%9%m%0(B</a>$B$K(B - $BCM$r5-O?$7!"E}7W$r<h$kL\E*$K$b;H$($^$9!#(B</p> + <p><directive>DeflateFilterNote</directive> ディレクティブは + 圧縮比に関するメモがリクエストに付加されることを指定します。 + メモ (note) の名前はディレクティブに指定された値です。 + メモは<a href="../logs.html#accesslog">アクセスログ</a>に + 値を記録し、統計を取る目的にも使えます。</p> - <example><title>$BNc(B</title> + <example><title>例</title> DeflateFilterNote ratio<br /> <br /> LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate<br /> CustomLog logs/deflate_log deflate </example> - <p>$B%m%0$+$i$b$C$H@:L)$JCM$rCj=P$7$?$$>l9g$O!"(B<var>type</var> - $B0z?t$r;HMQ$7$F!"%G!<%?%?%$%W$r%m%0$N%a%b$H$7$F;D$9$h$&$K;XDj$G$-$^$9!#(B - <var>type</var> $B$O<!$N$&$A$N0l$D$G$9!#(B</p> + <p>ログからもっと精密な値を抽出したい場合は、<var>type</var> + 引数を使用して、データタイプをログのメモとして残すように指定できます。 + <var>type</var> は次のうちの一つです。</p> <dl> <dt><code>Input</code></dt> - <dd>$B%U%#%k%?$NF~NO%9%H%j!<%`$N%P%$%H%+%&%s%H$r%a%b$KJ]B8$9$k!#(B</dd> + <dd>フィルタの入力ストリームのバイトカウントをメモに保存する。</dd> <dt><code>Output</code></dt> - <dd>$B%U%#%k%?$N=PNO%9%H%j!<%`$N%P%$%H%+%&%s%H$r%a%b$KJ]B8$9$k!#(B</dd> + <dd>フィルタの出力ストリームのバイトカウントをメモに保存する。</dd> <dt><code>Ratio</code></dt> - <dd>$B05=LN((B (<code>$B=PNO(B / $BF~NO(B * 100</code>) $B$r%a%b$KJ]B8$9$k!#(B - <var>type</var> $B0z?t$r>JN,$7$?>l9g$O!"$3$l$,%G%U%)%k%H$H$J$j$^$9!#(B</dd> + <dd>圧縮率 (<code>出力 / 入力 * 100</code>) をメモに保存する。 + <var>type</var> 引数を省略した場合は、これがデフォルトとなります。</dd> </dl> - <p>$B$^$H$a$k$H!"<!$N$h$&$K%m%0$r<h$k$3$H$K$J$k$G$7$g$&!#(B</p> + <p>まとめると、次のようにログを取ることになるでしょう。</p> - <example><title>$B@:L)$J%m%0:N<h(B</title> + <example><title>精密なログ採取</title> DeflateFilterNote Input instream<br /> DeflateFilterNote Output outstream<br /> DeflateFilterNote Ratio ratio<br /> @@ -288,66 +288,66 @@ <directivesynopsis> <name>DeflateBufferSize</name> -<description>zlib $B$,0lEY$K05=L$9$k2t$NBg$-$5(B</description> +<description>zlib が一度に圧縮する塊の大きさ</description> <syntax>DeflateBufferSize <var>value</var></syntax> <default>DeflateBufferSize 8096</default> <contextlist><context>server config</context> <context>virtual host</context></contextlist> <usage> - <p><directive>DeflateBufferSize</directive> $B%G%#%l%/%F%#%V$O(B - zlib $B$,0lEY$K05=L$9$k2t$NBg$-$5$r%P%$%HC10L$G;XDj$7$^$9!#(B</p> + <p><directive>DeflateBufferSize</directive> ディレクティブは + zlib が一度に圧縮する塊の大きさをバイト単位で指定します。</p> </usage> </directivesynopsis> <directivesynopsis> <name>DeflateWindowSize</name> -<description>Zlib $B$N05=LMQ%&%#%s%I%&$NBg$-$5(B</description> +<description>Zlib の圧縮用ウィンドウの大きさ</description> <syntax>DeflateWindowSize <var>value</var></syntax> <default>DeflateWindowSize 15</default> <contextlist><context>server config</context> <context>virtual host</context></contextlist> <usage> - <p><directive>DeflateWindowSize</directive> $B%G%#%l%/%F%#%V$O(B - zlib $B$N05=LMQ%&%#%s%I%&(B ($BLuCm(B: zlib $B$G;HMQ$5$l$kMzNr%P%C%U%!(B) - $B$NBg$-$5$r;XDj$7$^$9(B (1 $B$+$i(B 15 $B$N4V$NCM(B)$B!#(B - $B0lHLE*$KBg$-$J%&%#%s%I%&%5%$%:$r;HMQ$9$k$H05=LN($,8~>e$7$^$9!#(B - ($BLuCm(B: 2 $B$rDl$H$9$kBP?t$NCM$K$J$j$^$9!#(B - 8 $B$+$i(B 15 $B$K$9$k$N$,NI$$$G$7$g$&!#(B)</p> + <p><directive>DeflateWindowSize</directive> ディレクティブは + zlib の圧縮用ウィンドウ (訳注: zlib で使用される履歴バッファ) + の大きさを指定します (1 から 15 の間の値)。 + 一般的に大きなウィンドウサイズを使用すると圧縮率が向上します。 + (訳注: 2 を底とする対数の値になります。 + 8 から 15 にするのが良いでしょう。)</p> </usage> </directivesynopsis> <directivesynopsis> <name>DeflateMemLevel</name> -<description>zlib $B$,05=L$K;H$&%a%b%j$N%l%Y%k$r;XDj(B</description> +<description>zlib が圧縮に使うメモリのレベルを指定</description> <syntax>DeflateMemLevel <var>value</var></syntax> <default>DeflateMemLevel 9</default> <contextlist><context>server config</context> <context>virtual host</context></contextlist> <usage> - <p><directive>DeflateMemLevel</directive> $B%G%#%l%/%F%#%V$O(B - zlib $B$,05=L$K;H$&%a%b%j$N%l%Y%k$r@_Dj$7$^$9(B (1 $B$+$i(B 9 $B$N4V$NCM(B)$B!#(B - ($BLuCm(B: 2 $B$rDl$H$9$kBP?t$NCM$K$J$j$^$9!#(B - 8 $BDxEY$,NI$$$G$7$g$&!#(B)</p> + <p><directive>DeflateMemLevel</directive> ディレクティブは + zlib が圧縮に使うメモリのレベルを設定します (1 から 9 の間の値)。 + (訳注: 2 を底とする対数の値になります。 + 8 程度が良いでしょう。)</p> </usage> </directivesynopsis> <directivesynopsis> <name>DeflateCompressionLevel</name> -<description>$B=PNO$KBP$7$F9T$J$&05=L$NDxEY(B</description> +<description>出力に対して行なう圧縮の程度</description> <syntax>DeflateCompressionLevel <var>value</var></syntax> -<default>Zlib $B$N%G%U%)%k%H(B</default> +<default>Zlib のデフォルト</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <compatibility>This directive is available since Apache 2.0.45</compatibility> <usage> - <p><directive>DeflateCompressionLevel</directive> $B%G%#%l%/%F%#%V$O(B - $B05=L$NDxEY$r@_Dj$7$^$9!#Bg$-$JCM$G$O!"$h$j05=L$,9T$J$o$l$^$9$,!"(B - CPU $B;q8;$r>CHq$7$^$9!#(B</p> - <p>$BCM$O(B 1 ($BDc05=L(B) $B$+$i(B 9 ($B9b05=L(B) $B$G$9!#(B</p> + <p><directive>DeflateCompressionLevel</directive> ディレクティブは + 圧縮の程度を設定します。大きな値では、より圧縮が行なわれますが、 + CPU 資源を消費します。</p> + <p>値は 1 (低圧縮) から 9 (高圧縮) です。</p> </usage> </directivesynopsis> diff --git a/docs/manual/mod/mod_dir.xml.ja b/docs/manual/mod/mod_dir.xml.ja index 24eb95c869..087fffe81a 100644 --- a/docs/manual/mod/mod_dir.xml.ja +++ b/docs/manual/mod/mod_dir.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 151408:420990 (outdated) --> @@ -23,44 +23,44 @@ <modulesynopsis metafile="mod_dir.xml.meta"> <name>mod_dir</name> -<description>$B!V:G8e$N%9%i%C%7%e!W$N%j%@%$%l%/%H$H!"%G%#%l%/%H%j$N(B -$B%$%s%G%C%/%9%U%!%$%k$r07$&5!G=$rDs6!$9$k(B</description> +<description>「最後のスラッシュ」のリダイレクトと、ディレクトリの +インデックスファイルを扱う機能を提供する</description> <status>Base</status> <sourcefile>mod_dir.c</sourcefile> <identifier>dir_module</identifier> <summary> - <p>$B%G%#%l%/%H%j%$%s%G%C%/%9$O!"<!$NFs$D$N$&$A$I$A$i$+$,MxMQ$5$l$^$9(B:</p> + <p>ディレクトリインデックスは、次の二つのうちどちらかが利用されます:</p> <ul> - <li>$B0l$DL\$O!"%f!<%6$,:n@.$7$?%U%!%$%k$rMQ$$$k$b$N$G!"DL>o(B - <code>index.html</code> $B$H$$$&%U%!%$%kL>$r;H$$$^$9!#$3$N%U%!%$%kL>$O!"(B - <directive module="mod_dir">DirectoryIndex</directive> $B%G%#%l%/%F%#%V$G(B - $B;XDj$9$k$3$H$,$G$-$^$9!#$3$N5!G=$O(B <module>mod_dir</module> - $B%b%8%e!<%k$GDs6!$5$l$^$9!#(B</li> - - <li>$B$b$&0l$D$NJ}K!$O!"(B - $B%5!<%P$K$h$C$F<+F0E*$K@8@.$5$l$k%G%#%l%/%H%j%j%9%H$rMQ$$$k>l9g$G$9!#(B - $B$3$N5!G=$O!"(B<module>mod_autoindex</module> - $B%b%8%e!<%k$K$h$jDs6!$5$l$^$9!#(B</li> + <li>一つ目は、ユーザが作成したファイルを用いるもので、通常 + <code>index.html</code> というファイル名を使います。このファイル名は、 + <directive module="mod_dir">DirectoryIndex</directive> ディレクティブで + 指定することができます。この機能は <module>mod_dir</module> + モジュールで提供されます。</li> + + <li>もう一つの方法は、 + サーバによって自動的に生成されるディレクトリリストを用いる場合です。 + この機能は、<module>mod_autoindex</module> + モジュールにより提供されます。</li> </ul> - <p>$B<+F0E*$J%$%s%G%C%/%9@8@.5!G=$r:o=|(B ($B$b$7$/$O8r49(B) - $B$G$-$k$h$&$K!"$3$NFs$D$N5!G=$OJ,N%$5$l$F$$$^$9!#(B</p> + <p>自動的なインデックス生成機能を削除 (もしくは交換) + できるように、この二つの機能は分離されています。</p> - <p>$B$J$*(B <code>http://servername/foo/dirname</code> $B$H$$$&(B URL - $B$X$N%j%/%(%9%H$,$"$C$?:]$K!"(B<code>dirname</code> - $B$H$$$&%G%#%l%/%H%j$,$"$l$P!"!V:G8e$K%9%i%C%7%e$r$D$1$?7A!W$N(B URL - $B$X$N%j%@%$%l%/%H$rAw=P$7$^$9!#(B - $B%G%#%l%/%H%j$X$N%"%/%;%9$O%9%i%C%7%e$G=*$o$C$F$$$kI,MW$,$"$j!"(B - <code>mod_dir</code> $B$O!"(B<code>http://servername/foo/dirname/</code> - $B$X$N%j%@%$%l%/%H$rAw=P$9$k$3$H$K$J$j$^$9!#(B</p> + <p>なお <code>http://servername/foo/dirname</code> という URL + へのリクエストがあった際に、<code>dirname</code> + というディレクトリがあれば、「最後にスラッシュをつけた形」の URL + へのリダイレクトを送出します。 + ディレクトリへのアクセスはスラッシュで終わっている必要があり、 + <code>mod_dir</code> は、<code>http://servername/foo/dirname/</code> + へのリダイレクトを送出することになります。</p> </summary> <directivesynopsis> <name>DirectoryIndex</name> -<description>$B%/%i%$%"%s%H$,%G%#%l%/%H%j$r%j%/%(%9%H$7$?$H$-$KD4$Y$k(B -$B%j%=!<%9$N%j%9%H(B</description> +<description>クライアントがディレクトリをリクエストしたときに調べる +リソースのリスト</description> <syntax>DirectoryIndex <var>local-url</var> [<var>local-url</var>] ...</syntax> <default>DirectoryIndex index.html</default> @@ -70,72 +70,72 @@ <usage> <p> - $B%/%i%$%"%s%H$,!"%G%#%l%/%H%jL>$N:G8e$K!V(B/$B!W(B - $B$r;XDj$7$F%G%#%l%/%H%j%$%s%G%C%/%9$rMW5a$9$k>l9g$KC5$9%j%=!<%9$N%j%9%H$r(B - <directive>DirectoryIndex</directive> $B%G%#%l%/%F%#%V$G@_Dj$7$^$9!#(B + クライアントが、ディレクトリ名の最後に「/」 + を指定してディレクトリインデックスを要求する場合に探すリソースのリストを + <directive>DirectoryIndex</directive> ディレクティブで設定します。 <var>Local-url</var> - $B$O!"%j%/%(%9%H$5$l$?%G%#%l%/%H%j$KBP1~$9$k!"%5!<%P>e$N%I%-%e%a%s%H$N(B - (% $B%(%s%3!<%I$5$l$?(B) URL $B$G!"IaDL$O%G%#%l%/%H%jCf$N%U%!%$%k$NL>A0$G$9!#(B - $BJ#?t$N(B URL $B$,@_Dj$5$l$?>l9g$K$O!":G=i$K8+$D$+$C$?$b$N$rJV$7$^$9!#(B - $B$=$l$i$,8+$D$+$i$:!"(B<code>Indexes</code> - $B%*%W%7%g%s$,%;%C%H$5$l$F$$$k>l9g!"%G%#%l%/%H%j$N%j%9%H$r@8@.$7$^$9!#(B + は、リクエストされたディレクトリに対応する、サーバ上のドキュメントの + (% エンコードされた) URL で、普通はディレクトリ中のファイルの名前です。 + 複数の URL が設定された場合には、最初に見つかったものを返します。 + それらが見つからず、<code>Indexes</code> + オプションがセットされている場合、ディレクトリのリストを生成します。 </p> - <example><title>$BNc(B</title> + <example><title>例</title> DirectoryIndex index.html </example> - <p><code>http://myserver/docs/</code> $B$X$N%"%/%;%9$,$"$j!"(B + <p><code>http://myserver/docs/</code> へのアクセスがあり、 <code>http://myserver/docs/index.html</code> - $B$,B8:_$9$l$P!"$3$N(B URL $B$,JV$5$l$^$9!#(B - $B$b$7B8:_$7$J$1$l$P!"%G%#%l%/%H%j$N%j%9%H$,JV$5$l$^$9!#(B</p> + が存在すれば、この URL が返されます。 + もし存在しなければ、ディレクトリのリストが返されます。</p> - <p>$BCm(B: $B%I%-%e%a%s%H$,F1$8%G%#%l%/%H%jFb$KB8:_$9$k$OI,MW$"$j$^$;$s!#(B + <p>注: ドキュメントが同じディレクトリ内に存在するは必要ありません。 </p> <example> DirectoryIndex index.html index.txt /cgi-bin/index.pl </example> - <p>$B$H$7$?>l9g!"(B<code>index.html</code> $B$H(B <code>index.txt</code> - $B$N$I$A$i$b%G%#%l%/%H%jFb$KB8:_$7$J$$>l9g!"(BCGI $B%9%/%j%W%H(B - <code>/cgi-bin/index.pl</code> $B$,<B9T$5$l$^$9!#(B</p> + <p>とした場合、<code>index.html</code> と <code>index.txt</code> + のどちらもディレクトリ内に存在しない場合、CGI スクリプト + <code>/cgi-bin/index.pl</code> が実行されます。</p> </usage> </directivesynopsis> <directivesynopsis> <name>DirectorySlash</name> -<description>$B%Q%9KvHx$N%9%i%C%7%e$G%j%@%$%l%/%H$9$k$+$I$&$+$N%*%s%*%U$r%H%0%k$5$;$k(B</description> +<description>パス末尾のスラッシュでリダイレクトするかどうかのオンオフをトグルさせる</description> <syntax>DirectorySlash On|Off</syntax> <default>DirectorySlash On</default> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context></contextlist> <override>Indexes</override> -<compatibility>2.0.51 $B0J9_(B</compatibility> +<compatibility>2.0.51 以降</compatibility> <usage> - <p>$BMW5a$N$"$C$?(B URL $B$,%G%#%l%/%H%j$r;X$9$+$I$&$+$r!"(B - <module>mod_dir</module> $B$,D4@0$9$k$Y$-$+$I$&$+$r(B + <p>要求のあった URL がディレクトリを指すかどうかを、 + <module>mod_dir</module> が調整するべきかどうかを <directive>DirectorySlash</directive> - $B%G%#%l%/%F%#%V$G@_Dj$7$^$9!#(B</p> + ディレクティブで設定します。</p> - <p>$BE57?E*$K$O!"%f!<%6$,KvHx$N%9%i%C%7%eL5$7$G%j%=!<%9$X$N%j%/%(%9%H$rH/9T$7!"(B - $B$=$7$F!"$=$N%j%=!<%9$,%G%#%l%/%H%j$r;X$7$F$$$?>l9g!"(B<module>mod_dir</module> - $B$O!"KvHx$K%9%i%C%7%e$r(B<em>$BIU2C(B</em>$B$7$?>e$GF1$8%j%=!<%9$K%j%@%$%l%/%H$5$;$^$9!#(B - $B$3$N5sF0$K$O4v$D$+M}M3$,$"$j$^$9(B:</p> + <p>典型的には、ユーザが末尾のスラッシュ無しでリソースへのリクエストを発行し、 + そして、そのリソースがディレクトリを指していた場合、<module>mod_dir</module> + は、末尾にスラッシュを<em>付加</em>した上で同じリソースにリダイレクトさせます。 + この挙動には幾つか理由があります:</p> <ul> - <li>$B%f!<%6$O!":G=*E*$K$O%j%=!<%9$NJLL>(B URL $B$r%j%/%(%9%H$9$k$3$H$K$J$k!#(B</li> - <li><module>mod_autoindex</module> $B$,4|BTDL$j$KF0$/!#(B<module>mod_autoindex</module> - $B$N@8@.$9$k%j%s%/$O%Q%9$r=PNO$7$^$;$s$N$G!"%9%i%C%7%e$,$J$$>l9g$O4V0c$C$?%Q%9$r(B - $B;X$7$F$7$^$&$3$H$K$J$j$^$9!#(B</li> - <li><directive module="mod_dir">DirectoryIndex</directive> $B$O!"(B - $BKvHx$K%9%i%C%7%e$,$D$$$F$$$k%j%/%(%9%H$K$D$$$F(B<em>$B$N$_(B</em>$BI>2A$5$l$k!#(B</li> - <li>HTML $B%Z!<%8$NAjBP(B URL $B;2>H$,@5$7$/F0:n$9$k!#(B</li> + <li>ユーザは、最終的にはリソースの別名 URL をリクエストすることになる。</li> + <li><module>mod_autoindex</module> が期待通りに動く。<module>mod_autoindex</module> + の生成するリンクはパスを出力しませんので、スラッシュがない場合は間違ったパスを + 指してしまうことになります。</li> + <li><directive module="mod_dir">DirectoryIndex</directive> は、 + 末尾にスラッシュがついているリクエストについて<em>のみ</em>評価される。</li> + <li>HTML ページの相対 URL 参照が正しく動作する。</li> </ul> - <p>$B$H$O$$$(!"$b$7$3$&$$$C$?8z2L$rK>$^$J$$!"$+$D!"(B - $B>e5-$N$h$&$JM}M3$,Ev$F$O$^$i$J$$>l9g$O!"%j%@%$%l%/%H$r<!$N$h$&$K$7$F%*%U$K$G$-$^$9(B:</p> + <p>とはいえ、もしこういった効果を望まない、かつ、 + 上記のような理由が当てはまらない場合は、リダイレクトを次のようにしてオフにできます:</p> <example> # see security warning below!<br /> @@ -147,16 +147,16 @@ </Location> </example> - <note type="warning"><title>$B%;%-%e%j%F%#7Y9p(B</title> - <p>$BKvHx$N%9%i%C%7%e$G$N%j%@%$%l%/%H$r%*%U$K$9$k$H!"7k2LE*$K>pJsO31L$r(B - $B>7$/$3$H$K$J$k$+$b$7$l$^$;$s!#(B - <module>mod_autoindex</module> $B$,M-8z(B (<code>Options +Indexes</code>) $B$G!"(B - <directive module="mod_dir">DirectoryIndex</directive> $B$,M-8z$J%j%=!<%9(B ($BNc$($P(B - <code>index.html</code>) $B$r;X$7$F$$$F!"$^$?!"MW5a$N$"$C$?(B URL $B$KFCJL$J(B - $B%O%s%I%i$,@_Dj$5$l$F$$$J$$>l9g$r9M$($F$_$F$/$@$5$$!#(B - $B$3$N>l9gKvHx$K%9%i%C%7%e$N$D$$$F$$$k%j%/%(%9%H$KBP$7$F$O(B <code>index.html</code> - $B%U%!%$%k$,JV$5$l$^$9!#(B<strong>$B$7$+$7%9%i%C%7%e$N$J$$%j%/%(%9%H$KBP$7$F$O!"(B - $B%G%#%l%/%H%j$NFbMF0lMw$rJV$7$F$7$^$$$^$9!#(B</strong></p> + <note type="warning"><title>セキュリティ警告</title> + <p>末尾のスラッシュでのリダイレクトをオフにすると、結果的に情報漏洩を + 招くことになるかもしれません。 + <module>mod_autoindex</module> が有効 (<code>Options +Indexes</code>) で、 + <directive module="mod_dir">DirectoryIndex</directive> が有効なリソース (例えば + <code>index.html</code>) を指していて、また、要求のあった URL に特別な + ハンドラが設定されていない場合を考えてみてください。 + この場合末尾にスラッシュのついているリクエストに対しては <code>index.html</code> + ファイルが返されます。<strong>しかしスラッシュのないリクエストに対しては、 + ディレクトリの内容一覧を返してしまいます。</strong></p> </note> </usage> </directivesynopsis> diff --git a/docs/manual/mod/mod_disk_cache.xml.ja b/docs/manual/mod/mod_disk_cache.xml.ja index 87ca0c4394..674f6d897d 100644 --- a/docs/manual/mod/mod_disk_cache.xml.ja +++ b/docs/manual/mod/mod_disk_cache.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 420990:515267 (outdated) --> @@ -23,46 +23,46 @@ <modulesynopsis metafile="mod_disk_cache.xml.meta"> <name>mod_disk_cache</name> -<description>URI $B$r%-!<$K$7$?%3%s%F%s%D%-%c%C%7%e%9%H%l!<%84IM}(B</description> +<description>URI をキーにしたコンテンツキャッシュストレージ管理</description> <status>Extension</status> <sourcefile>mod_disk_cache.c</sourcefile> <identifier>disk_cache_module</identifier> <summary> - <p><module>mod_disk_cache</module> $B$O%G%#%9%/$r;HMQ$7$?%9%H%l!<%8(B - $B4IM}5!9=$r<BAu$7$F$$$^$9!#<g$K(B - <module>mod_cache</module> $B$HAH$_9g$o$;$F;H$o$l$^$9!#(B</p> + <p><module>mod_disk_cache</module> はディスクを使用したストレージ + 管理機構を実装しています。主に + <module>mod_cache</module> と組み合わせて使われます。</p> - <p>$B%3%s%F%s%D$N%-%c%C%7%e$X$NJ]B8$H<hF@$O(B URI $B$K4p$E$$$?%-!<$,;H$o$l$^$9!#(B - $B%"%/%;%9J]8n$N$+$1$i$l$F$$$k%3%s%F%s%D$O%-%c%C%7%e$5$l$^$;$s!#(B</p> + <p>コンテンツのキャッシュへの保存と取得は URI に基づいたキーが使われます。 + アクセス保護のかけられているコンテンツはキャッシュされません。</p> - <p>$B%-%c%C%7%e$NBg$-$5$r:GBg%l%Y%k$G0];}$9$k$?$a$K(B - <program>htcacheclean</program> $B$r;H$&$3$H$,$G$-$^$9!#(B</p> + <p>キャッシュの大きさを最大レベルで維持するために + <program>htcacheclean</program> を使うことができます。</p> - <note><title>$BCm(B:</title> - <p><module>mod_disk_cache</module> $B$O(B - <module>mod_cache</module> $B$rI,MW$H$7$^$9(B</p> + <note><title>注:</title> + <p><module>mod_disk_cache</module> は + <module>mod_cache</module> を必要とします</p> </note> </summary> <directivesynopsis> <name>CacheRoot</name> -<description>$B%-%c%C%7%e%U%!%$%k$,J]4I$5$l$k%k!<%H%G%#%l%/%H%j(B</description> +<description>キャッシュファイルが保管されるルートディレクトリ</description> <syntax>CacheRoot <var>directory</var></syntax> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p><directive>CacheRoot</directive> $B%G%#%l%/%F%#%V$O%-%c%C%7%e%U%!%$%k$r(B - $BJ]4I$9$k$?$a$N%G%#%9%/>e$N%G%#%l%/%H%j$r;XDj$7$^$9!#(B<module - >mod_disk_cache</module> $B%b%8%e!<%k$,(B Apache $B%5!<%P$K%m!<%I$5$l$F(B - $B$$$k$+!"AH$_9~$^$l$F$$$l$P!"$3$N%G%#%l%/%F%#%V$O(B<em>$BI,$:(B</em> - $BDj5A$7$J$1$l$P$J$j$^$;$s!#(B - <directive>CacheRoot</directive> $B$NCM$r;XDj$7$J$1$l$P!"(B - $B@_Dj%U%!%$%k$N=hM}$G%(%i!<$K$J$j$^$9!#(B<directive - module="mod_disk_cache">CacheDirLevels</directive> $B%G%#%l%/%F%#%V$H(B <directive - module="mod_disk_cache">CacheDirLength</directive> $B%G%#%l%/%F%#%V$,(B - $B;XDj$5$l$?%k!<%H%G%#%l%/%H%j2<$N%G%#%l%/%H%j9=@.$rDj5A$7$^$9!#(B</p> + <p><directive>CacheRoot</directive> ディレクティブはキャッシュファイルを + 保管するためのディスク上のディレクトリを指定します。<module + >mod_disk_cache</module> モジュールが Apache サーバにロードされて + いるか、組み込まれていれば、このディレクティブは<em>必ず</em> + 定義しなければなりません。 + <directive>CacheRoot</directive> の値を指定しなければ、 + 設定ファイルの処理でエラーになります。<directive + module="mod_disk_cache">CacheDirLevels</directive> ディレクティブと <directive + module="mod_disk_cache">CacheDirLength</directive> ディレクティブが + 指定されたルートディレクトリ下のディレクトリ構成を定義します。</p> <example> CacheRoot c:/cacheroot @@ -72,22 +72,22 @@ <directivesynopsis> <name>CacheDirLevels</name> -<description>$B%-%c%C%7%e$N%5%V%G%#%l%/%H%j$N?<$5$N?t(B</description> +<description>キャッシュのサブディレクトリの深さの数</description> <syntax>CacheDirLevels <var>levels</var></syntax> <default>CacheDirLevels 3</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p><directive>CacheDirLevels</directive> $B%G%#%l%/%F%#%V$O%-%c%C%7%e$N(B - $B%5%V%G%#%l%/%H%j$N?<$5$r@_Dj$7$^$9!#%-%c%C%7%e%G!<%?$O(B <directive - module="mod_disk_cache">CacheRoot</directive> $B%G%#%l%/%H%j$+$i(B - $B$3$N%G%#%l%/%H%j$N?<$5J,2<$N%G%#%l%/%H%j$KJ]B8$5$l$^$9!#(B</p> + <p><directive>CacheDirLevels</directive> ディレクティブはキャッシュの + サブディレクトリの深さを設定します。キャッシュデータは <directive + module="mod_disk_cache">CacheRoot</directive> ディレクトリから + このディレクトリの深さ分下のディレクトリに保存されます。</p> <note> <p><directive>CacheDirLevels</directive>* - <directive module="mod_disk_cache">CacheDirLength</directive> $B$N(B - $B7k2L$O(B 20 $B0JFb$G$J$1$l$P$J$j$^$;$s!#(B</p> + <directive module="mod_disk_cache">CacheDirLength</directive> の + 結果は 20 以内でなければなりません。</p> </note> <example> @@ -98,20 +98,20 @@ <directivesynopsis> <name>CacheDirLength</name> -<description>$B%5%V%G%#%l%/%H%jL>$NJ8;z?t(B</description> +<description>サブディレクトリ名の文字数</description> <syntax>CacheDirLength <var>length</var></syntax> <default>CacheDirLength 2</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p><directive>CacheDirLength</directive> $B%G%#%l%/%F%#%V$O%-%c%C%7%e(B - $B3,AX$N3F%5%V%G%#%l%/%H%j$NJ8;z?t$r@_Dj$7$^$9!#(B</p> + <p><directive>CacheDirLength</directive> ディレクティブはキャッシュ + 階層の各サブディレクトリの文字数を設定します。</p> <note> <p><directive>CacheDirLevels</directive>* - <directive module="mod_disk_cache">CacheDirLength</directive> $B$N(B - $B7k2L$O(B 20 $B0JFb$G$J$1$l$P$J$j$^$;$s!#(B</p> + <directive module="mod_disk_cache">CacheDirLength</directive> の + 結果は 20 以内でなければなりません。</p> </note> <example> @@ -122,15 +122,15 @@ <directivesynopsis> <name>CacheMinFileSize</name> -<description>$B%-%c%C%7%e$KJ]4I$5$l$k%I%-%e%a%s%H$N:G>.8B$N(B ($B%P%$%H$G$N(B) $BBg$-$5(B</description> +<description>キャッシュに保管されるドキュメントの最小限の (バイトでの) 大きさ</description> <syntax>CacheMinFileSize <var>bytes</var></syntax> <default>CacheMinFileSize 1</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p><directive>CacheMinFileSize</directive> $B%G%#%l%/%F%#%V$O!"%I%-%e%a%s%H$r(B - $B%-%c%C%7%e$9$k$+$I$&$+$rH=Dj$9$k!":G>.$N%5%$%:$r%P%$%H?t$G@_Dj$7$^$9!#(B</p> + <p><directive>CacheMinFileSize</directive> ディレクティブは、ドキュメントを + キャッシュするかどうかを判定する、最小のサイズをバイト数で設定します。</p> <example> CacheMinFileSize 64 @@ -140,15 +140,15 @@ <directivesynopsis> <name>CacheMaxFileSize</name> -<description>$B%-%c%C%7%e$KJ]4I$5$l$k%I%-%e%a%s%H$N:GBg$N(B ($B%P%$%H$G$N(B) $B%5%$%:(B</description> +<description>キャッシュに保管されるドキュメントの最大の (バイトでの) サイズ</description> <syntax>CacheMaxFileSize <var>bytes</var></syntax> <default>CacheMaxFileSize 1000000</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p><directive>CacheMaxFileSize</directive> $B%G%#%l%/%F%#%V$O!"%I%-%e%a%s%H$r(B - $B%-%c%C%7%e$9$k$+$I$&$+$rH=Dj$9$k!":GBg$N%5%$%:$r%P%$%H?t$G@_Dj$7$^$9!#(B</p> + <p><directive>CacheMaxFileSize</directive> ディレクティブは、ドキュメントを + キャッシュするかどうかを判定する、最大のサイズをバイト数で設定します。</p> <example> CacheMaxFileSize 64000 diff --git a/docs/manual/mod/mod_dumpio.xml.ja b/docs/manual/mod/mod_dumpio.xml.ja index 9fbbc2da71..ac4c86bdfc 100644 --- a/docs/manual/mod/mod_dumpio.xml.ja +++ b/docs/manual/mod/mod_dumpio.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 420993:559006 (outdated) --> @@ -23,45 +23,45 @@ <modulesynopsis metafile="mod_dumpio.xml.meta"> <name>mod_dumpio</name> -<description>$BK>$`$h$&$K$9$Y$F$N(B I/O $B$r%(%i!<%m%0$K%@%s%W$9$k(B</description> +<description>望むようにすべての I/O をエラーログにダンプする</description> <status>Extension</status> <sourcefile>mod_dumpio.c</sourcefile> <identifier>dumpio_module</identifier> <summary> - <p><code>mod_dumpio</code> $B$r;H$&$H!"(BApache $B$,<u$1<h$C$?$9$Y$F$NF~NO$H(B - Apache $B$K$h$jAw$i$l$?$9$Y$F$N=PNO$H$N!"N>J}$b$7$/$O$I$A$i$+0lJ}$r!"(B - $B%(%i!<%m%0%U%!%$%k$K%m%0<}=8(B <transnote>$B%@%s%W(B dump</transnote> - $B$G$-$^$9!#(B</p> - - <p>$B%G!<%?$N%m%.%s%0$O!"(BSSL $BI|9f2=$ND>8e(B ($BF~NO(B) $B$H(B SSL - $B0E9f2=$ND>A0(B ($B=PNO(B) $B$K9T$J$o$l$^$9!#$4A[A|$NDL$j!"(B - $B$3$N%b%8%e!<%k$O$H$F$D$b$J$$%G!<%?NL$r=PNO$7$^$9$N$G!"(B - $BLdBj$r%G%P%C%0$7$F$$$k$H$-$K$N$_;HMQ$9$k$h$&$K$7$F$/$@$5$$!#(B</p> + <p><code>mod_dumpio</code> を使うと、Apache が受け取ったすべての入力と + Apache により送られたすべての出力との、両方もしくはどちらか一方を、 + エラーログファイルにログ収集 <transnote>ダンプ dump</transnote> + できます。</p> + + <p>データのロギングは、SSL 復号化の直後 (入力) と SSL + 暗号化の直前 (出力) に行なわれます。ご想像の通り、 + このモジュールはとてつもないデータ量を出力しますので、 + 問題をデバッグしているときにのみ使用するようにしてください。</p> </summary> <section id="enable"> - <title>dumpio $B%5%]!<%H$rM-8z$K$9$k(B</title> + <title>dumpio サポートを有効にする</title> - <p>$B$3$N%b%8%e!<%k$rM-8z$K$9$k$K$O!"%b%8%e!<%k$,%3%s%Q%$%k$5$l$F$$$F!"(B - $B<B9T$9$k(B Apache $B$N@_Dj$G%5!<%P$KAH$_9~$^$l$F$$$kI,MW$,$"$j$^$9!#(B - $B%m%.%s%05!G=$O!"0J2<$N%G%#%l%/%F%#%V$r;H$C$FM-8z$K$7$?$j(B - $BL58z$K$7$?$j$G$-$^$9!#(B</p> + <p>このモジュールを有効にするには、モジュールがコンパイルされていて、 + 実行する Apache の設定でサーバに組み込まれている必要があります。 + ロギング機能は、以下のディレクティブを使って有効にしたり + 無効にしたりできます。</p> </section> <directivesynopsis> <name>DumpIOInput</name> -<description>$B%(%i!<%m%0$K$9$Y$F$NF~NO%G!<%?$r%@%s%W(B</description> +<description>エラーログにすべての入力データをダンプ</description> <syntax>DumpIOInput On|Off</syntax> <default>DumpIOInput Off</default> <contextlist><context>server config</context></contextlist> -<compatibility>DumpIOInput $B$O(B Apache 2.1.3 $B0J9_$N$_$G;HMQ2DG=(B</compatibility> +<compatibility>DumpIOInput は Apache 2.1.3 以降のみで使用可能</compatibility> <usage> - <p>$B$9$Y$F$NF~NO$N%@%s%W$rM-8z$K$7$^$9!#(B</p> + <p>すべての入力のダンプを有効にします。</p> - <example><title>$BNc(B</title> + <example><title>例</title> DumpIOInput On </example> </usage> @@ -71,16 +71,16 @@ <directivesynopsis> <name>DumpIOOutput</name> -<description>$B%(%i!<%m%0$K$9$Y$F$N=PNO%G!<%?$r%@%s%W(B</description> +<description>エラーログにすべての出力データをダンプ</description> <syntax>DumpIOOutput On|Off</syntax> <default>DumpIOOutput Off</default> <contextlist><context>server config</context></contextlist> -<compatibility>DumpIOOutput $B$O(B Apache 2.1.3 $B0J9_$G$N$_;HMQ2DG=(B</compatibility> +<compatibility>DumpIOOutput は Apache 2.1.3 以降でのみ使用可能</compatibility> <usage> - <p>$B$9$Y$F$N=PNO$N%@%s%W$rM-8z$K$7$^$9!#(B</p> + <p>すべての出力のダンプを有効にします。</p> - <example><title>$BNc(B</title> + <example><title>例</title> DumpIOOutput On </example> </usage> diff --git a/docs/manual/mod/mod_echo.xml.ja b/docs/manual/mod/mod_echo.xml.ja index fc2897fbb0..a40839c91a 100644 --- a/docs/manual/mod/mod_echo.xml.ja +++ b/docs/manual/mod/mod_echo.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 420990:654507 (outdated) --> @@ -23,33 +23,33 @@ <modulesynopsis metafile="mod_echo.xml.meta"> <name>mod_echo</name> -<description>$B%W%m%H%3%k%b%8%e!<%k$N35MW$r<($9$?$a$NC1=c$J%(%3!<%5!<%P(B +<description>プロトコルモジュールの概要を示すための単純なエコーサーバ </description> <status>Experimental</status> <sourcefile>mod_echo.c</sourcefile> <identifier>echo_module</identifier> -<compatibility>Apache 2.0 $B0J9_(B</compatibility> +<compatibility>Apache 2.0 以降</compatibility> <summary> - <p>$BK\%b%8%e!<%k$O%3%s%;%W%H$rEA$($k$?$a$N%W%m%H%3%k%b%8%e!<%k$N(B - $B<BAuNc$H$J$C$F$$$^$9!#C1=c$J%(%3!<%5!<%P$rDs6!$7$^$9!#(B - Telnet $B$G@\B3$7!"J8;zNs$rAw?.$9$k$H!"%(%3!<$rJV$7$^$9!#(B</p> + <p>本モジュールはコンセプトを伝えるためのプロトコルモジュールの + 実装例となっています。単純なエコーサーバを提供します。 + Telnet で接続し、文字列を送信すると、エコーを返します。</p> </summary> <directivesynopsis> <name>ProtocolEcho</name> -<description>$B%(%3!<%5!<%P$NM-8zL58z$r@_Dj$7$^$9!#(B</description> +<description>エコーサーバの有効無効を設定します。</description> <syntax>ProtocolEcho On|Off</syntax> <contextlist><context>server config</context> <context>virtual host</context></contextlist> -<compatibility>Apache 2.0 $B0J9_(B</compatibility> +<compatibility>Apache 2.0 以降</compatibility> <usage> - <p><directive>ProtocolEcho</directive> $B%G%#%l%/%F%#%V$G(B - $B%(%3!<%5!<%P$NM-8zL58z$r@_Dj$7$^$9!#(B</p> + <p><directive>ProtocolEcho</directive> ディレクティブで + エコーサーバの有効無効を設定します。</p> - <example><title>$BNc(B</title> + <example><title>例</title> ProtocolEcho On </example> </usage> diff --git a/docs/manual/mod/mod_env.xml.ja b/docs/manual/mod/mod_env.xml.ja index 643e8642ef..7ce40f7f75 100644 --- a/docs/manual/mod/mod_env.xml.ja +++ b/docs/manual/mod/mod_env.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 420990 --> @@ -23,23 +23,23 @@ <modulesynopsis metafile="mod_env.xml.meta"> <name>mod_env</name> -<description>CGI $B%9%/%j%W%H5Z$S(B SSI -$B%Z!<%8$KEO$5$l$k4D6-JQ?t$rJQ99$9$k5!G=$rDs6!$9$k(B</description> +<description>CGI スクリプト及び SSI +ページに渡される環境変数を変更する機能を提供する</description> <status>Base</status> <sourcefile>mod_env.c</sourcefile> <identifier>env_module</identifier> <summary> - <p>$B$3$N%b%8%e!<%k$K$h$j(B CGI $B%9%/%j%W%H$H(B SSI - $B%Z!<%8$KE,MQ$5$l$k4D6-JQ?t$r@)8f$9$k$3$H$,$G$-$k$h$&$K$J$j$^$9!#(B - $B4D6-JQ?t$O(B <program>httpd</program> $B%W%m%;%9$r5/F0$7$?%7%'%k$+$iEO$5$l$^$9!#$^$?!"(B - $B@_Dj%U%!%$%k$G4D6-JQ?t$r@_Dj$7$?$j!":o=|$7$?$j$9$k$3$H$,$G$-$^$9!#(B + <p>このモジュールにより CGI スクリプトと SSI + ページに適用される環境変数を制御することができるようになります。 + 環境変数は <program>httpd</program> プロセスを起動したシェルから渡されます。また、 + 設定ファイルで環境変数を設定したり、削除したりすることができます。 </p> </summary> -<seealso><a href="../env.html">$B4D6-JQ?t(B</a></seealso> +<seealso><a href="../env.html">環境変数</a></seealso> <directivesynopsis> <name>PassEnv</name> -<description>$B%7%'%k$+$i$N4D6-JQ?t$rEO$9(B</description> +<description>シェルからの環境変数を渡す</description> <syntax>PassEnv <var>env-variable</var> [<var>env-variable</var>] ...</syntax> <contextlist> @@ -49,10 +49,10 @@ <usage> - <p><program>httpd</program> $B%W%m%;%9$r5/F0$7$?%7%'%k$N4D6-$+$i(B CGI $B%9%/%j%W%H$H(B - SSI $B%Z!<%8$KEO$94D6-JQ?t$r0l$D0J>e;XDj$7$^$9!#(B</p> + <p><program>httpd</program> プロセスを起動したシェルの環境から CGI スクリプトと + SSI ページに渡す環境変数を一つ以上指定します。</p> - <example><title>$BNc(B</title> + <example><title>例</title> PassEnv LD_LIBRARY_PATH </example> </usage> @@ -60,17 +60,17 @@ <directivesynopsis> <name>SetEnv</name> -<description>$B4D6-JQ?t$r@_Dj$9$k(B</description> +<description>環境変数を設定する</description> <syntax>SetEnv <var>env-variable</var> <var>value</var></syntax> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context></contextlist> <override>FileInfo</override> <usage> - <p>$B4D6-JQ?t$r@_Dj$7!"$=$l$r(B CGI $B%9%/%j%W%H$H(B SSI - $B%Z!<%8$KEO$9$h$&$K$7$^$9!#(B</p> + <p>環境変数を設定し、それを CGI スクリプトと SSI + ページに渡すようにします。</p> - <example><title>$BNc(B</title> + <example><title>例</title> SetEnv SPECIAL_PATH /foo/bin </example> </usage> @@ -78,7 +78,7 @@ <directivesynopsis> <name>UnsetEnv</name> -<description>$B4D6-$+$iJQ?t$r<h$j=|$/(B</description> +<description>環境から変数を取り除く</description> <syntax>UnsetEnv <var>env-variable</var> [<var>env-variable</var>] ...</syntax> <contextlist> @@ -87,10 +87,10 @@ <override>FileInfo</override> <usage> - <p>CGI $B%9%/%j%W%H$H(B SSI - $B%Z!<%8$KEO$5$l$k4D6-JQ?t$+$i;XDj$5$l$?4D6-JQ?t$r<h$j=|$-$^$9!#(B</p> + <p>CGI スクリプトと SSI + ページに渡される環境変数から指定された環境変数を取り除きます。</p> - <example><title>$BNc(B</title> + <example><title>例</title> UnsetEnv LD_LIBRARY_PATH </example> </usage> diff --git a/docs/manual/mod/mod_expires.xml.ja b/docs/manual/mod/mod_expires.xml.ja index 493fd26912..ee95e3fe68 100644 --- a/docs/manual/mod/mod_expires.xml.ja +++ b/docs/manual/mod/mod_expires.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 420990 --> @@ -23,38 +23,38 @@ <modulesynopsis metafile="mod_expires.xml.meta"> <name>mod_expires</name> -<description>$B%f!<%6$N;XDj$7$?4p=`$K4p$E$$$?(B <code>Expires</code> $B$H(B -<code>Cache-Control</code> HTTP $B%X%C%@$N@8@.(B</description> +<description>ユーザの指定した基準に基づいた <code>Expires</code> と +<code>Cache-Control</code> HTTP ヘッダの生成</description> <status>Extension</status> <sourcefile>mod_expires.c</sourcefile> <identifier>expires_module</identifier> <summary> - <p>$B$3$N%b%8%e!<%k$O%5!<%P1~Ez$N(B <code>Expires</code> HTTP $B%X%C%@(B - $B$H(B <code>Cache-Control</code> $B%X%C%@$N(B <code>max-age</code> $B%G%#%l%/%F%#%V$N(B - $B@_Dj$r@)8f$7$^$9!#85$N%U%!%$%k$,:n@.$5$l$?;~9o$^$?$O(B - $B%/%i%$%"%s%H$N%"%/%;%9;~9o$N$I$A$i$+$K4p$E$$$F4|8B@Z$lF|$r(B - $B@_Dj$9$k$3$H$,$G$-$^$9!#(B</p> - - <p>$B$3$l$i$N%X%C%@$O%/%i%$%"%s%H$KJ8=q$N(B - $BM-8z@-$H7QB3@-$r;X<($7$^$9!#J8=q$,%-%c%C%7%e$5$l$?>l9g$K$O!"(B - $B;XDj;~9o$KC#$9$k$^$G$O!"85$N>l=j$+$i<hF@$9$kBe$o$j$K(B - $B%-%c%C%7%e$5$l$F$$$k$b$N$r;H$&$3$H$,$G$-$^$9!#$=$N8e$O!"(B - $B%-%c%C%7%e$K$"$k%3%T!<$O4|8B@Z$l(B (expired) $B$GL58z$G$"$k$H$5$l!"(B - $B85$N>l=j$+$i?7$7$$$b$N$r<hF@$9$kI,MW$,$"$j$^$9!#(B</p> - - <p><code>max-age</code> $B0J30(B (<a + <p>このモジュールはサーバ応答の <code>Expires</code> HTTP ヘッダ + と <code>Cache-Control</code> ヘッダの <code>max-age</code> ディレクティブの + 設定を制御します。元のファイルが作成された時刻または + クライアントのアクセス時刻のどちらかに基づいて期限切れ日を + 設定することができます。</p> + + <p>これらのヘッダはクライアントに文書の + 有効性と継続性を指示します。文書がキャッシュされた場合には、 + 指定時刻に達するまでは、元の場所から取得する代わりに + キャッシュされているものを使うことができます。その後は、 + キャッシュにあるコピーは期限切れ (expired) で無効であるとされ、 + 元の場所から新しいものを取得する必要があります。</p> + + <p><code>max-age</code> 以外 (<a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9">RFC - 2616 section 14.9</a> $B;2>H(B) $B$N(B <code>Cache-Control</code> $B$N%G%#%l%/%F%#%V$r(B - $BA`:n$9$k$K$O(B <directive - module="mod_headers">Header</directive> $B%G%#%l%/%F%#%V$r(B - $B;H$&$3$H$,$G$-$^$9!#(B</p></summary> + 2616 section 14.9</a> 参照) の <code>Cache-Control</code> のディレクティブを + 操作するには <directive + module="mod_headers">Header</directive> ディレクティブを + 使うことができます。</p></summary> -<section id="AltSyn"><title>$BBeBX4|4V;XDj9=J8(B</title> +<section id="AltSyn"><title>代替期間指定構文</title> - <p><directive module="mod_expires">ExpiresDefault</directive> $B%G%#%l%/%F%#%V$H(B - <directive module="mod_expires">ExpiresByType</directive> $B%G%#%l%/%F%#%V$O(B - $B0J2<$N$h$jFI$_0W$$9=J8$r;H$C$FDj5A$9$k$3$H$,$G$-$^$9(B:</p> + <p><directive module="mod_expires">ExpiresDefault</directive> ディレクティブと + <directive module="mod_expires">ExpiresByType</directive> ディレクティブは + 以下のより読み易い構文を使って定義することができます:</p> <example> ExpiresDefault "<base> [plus] {<num> @@ -63,19 +63,19 @@ {<num> <type>}*" </example> - <p><base> $B$O0J2<$N$I$l$+$G$9(B:</p> + <p><base> は以下のどれかです:</p> <ul> <li><code>access</code></li> - <li><code>now</code> ('<code>access</code>' $B$HEy2A(B)</li> + <li><code>now</code> ('<code>access</code>' と等価)</li> <li><code>modification</code></li> </ul> - <p><code>plus</code> $B%-!<%o!<%I$O>JN,2DG=$G$9!#(B<num> - $B$O(B (<code>atoi()</code> $B$,<u$1IU$1$k(B) $B@0?tCM!"(B - <type> $B$O0J2<$N$I$l$+$G$9(B:</p> + <p><code>plus</code> キーワードは省略可能です。<num> + は (<code>atoi()</code> が受け付ける) 整数値、 + <type> は以下のどれかです:</p> <ul> <li><code>years</code></li> @@ -87,8 +87,8 @@ <li><code>seconds</code></li> </ul> - <p>$BNc$($P!"0J2<$N%G%#%l%/%F%#%V$O$I$l$b%G%U%)%k%H$GJ8=q$,%"%/%;%9$N(B 1 $B%v7n8e$K(B - $B4|8B$,@Z$l$k$h$&$K$9$k$?$a$K;H$($^$9(B:</p> + <p>例えば、以下のディレクティブはどれもデフォルトで文書がアクセスの 1 ヶ月後に + 期限が切れるようにするために使えます:</p> <example> ExpiresDefault "access plus 1 month"<br /> @@ -96,9 +96,9 @@ ExpiresDefault "access plus 30 days" </example> - <p>$B4|8B@Z$l;~9o$O$$$/$D$+(B - '<num> <type>' $B@a$rDI2C$9$k$3$H$G$h$j:Y$+$/(B - $B@)8f$9$k$3$H$,$G$-$^$9(B:</p> + <p>期限切れ時刻はいくつか + '<num> <type>' 節を追加することでより細かく + 制御することができます:</p> <example> ExpiresByType text/html "access plus 1 month 15 @@ -107,14 +107,14 @@ minutes" </example> - <p>$B=$@5;~9o$K4p$E$$$?@_Dj$r;HMQ$7$F$$$k>l9g!"(BExpires $B%X%C%@$O(B - $B%G%#%9%/$N%U%!%$%k0J30$N%3%s%F%s%D$K$O(B<strong>$BDI2C$5$l$J$$(B</strong>$B$3$H$KCm0U(B - $B$7$F$/$@$5$$!#$=$N$h$&$J%3%s%F%s%D$K$O=$@5;~9o$OB8:_$7$J$$$+$i$G$9!#(B</p> + <p>修正時刻に基づいた設定を使用している場合、Expires ヘッダは + ディスクのファイル以外のコンテンツには<strong>追加されない</strong>ことに注意 + してください。そのようなコンテンツには修正時刻は存在しないからです。</p> </section> <directivesynopsis> <name>ExpiresActive</name> -<description><code>Expires</code> $B%X%C%@$N@8@.$rM-8z$K$9$k(B</description> +<description><code>Expires</code> ヘッダの生成を有効にする</description> <syntax>ExpiresActive On|Off</syntax> <contextlist><context>server config</context> <context>virtual host</context><context>directory</context> @@ -122,30 +122,30 @@ <override>Indexes</override> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$OBP1~$9$k%I%-%e%a%s%H$NNN0h$G(B - <code>Expires</code> $B$H(B <code>Cache-Control</code>$B%X%C%@$r(B - $BM-8z$K$9$k$+L58z$K$9$k$+$r7h$a$^$9!#(B - ($BNc$($P!"(B<code>.htaccess</code> $B%U%!%$%k$G$O$=$N%G%#%l%/%H%j$N(B - $BJ8=q$N$_$KE,MQ$5$l$k$H$$$&$3$H$G$9!#(B) <code>Off</code> $B$K(B - $B@_Dj$5$l$?>l9g$OBP1~NN0h$G$=$l$i$N%X%C%@$O(B - $B@8@.$5$l$^$;$s(B (<code>.htaccess</code> $B$,%5!<%P@_Dj%U%!%$%k$N@_Dj$r(B - $B>e=q$-$9$k!"$H$$$&$h$&$J2<0L%l%Y%k$G$N>e=q$-$,$5$l$F$$$J$1$l$P(B)$B!#(B - <code>On</code> $B$K@_Dj$5$l$F$$$l$P!"%X%C%@$O(B <directive - module="mod_expires">ExpiresByType</directive> $B%G%#%l%/%F%#%V$H(B - <directive module="mod_expires">ExpiresDefault</directive> $B%G%#%l%/%F%#%V(B - $B$N4p=`$K=>$C$FJ8=q$K%X%C%@$rDI2C$7$^$9(B ($B3F%G%#%l%/%F%#%V;2>H(B)$B!#(B</p> - - <p>$B$3$N%G%#%l%/%F%#%V$O(B <code>Expires</code> $B$H(B - <code>Cache-Control</code> $B%X%C%@$NB8:_$r(B - $BJ]>Z$9$k$o$1$G$O$J$$$3$H$KCm0U$7$F$/$@$5$$!#4p=`$,K~$?$5$l$F(B - $B$$$J$$>l9g$O%X%C%@$ODI2C$5$l$:!"7k2L$H$7$F$3$N%G%#%l%/%F%#%V$,(B - $B;XDj$5$l$F$$$J$+$C$?$+$N$h$&$K$5$(8+$($k$3$H$K$J$j$^$9!#(B</p> + <p>このディレクティブは対応するドキュメントの領域で + <code>Expires</code> と <code>Cache-Control</code>ヘッダを + 有効にするか無効にするかを決めます。 + (例えば、<code>.htaccess</code> ファイルではそのディレクトリの + 文書のみに適用されるということです。) <code>Off</code> に + 設定された場合は対応領域でそれらのヘッダは + 生成されません (<code>.htaccess</code> がサーバ設定ファイルの設定を + 上書きする、というような下位レベルでの上書きがされていなければ)。 + <code>On</code> に設定されていれば、ヘッダは <directive + module="mod_expires">ExpiresByType</directive> ディレクティブと + <directive module="mod_expires">ExpiresDefault</directive> ディレクティブ + の基準に従って文書にヘッダを追加します (各ディレクティブ参照)。</p> + + <p>このディレクティブは <code>Expires</code> と + <code>Cache-Control</code> ヘッダの存在を + 保証するわけではないことに注意してください。基準が満たされて + いない場合はヘッダは追加されず、結果としてこのディレクティブが + 指定されていなかったかのようにさえ見えることになります。</p> </usage> </directivesynopsis> <directivesynopsis> <name>ExpiresByType</name> -<description>MIME $B%?%$%W$K$h$C$F@_Dj$5$l$k(B <code>Expires</code> $B%X%C%@$NCM(B</description> +<description>MIME タイプによって設定される <code>Expires</code> ヘッダの値</description> <syntax>ExpiresByType <var>MIME-type</var> <var><code>seconds</var></syntax> <contextlist><context>server config</context><context>virtual host</context> @@ -153,31 +153,31 @@ <override>Indexes</override> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O;XDj$5$l$?%?%$%W$N%I%-%e%a%s%H(B - (<em>$BNc$($P(B</em> <code>text/html</code>) - $B$KBP$7$F@8@.$5$l$k(B <code>Expires</code> $B%X%C%@$H(B <code>Cache-Control</code> - $B%X%C%@$N(B <code>max-age</code> $B%G%#%l%/%F%#%V$NCM$rDj5A$7$^$9!#(B - $BFs$DL\$N0z?t$O4|8B@Z$l$NF|;~$r@8@.$9$k$?$a$N4p=`;~9o$KDI2C$5$l$k(B - $BIC?t$r@_Dj$7$^$9!#(B<code>Cache-Control: - max-age</code> $B$O4|8B@Z$l$N;~9o$+$i%j%/%(%9%H;~9o$r0z$$$?$b$N$rIC$G(B - $BI=$9$3$H$G@8@.$5$l$^$9!#(B</p> - - <p>$B4p=`;~9o$O%U%!%$%k$N:G=*=$@5;~9o$+!"%/%i%$%"%s%H$N%I%-%e%a%s%H$X$N(B - $B%"%/%;%9;~9o$G$9!#$I$A$i$r;H$&$Y$-$+$O(B <code><var><code></var></code> - $B$K$h$C$F;XDj$7$^$9!#(B<code>M</code> $B$O4p=`;~9o$H$7$F(B - $B%U%!%$%k$N:G=*=$@5;~9o$r$H$$$&0UL#$G!"(B<code>A</code> $B$O%/%i%$%"%s%H$N(B - $B%"%/%;%9;~9o$r;H$&$H$$$&0UL#$K$J$j$^$9!#(B</p> - - <p>$B8z2L$K$OHyL/$J0c$$$,$"$j$^$9!#(B<code>M</code> $B$,;HMQ$5$l$?>l9g$O!"(B - $B$9$Y$F$N%-%c%C%7%e$K$"$k8=:_$N%I%-%e%a%s%H%-%c%C%7%e$OF1;~$K4|8B$,(B - $B@Z$l$^$9!#$3$l$OF1$8(B URL $B$KKh=5>o$KCV$+$l$kJs$;$N$h$&$J$b$N$K$O(B - $BHs>o$KM-8z$G$9!#(B<code>A</code> $B$,;HMQ$5$l$?>l9g$O!"4|8B@Z$l$N(B - $B;~4V$O3F%/%i%$%"%s%H$h$C$F0[$J$j$^$9!#$3$l$O$"$^$jJQ99$5$l$J$$(B - $B2hA|%U%!%$%k$J$I!"FC$K4XO"$9$k%I%-%e%a%s%H72$,$9$Y$FF1$82hA|$r(B - $B;2>H$9$k$H$-(B (<em>$B$9$J$o$A(B</em>$B2hA|$,Hf3SE*C;$$4|4VFb$K7+$jJV$7(B - $B%"%/%;%9$5$l$k$H$-(B) $B$KM-8z$G$9!#(B</p> - - <example><title>$BNc(B:</title> + <p>このディレクティブは指定されたタイプのドキュメント + (<em>例えば</em> <code>text/html</code>) + に対して生成される <code>Expires</code> ヘッダと <code>Cache-Control</code> + ヘッダの <code>max-age</code> ディレクティブの値を定義します。 + 二つ目の引数は期限切れの日時を生成するための基準時刻に追加される + 秒数を設定します。<code>Cache-Control: + max-age</code> は期限切れの時刻からリクエスト時刻を引いたものを秒で + 表すことで生成されます。</p> + + <p>基準時刻はファイルの最終修正時刻か、クライアントのドキュメントへの + アクセス時刻です。どちらを使うべきかは <code><var><code></var></code> + によって指定します。<code>M</code> は基準時刻として + ファイルの最終修正時刻をという意味で、<code>A</code> はクライアントの + アクセス時刻を使うという意味になります。</p> + + <p>効果には微妙な違いがあります。<code>M</code> が使用された場合は、 + すべてのキャッシュにある現在のドキュメントキャッシュは同時に期限が + 切れます。これは同じ URL に毎週常に置かれる報せのようなものには + 非常に有効です。<code>A</code> が使用された場合は、期限切れの + 時間は各クライアントよって異なります。これはあまり変更されない + 画像ファイルなど、特に関連するドキュメント群がすべて同じ画像を + 参照するとき (<em>すなわち</em>画像が比較的短い期間内に繰り返し + アクセスされるとき) に有効です。</p> + + <example><title>例:</title> # enable expirations<br /> ExpiresActive On<br /> # expire GIF images after a month in the client's cache<br /> @@ -187,32 +187,32 @@ ExpiresByType text/html M604800 </example> - <p>$B$3$N%G%#%l%/%F%#%V$O(B <code>ExpiresActive On</code> $B$,;XDj$5$l$F$$$k(B - $B$H$-$N$_M-8z$G$"$k$3$H$KCm0U$7$F$/$@$5$$!#$3$l$O!"(B - $B;XDj$5$l$?(B MIME $B%?%$%W$KBP$7$F(B<em>$B$N$_(B</em> <directive - module="mod_expires">ExpiresDefault</directive> $B%G%#%l%/%F%#%V$G(B - $B@_Dj$5$l$?4|8B@Z$l4|F|$r>e=q$-$7$^$9!#(B</p> + <p>このディレクティブは <code>ExpiresActive On</code> が指定されている + ときのみ有効であることに注意してください。これは、 + 指定された MIME タイプに対して<em>のみ</em> <directive + module="mod_expires">ExpiresDefault</directive> ディレクティブで + 設定された期限切れ期日を上書きします。</p> - <p>$B$3$NJ8=q$NA0$NJ}$G@bL@$5$l$F$$$k(B<a href="#AltSyn">$BBeBX9=J8(B</a>$B$r(B - $B;H$C$F4|8B@Z$l4|F|$N7W;;J}K!$r;XDj$9$k$3$H$b$G$-$^$9!#(B</p> + <p>この文書の前の方で説明されている<a href="#AltSyn">代替構文</a>を + 使って期限切れ期日の計算方法を指定することもできます。</p> </usage> </directivesynopsis> <directivesynopsis> <name>ExpiresDefault</name> -<description>$B4|8B@Z$l4|F|$r7W;;$9$k%G%U%)%k%H%"%k%4%j%:%`(B</description> +<description>期限切れ期日を計算するデフォルトアルゴリズム</description> <syntax>ExpiresDefault <var><code>seconds</var></syntax> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context></contextlist> <override>Indexes</override> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$OBP1~$9$kHO0O$N$9$Y$F$N%I%-%e%a%s%H$KBP$7$F(B - $B%G%U%)%k%H$N4|8B@Z$l4|F|$N7W;;%"%k%4%j%:%`$r@_Dj$7$^$9!#(B<directive - module="mod_expires">ExpiresByType</directive> $B%G%#%l%/%F%#%V$K$h$C$F(B - $B%?%$%WKh$K>e=q$-$9$k$3$H$,$G$-$^$9!#0z?t$N9=J8$O$=$N%G%#%l%/%F%#%V$N(B - $B@bL@$r;2>H$7$F$/$@$5$$!#$^$?!"(B<a href="#AltSyn">$BBeBX9=J8(B</a>$B$b(B - $B;2>H$7$F$/$@$5$$!#(B</p> + <p>このディレクティブは対応する範囲のすべてのドキュメントに対して + デフォルトの期限切れ期日の計算アルゴリズムを設定します。<directive + module="mod_expires">ExpiresByType</directive> ディレクティブによって + タイプ毎に上書きすることができます。引数の構文はそのディレクティブの + 説明を参照してください。また、<a href="#AltSyn">代替構文</a>も + 参照してください。</p> </usage> </directivesynopsis> </modulesynopsis> diff --git a/docs/manual/mod/mod_ext_filter.xml.ja b/docs/manual/mod/mod_ext_filter.xml.ja index c94ebd9773..b98bf35ff6 100644 --- a/docs/manual/mod/mod_ext_filter.xml.ja +++ b/docs/manual/mod/mod_ext_filter.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 151408:420990 (outdated) --> @@ -23,39 +23,39 @@ <modulesynopsis metafile="mod_ext_filter.xml.meta"> <name>mod_ext_filter</name> -<description>$B%l%9%]%s%9$N%\%G%#$r%/%i%$%"%s%H$KAw$kA0$K30It%W%m%0%i%`$G=hM}$9$k(B</description> +<description>レスポンスのボディをクライアントに送る前に外部プログラムで処理する</description> <status>Extension</status> <sourcefile>mod_ext_filter.c</sourcefile> <identifier>ext_filter_module</identifier> <summary> - <p><module>mod_ext_filter</module> $B$G$O(B <a href="../filter.html">$B%U%#%k%?(B</a> - $B$N47$l?F$7$s$@C1=c$J%W%m%0%i%_%s%0%b%G%k$,Ds6!$5$l$^$9!#$3$N%b%8%e!<%k$r(B - $B;H$($P!"I8=`F~NO$+$iFI$_9~$s$G!"I8=`=PNO$K=q$-=P$9%W%m%0%i%`(B - ($B$9$J$o$A(B Unix $B7A<0$N%U%#%k%?%3%^%s%I(B) $B$r(B Apache $B$N%U%#%k%?$K$9$k$3$H$,(B - $B$G$-$^$9!#$3$N%U%#%k%?$N5!9=$O!"(BApache API $B8~$1$K=q$+$l$?(B Apache - $B%5!<%P%W%m%;%9Fb$G<B9T$5$l$k@lMQ$N%U%#%k%?$h$j$b$:$C$HCY$$$G$9$,!"(B - $B0J2<$N$h$&$JMxE@$b$"$j$^$9!#(B</p> + <p><module>mod_ext_filter</module> では <a href="../filter.html">フィルタ</a> + の慣れ親しんだ単純なプログラミングモデルが提供されます。このモジュールを + 使えば、標準入力から読み込んで、標準出力に書き出すプログラム + (すなわち Unix 形式のフィルタコマンド) を Apache のフィルタにすることが + できます。このフィルタの機構は、Apache API 向けに書かれた Apache + サーバプロセス内で実行される専用のフィルタよりもずっと遅いですが、 + 以下のような利点もあります。</p> <ul> - <li>$B$:$C$H%7%s%W%k$J%W%m%0%i%_%s%0%b%G%k(B</li> + <li>ずっとシンプルなプログラミングモデル</li> - <li>$B%W%m%0%i%`$,I8=`F~NO$+$iFI$s$GI8=`=PNO$K=q$/$b$N$G$"$k8B$j!"(B - $B$I$s$J%W%m%0%i%`8@8l$d%9%/%j%W%H8@8l$G$b;H$&$3$H$,$G$-$k(B</li> + <li>プログラムが標準入力から読んで標準出力に書くものである限り、 + どんなプログラム言語やスクリプト言語でも使うことができる</li> - <li>$B4{B8$N%W%m%0%i%`$rJQ99$9$k$3$H$J$/(B Apache $B$N%U%#%k%?$H$7$F(B - $B;H$&$3$H$,$G$-$k(B</li> + <li>既存のプログラムを変更することなく Apache のフィルタとして + 使うことができる</li> </ul> - <p>$B@-G=$NLdBj$K$h$j<B1?MQ$KE,$5$J$$$H$7$F$b!"%U%#%k%?$N%W%m%H%?%$%WMQ$N(B - $B4D6-$H$7$F$O(B <module>mod_ext_filter</module> $B$O;H$($^$9!#(B</p> + <p>性能の問題により実運用に適さないとしても、フィルタのプロトタイプ用の + 環境としては <module>mod_ext_filter</module> は使えます。</p> </summary> -<seealso><a href="../filter.html">$B%U%#%k%?(B</a></seealso> +<seealso><a href="../filter.html">フィルタ</a></seealso> -<section id="examples"><title>$BNc(B</title> +<section id="examples"><title>例</title> - <section><title>$BB>$N%?%$%W$N%l%9%]%s%9$+$i(B HTML $B$r@8@.$9$k(B</title> + <section><title>他のタイプのレスポンスから HTML を生成する</title> <example> # mod_ext_filter directive to define a filter<br /> # to HTML-ize text/c files using the external<br /> @@ -86,9 +86,9 @@ </example> </section> - <section><title>$B%3%s%F%s%H%(%s%3!<%G%#%s%0$N%U%#%k%?$r<BAu$9$k(B</title> - <p>$BCm(B: $B$3$N(B gzip $B$NNc$O%G%bMQ$G$9!#<BMQE*$J<BAu$O(B - <module>mod_deflate</module> $B$r;2>H$7$F$/$@$5$$!#(B</p> + <section><title>コンテントエンコーディングのフィルタを実装する</title> + <p>注: この gzip の例はデモ用です。実用的な実装は + <module>mod_deflate</module> を参照してください。</p> <example> # mod_ext_filter directive to define the external filter<br /> @@ -108,7 +108,7 @@ </example> </section> - <section><title>$B%5!<%P$rCY$/$9$k(B</title> + <section><title>サーバを遅くする</title> <example> # mod_ext_filter directive to define a filter<br /> # which runs everything through cat; cat doesn't<br /> @@ -130,7 +130,7 @@ </example> </section> - <section><title>sed $B$r;H$C$F1~EzCf$N%F%-%9%H$rCV49$9$k(B</title> + <section><title>sed を使って応答中のテキストを置換する</title> <example> # mod_ext_filter directive to define a filter which<br /> # replaces text in the response<br /> @@ -150,7 +150,7 @@ </example> </section> - <section><title>$BJL$N%U%#%k%?$N%H%l!<%9(B</title> + <section><title>別のフィルタのトレース</title> <example> # Trace the data read and written by mod_deflate<br /> # for a particular client (IP 192.168.1.31)<br /> @@ -183,7 +183,7 @@ </Directory> </example> - <example><title>$B%G!<%?$r%H%l!<%9$9$k%U%#%k%?(B:</title> + <example><title>データをトレースするフィルタ:</title> #!/usr/local/bin/perl -w<br /> use strict;<br /> <br /> @@ -206,138 +206,138 @@ <directivesynopsis> <name>ExtFilterDefine</name> -<description>$B30It%U%#%k%?$rDj5A(B</description> +<description>外部フィルタを定義</description> <syntax>ExtFilterDefine <var>filtername</var> <var>parameters</var></syntax> <contextlist><context>server config</context></contextlist> <usage> - <p><directive>ExtFilterDefine</directive> $B$O!"<B9T$9$k%W%m%0%i%`$d(B - $B0z?t$J$I!"30It%U%#%k%?$NFC@-$rDj5A$7$^$9!#(B</p> + <p><directive>ExtFilterDefine</directive> は、実行するプログラムや + 引数など、外部フィルタの特性を定義します。</p> - <p><var>filtername</var> $B$ODj5A$9$k%U%#%k%?$NL>A0$r;XDj$7$^$9!#(B - $B$3$NL>A0$O8e$G(B <directive module="core">SetOutputFilter</directive> - $B%G%#%l%/%F%#%V$G;XDj$G$-$^$9!#L>A0$OEPO?$5$l$k$9$Y$F$N%U%#%k%?$G(B - $B0l0U$G$J$/$F$O$J$j$^$;$s!#(B<em>$B8=;~E@$G$O!"%U%#%k%?$NEPO?(B API $B$+$i$O(B - $B%(%i!<$OJs9p$5$l$^$;$s!#$G$9$+$i!"=EJ#$9$kL>A0$r;H$C$F$7$^$C$?$H$-$G$b(B - $B%f!<%6$K$O$=$N$3$H$OJs9p$5$l$^$;$s!#(B</em></p> + <p><var>filtername</var> は定義するフィルタの名前を指定します。 + この名前は後で <directive module="core">SetOutputFilter</directive> + ディレクティブで指定できます。名前は登録されるすべてのフィルタで + 一意でなくてはなりません。<em>現時点では、フィルタの登録 API からは + エラーは報告されません。ですから、重複する名前を使ってしまったときでも + ユーザにはそのことは報告されません。</em></p> - <p>$BB3$/%Q%i%a!<%?$N=gHV$O4X78L5$/!"$=$l$i$O<B9T$9$k30It%3%^%s%I$H!"(B - $BB>$NFC@-$rDj5A$7$^$9!#(B<code>cmd=</code> $B$@$1$,I,?\$N%Q%i%a!<%?$G$9!#(B - $B;XDj2DG=$J%Q%i%a!<%?$O(B:</p> + <p>続くパラメータの順番は関係無く、それらは実行する外部コマンドと、 + 他の特性を定義します。<code>cmd=</code> だけが必須のパラメータです。 + 指定可能なパラメータは:</p> <dl> <dt><code>cmd=<var>cmdline</var></code></dt> - <dd><code>cmd=</code> $B%-!<%o!<%I$O<B9T$9$k30It%3%^%s%I$r;XDj$7$^$9!#(B - $B%W%m%0%i%`L>$N8e$K0z?t$,$"$k>l9g$O!"%3%^%s%I9T$O0zMQId$G0O$`(B - $BI,MW$,$"$j$^$9(B (<em>$BNc$($P(B</em>$B!"(B<code>cmd="<var>/bin/mypgm</var> - <var>arg1</var> <var>arg2</var>"</code> $B$N$h$&$K(B)$B!#%W%m%0%i%`$O(B - $B%7%'%k7PM3$G$J$/!"D>@\<B9T$5$l$^$9$N$G!"DL>o$N%7%'%kMQ$N(B - $B%(%9%1!<%W$OI,MW$"$j$^$;$s!#%W%m%0%i%`$N0z?t$O6uGr$G6h@Z$i$l$^$9!#(B - $B%W%m%0%i%`$N0z?t$N0lIt$H$J$kI,MW$N$"$k6uGr$O%P%C%/%9%Z!<%9$G%(%9%1!<%W(B - $B$G$-$^$9!#0z?t$N0lIt$K$J$k%P%C%/%9%i%C%7%e$O%P%C%/%9%i%C%7%e$G(B - $B%(%9%1!<%W$9$kI,MW$,$"$j$^$9!#I8=`$N(B CGI $B4D6-JQ?t$K2C$($F!"(B - $B4D6-JQ?t(B DOCUMENT_URI, DOCUMENT_PATH_INFO, and - QUERY_STRING_UNESCAPED $B$,%W%m%0%i%`$N$?$a$K@_Dj$5$l$^$9!#(B</dd> + <dd><code>cmd=</code> キーワードは実行する外部コマンドを指定します。 + プログラム名の後に引数がある場合は、コマンド行は引用符で囲む + 必要があります (<em>例えば</em>、<code>cmd="<var>/bin/mypgm</var> + <var>arg1</var> <var>arg2</var>"</code> のように)。プログラムは + シェル経由でなく、直接実行されますので、通常のシェル用の + エスケープは必要ありません。プログラムの引数は空白で区切られます。 + プログラムの引数の一部となる必要のある空白はバックスペースでエスケープ + できます。引数の一部になるバックスラッシュはバックスラッシュで + エスケープする必要があります。標準の CGI 環境変数に加えて、 + 環境変数 DOCUMENT_URI, DOCUMENT_PATH_INFO, and + QUERY_STRING_UNESCAPED がプログラムのために設定されます。</dd> <dt><code>mode=<var>mode</var></code></dt> - <dd>$B1~Ez$r=hM}$9$k%U%#%k%?$K$O(B <code>mode=output</code> ($B%G%U%)%k%H(B) - $B$r;H$$$^$9!#%j%/%(%9%H$r=hM}$9$k%U%#%k%?$K$O(B <code>mode=input</code> - $B$r;H$$$^$9!#(B<code>mode=input</code> $B$O(B Apache 2.1 $B$+$i$N?7$7$$5!G=$G$9!#(B</dd> + <dd>応答を処理するフィルタには <code>mode=output</code> (デフォルト) + を使います。リクエストを処理するフィルタには <code>mode=input</code> + を使います。<code>mode=input</code> は Apache 2.1 からの新しい機能です。</dd> <dt><code>intype=<var>imt</var></code></dt> - <dd>$B$3$N%Q%i%a!<%?$O%U%#%k%?$5$l$k$Y$-%I%-%e%a%s%H$N(B - $B%$%s%?!<%M%C%H%a%G%#%"%?%$%W(B (<em>$B$9$J$o$A(B</em>$B!"(BMIME $B%?%$%W(B) $B$r(B - $B;XDj$7$^$9!#%G%U%)%k%H$G$O$9$Y$F$N%I%-%e%a%s%H$,%U%#%k%?$5$l$^$9!#(B - <code>intype=</code> $B$,;XDj$5$l$F$$$l$P!"%U%#%k%?$O;XDj$5$l$F$$$J$$(B - $B%I%-%e%a%s%H$K$OE,MQ$5$l$J$/$J$j$^$9!#(B</dd> + <dd>このパラメータはフィルタされるべきドキュメントの + インターネットメディアタイプ (<em>すなわち</em>、MIME タイプ) を + 指定します。デフォルトではすべてのドキュメントがフィルタされます。 + <code>intype=</code> が指定されていれば、フィルタは指定されていない + ドキュメントには適用されなくなります。</dd> <dt><code>outtype=<var>imt</var></code></dt> - <dd>$B$3$N%Q%i%a!<%?$O%U%#%k%?$5$l$?%I%-%e%a%s%H$N(B - $B%$%s%?!<%M%C%H%a%G%#%"%?%$%W(B (<em>$B$9$J$o$A(B</em>$B!"(BMIME $B%?%$%W(B) $B$r(B - $B;XDj$7$^$9!#%U%#%k%?F0:n$K$H$b$J$C$F%$%s%?!<%M%C%H%a%G%#%"%?%$%W$,(B - $BJQ$o$k>l9g$KM-MQ$G$9!#%G%U%)%k%H$G$O%$%s%?!<%M%C%H%a%G%#%"%?%$%W$O(B - $BJQ99$5$l$^$;$s!#(B</dd> + <dd>このパラメータはフィルタされたドキュメントの + インターネットメディアタイプ (<em>すなわち</em>、MIME タイプ) を + 指定します。フィルタ動作にともなってインターネットメディアタイプが + 変わる場合に有用です。デフォルトではインターネットメディアタイプは + 変更されません。</dd> <dt><code>PreservesContentLength</code></dt> - <dd><code>PreservesContentLength</code> $B%-!<%o!<%I$O%U%#%k%?$,(B - content length <transnote>$B%3%s%F%s%H$ND9$5(B</transnote> - $B$rJQ99$7$J$$$H$$$&$3$H$r;XDj$7$^$9!#$[$H$s$I$N%U%#%k%?$O(B - content length $B$rJQ99$9$k$?$a!"$3$l$O%G%U%)%k%H$G$O$"$j$^$;$s!#(B - $B%U%#%k%?$,D9$5$rJQ$($J$$$H$-$O!"$3$N%-!<%o!<%I$r;XDj$9$k$H(B - $B$h$$$G$7$g$&!#(B</dd> + <dd><code>PreservesContentLength</code> キーワードはフィルタが + content length <transnote>コンテントの長さ</transnote> + を変更しないということを指定します。ほとんどのフィルタは + content length を変更するため、これはデフォルトではありません。 + フィルタが長さを変えないときは、このキーワードを指定すると + よいでしょう。</dd> <dt><code>ftype=<var>filtertype</var></code></dt> - <dd>$B$3$N%Q%i%a!<%?$O%U%#%k%?$,EPO?$5$l$k$Y$-%U%#%k%?%?%$%W$N(B - $B?tCM$r;XDj$7$^$9!#$[$H$s$I$N>l9g$O!"%G%U%)%k%H$N(B AP_FTYPE_RESOURCE $B$G(B - $B==J,$G$9!#%U%#%k%?$,%U%#%k%?%A%'!<%s$NJL$N>l=j$GF0:n$9$kI,MW$,$"$k(B - $B>l9g$O!"$3$N%Q%i%a!<%?$r;XDj$9$kI,MW$,$"$j$^$9!#;XDj2DG=$JCM$O(B - util_filter.h $B$N(B AP_FTYPE_foo $BDj5A$r;2>H$7$F$/$@$5$$!#(B</dd> + <dd>このパラメータはフィルタが登録されるべきフィルタタイプの + 数値を指定します。ほとんどの場合は、デフォルトの AP_FTYPE_RESOURCE で + 十分です。フィルタがフィルタチェーンの別の場所で動作する必要がある + 場合は、このパラメータを指定する必要があります。指定可能な値は + util_filter.h の AP_FTYPE_foo 定義を参照してください。</dd> <dt><code>disableenv=<var>env</var></code></dt> - <dd>$B@_Dj$5$l$F$$$?>l9g$K%U%#%k%?$rL58z$K$9$k$?$a$N4D6-JQ?t$r(B - $B;XDj$7$^$9!#(B</dd> + <dd>設定されていた場合にフィルタを無効にするための環境変数を + 指定します。</dd> <dt><code>enableenv=<var>env</var></code></dt> - <dd>$B$3$N%Q%i%a!<%?$O%U%#%k%?$,M-8z$K$J$k$?$a$K@_Dj$5$l$F$$$J$1$l$P(B - $B$J$i$J$$4D6-JQ?t$r;XDj$7$^$9!#(B</dd> + <dd>このパラメータはフィルタが有効になるために設定されていなければ + ならない環境変数を指定します。</dd> </dl> </usage> </directivesynopsis> <directivesynopsis> <name>ExtFilterOptions</name> -<description><module>mod_ext_filter</module> $B$N%*%W%7%g%s$r@_Dj(B</description> +<description><module>mod_ext_filter</module> のオプションを設定</description> <syntax>ExtFilterOptions <var>option</var> [<var>option</var>] ...</syntax> <default>ExtFilterOptions DebugLevel=0 NoLogStderr</default> <contextlist><context>directory</context></contextlist> <usage> - <p><directive>ExtFilterOptions</directive> $B%G%#%l%/%F%#%V$O(B - <module>mod_ext_filter</module> $B$NFCJL$J=hM}MQ$N%*%W%7%g%s$r(B - $B;XDj$7$^$9!#(B<var>Option</var> $B$K$O0J2<$N$I$l$+$r;XDj$7$^$9!#(B</p> + <p><directive>ExtFilterOptions</directive> ディレクティブは + <module>mod_ext_filter</module> の特別な処理用のオプションを + 指定します。<var>Option</var> には以下のどれかを指定します。</p> <dl> <dt><code>DebugLevel=<var>n</var></code></dt> <dd> - <code>DebugLevel</code> $B$G(B <module>mod_ext_filter</module> - $B$N@8@.$9$k%G%P%C%0%a%C%;!<%8$N%l%Y%k$r@_Dj$G$-$^$9!#(B - $B%G%U%)%k%H$G$O!"%G%P%C%0%a%C%;!<%8$O@8@.$5$l$^$;$s!#(B - $B$3$l$O(B <code>DebugLevel=0</code> $B$H@_Dj$9$k$N$HF1$8$G$9!#(B - $B?t;z$,Bg$-$/$J$l$P$J$k$[$I!"$h$jB?$/$N%G%P%C%0%a%C%;!<%8$,(B - $B@8@.$5$l!"%5!<%P$N@-G=$OMn$A$^$9!#?tCM$N<B:]$N0UL#$O(B - <code>mod_ext_filter.c</code> $B$N@hF,6a$/$N(B DBGLVL_ $BDj?t$N(B - $BDj5A$G@bL@$5$l$F$$$^$9!#(B - - <p>$BCm(B: $B%G%P%C%0%a%C%;!<%8$r(B Apache $B$N%(%i!<%m%0$K(B - $BJ]B8$9$k$h$&$K$9$k$?$a$K$O!"(Bcore $B$N%G%#%l%/%F%#%V(B + <code>DebugLevel</code> で <module>mod_ext_filter</module> + の生成するデバッグメッセージのレベルを設定できます。 + デフォルトでは、デバッグメッセージは生成されません。 + これは <code>DebugLevel=0</code> と設定するのと同じです。 + 数字が大きくなればなるほど、より多くのデバッグメッセージが + 生成され、サーバの性能は落ちます。数値の実際の意味は + <code>mod_ext_filter.c</code> の先頭近くの DBGLVL_ 定数の + 定義で説明されています。 + + <p>注: デバッグメッセージを Apache のエラーログに + 保存するようにするためには、core のディレクティブ <directive module="core">LogLevel</directive> - $B$r;H$&I,MW$,$"$j$^$9!#(B</p> + を使う必要があります。</p> </dd> <dt><code>LogStderr | NoLogStderr</code></dt> - <dd><code>LogStderr</code> $B%-!<%o!<%I$O30It%U%#%k%?%W%m%0%i%`$K$h$j(B - $BI8=`%(%i!<(B <transnote>stderr</transnote> $B$K=q$+$l$?%a%C%;!<%8$r(B - Apache $B$N%(%i!<%m%0$KJ]B8$9$k$h$&$K$7$^$9!#(B<code>NoLogStderr</code> $B$O(B - $B5U$KJ]B8$7$J$$$h$&$K$7$^$9!#(B</dd> + <dd><code>LogStderr</code> キーワードは外部フィルタプログラムにより + 標準エラー <transnote>stderr</transnote> に書かれたメッセージを + Apache のエラーログに保存するようにします。<code>NoLogStderr</code> は + 逆に保存しないようにします。</dd> </dl> - <example><title>$BNc(B</title> + <example><title>例</title> ExtFilterOptions LogStderr DebugLevel=0 </example> - <p>$B$3$NNc$G$O!"%U%#%k%?$NI8=`=PNO$K=q$+$l$?%a%C%;!<%8$O(B - Apache $B$N%(%i!<%m%0$KJ]B8$5$l$^$9!#(B<module>mod_ext_filter</module> $B$+$i$O(B - $B%G%P%C%0%a%C%;!<%8$O@8@.$5$l$^$;$s!#(B</p> + <p>この例では、フィルタの標準出力に書かれたメッセージは + Apache のエラーログに保存されます。<module>mod_ext_filter</module> からは + デバッグメッセージは生成されません。</p> </usage> </directivesynopsis> diff --git a/docs/manual/mod/mod_headers.xml.ja b/docs/manual/mod/mod_headers.xml.ja index 19ca573855..77615fc199 100644 --- a/docs/manual/mod/mod_headers.xml.ja +++ b/docs/manual/mod/mod_headers.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 151408:568323 (outdated) --> @@ -23,83 +23,83 @@ <modulesynopsis metafile="mod_headers.xml.meta"> <name>mod_headers</name> -<description>HTTP $B%j%/%(%9%H$N%X%C%@$H1~Ez$N%X%C%@$N%+%9%?%^%$%:(B</description> +<description>HTTP リクエストのヘッダと応答のヘッダのカスタマイズ</description> <status>Extension</status> <sourcefile>mod_headers.c</sourcefile> <identifier>headers_module</identifier> <compatibility><directive module="mod_headers">RequestHeader</directive> -$B$O(B Apache 2.0 $B0J9_$N$_$G;HMQ2DG=(B</compatibility> +は Apache 2.0 以降のみで使用可能</compatibility> <summary> - <p>$B$3$N%b%8%e!<%k$O(B HTTP $B$N%j%/%(%9%H%X%C%@$H1~Ez%X%C%@$r@)8f$7!"(B - $BJQ99$9$k$?$a$N%G%#%l%/%F%#%V$rDs6!$7$^$9!#%X%C%@$rDI2C$7$?$j!"(B - $BCV$-49$($?$j!":o=|$7$?$j$9$k$3$H$,$G$-$^$9!#(B</p> + <p>このモジュールは HTTP のリクエストヘッダと応答ヘッダを制御し、 + 変更するためのディレクティブを提供します。ヘッダを追加したり、 + 置き換えたり、削除したりすることができます。</p> </summary> -<section id="order"><title>$B=hM}$N=gHV(B</title> +<section id="order"><title>処理の順番</title> - <p><module>mod_header</module> $B$N%G%#%l%/%F%#%V$O%5!<%P@_Dj$N$[$\$I$3$K$G$b(B - $B=q$/$3$H$,$G$-!"1F6A$9$kHO0O$r(B<a - href="../sections.html">$B@_DjMQ%;%/%7%g%s(B</a>$B$G0O$`$3$H$G8BDj$9$k(B - $B$3$H$,$G$-$^$9!#(B</p> + <p><module>mod_header</module> のディレクティブはサーバ設定のほぼどこにでも + 書くことができ、影響する範囲を<a + href="../sections.html">設定用セクション</a>で囲むことで限定する + ことができます。</p> - <p>$B=hM}$N=gHV$O=EMW$G!"@_Dj%U%!%$%kCf$N=gHV$H!"(B<a - href="../sections.html">$B@_DjMQ%;%/%7%g%s(B</a>$BFb$N0LCV$H$NN>J}$K(B - $B1F6A$5$l$^$9!#0J2<$NFs$D$N%X%C%@$O=gHV$,5U$K$J$k$H(B - $B0c$&7k2L$K$J$j$^$9(B:</p> + <p>処理の順番は重要で、設定ファイル中の順番と、<a + href="../sections.html">設定用セクション</a>内の位置との両方に + 影響されます。以下の二つのヘッダは順番が逆になると + 違う結果になります:</p> <example> RequestHeader append MirrorID "mirror 12"<br /> RequestHeader unset MirrorID </example> - <p>$B$3$N=gHV$N>l9g$O!"(B<code>MirrorID</code> $B%X%C%@$O@_Dj$5$l$^$;$s!#(B - $B5U$K$J$C$F$$$k$H!"(BMirrorID $B%X%C%@$O(B "mirror 12" $B$K@_Dj$5$l$^$9!#(B</p> + <p>この順番の場合は、<code>MirrorID</code> ヘッダは設定されません。 + 逆になっていると、MirrorID ヘッダは "mirror 12" に設定されます。</p> </section> -<section id="early"><title>$BAa4|=hM}!"8e4|=hM}(B</title> - <p><module>mod_headers</module> $B$G$O!"%j%/%(%9%H$NAa4|$+8e4|$+$N(B - $B$I$A$i$GE,MQ$9$k$+$rA*$Y$^$9!#DL>o$O8e4|%b!<%I$G!"(B - $B%3%s%F%s%D@8@.$,<B9T$5$l$kD>A0$K%j%/%(%9%H%X%C%@$,%;%C%H$5$l!"(B - $B%l%9%]%s%9$H$7$FAw=P$5$l$kD>A0$K%l%9%]%s%9%X%C%@$,%;%C%H$5$l$^$9!#(B - $B1?MQCf$N%5!<%P$G$OI,$:8e4|%b!<%I$r;H$C$F$/$@$5$$!#(B</p> - - <p>$BAa4|%b!<%I$O3+H/<T8~$1$N%F%9%H(B/$B%G%P%C%0MQ$K@_7W$5$l$F$$$^$9!#(B - <code>early</code> $B%-!<%o!<%I;XDj$5$l$?%G%#%l%/%F%#%V$K$h$C$F!"(B - $B%j%/%(%9%H=hM}$N3+;OCOE@$K$J$j$^$9!#(B - $B$D$^$j!"0[$J$k%j%/%(%9%H$r;n$7$?$j%F%9%H%1!<%9$r%;%C%H%"%C%W$9$k$N$K(B - $B3hMQ$G$-$k0lJ}$G!"%l%9%]%s%9$r@8@.$9$kA0$KB>$N%b%8%e!<%k$K$h$C$F(B - $B%X%C%@$,=q$-49$($i$l$F$7$^$&$+$b$7$l$J$$$H$$$&$3$H$r0UL#$7$^$9!#(B</p> - - <p>early $B%G%#%l%/%F%#%V$G$O%j%/%(%9%H%Q%9$N@_Dj$,2r7h$5$l$kA0$K(B - $B=hM}$5$l$k$N$G!"%a%$%s%5!<%P$+%P!<%A%c%k%[%9%H%3%s%F%-%9%H$G$N$_!"(B - $BAa4|%X%C%@$r%;%C%H$G$-$^$9!#(Bearly $B%G%#%l%/%F%#%V$O%j%/%(%9%H%Q%9$K(B - $B0MB8$9$k$3$H$O$G$-$^$;$s$N$G!"(B<code><Directory></code> $B$d(B - <code><Location></code> $B$H$$$C$?%3%s%F%-%9%HFb$G$O;HMQ(B - $B$G$-$^$;$s!#(B</p> +<section id="early"><title>早期処理、後期処理</title> + <p><module>mod_headers</module> では、リクエストの早期か後期かの + どちらで適用するかを選べます。通常は後期モードで、 + コンテンツ生成が実行される直前にリクエストヘッダがセットされ、 + レスポンスとして送出される直前にレスポンスヘッダがセットされます。 + 運用中のサーバでは必ず後期モードを使ってください。</p> + + <p>早期モードは開発者向けのテスト/デバッグ用に設計されています。 + <code>early</code> キーワード指定されたディレクティブによって、 + リクエスト処理の開始地点になります。 + つまり、異なるリクエストを試したりテストケースをセットアップするのに + 活用できる一方で、レスポンスを生成する前に他のモジュールによって + ヘッダが書き換えられてしまうかもしれないということを意味します。</p> + + <p>early ディレクティブではリクエストパスの設定が解決される前に + 処理されるので、メインサーバかバーチャルホストコンテキストでのみ、 + 早期ヘッダをセットできます。early ディレクティブはリクエストパスに + 依存することはできませんので、<code><Directory></code> や + <code><Location></code> といったコンテキスト内では使用 + できません。</p> </section> -<section id="examples"><title>$BNc(B</title> +<section id="examples"><title>例</title> <ol> - <li>$B%j%/%(%9%H%X%C%@Cf$N(B "TS" $B$G;O$^$k%U%#!<%k%I$r$9$Y$F1~Ez%X%C%@$K(B - $B%3%T!<$7$^$9(B: + <li>リクエストヘッダ中の "TS" で始まるフィールドをすべて応答ヘッダに + コピーします: <example> Header echo ^TS </example> </li> <li> - $B%j%/%(%9%H$r<u$1IU$1$?;~9o$H%j%/%(%9%H$r=hM}$7$?;~4V$rF~$l$?%X%C%@!"(B - <code>MyHeader</code> $B$r1~Ez$KDI2C$7$^$9!#$3$N%X%C%@$O%/%i%$%"%s%H$,(B - $B%5!<%P$NIi2Y$rD>4QE*$KCN$k$?$a$d!"%/%i%$%"%s%H(B-$B%5!<%P4V$N(B - $B%\%H%k%M%C%/$rD4$Y$k$?$a$K;H$&$3$H$,$G$-$^$9!#(B + リクエストを受け付けた時刻とリクエストを処理した時間を入れたヘッダ、 + <code>MyHeader</code> を応答に追加します。このヘッダはクライアントが + サーバの負荷を直観的に知るためや、クライアント-サーバ間の + ボトルネックを調べるために使うことができます。 <example> Header add MyHeader "%D %t" </example> - <p>$B>e5-$N@_Dj$G$O!"0J2<$N$h$&$J%X%C%@$,1~Ez$KDI2C$5$l$k$3$H$K$J$j$^$9(B:</p> + <p>上記の設定では、以下のようなヘッダが応答に追加されることになります:</p> <example> MyHeader: D=3775428 t=991424704447256 @@ -107,31 +107,31 @@ </li> <li> - Joe $B$K$"$$$5$D$r$7$^$9(B: + Joe にあいさつをします: <example> Header add MyHeader "Hello Joe. It took %D microseconds for Apache to serve this request." </example> - <p>$B0J2<$N$h$&$J%X%C%@$,1~Ez$KDI2C$5$l$k$3$H$K$J$j$^$9(B</p> + <p>以下のようなヘッダが応答に追加されることになります</p> <example> MyHeader: Hello Joe. It took D=3775428 microseconds for Apache to serve this request. </example> </li> - <li>$B%j%/%(%9%H$K(B "MyRequestHeader" $B$,$"$k$H$-$K8B$j(B <code>MyHeader</code> $B$r1~Ez$K(B - $BIU$1$^$9!#$3$l$O!"%/%i%$%"%s%H$NMW5a$K1~$($F%X%C%@$r:n@.$9$k$H$-$K(B - $BLr$KN)$A$^$9!#$3$NNc$G$O(B <module>mod_setenvif</module> $B%b%8%e!<%k$,I,MW$J$3$H$K(B - $BCm0U$7$F$/$@$5$$!#(B + <li>リクエストに "MyRequestHeader" があるときに限り <code>MyHeader</code> を応答に + 付けます。これは、クライアントの要求に応えてヘッダを作成するときに + 役に立ちます。この例では <module>mod_setenvif</module> モジュールが必要なことに + 注意してください。 <example> SetEnvIf MyRequestHeader value HAVE_MyRequestHeader<br /> Header add MyHeader "%D %t mytext" env=HAVE_MyRequestHeader </example> - <p>$B$b$7(B HTTP $B%j%/%(%9%H$K(B <code>MyRequestHeader: value</code> $B%X%C%@$,(B - $B$"$k$H!"1~Ez$K$O0J2<$N$h$&$J%X%C%@$,IU2C$5$l$^$9!#(B</p> + <p>もし HTTP リクエストに <code>MyRequestHeader: value</code> ヘッダが + あると、応答には以下のようなヘッダが付加されます。</p> <example> MyHeader: D=3775428 t=991424704447256 mytext @@ -142,7 +142,7 @@ <directivesynopsis> <name>RequestHeader</name> -<description>HTTP $B%j%/%(%9%H%X%C%@$N@_Dj(B</description> +<description>HTTP リクエストヘッダの設定</description> <syntax>RequestHeader set|append|add|unset <var>header</var> [<var>value</var>] [early|env=[!]<var>variable</var>]</syntax> <contextlist><context>server config</context><context>virtual host</context> @@ -150,186 +150,186 @@ <override>FileInfo</override> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O(B HTTP $B%j%/%(%9%H%X%C%@$rCV49!"DI2C!":o=|$G$-$^$9!#(B - $B%X%C%@$O%3%s%F%s%H%O%s%I%i$,<B9T$5$l$kD>A0$K<B9T$5$l!"(B - $BF~$C$FMh$k%X%C%@$rJQ99$9$k$3$H$,2DG=$K$J$C$F$$$^$9!#(B - $B9T$J$&=hM}$OBh(B 1 $B0z?t$K$h$j7h$^$j$^$9!#$3$l$K$O0J2<$NCM$r;XDj(B - $B$9$k$3$H$,$G$-$^$9(B:</p> + <p>このディレクティブは HTTP リクエストヘッダを置換、追加、削除できます。 + ヘッダはコンテントハンドラが実行される直前に実行され、 + 入って来るヘッダを変更することが可能になっています。 + 行なう処理は第 1 引数により決まります。これには以下の値を指定 + することができます:</p> <dl> <dt><code>set</code></dt> - <dd>$B%j%/%(%9%H%X%C%@$r@_Dj$7$^$9!#F1$8L>A0$N%X%C%@$,B8:_$7$F$$$k$H!"(B - $B$=$l$rCV$-49$($^$9!#(B</dd> + <dd>リクエストヘッダを設定します。同じ名前のヘッダが存在していると、 + それを置き換えます。</dd> <dt><code>append</code></dt> - <dd>$B%j%/%(%9%H%X%C%@$O!"4{$KB8:_$9$kF1$8L>A0$N%X%C%@$KDI2C$5$l$^$9!#(B - $B?7$7$$CM$,4{B8$N%X%C%@$KDI2C$5$l$k$H$-$K$O!"4{B8$N%X%C%@$N(B - $B8e$K%3%s%^$G6h@Z$i$l$FDI2C$5$l$^$9!#$3$l$O%X%C%@$KJ#?t$NCM$r(B - $B;XDj$9$k$H$-$N(B HTTP $B$NI8=`$NJ}K!$G$9!#(B</dd> + <dd>リクエストヘッダは、既に存在する同じ名前のヘッダに追加されます。 + 新しい値が既存のヘッダに追加されるときには、既存のヘッダの + 後にコンマで区切られて追加されます。これはヘッダに複数の値を + 指定するときの HTTP の標準の方法です。</dd> <dt><code>add</code></dt> - <dd>$B%X%C%@$,4{$KB8:_$7$F$$$k$H$-$G$5$($b!"%j%/%(%9%H%X%C%@$r(B - $B4{B8$N%X%C%@$KDI2C$7$^$9!#$3$l$K$h$j!"Fs$D(B ($B$+$=$l0J>e(B) $B$N(B - $B%X%C%@$NL>A0$,F1$8$K$J$k$3$H$,$"$j$^$9!#$=$N7k2L!"A[Dj$G$-$J$$(B - $B$3$H$,5/$3$k2DG=@-$,$"$j$^$9$N$G!"0lHLE*$K$O(B <code>append</code> $B$NJ}$r(B - $B;H$&J}$,NI$$$G$7$g$&!#(B</dd> + <dd>ヘッダが既に存在しているときでさえも、リクエストヘッダを + 既存のヘッダに追加します。これにより、二つ (かそれ以上) の + ヘッダの名前が同じになることがあります。その結果、想定できない + ことが起こる可能性がありますので、一般的には <code>append</code> の方を + 使う方が良いでしょう。</dd> <dt><code>unset</code></dt> - <dd>$B$b$7;XDj$5$l$?L>A0$N%j%/%(%9%H%X%C%@$,B8:_$7$F$$$l$P!":o=|$5$l$^$9!#(B - $BF1$8L>A0$NJ#?t$N%X%C%@$,$"$k$H$-$O!"$9$Y$F:o=|$5$l$^$9!#(B - <var>value</var> $B$r$D$1$F$O$$$1$^$;$s!#(B</dd> + <dd>もし指定された名前のリクエストヘッダが存在していれば、削除されます。 + 同じ名前の複数のヘッダがあるときは、すべて削除されます。 + <var>value</var> をつけてはいけません。</dd> </dl> - <p>$B$3$N0z?t$N8e$K$O%X%C%@L>(B (<em>header</em>) $B$,B3$-$^$9!#(B - $B%X%C%@L>$K$O:G8e$K%3%m%s$r4^$a$k$3$H$b$G$-$^$9$,!"L5$/$F$b9=$$$^$;$s!#(B - $BBgJ8;z>.J8;z$O6hJL$5$l$^$;$s!#(B<code>add</code>, - <code>append</code>, <code>set</code> $B$N>l9g$O!"(B<em>value</em> $B$,;0$DL\$N(B - $B0z?t$H$7$F;XDj$5$l$^$9!#(B<em>value</em> $B$K6uGr$,$"$k>l9g$OFs=E0zMQId$G(B - $B0O$`I,MW$,$"$j$^$9!#(Bunset $B$N>l9g$O!"(B<em>value</em> $B$O;XDj$7$^$;$s!#(B - <var>value</var> $B$OJ8;zNs!"%U%)!<%^%C%H;XDj;R!"$"$k$$$O!"$=$N:.9g$G$9!#(B - $B;H$&$3$H$N$G$-$k%U%)!<%^%C%H;XDj;R$O!"(B<directive - module="mod_headers">Header</directive> $B$HF1$8$G$9$N$G!"(B - $B>\:Y$O$=$A$i$r$4Mw$/$@$5$$!#(B</p> - - <p><directive>RequestHeader</directive> $B%G%#%l%/%F%#%V$O!"(B - $B$I$&$$$C$?>r7o2<$G%"%/%7%g%s$r9T$&$+$r;XDj$9$kDI2C0z?t(B - $B$"$k$$$O!"(B<a href="#early">$BAa4|=hM}(B</a> $B$r;XDj$9$k(B <code>early</code> - $B%-!<%o!<%I$r@_Dj$9$k$3$H$,$G$-$^$9!#(B - <code>env=<var>...</var></code> $B$N0z?t$G@_Dj$5$l$F$$$k(B - <a href="../env.html">$B4D6-JQ?t(B</a> $B$,B8:_$7$F$$$k(B - ($B$"$k$$$O(B <code>env=!<var>...</var></code> $B$G;XDj$5$l$?4D6-JQ?t$,(B - $BB8:_$7$J$$(B) $B>l9g!"(B<directive>RequestHeader</directive> $B%G%#%l%/%F%#%V$O(B - $BM-8z$K$J$j$^$9!#$=$l0J30$N>l9g!"%G%#%l%/%F%#%V$O8zNO$r;}$A$^$;$s!#(B</p> - - <p><a href="#early">early</a> $B%b!<%I$G$J$$>l9g$K8B$j!"(B - <directive>RequestHeader</directive> $B%G%#%l%/%F%#%V$O(B - fixup $B%U%'!<%:$G%j%/%(%9%H$,%O%s%I%i$K07$o$l$kD>A0$K(B - $B=hM}$5$l$^$9!#$3$l$K$h$j!"%V%i%&%6$d(B Apache $B$NF~NO%U%#%k%?$K$h$j(B - $B@8@.$5$l$?%X%C%@$r>e=q$-$7$?$j=$@5$7$?$j$G$-$k$h$&$K$J$C$F$$$^$9!#(B</p> + <p>この引数の後にはヘッダ名 (<em>header</em>) が続きます。 + ヘッダ名には最後にコロンを含めることもできますが、無くても構いません。 + 大文字小文字は区別されません。<code>add</code>, + <code>append</code>, <code>set</code> の場合は、<em>value</em> が三つ目の + 引数として指定されます。<em>value</em> に空白がある場合は二重引用符で + 囲む必要があります。unset の場合は、<em>value</em> は指定しません。 + <var>value</var> は文字列、フォーマット指定子、あるいは、その混合です。 + 使うことのできるフォーマット指定子は、<directive + module="mod_headers">Header</directive> と同じですので、 + 詳細はそちらをご覧ください。</p> + + <p><directive>RequestHeader</directive> ディレクティブは、 + どういった条件下でアクションを行うかを指定する追加引数 + あるいは、<a href="#early">早期処理</a> を指定する <code>early</code> + キーワードを設定することができます。 + <code>env=<var>...</var></code> の引数で設定されている + <a href="../env.html">環境変数</a> が存在している + (あるいは <code>env=!<var>...</var></code> で指定された環境変数が + 存在しない) 場合、<directive>RequestHeader</directive> ディレクティブは + 有効になります。それ以外の場合、ディレクティブは効力を持ちません。</p> + + <p><a href="#early">early</a> モードでない場合に限り、 + <directive>RequestHeader</directive> ディレクティブは + fixup フェーズでリクエストがハンドラに扱われる直前に + 処理されます。これにより、ブラウザや Apache の入力フィルタにより + 生成されたヘッダを上書きしたり修正したりできるようになっています。</p> </usage> </directivesynopsis> <directivesynopsis> <name>Header</name> -<description>HTTP $B1~Ez%X%C%@$N@_Dj(B</description> +<description>HTTP 応答ヘッダの設定</description> <syntax>Header [<var>condition</var>] set|append|add|unset|echo <var>header</var> [<var>value</var>] [early|env=[!]<var>variable</var>]</syntax> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context></contextlist> <override>FileInfo</override> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O(B HTTP $B1~Ez%X%C%@$rCV49!"DI2C!":o=|$G$-$^$9!#(B - $B%X%C%@$O%3%s%F%s%H%O%s%I%i$d=PNO%U%#%k%?$,<B9T$5$l$?D>8e$K<B9T$5$l!"(B - $B=P$F9T$/%X%C%@$rJQ99$G$-$k$h$&$K$J$C$F$$$^$9!#(B</p> + <p>このディレクティブは HTTP 応答ヘッダを置換、追加、削除できます。 + ヘッダはコンテントハンドラや出力フィルタが実行された直後に実行され、 + 出て行くヘッダを変更できるようになっています。</p> - <p>$B%*%W%7%g%s$N(B <var>condition</var> $B$O(B <code>onsuccess</code> $B$+(B - <code>always</code> $B$N$I$A$i$+$r;XDj$G$-$^$9!#$3$l$OFbIt%X%C%@%F!<%V%k$N$I$l$r(B - $BA`:n$9$k$+$r7hDj$7$^$9!#(B<code>onsuccess</code> $B$O(B <code>2<var>xx</var></code> - $B%9%F!<%?%9%3!<%I$N!"(B<code>always</code> $B$OA4$F$N%9%F!<%?%9%3!<%I(B - (<code>2<var>xx</var></code> $B$r4^$`(B) $B$N0UL#$K$J$j$^$9!#(B - $B$"$k%b%8%e!<%k$G%;%C%H$5$l$k%X%C%@$r%"%s%;%C%H$7$?$$>l9g$OFC$K!"(B - $B$I$N%F!<%V%k$,1F6A$r<u$1$k$+$r<B:]$K;n$7$?$[$&$,$h$$$G$7$g$&!#(B</p> + <p>オプションの <var>condition</var> は <code>onsuccess</code> か + <code>always</code> のどちらかを指定できます。これは内部ヘッダテーブルのどれを + 操作するかを決定します。<code>onsuccess</code> は <code>2<var>xx</var></code> + ステータスコードの、<code>always</code> は全てのステータスコード + (<code>2<var>xx</var></code> を含む) の意味になります。 + あるモジュールでセットされるヘッダをアンセットしたい場合は特に、 + どのテーブルが影響を受けるかを実際に試したほうがよいでしょう。</p> - <p>$B9T$J$&=hM}$OFsHVL\$N$N0z?t$G7h$^$j$^$9!#(B - $B$3$N0z?t$K$O<!$NCM$r;XDj$G$-$^$9(B:</p> + <p>行なう処理は二番目のの引数で決まります。 + この引数には次の値を指定できます:</p> <dl> <dt><code>set</code></dt> - <dd>$B1~Ez%X%C%@$r@_Dj$7$^$9!#F1$8L>A0$N%X%C%@$,B8:_$9$k>l9g$O$=$l$r(B - $BCV$-49$($^$9!#(B<em>value</em> $B$K$O%U%)!<%^%C%HJ8;zNs$r(B - $B;XDj$9$k$3$H$b$G$-$^$9!#(B</dd> + <dd>応答ヘッダを設定します。同じ名前のヘッダが存在する場合はそれを + 置き換えます。<em>value</em> にはフォーマット文字列を + 指定することもできます。</dd> <dt><code>append</code></dt> - <dd>$B1~Ez%X%C%@$r4{$KB8:_$9$kF1$8L>A0$N%X%C%@$KDI2C$7$^$9!#(B - $B?7$7$$CM$,4{B8$N%X%C%@$KDI2C$5$l$k$H$-$K$O!"4{B8$N%X%C%@$N(B - $B8e$K%3%s%^$G6h@Z$i$l$FDI2C$5$l$^$9!#$3$l$O%X%C%@$KJ#?t$NCM$r(B - $B;XDj$9$k$H$-$N(B HTTP $B$NI8=`$NJ}K!$G$9!#(B</dd> + <dd>応答ヘッダを既に存在する同じ名前のヘッダに追加します。 + 新しい値が既存のヘッダに追加されるときには、既存のヘッダの + 後にコンマで区切られて追加されます。これはヘッダに複数の値を + 指定するときの HTTP の標準の方法です。</dd> <dt><code>add</code></dt> - <dd>$B%X%C%@$,4{$KB8:_$7$F$$$k$H$-$G$5$($b!"1~Ez%X%C%@$r(B - $B4{B8$N%X%C%@$KDI2C$7$^$9!#$3$l$K$h$j!"Fs$D(B ($B$+$=$l0J>e(B) $B$N(B - $B%X%C%@$NL>A0$,F1$8$K$J$k$3$H$,$"$j$^$9!#$=$N7k2L!"A[Dj$G$-$J$$(B - $B$3$H$,5/$3$k2DG=@-$,$"$j$^$9$N$G!"0lHLE*$K$O(B <code>append</code> $B$NJ}$r(B - $B;H$&J}$,NI$$$G$7$g$&!#(B</dd> + <dd>ヘッダが既に存在しているときでさえも、応答ヘッダを + 既存のヘッダに追加します。これにより、二つ (かそれ以上) の + ヘッダの名前が同じになることがあります。その結果、想定できない + ことが起こる可能性がありますので、一般的には <code>append</code> の方を + 使う方が良いでしょう。</dd> <dt><code>unset</code></dt> - <dd>$B$b$7;XDj$5$l$?L>A0$N1~Ez%X%C%@$,B8:_$7$F$$$l$P!":o=|$5$l$^$9!#(B - $BF1$8L>A0$N%X%C%@$,J#?t$"$k$H$-$O!"$9$Y$F:o=|$5$l$^$9!#(B - <var>value</var> $B$r$D$1$F$O$$$1$^$;$s!#(B</dd> + <dd>もし指定された名前の応答ヘッダが存在していれば、削除されます。 + 同じ名前のヘッダが複数あるときは、すべて削除されます。 + <var>value</var> をつけてはいけません。</dd> <dt><code>echo</code></dt> - <dd>$B;XDj$5$l$?$b$N$HF1$8L>A0$N%j%/%(%9%H%X%C%@$r1~Ez%X%C%@$G(B - $B$=$N$^$^JV$7$^$9!#(B<var>header</var> $B$K$O@55,I=8=$b;XDj$G$-$^$9!#(B - <var>value</var> $B$r$D$1$F$O$$$1$^$;$s!#(B</dd> + <dd>指定されたものと同じ名前のリクエストヘッダを応答ヘッダで + そのまま返します。<var>header</var> には正規表現も指定できます。 + <var>value</var> をつけてはいけません。</dd> </dl> - <p>$B$3$N0z?t$N8e$K$O%X%C%@L>(B (<var>header</var>) $B$,B3$-$^$9!#(B - $B%X%C%@L>$K$O:G8e$K%3%m%s$r4^$a$k$3$H$b$G$-$^$9$,!"L5$/$F$b9=$$$^$;$s!#(B + <p>この引数の後にはヘッダ名 (<var>header</var>) が続きます。 + ヘッダ名には最後にコロンを含めることもできますが、無くても構いません。 <code>set</code>, <code>append</code>, <code>add</code>, - <code>unset</code> $B$G$OBgJ8;z>.J8;z$O(B - $B6hJL$5$l$^$;$s!#(Becho $B$N(B <em>header</em> $BL>$OBgJ8;z>.J8;z$r6hJL$7!"(B - $B@55,I=8=$r;XDj$9$k$3$H$b$G$-$^$9!#(B</p> + <code>unset</code> では大文字小文字は + 区別されません。echo の <em>header</em> 名は大文字小文字を区別し、 + 正規表現を指定することもできます。</p> <p><code>add</code>, <code>append</code>, - <code>set</code> $B$G$O(B <var>value</var> $B$r;0$DL\$N(B - $B0z?t$H$7$F;XDj$7$^$9!#(B<var>value</var> $B$K6uGr$,$"$k>l9g$OFs=E0zMQId$G(B - $B0O$`I,MW$,$"$j$^$9!#(B<var>value</var> $B$OJ8;z$N$_$+$i$J$kJ8;zNs!"(B - $B%U%)!<%^%C%H;X<(;R$r4^$`J8;zNs!"$b$7$/$ON>J}$+$i$J$kJ8;zNs$r;XDj$G$-$^$9!#(B - <var>value</var> $B$O0J2<$N%U%)!<%^%C%H;X<(;R$r%5%]!<%H$7$^$9(B:</p> + <code>set</code> では <var>value</var> を三つ目の + 引数として指定します。<var>value</var> に空白がある場合は二重引用符で + 囲む必要があります。<var>value</var> は文字のみからなる文字列、 + フォーマット指示子を含む文字列、もしくは両方からなる文字列を指定できます。 + <var>value</var> は以下のフォーマット指示子をサポートします:</p> <table border="1" style="zebra"> <columnspec><column width=".25"/><column width=".75"/></columnspec> - <tr><th>$B%U%)!<%^%C%H(B</th><th>$B2r@b(B</th></tr> + <tr><th>フォーマット</th><th>解説</th></tr> <tr><td><code>%%</code></td> - <td>$B%Q!<%;%s%H5-9f(B</td></tr> + <td>パーセント記号</td></tr> <tr><td><code>%t</code></td> - <td>$B%j%/%(%9%H$r<u$1<h$C$?;~9o$r!"(B - Universal Coordinated Time $B$G$N;O$^$j$N;~9o(B (Jan. 1, 1970) $B$+$i7P2a$7$?(B - $B;~4V$r%^%$%/%mIC$H$7$F8=$7$?$b$N!#CM$N:G=i$K$O(B - <code>t=</code> $B$,IU2C$5$l$^$9!#(B</td></tr> + <td>リクエストを受け取った時刻を、 + Universal Coordinated Time での始まりの時刻 (Jan. 1, 1970) から経過した + 時間をマイクロ秒として現したもの。値の最初には + <code>t=</code> が付加されます。</td></tr> <tr><td><code>%D</code></td> - <td>$B%j%/%(%9%H$r<u$1<h$C$?;~9o$H!"%X%C%@$rAw$j=P$7$?(B - $B;~4V$H$N:9!#$3$l$O!"%j%/%(%9%H$,B8:_$7$F$$$?4|4V$r8=$7$^$9!#(B - $BCM$N:G=i$K$O(B <code>D=</code> $B$,IU2C$5$l$^$9!#(B</td></tr> + <td>リクエストを受け取った時刻と、ヘッダを送り出した + 時間との差。これは、リクエストが存在していた期間を現します。 + 値の最初には <code>D=</code> が付加されます。</td></tr> <tr><td><code>%{FOOBAR}e</code></td> - <td><a href="../env.html">$B4D6-JQ?t(B</a> - <code>FOOBAR</code> $B$NCM$G$9!#(B</td></tr> + <td><a href="../env.html">環境変数</a> + <code>FOOBAR</code> の値です。</td></tr> <tr><td><code>%{FOOBAR}s</code></td> - <td><module>mod_ssl</module> $B$,M-8z$J>l9g!"(B - <a href="mod_ssl.html#envvars">SSL $B4D6-JQ?t(B</a> <code>FOOBAR</code> - $B$NFbMF(B</td></tr> + <td><module>mod_ssl</module> が有効な場合、 + <a href="mod_ssl.html#envvars">SSL 環境変数</a> <code>FOOBAR</code> + の内容</td></tr> </table> - <note><title>$BCm(B</title> - <p><code>%s</code> $B%U%)!<%^%C%H;XDj;R$O(B 2.1 $B0J9_$G$N$_MxMQ$G$-$^$9!#(B - <code>SSLOptions +StdEnvVars</code> $B$rM-8z$K$9$k$3$H$K$h$k%*!<%P!<%X%C%I$r(B - $BHr$1$k$?$a!"(B<code>%e</code> $B$NBe$o$j$H$7$F;H$($^$9!#(B - $BB>$NM}M3$J$I$,$"$C$F!"$I$&$7$F$b(B <code>SSLOptions +StdEnvVars</code> - $B$rM-8z$K$7$J$1$l$P$J$i$J$$>l9g$O!"(B<code>%e</code> $B$N$[$&$,(B - <code>%s</code> $B$h$j$b=hM}8zN($ONI$$$G$9!#(B</p> + <note><title>注</title> + <p><code>%s</code> フォーマット指定子は 2.1 以降でのみ利用できます。 + <code>SSLOptions +StdEnvVars</code> を有効にすることによるオーバーヘッドを + 避けるため、<code>%e</code> の代わりとして使えます。 + 他の理由などがあって、どうしても <code>SSLOptions +StdEnvVars</code> + を有効にしなければならない場合は、<code>%e</code> のほうが + <code>%s</code> よりも処理効率は良いです。</p> </note> - <p><directive>Header</directive> $B%G%#%l%/%F%#%V$K$ODI2C$N0z?t$r;}$?$;$k$3$H$,(B - $B$G$-$F!"$I$&$$$C$?%"%/%7%g%s$,9T$o$l$?$+$N>r7o$r;XDj$7$?$j!"(B - <a href="#early">$BAa4|=hM}(B</a> $B$r;XDj$9$k(B <code>early</code> $B%-!<%o!<%I$r(B - $B;XDj$G$-$^$9!#(B - <code>env=...</code> $B0z?t$G;XDj$5$l$?(B <a - href="../env.html">$B4D6-JQ?t(B</a> $B$,B8:_$9$k(B ($B$b$7$/$O(B <code>env=!...</code> - $B$,;XDj$5$l$F$$$F4D6-JQ?t$,B8:_$7$J$$(B) $B>l9g$O!"(B<directive>Header</directive> - $B%G%#%l%/%F%#%V$G;XDj$5$l$?F0:n$,9T$J$o$l$^$9!#$=$&$G$J$$>l9g$O!"(B - $B%G%#%l%/%F%#%V$O$=$N%j%/%(%9%H$K$O2?$b$7$^$;$s!#(B</p> - - <p><a href="#early">$BAa4|=hM}(B</a>$B%b!<%I$N>l9g0J30$G$O!"(B + <p><directive>Header</directive> ディレクティブには追加の引数を持たせることが + できて、どういったアクションが行われたかの条件を指定したり、 + <a href="#early">早期処理</a> を指定する <code>early</code> キーワードを + 指定できます。 + <code>env=...</code> 引数で指定された <a + href="../env.html">環境変数</a> が存在する (もしくは <code>env=!...</code> + が指定されていて環境変数が存在しない) 場合は、<directive>Header</directive> + ディレクティブで指定された動作が行なわれます。そうでない場合は、 + ディレクティブはそのリクエストには何もしません。</p> + + <p><a href="#early">早期処理</a>モードの場合以外では、 <directive>Header</directive> - $B%G%#%l%/%F%#%V$O1~Ez$,%M%C%H%o!<%/$KAw$i$l$kD>A0$K(B - $B=hM}$5$l$^$9!#$3$l$O!"%X%C%@%U%#%k%?$K$h$jDI2C$5$l$k%X%C%@$r(B - $B=|$-!"$[$H$s$I$N%X%C%@$r@_Dj$7$?$j>e=q$-$7$?$j$9$k$3$H$,(B - $B2DG=!"$H$$$&$3$H$G$9!#(B</p> + ディレクティブは応答がネットワークに送られる直前に + 処理されます。これは、ヘッダフィルタにより追加されるヘッダを + 除き、ほとんどのヘッダを設定したり上書きしたりすることが + 可能、ということです。</p> </usage> </directivesynopsis> diff --git a/docs/manual/mod/mod_ident.xml.ja b/docs/manual/mod/mod_ident.xml.ja index ca290e9043..ca60e80f1b 100644 --- a/docs/manual/mod/mod_ident.xml.ja +++ b/docs/manual/mod/mod_ident.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 420993 --> @@ -27,62 +27,62 @@ <status>Extension</status> <sourcefile>mod_ident.c</sourcefile> <identifier>ident_module</identifier> -<compatibility>Apache 2.1 $B$G;HMQ2DG=(B</compatibility> +<compatibility>Apache 2.1 で使用可能</compatibility> <summary> - <p>$B$3$N%b%8%e!<%k$O%j%b!<%H%[%9%H$N(B <a - href="http://www.ietf.org/rfc/rfc1413.txt">RFC 1413</a> $B8_49%G!<%b%s(B - $B$K%3%M%/%7%g%s$N=jM-<T$r?V$-$^$9!#(B</p> + <p>このモジュールはリモートホストの <a + href="http://www.ietf.org/rfc/rfc1413.txt">RFC 1413</a> 互換デーモン + にコネクションの所有者を訊きます。</p> </summary> <seealso><module>mod_log_config</module></seealso> <directivesynopsis> <name>IdentityCheck</name> -<description>$B%j%b!<%H%f!<%6$N(B RFC 1413 $B$K$h$k%"%$%G%s%F%#%F%#$N%m%.%s%0$r(B -$BM-8z$K$9$k(B</description> +<description>リモートユーザの RFC 1413 によるアイデンティティのロギングを +有効にする</description> <syntax>IdentityCheck On|Off</syntax> <default>IdentityCheck Off</default> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context></contextlist> -<compatibility>Apache 2.1 $B$G(B core $B$+$i0\F0(B</compatibility> +<compatibility>Apache 2.1 で core から移動</compatibility> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O!"%/%i%$%"%s%H%^%7%s>e$G(B - identd $B$d$=$l$KN`;w$7$?%G!<%b%s$,F0:n$7$F$$$k$H$-$K!"(B - $B$=$l$>$l$N@\B3$KBP$7$F(B <a href="http://www.ietf.org/rfc/rfc1413.txt" - >RFC 1413</a> $B$K=`=h$7$?%j%b!<%H%f!<%6$N(B - $BL>A0$N%m%.%s%0$r9T$J$&$h$&$K$7$^$9!#(B - $B$3$N>pJs$O!"(B<code>%...l</code> <a href="mod_log_config.html#formats" - >$B%U%)!<%^%C%HJ8;zNs(B</a>$B$r;H$C$F%"%/%;%9%m%0$K<}=8$5$l$^$9!#(B</p> + <p>このディレクティブは、クライアントマシン上で + identd やそれに類似したデーモンが動作しているときに、 + それぞれの接続に対して <a href="http://www.ietf.org/rfc/rfc1413.txt" + >RFC 1413</a> に準処したリモートユーザの + 名前のロギングを行なうようにします。 + この情報は、<code>%...l</code> <a href="mod_log_config.html#formats" + >フォーマット文字列</a>を使ってアクセスログに収集されます。</p> <note> - $B$3$3$GF@$i$l$?>pJs$O4JC1$J%f!<%6DI@W$K;H$&0J30$O!"(B - $B$^$C$?$/?.Mj$9$k$Y$-$G$O$"$j$^$;$s!#(B</note> + ここで得られた情報は簡単なユーザ追跡に使う以外は、 + まったく信頼するべきではありません。</note> - <p>$B$9$Y$F$N%j%/%(%9%H$KBP$7$F%k%C%/%"%C%W$,9T$J$o$l$^$9$N$G!"(B - $B?<9o$JCY1d$NLdBj$r5/$3$9$+$b$7$l$J$$$3$H$KCm0U$7$F$/$@$5$$!#(B - ($BLuCm(B: $BNc$($P%/%i%$%"%s%HB&$K(B) $B%U%!%$%"%&%)!<%k$d%W%m%-%7%5!<%P$,$"$k$H!"(B - $B%k%C%/%"%C%W$,<:GT$7!"3F%j%/%(%9%H$K(B <directive module="mod_ident" - >IdentityCheckTimeout</directive>$B$GDj5A$5$l$F$$$kCY1d$,2C$o$k$3$H$K(B - $B$J$k2DG=@-$,$"$j$^$9!#(B - $B=>$C$F!"0lHLE*$K$O%$%s%?!<%M%C%H$+$i%"%/%;%92DG=$J%Q%V%j%C%/$J%5!<%P$G(B - $BM-1W$J$b$N$G$O$"$j$^$;$s!#(B</p> + <p>すべてのリクエストに対してルックアップが行なわれますので、 + 深刻な遅延の問題を起こすかもしれないことに注意してください。 + (訳注: 例えばクライアント側に) ファイアウォールやプロキシサーバがあると、 + ルックアップが失敗し、各リクエストに <directive module="mod_ident" + >IdentityCheckTimeout</directive>で定義されている遅延が加わることに + なる可能性があります。 + 従って、一般的にはインターネットからアクセス可能なパブリックなサーバで + 有益なものではありません。</p> </usage> </directivesynopsis> <directivesynopsis> <name>IdentityCheckTimeout</name> -<description>Ident $B%j%/%(%9%H$,%?%$%`%"%&%H$9$k$^$G$N4|4V$r7h$a$k(B</description> +<description>Ident リクエストがタイムアウトするまでの期間を決める</description> <syntax>IdentityCheckTimeout <var>seconds</var></syntax> <default>IdentityCheckTimeout 30</default> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context></contextlist> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O(B ident $B%j%/%(%9%H$N%?%$%`%"%&%H;~4V$r7h$a$^$9!#(B - $B%G%U%)%k%H$NCM$G$"$k(B 30 $BIC$O!"<g$K%M%C%H%o!<%/CY1d$N9MN8$N$?$a$K(B <a - href="http://www.ietf.org/rfc/rfc1413.txt">RFC 1413</a> $B$K$h$j(B - $B?d>)$5$l$F$$$^$9!#$7$+$7!"$*$=$i$/%m!<%+%k%M%C%H%o!<%/$NB.EY$K(B - $B9g$o$;$F%?%$%`%"%&%HCM$rD4@a$9$k$N$,$h$$$G$7$g$&!#(B</p> + <p>このディレクティブは ident リクエストのタイムアウト時間を決めます。 + デフォルトの値である 30 秒は、主にネットワーク遅延の考慮のために <a + href="http://www.ietf.org/rfc/rfc1413.txt">RFC 1413</a> により + 推奨されています。しかし、おそらくローカルネットワークの速度に + 合わせてタイムアウト値を調節するのがよいでしょう。</p> </usage> </directivesynopsis> diff --git a/docs/manual/mod/mod_include.xml.ja b/docs/manual/mod/mod_include.xml.ja index b0344cfc5e..8021a30127 100644 --- a/docs/manual/mod/mod_include.xml.ja +++ b/docs/manual/mod/mod_include.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 151408:656287 (outdated) --> @@ -23,93 +23,93 @@ <modulesynopsis metafile="mod_include.xml.meta"> <name>mod_include</name> -<description>$B%5!<%P$,%Q!<%9$9$k(B html $B%I%-%e%a%s%H(B (Server Side Includes)</description> +<description>サーバがパースする html ドキュメント (Server Side Includes)</description> <status>Base</status> <sourcefile>mod_include.c</sourcefile> <identifier>include_module</identifier> -<compatibility>Apache 2.0 $B$+$i=PNO%U%#%k%?$H$7$F<BAu$5$l$^$7$?!#(B</compatibility> +<compatibility>Apache 2.0 から出力フィルタとして実装されました。</compatibility> <summary> - <p>$B$3$N%b%8%e!<%k$O%U%!%$%k$,%/%i%$%"%s%H$KAw$i$l$kA0$K=hM}$9$k%U%#%k%?$r(B - $BDs6!$7$^$9!#=hM}$NFbMF$O(B<dfn>$BMWAG(B</dfn>$B$H8F$P$l$kFCJL$J7A<0$N(B SGML $B%3%a%s%H$K$h$j(B - $B@)8f$5$l$^$9!#$3$l$i$NMWAG$O>r7oJ,4t$d!"B>$N%U%!%$%k$d(B - $B%W%m%0%i%`$N=PNO$N<h$j9~$_!"4D6-JQ?t$N@_Dj$dI=<($r9T$J$&$3$H$,(B - $B$G$-$^$9!#(B</p> + <p>このモジュールはファイルがクライアントに送られる前に処理するフィルタを + 提供します。処理の内容は<dfn>要素</dfn>と呼ばれる特別な形式の SGML コメントにより + 制御されます。これらの要素は条件分岐や、他のファイルや + プログラムの出力の取り込み、環境変数の設定や表示を行なうことが + できます。</p> </summary> <seealso><directive module="core">Options</directive></seealso> <seealso><directive module="core">AcceptPathInfo</directive></seealso> -<seealso><a href="../filter.html">$B%U%#%k%?(B</a></seealso> -<seealso><a href="../howto/ssi.html">SSI $B%A%e!<%H%j%"%k(B</a></seealso> +<seealso><a href="../filter.html">フィルタ</a></seealso> +<seealso><a href="../howto/ssi.html">SSI チュートリアル</a></seealso> <section id="enabling"> - <title>Server-Side Includes $B$rM-8z$K$9$k(B</title> + <title>Server-Side Includes を有効にする</title> - <p>Server Side Includes $B$O(B <code>INCLUDES</code> - <a href="../filter.html">$B%U%#%k%?(B</a> $B$K$h$j<BAu$5$l$F$$$^$9!#(B - Server-side include $B$N%G%#%l%/%F%#%V$r4^$`%I%-%e%a%s%H$N3HD%;R$,(B - .shtml $B$N>l9g!"0J2<$N%G%#%l%/%F%#%V$G$O(B Apache $B$,$=$l$i$r(B - $B%Q!<%9$7$F!"$=$N7k2L$G$-$k%I%-%e%a%s%H$K(B <code>text/html</code> $B$N(B - MIME $B%?%$%W$r3d$jEv$F$^$9(B:</p> + <p>Server Side Includes は <code>INCLUDES</code> + <a href="../filter.html">フィルタ</a> により実装されています。 + Server-side include のディレクティブを含むドキュメントの拡張子が + .shtml の場合、以下のディレクティブでは Apache がそれらを + パースして、その結果できるドキュメントに <code>text/html</code> の + MIME タイプを割り当てます:</p> <example> AddType text/html .shtml<br /> AddOutputFilter INCLUDES .shtml </example> - <p>$B0J2<$N%G%#%l%/%F%#%V$O(B shtml $B%U%!%$%k$N$"$k%G%#%l%/%H%j$G;XDj$5$l$F$$$k(B - $BI,MW$,$"$j$^$9(B ($BDL>o$O(B <directive module="core" - type="section">Directory</directive> $B%;%/%7%g%s$G;XDj$7$^$9$,!"(B + <p>以下のディレクティブは shtml ファイルのあるディレクトリで指定されている + 必要があります (通常は <directive module="core" + type="section">Directory</directive> セクションで指定しますが、 <directive module="core">AllowOverride</directive> <code>Options</code> - $B$,@_Dj$5$l$F$$$k$H!"(B<code>.htaccess</code> $B%U%!%$%k$K=q$/$3$H$b$G$-$^$9(B):</p> + が設定されていると、<code>.htaccess</code> ファイルに書くこともできます):</p> <example> Options +Includes </example> - <p>$B8_49@-$rJ]$D$?$a$K!"(B<code>server-parsed</code> - <a href="../handler.html">$B%O%s%I%i(B</a> $B$b(B INCLUDES $B%U%#%k%?$r(B - $BM-8z$K$7$^$9!#(BMIME $B%?%$%W(B <code>text/x-server-parsed-html</code> $B$d(B - <code>text/x-server-parsed-html3</code> $B$N%I%-%e%a%s%H$KBP$7$F$b(B - Apache $B$O(B INCLUDES $B%U%#%k%?$rM-8z$K$7$^$9(B ($B=PNO$5$l$k$b$N$O(B - MIME $B%?%$%W(B <code>text/html</code> $B$K$J$j$^$9(B)$B!#(B</p> + <p>互換性を保つために、<code>server-parsed</code> + <a href="../handler.html">ハンドラ</a> も INCLUDES フィルタを + 有効にします。MIME タイプ <code>text/x-server-parsed-html</code> や + <code>text/x-server-parsed-html3</code> のドキュメントに対しても + Apache は INCLUDES フィルタを有効にします (出力されるものは + MIME タイプ <code>text/html</code> になります)。</p> - <p>$B>\$7$$>pJs$O(B <a + <p>詳しい情報は <a href="../howto/ssi.html">Tutorial on Server Side Includes</a>.</p> </section> <!-- /enabling --> <section id="pathinfo"> - <title>$B%5!<%P%5%$%I%$%s%/%k!<%I(B (SSI) $B$G$N(B PATH_INFO</title> - - <p>SSI $B$G=hM}$5$l$k%U%!%$%k$O%G%U%)%k%H$G$O(B <code>PATH_INFO</code> - ($B8eB3$N%Q%9L>>pJs(B) - $BIU$-$N%j%/%(%9%H$r<u$1F~$l$J$/$J$j$^$7$?!#(B<directive - module="core">AcceptPathInfo</directive> $B%G%#%l%/%F%#%V$G(B - <code>PATH_INFO</code> $BIU$-$N%j%/%(%9%H$r<u$1F~$l$k$h$&$K%5!<%P$r(B - $B@_Dj$G$-$^$9!#(B</p> + <title>サーバサイドインクルード (SSI) での PATH_INFO</title> + + <p>SSI で処理されるファイルはデフォルトでは <code>PATH_INFO</code> + (後続のパス名情報) + 付きのリクエストを受け入れなくなりました。<directive + module="core">AcceptPathInfo</directive> ディレクティブで + <code>PATH_INFO</code> 付きのリクエストを受け入れるようにサーバを + 設定できます。</p> </section> <!-- /pathinfo --> -<section id="elements"><title>$B4pK\MWAG(B</title> - <p>$B%I%-%e%a%s%H$O!"(BSGML $B$N%3%a%s%H$H$7$FFCJL$J%3%^%s%I$,Kd$a9~$^$l$?(B - HTML $B%I%-%e%a%s%H$H$7$F%Q!<%9$5$l$^$9!#%3%^%s%I$N9=J8$O<!$N$h$&$K(B - $B$J$C$F$$$^$9(B:</p> +<section id="elements"><title>基本要素</title> + <p>ドキュメントは、SGML のコメントとして特別なコマンドが埋め込まれた + HTML ドキュメントとしてパースされます。コマンドの構文は次のように + なっています:</p> <example> <!--#<var>element</var> <var>attribute</var>=<var>value</var> <var>attribute</var>=<var>value</var> ... --> </example> - <p>$BCM(B ($BLuCm(B: value) $B$OFs=E0zMQId$G0O$`$N$,0lHLE*$G$9$,!"(B - $B%7%s%0%k%/%*!<%H(B (') $B$H%P%C%/%/%*!<%H(B (`) $B$b;HMQ$G$-$^$9!#(B - $BB?$/$N%3%^%s%I$OB0@-(B-$BCM(B ($BLuCm(B: attribute-value) $B$NAH$r0l$D$@$1;XDj$G$-$^$9!#(B - $B%3%a%s%H$N=*$o$j(B (<code>--></code>) - $B$NA0$K$O!"(BSSI $B$N6g$N0lIt$@$H2r<a$5$l$J$$$h$&$K$9$k$?$a$K6uGr$r(B - $BF~$l$F$/$@$5$$!#:G=i$N(B <code><!--#</code> $B$O$^$H$a$F(B<em>$B0l$D(B</em>$B$N(B - $B6g$G!"6uGr$r$U$/$s$G$O$$$1$J$$$3$HCm0U$7$F$/$@$5$$!#(B</p> + <p>値 (訳注: value) は二重引用符で囲むのが一般的ですが、 + シングルクオート (') とバッククオート (`) も使用できます。 + 多くのコマンドは属性-値 (訳注: attribute-value) の組を一つだけ指定できます。 + コメントの終わり (<code>--></code>) + の前には、SSI の句の一部だと解釈されないようにするために空白を + 入れてください。最初の <code><!--#</code> はまとめて<em>一つ</em>の + 句で、空白をふくんではいけないこと注意してください。</p> - <p>$BMWAG(B ($BLuCm(B: element) $B$r0J2<$NI=$K<($7$^$9!#(B</p> + <p>要素 (訳注: element) を以下の表に示します。</p> <table border="1"> - <tr><th>$BMWAG(B</th><th>$B@bL@(B</th></tr> + <tr><th>要素</th><th>説明</th></tr> <tr><td><code><a href="#element.config">config</a></code></td> <td>configure output formats</td></tr> <tr><td><code><a href="#element.echo">echo</a></code></td> @@ -128,117 +128,117 @@ <td>set a value of a variable</td></tr> </table> - <p>SSI $BMWAG$O(B <module>mod_include</module> $B0J30$N%b%8%e!<%k$G(B - $BDj5A$5$l$k$3$H$b$"$j$^$9!#<B:]!"(B - <code><a href="#element.exec">exec</a></code> $BMWAG$O(B - <module>mod_cgi</module> $B$GDs6!$5$l$F$$$F!"$3$N%b%8%e!<%k$,(B - $B%m!<%I$5$l$k>l9g$K$N$_MxMQ2DG=$H$J$j$^$9!#(B</p> + <p>SSI 要素は <module>mod_include</module> 以外のモジュールで + 定義されることもあります。実際、 + <code><a href="#element.exec">exec</a></code> 要素は + <module>mod_cgi</module> で提供されていて、このモジュールが + ロードされる場合にのみ利用可能となります。</p> - <section id="element.config"><title>config $BMWAG(B</title> - <p>$B<!$N%3%^%s%I$O2r@O$NMM!9$JB&LL$r@)8f$7$^$9!#B0@-$O<!$NDL$j$G$9!#(B</p> + <section id="element.config"><title>config 要素</title> + <p>次のコマンドは解析の様々な側面を制御します。属性は次の通りです。</p> <dl> - <dt><code>echomsg</code> (<em>Apache 2.1 $B0J9_(B</em>)</dt> - <dd>$B;XDj$5$l$kCM$O!"(B<code><a href="#element.echo">echo</a></code> - $BMWAG$,L$Dj5A$NJQ?t$r%(%3!<$7$h$&$H$7$?:]$K!"(B - $B%/%i%$%"%s%H$KAw$i$l$k%a%C%;!<%8$K$J$j$^$9!#(B + <dt><code>echomsg</code> (<em>Apache 2.1 以降</em>)</dt> + <dd>指定される値は、<code><a href="#element.echo">echo</a></code> + 要素が未定義の変数をエコーしようとした際に、 + クライアントに送られるメッセージになります。 <directive module="mod_include">SSIUndefinedEcho</directive> - $B%G%#%l%/%F%#%V$r>e=q$-$7$^$9!#(B</dd> + ディレクティブを上書きします。</dd> <dt><code>errmsg</code></dt> - <dd>$B$3$NCM$,!"%I%-%e%a%s%H$N2r@OCf$K%(%i!<$,H/@8$7$?;~$K(B - $B%/%i%$%"%s%H$KAw?.$5$l$k%a%C%;!<%8$K$J$j$^$9!#(B + <dd>この値が、ドキュメントの解析中にエラーが発生した時に + クライアントに送信されるメッセージになります。 <directive module="mod_include">SSIErrorMsg</directive> - $B%G%#%l%/%F%#%V$r>e=q$-$7$^$9!#(B</dd> + ディレクティブを上書きします。</dd> <dt><code>sizefmt</code></dt> - <dd>$B$3$NCM$O!"%U%!%$%k$N%5%$%:$rI=<($9$k:]$K;HMQ$9$k(B - $B%U%)!<%^%C%H$r@_Dj$7$^$9!#CM$O(B $B%P%$%H%+%&%s%H$N(B - <code>bytes</code>$B$+!"(BKb $B$d(B Mb $B$rM%@hE*$K;HMQ$9$k(B - <code>abbrec</code> ($BNc$($P(B 1024 $B%P%$%H$O(B "1K" $B$HI=<($5$l$^$9(B) - $B$G$9!#(B</dd> + <dd>この値は、ファイルのサイズを表示する際に使用する + フォーマットを設定します。値は バイトカウントの + <code>bytes</code>か、Kb や Mb を優先的に使用する + <code>abbrec</code> (例えば 1024 バイトは "1K" と表示されます) + です。</dd> <dt><code>timefmt</code></dt> - <dd>$B$3$NCM$O(B <code>strftime(3)</code> $B%i%$%V%i%j%k!<%A%s$,(B - $BF|;~$r%W%j%s%H$9$k:]$KMQ$$$i$l$^$9!#(B</dd> + <dd>この値は <code>strftime(3)</code> ライブラリルーチンが + 日時をプリントする際に用いられます。</dd> </dl> </section> <!-- /config --> - <section id="element.echo"><title>echo $BMWAG(B</title> - <p>$B$3$N%3%^%s%I$O0J2<$GDj5A$5$l$F$$$k(B <a href="#includevars">include - $BJQ?t(B</a> $B$rI=<($7$^$9!#JQ?t$,@_Dj$5$l$F$$$J$$>l9g$O(B <directive - module="mod_include">SSIUndefinedEcho</directive> $B%G%#%l%/%F%#%V$G(B - $B7hDj$5$l$k7k2L$H$J$j$^$9!#F|IU$O$=$N;~E@$G$N(B <code>timefmt</code> $B$K=>$C$F(B - $BI=<($5$l$^$9!#B0@-$O<!$NDL$j$G$9!#(B</p> + <section id="element.echo"><title>echo 要素</title> + <p>このコマンドは以下で定義されている <a href="#includevars">include + 変数</a> を表示します。変数が設定されていない場合は <directive + module="mod_include">SSIUndefinedEcho</directive> ディレクティブで + 決定される結果となります。日付はその時点での <code>timefmt</code> に従って + 表示されます。属性は次の通りです。</p> <dl> <dt><code>var</code></dt> - <dd>$BCM$OI=<($9$kJQ?t$NL>A0$G$9!#(B</dd> + <dd>値は表示する変数の名前です。</dd> <dt><code>encoding</code></dt> - <dd><p>$BJQ?t$r=PNO$9$kA0$K!"JQ?tCf$NFCJLJ8;z$r$I$N$h$&$K%(%s%3!<%I$9$k$+$r(B - $B;XDj$7$^$9!#(B<code>none</code> $B$K@_Dj$5$l$F$$$k$H!"%(%s%3!<%I$O9T$J$o$l$^$;$s!#(B - <code>url</code> $B$K@_Dj$5$l$F$$$k$H!"(BURL $B%(%s%3!<%I(B (%-$B%(%s%3!<%I$H$b(B - $B8F$P$l$F$$$^$9!#$3$l$O%j%s%/Ey$N(B URL $B$N;HMQ$KE,@Z$G$9(B) $B$,(B - $B9T$J$o$l$^$9!#(B<code>echo</code> $BMWAG$N3+;O;~$O!"%G%U%)%k%H$O(B - <code>entity</code> $B$K@_Dj$5$l$F$$$^$9!#$3$l$O%(%s%F%#%F%#%(%s%3!<%I(B - ($BCJMn$d%F%-%9%H$J$I$N%V%m%C%/%l%Y%k$N(B HTML $B%(%l%a%s%H$N%3%s%F%-%9%H$K(B - $BE,$7$F$$$^$9(B) $B$r9T$J$$$^$9!#$3$l$O(B <code>encoding</code> $BB0@-(B - $B$r2C$($k$3$H$GJQ99$G$-$^$9!#JQ99$O<!$N(B <code>encoding</code> $BB0@-$+!"(B - $BMWAG$N=*N;$^$G8zNO$r;}$A$^$9!#(B</p> - - <p><code>encoding</code> $BB0@-$O%(%s%3!<%I$NJQ99$r$7$?$$(B <code>var</code> - $B$N(B<em>$BA0$K(B</em> $B$"$kI,MW$,$"$k$3$H$KCm0U$7$F$/$@$5$$!#(B - $B$^$?!"(BISO-8859-1 $B%(%s%3!<%G%#%s%0$G(B - $BDj5A$5$l$F$$$kFCJL$JJ8;z$@$1$,%(%s%3!<%I$5$l$^$9!#(B - $BJL$NJ8;z$N%(%s%3!<%G%#%s%0$N>l9g$O!"$3$N%(%s%3!<%G%#%s%0$O(B - $BK>$_$N7k2L$K$J$i$J$$$+$b$7$l$^$;$s!#(B</p> + <dd><p>変数を出力する前に、変数中の特別文字をどのようにエンコードするかを + 指定します。<code>none</code> に設定されていると、エンコードは行なわれません。 + <code>url</code> に設定されていると、URL エンコード (%-エンコードとも + 呼ばれています。これはリンク等の URL の使用に適切です) が + 行なわれます。<code>echo</code> 要素の開始時は、デフォルトは + <code>entity</code> に設定されています。これはエンティティエンコード + (段落やテキストなどのブロックレベルの HTML エレメントのコンテキストに + 適しています) を行ないます。これは <code>encoding</code> 属性 + を加えることで変更できます。変更は次の <code>encoding</code> 属性か、 + 要素の終了まで効力を持ちます。</p> + + <p><code>encoding</code> 属性はエンコードの変更をしたい <code>var</code> + の<em>前に</em> ある必要があることに注意してください。 + また、ISO-8859-1 エンコーディングで + 定義されている特別な文字だけがエンコードされます。 + 別の文字のエンコーディングの場合は、このエンコーディングは + 望みの結果にならないかもしれません。</p> <note type="warning"> - $B%/%m%9%5%$%H%9%/%j%W%F%#%s%0$NLdBj$rHr$1$k$?$a$K!"(B - <em>$B>o$K(B</em>$B%f!<%6$+$i$N%G!<%?$r%(%s%3!<%I$9$Y$-$G$9!#(B + クロスサイトスクリプティングの問題を避けるために、 + <em>常に</em>ユーザからのデータをエンコードすべきです。 </note> </dd> </dl> </section> <!-- /echo --> - <section id="element.exec"><title>exec $BMWAG(B</title> - <p><code>exec</code> $B%3%^%s%I$O;XDj$5$l$?%7%'%k%3%^%s%I$d(B CGI $B%9%/%j%W%H$r(B - $B<B9T$7$^$9!#(B<module>mod_cgi</module> $B$,%5!<%P$KAH$_9~$^$l$F$$$k$$$J$1$l$P(B - $B$J$j$^$;$s!#(B<directive module="core">Option</directive> - <code>IncludesNOEXEC</code> $B$O$3$N%3%^%s%I$rL58z$K$7$^$9!#(B - $B;HMQ2DG=$JB0@-$O<!$NDL$j$G$9!#(B</p> + <section id="element.exec"><title>exec 要素</title> + <p><code>exec</code> コマンドは指定されたシェルコマンドや CGI スクリプトを + 実行します。<module>mod_cgi</module> がサーバに組み込まれているいなければ + なりません。<directive module="core">Option</directive> + <code>IncludesNOEXEC</code> はこのコマンドを無効にします。 + 使用可能な属性は次の通りです。</p> <dl> <dt><code>cgi</code></dt> - <dd><p>$BCM$O(B (%-$B%(%s%3!<%I$5$l$?(B) URL $B$r;XDj$7$^$9!#%Q%9$,(B - $B%9%i%C%7%e(B (/) $B$G;O$^$i$J$$$H$-$O!"%I%-%e%a%s%H$+$i$N(B - $BAjBP%Q%9$H$7$F07$o$l$^$9!#$3$N%Q%9$G;2>H$5$l$F$$$k%I%-%e%a%s%H$O(B - $B%5!<%P$,(B CGI $B%9%/%j%W%H$H$7$F07$C$F$$$J$/$F$b(B CGI $B%9%/%j%W%H$H$7$F(B - $B5/F0$5$l$^$9!#$?$@$7!"%9%/%j%W%H$N$"$k%G%#%l%/%H%j$G$O(B + <dd><p>値は (%-エンコードされた) URL を指定します。パスが + スラッシュ (/) で始まらないときは、ドキュメントからの + 相対パスとして扱われます。このパスで参照されているドキュメントは + サーバが CGI スクリプトとして扱っていなくても CGI スクリプトとして + 起動されます。ただし、スクリプトのあるディレクトリでは (<directive module="mod_alias">ScriptAlias</directive> - $B$d(B <directive module="core">Option</directive> <code>ExecCGI</code> - $B$K$h$C$F(B) CGI $B%9%/%j%W%H$N;HMQ$,5v2D$5$l$F$$$kI,MW$,$"$j$^$9!#(B</p> + や <directive module="core">Option</directive> <code>ExecCGI</code> + によって) CGI スクリプトの使用が許可されている必要があります。</p> - <p>CGI $B%9%/%j%W%H$K$O!"%/%i%$%"%s%H$+$i$N85!9$N%j%/%(%9%H$N(B - <code>PATH_INFO</code> $B$H%/%(%j!<J8;zNs(B (<code>QUERY_STRING</code>) $B$,EO$5$l$^$9!#(B - $B$3$l$i$O(B URL $B%Q%9$H$7$FFCDj(B<em>$B$G$-$J$$(B</em>$B$b$N$G$9!#(B - $B%9%/%j%W%H$OI8=`(B <a href="mod_cgi.html">CGI</a> $B4D6-$K2C$($F!"(Binclude $BJQ?t$r(B - $B;HMQ$9$k$3$H$,$G$-$^$9!#(B</p> + <p>CGI スクリプトには、クライアントからの元々のリクエストの + <code>PATH_INFO</code> とクエリー文字列 (<code>QUERY_STRING</code>) が渡されます。 + これらは URL パスとして特定<em>できない</em>ものです。 + スクリプトは標準 <a href="mod_cgi.html">CGI</a> 環境に加えて、include 変数を + 使用することができます。</p> - <example><title>$BNc(B</title> + <example><title>例</title> <!--#exec cgi="/cgi-bin/example.cgi" --> </example> - <p>$B%9%/%j%W%H$,!"=PNO$NBe$o$j$K(B <code>Location:</code> $B%X%C%@$rJV$9$H!"(B - HTML $B$N%"%s%+!<(B ($BLuCm!'%j%s%/(B) $B$KJQ49$5$l$^$9!#(B</p> + <p>スクリプトが、出力の代わりに <code>Location:</code> ヘッダを返すと、 + HTML のアンカー (訳注:リンク) に変換されます。</p> - <p><code>exec cgi</code> $B$h$j$b!"(B + <p><code>exec cgi</code> よりも、 <code><a href="#includevirtual">include virtual</a></code> - $B$NJ}$r;H$&$h$&$K$7$F$/$@$5$$!#FC$K!"(BCGI $B$X$NDI2C$N0z?t$r(B - $B%/%(%j!<J8;zNs$r;H$C$FEO$9$3$H$O(B <code>exec cgi</code> $B$O(B - $B$G$-$^$;$s$,!"(B<code>include virtual</code> $B$O0J2<$N$h$&$K$7$F(B - $B2DG=$G$9!#(B</p> + の方を使うようにしてください。特に、CGI への追加の引数を + クエリー文字列を使って渡すことは <code>exec cgi</code> は + できませんが、<code>include virtual</code> は以下のようにして + 可能です。</p> <example> <!--#include virtual="/cgi-bin/example.cgi?argument=value" --> @@ -246,23 +246,23 @@ </dd> <dt><code>cmd</code></dt> - <dd><p>$B%5!<%P$O;XDj$5$l$?J8;zNs$r(B <code>/bin/sh</code> $B$r;H$C$F(B - $B<B9T$7$^$9!#%3%^%s%I$ODL>o$N(B CGI $BJQ?t$K2C$($F(B <a - href="#includevars">include $BJQ?t(B</a>$B$b;H$&$3$H$,$G$-$^$9!#(B</p> - - <p>$B$[$H$s$I$N>l9g!"(B<code><a href="#includevirtual">#include - virtual</a></code> $B$r;H$&J}$,(B <code>#exec cgi</code> $B$d(B <code>#exec - cmd</code> $B$r;H$&$h$j$bNI$$$G$9!#A0<T(B (<code>#include virtual</code>) - $B$OI8=`$N(B Apache $B$N%5%V%j%/%(%9%H5!9=$r;H$C$F%U%!%$%k$d%9%/%j%W%H$N(B - $B=PNO$r<h$j9~$_$^$9!#(B - $B$3$A$i$NJ}$,$h$/%F%9%H$5$l%a%s%F%J%s%9$5$l$?J}K!$G$9!#(B</p> - - <p>$B$5$i$K!"(BWin32 $B$N$h$&$J$$$/$D$+$N%W%i%C%H%U%)!<%`$d!"(B<a - href="../suexec.html">suexec</a> $B$r;H$C$F$$$k(B unix $B$G$O!"(B - <code>exec</code> $B%G%#%l%/%F%#%V$N%3%^%s%I$K(B - $B0z?t$rEO$7$?$j!"%3%^%s%I$K6uGr$rF~$l$k$3$H$O$G$-$^$;$s!#(B - $B$G$9$+$i!"0J2<$N$b$N$O(B unix $B$N(B suexec $B$G$J$$@_Dj$G$OF0:n$7$^$9$,!"(B - Win32 $B$d(B suexec $B$r;H$C$F$$$k(B unix $B$G$O4|BT$7$?7k2L$K$O$J$j$^$;$s(B:</p> + <dd><p>サーバは指定された文字列を <code>/bin/sh</code> を使って + 実行します。コマンドは通常の CGI 変数に加えて <a + href="#includevars">include 変数</a>も使うことができます。</p> + + <p>ほとんどの場合、<code><a href="#includevirtual">#include + virtual</a></code> を使う方が <code>#exec cgi</code> や <code>#exec + cmd</code> を使うよりも良いです。前者 (<code>#include virtual</code>) + は標準の Apache のサブリクエスト機構を使ってファイルやスクリプトの + 出力を取り込みます。 + こちらの方がよくテストされメンテナンスされた方法です。</p> + + <p>さらに、Win32 のようないくつかのプラットフォームや、<a + href="../suexec.html">suexec</a> を使っている unix では、 + <code>exec</code> ディレクティブのコマンドに + 引数を渡したり、コマンドに空白を入れることはできません。 + ですから、以下のものは unix の suexec でない設定では動作しますが、 + Win32 や suexec を使っている unix では期待した結果にはなりません:</p> <example> <!--#exec cmd="perl /path/to/perlscript arg1 arg2" --> @@ -271,169 +271,169 @@ </dl> </section> <!-- /exec --> - <section id="element.fsize"><title>fsize $BMWAG(B</title> - <p>$B$3$N%3%^%s%I$O;XDj$5$l$?%U%!%$%k$NBg$-$5$r(B <code>sizefmt</code> $B$N(B - $B=q<0;XDj$K4p$E$$$F=PNO$7$^$9!#B0@-$O<!$NDL$j$G$9!#(B</p> + <section id="element.fsize"><title>fsize 要素</title> + <p>このコマンドは指定されたファイルの大きさを <code>sizefmt</code> の + 書式指定に基づいて出力します。属性は次の通りです。</p> <dl> <dt><code>file</code></dt> - <dd>$BCM$O2r@O$5$l$F$$$k%I%-%e%a%s%H$NB8:_$9$k%G%#%l%/%H%j$+$i$N(B - $BAjBP%Q%9$G$9!#(B</dd> + <dd>値は解析されているドキュメントの存在するディレクトリからの + 相対パスです。</dd> <dt><code>virtual</code></dt> - <dd> $BCM$O(B (% $B%(%s%3!<%I$5$l$?(B) URL-path $B$G$9!#%9%i%C%7%e(B (/) $B$G(B - $B;O$^$i$J$$$H$-$O%I%-%e%a%s%H$+$i$NAjBP%Q%9$H$7$F07$o$l$^$9!#(B - CGI $B$N=PNO$N%5%$%:$O%W%j%s%H(B<em>$B$5$l$^$;$s(B</em>$B!#(BCGI - $B%9%/%j%W%H<+BN$N%5%$%:$,%W%j%s%H$5$l$k$3$H$KCm0U$7$F$/$@$5$$!#(B</dd> + <dd> 値は (% エンコードされた) URL-path です。スラッシュ (/) で + 始まらないときはドキュメントからの相対パスとして扱われます。 + CGI の出力のサイズはプリント<em>されません</em>。CGI + スクリプト自体のサイズがプリントされることに注意してください。</dd> </dl> </section> <!-- /fsize --> - <section id="element.flastmod"><title>flastmod $BMWAG(B</title> - <p>$B$3$N%3%^%s%I$O;XDj$5$l$?%U%!%$%k$N:G=*=$@5;~9o$r(B - <code>timefmt</code> $B=q<0;XDj$K=>$C$FI=<($7$^$9!#(B - $B;XDj2DG=$JB0@-$O(B <code>fsize</code> $B%3%^%s%I$HF1$8$G$9!#(B</p> + <section id="element.flastmod"><title>flastmod 要素</title> + <p>このコマンドは指定されたファイルの最終修正時刻を + <code>timefmt</code> 書式指定に従って表示します。 + 指定可能な属性は <code>fsize</code> コマンドと同じです。</p> </section> <!-- /flastmod --> - <section id="element.include"><title>include $BMWAG(B</title> - <p>$B$3$N%3%^%s%I$OJL$NJ8=q$d%U%!%$%k$N%F%-%9%H$r2r@O$7$F$$$k%U%!%$%k$K(B - $BA^F~$7$^$9!#A^F~$5$l$k%U%!%$%k$O%"%/%;%9@)8f$N4IM}2<$K$"$j$^$9!#(B - $B2r@O$7$F$$$k%U%!%$%k$NB8:_$9$k%G%#%l%/%H%j$K(B + <section id="element.include"><title>include 要素</title> + <p>このコマンドは別の文書やファイルのテキストを解析しているファイルに + 挿入します。挿入されるファイルはアクセス制御の管理下にあります。 + 解析しているファイルの存在するディレクトリに <a href="core.html#options">Option</a> <code>IncludesNOEXEC</code> - $B$,@_Dj$5$l$F$$$k>l9g!"(Btext MIME $B%?%$%W(B (<code>text/plain</code>, - <code>text/html</code> $BEy(B) $B$N%I%-%e%a%s%H$N$_%$%s%/%k!<%I$,9T$J$o$l$^$9!#(B - $B$=$NB>$N>l9g$O!"%/%(%j!<J8;zNs$b4^$a!"%3%^%s%I$G;XDj$5$l$?(B - $B40A4$J(B URL $B$r;H$C$FIaDL$K(B CGI $B%9%/%j%W%H$,8F$S=P$5$l$^$9!#(B</p> + が設定されている場合、text MIME タイプ (<code>text/plain</code>, + <code>text/html</code> 等) のドキュメントのみインクルードが行なわれます。 + その他の場合は、クエリー文字列も含め、コマンドで指定された + 完全な URL を使って普通に CGI スクリプトが呼び出されます。</p> - <p>$BB0@-$,J8=q$N0LCV$r;XDj$7$^$9!#(Binclude $B%3%^%s%I$KM?$($i$l$?$=$l$>$l$N(B - $BB0@-$KBP$7$FA^F~:n6H$,9T$J$o$l$^$9!#M-8z$JB0@-$O<!$NDL$j$G$9!#(B</p> + <p>属性が文書の位置を指定します。include コマンドに与えられたそれぞれの + 属性に対して挿入作業が行なわれます。有効な属性は次の通りです。</p> <dl> <dt><code>file</code></dt> - <dd>$BCM$O2r@O$5$l$F$$$k%I%-%e%a%s%H$NB8:_$9$k%G%#%l%/%H%j$+$i$N(B - $BAjBP%Q%9$G$9!#(B - <code>../</code> $B$r4^$s$G$$$?$j!"@dBP%Q%9$r;XDj$7$?$j$O$G$-$^$;$s!#(B - $B$G$9$+$i!"%I%-%e%a%s%H%k!<%H$N30$K$"$k%U%!%$%k$d!"%G%#%l%/%H%j9=B$$G(B - $B>e0L$K$"$k%U%!%$%k$rA^F~$9$k$3$H$O$G$-$^$;$s!#(B - $B>o$K$3$NB0@-$h$j$O!"(B<code>virtual</code> $BB0@-$r;H$&$h$&$K$7$F$/$@$5$$!#(B + <dd>値は解析されているドキュメントの存在するディレクトリからの + 相対パスです。 + <code>../</code> を含んでいたり、絶対パスを指定したりはできません。 + ですから、ドキュメントルートの外にあるファイルや、ディレクトリ構造で + 上位にあるファイルを挿入することはできません。 + 常にこの属性よりは、<code>virtual</code> 属性を使うようにしてください。 </dd> <dt><code><a id="includevirtual" name="includevirtual" >virtual</a></code></dt> - <dd><p>$BCM$O2r@O$5$l$F$$$k%I%-%e%a%s%H$+$i$N(B (% $B%(%s%3!<%I$5$l$?(B) URL - $B$G$9!#(BURL $B$K$O%9%-!<%`$d%[%9%HL>$r4^$a$k$3$H$O$G$-$^$;$s!#%Q%9$H!"(B - $B$b$7$"$l$P%/%(%j!<J8;zNs$r;XDj$G$-$k$@$1$G$9!#%9%i%C%7%e(B (/) $B$+$i(B - $B;O$^$i$J$$>l9g$O!"%I%-%e%a%s%H$+$i$NAjBP%Q%9$H$7$F07$o$l$^$9!#(B</p> + <dd><p>値は解析されているドキュメントからの (% エンコードされた) URL + です。URL にはスキームやホスト名を含めることはできません。パスと、 + もしあればクエリー文字列を指定できるだけです。スラッシュ (/) から + 始まらない場合は、ドキュメントからの相対パスとして扱われます。</p> - <p>URL $B$OB0@-$+$i:n$i$l!"$=$N(B URL $B$r%/%i%$%"%s%H$,%"%/%;%9$7$?$H$-$K(B - $B=PNO$5$l$kFbMF$,2r@O8e$N=PNO$K4^$a$i$l$^$9!#$G$9$+$i!"A^F~$5$l$k(B - $B%U%!%$%k$OF~$l;R9=B$$K$9$k$3$H$,$G$-$^$9!#(B</p> + <p>URL は属性から作られ、その URL をクライアントがアクセスしたときに + 出力される内容が解析後の出力に含められます。ですから、挿入される + ファイルは入れ子構造にすることができます。</p> - <p>$B;XDj$5$l$?(B URL $B$,(B CGI $B%W%m%0%i%`$G$"$C$?>l9g$O!"(B - $B%W%m%0%i%`$,<B9T$5$l!"$=$N=PNO$,2r@O$7$F$$$k%U%!%$%kCf$N(B - $B%G%#%l%/%F%#%V$,$"$C$?0LCV$KA^F~$5$l$^$9!#(BCGI $B$N(B url $B$K(B - $B%/%(%j!<(B URL $B$rF~$l$k$3$H$b$G$-$^$9!#(B</p> + <p>指定された URL が CGI プログラムであった場合は、 + プログラムが実行され、その出力が解析しているファイル中の + ディレクティブがあった位置に挿入されます。CGI の url に + クエリー URL を入れることもできます。</p> <example> <!--#include virtual="/cgi-bin/example.cgi?argument=value" --> </example> - <p>HTML $B%I%-%e%a%s%H$K(B CGI $B%W%m%0%i%`$N=PNO$r4^$a$kJ}K!$H$7$F$O!"(B - <code>include virtual</code> $B$NJ}$,(B <code>exec cgi</code> $B$h$j$b(B - $B9%$^$7$$J}K!$G$9!#(B</p> + <p>HTML ドキュメントに CGI プログラムの出力を含める方法としては、 + <code>include virtual</code> の方が <code>exec cgi</code> よりも + 好ましい方法です。</p> </dd> </dl> </section> <!-- /include --> - <section id="element.printenv"><title>printenv $BMWAG(B</title> - <p>$B$3$l$O!"B8:_$9$k$9$Y$F$NJQ?t$H$=$NCM$rI=<($7$^$9!#(BApache 1.3.12 $B$+$i!"(B - $BFCJL$JJ8;z$O=PNO$5$l$kA0$K%(%s%F%#%F%#%(%s%3!<%I(B ($B>\:Y$O(B <a - href="#element.echo"><code>echo</code></a> $BMWAG$r;2>H(B) - $B$5$l$k$h$&$K$J$j$^$7$?!#B0@-$O$"$j$^$;$s!#(B</p> + <section id="element.printenv"><title>printenv 要素</title> + <p>これは、存在するすべての変数とその値を表示します。Apache 1.3.12 から、 + 特別な文字は出力される前にエンティティエンコード (詳細は <a + href="#element.echo"><code>echo</code></a> 要素を参照) + されるようになりました。属性はありません。</p> - <example><title>$BNc(B</title> + <example><title>例</title> <!--#printenv --> </example> </section> <!-- /printenv --> - <section id="element.set"><title>set $BMWAG(B</title> - <p>$B$3$l$OJQ?t$NCM$r@_Dj$7$^$9!#B0@-$O<!$NDL$j$G$9!#(B</p> + <section id="element.set"><title>set 要素</title> + <p>これは変数の値を設定します。属性は次の通りです。</p> <dl> <dt><code>var</code></dt> - <dd>$B@_Dj$9$kJQ?t$NL>A0!#(B</dd> + <dd>設定する変数の名前。</dd> <dt><code>value</code></dt> - <dd>$BJQ?t$K@_Dj$9$kCM!#(B</dd> + <dd>変数に設定する値。</dd> </dl> - <example><title>$BNc(B</title> + <example><title>例</title> <!--#set var="category" value="help" --> </example> </section> <!-- /set --> </section> <!-- /basic elements --> <section id="includevars"> - <title>Include $BJQ?t(B</title> + <title>Include 変数</title> - <p>$BI8=`(B CGI $B4D6-$NJQ?t$K2C$($F!"(B<code>echo</code> $B%3%^%s%I$d!"(B - <code>if</code> $B$d(B <code>elif</code>, $B$=$l$K%I%-%e%a%s%H$+$i8F$S=P$5$l$k(B - $B$9$Y$F$N%W%m%0%i%`$+$i;HMQ$G$-$kJQ?t$,$"$j$^$9!#(B</p> + <p>標準 CGI 環境の変数に加えて、<code>echo</code> コマンドや、 + <code>if</code> や <code>elif</code>, それにドキュメントから呼び出される + すべてのプログラムから使用できる変数があります。</p> <dl> <dt><code>DATE_GMT</code></dt> - <dd>$B%0%j%K%C%8I8=`;~$K$h$k8=:_;~9o!#(B</dd> + <dd>グリニッジ標準時による現在時刻。</dd> <dt><code>DATE_LOCAL</code></dt> - <dd>$B%m!<%+%k$NI8=`;~$K$h$k8=:_;~9o!#(B</dd> + <dd>ローカルの標準時による現在時刻。</dd> <dt><code>DOCUMENT_NAME</code></dt> - <dd>$B%f!<%6$,%j%/%(%9%H$7$?(B ($B%G%#%l%/%H%j$r=|$$$?(B) $B%U%!%$%kL>!#(B</dd> + <dd>ユーザがリクエストした (ディレクトリを除いた) ファイル名。</dd> <dt><code>DOCUMENT_URI</code></dt> - <dd>$B%f!<%6$,%j%/%(%9%H$7$?(B (% $B%(%s%3!<%I$5$l$?(B) URL-path$B!#(B - $BA^F~%U%!%$%k$,F~$l;R$K$J$C$F$$$k>l9g$O!"2r@O$5$l$F$$$k(B - $B%I%-%e%a%s%H$N(B URL $B$G$O(B<em>$B$J$$(B</em>$B$3$H$KCm0U$7$F$/$@$5$$!#(B</dd> + <dd>ユーザがリクエストした (% エンコードされた) URL-path。 + 挿入ファイルが入れ子になっている場合は、解析されている + ドキュメントの URL では<em>ない</em>ことに注意してください。</dd> <dt><code>LAST_MODIFIED</code></dt> - <dd>$B%f!<%6$,%j%/%(%9%H$7$?%I%-%e%a%s%H$N:G=*=$@5;~9o!#(B</dd> + <dd>ユーザがリクエストしたドキュメントの最終修正時刻。</dd> <dt><code>QUERY_STRING_UNESCAPED</code></dt> - <dd>$B%/%(%j!<J8;zNs$,$"$k>l9g!"$3$NJQ?t$K$O(B (%-$B%G%3!<%I$5$l$?(B) - $B%/%(%j!<J8;zNs$,BeF~$5$l$F$$$F!"(Bshell $B$G;HMQ$G$-$k$h$&$K(B - <em>$B%(%9%1!<%W(B</em>$B$5$l$F$$$^$9(B (<code>&</code> - $B$H$$$C$?FC<lJ8;z$K$O%P%C%/%9%i%C%7%e$,D>A0$KCV$+$l$^$9(B)$B!#(B</dd> + <dd>クエリー文字列がある場合、この変数には (%-デコードされた) + クエリー文字列が代入されていて、shell で使用できるように + <em>エスケープ</em>されています (<code>&</code> + といった特殊文字にはバックスラッシュが直前に置かれます)。</dd> </dl> </section> -<section id="substitution"><title>$BJQ?tCV49(B</title> +<section id="substitution"><title>変数置換</title> - <p>$BJQ?tCV49$O$?$$$F$$$N>l9g(B SSI $B%G%#%l%/%F%#%V$N0z?t$H$7$FBEEv$J>l=j$K$"$k(B - $B0zMQId$G0O$^$l$?J8;zNsCf$G9T$J$o$l$^$9!#$3$l$K3:Ev$9$k$b$N$K$O!"(B + <p>変数置換はたいていの場合 SSI ディレクティブの引数として妥当な場所にある + 引用符で囲まれた文字列中で行なわれます。これに該当するものには、 <code>config</code>, <code>exec</code>, <code>flastmod</code>, <code>fsize</code>, - <code>include</code>, <code>echo</code>, <code>set</code> $B$N(B - $B3F%G%#%l%/%F%#%V$H!">r7oJ,4tMQ$N%*%Z%l!<%?$X$N0z?t$,$"$j$^$9!#(B - $B%I%k5-9f$O%P%C%/%9%i%C%7%e$r;H$&$3$H$G;H$&$3$H$,$G$-$^$9(B:</p> + <code>include</code>, <code>echo</code>, <code>set</code> の + 各ディレクティブと、条件分岐用のオペレータへの引数があります。 + ドル記号はバックスラッシュを使うことで使うことができます:</p> <example> <!--#if expr="$a = \$test" --> </example> - <p>$BJQ?tL>$H$7$F$_$J$5$l$kJ8;zNs$NCf$GJQ?t$X$N;2>H$rCV49$9$kI,MW$,$"$k$H$-$O!"(B - $B%7%'%k$G$NJQ?tCV49$N$h$&$K!"Cf3g8L$G3g$k$3$H$G6hJL$9$k$3$H$,$G$-$^$9(B:</p> + <p>変数名としてみなされる文字列の中で変数への参照を置換する必要があるときは、 + シェルでの変数置換のように、中括弧で括ることで区別することができます:</p> <example> <!--#set var="Zed" value="${REMOTE_HOST}_${REQUEST_METHOD}" --> </example> - <p>$B$3$NNc$G$O!"(B<code>REMOTE_HOST</code> $B$,(B - "<code>X</code>" $B$G(B <code>REQUEST_METHOD</code> $B$,(B - "<code>Y</code>" $B$N$H$-$KJQ?t(B <code>Zed</code> $B$r(B "<code>X_Y</code>" - $B$K@_Dj$7$^$9!#(B</p> + <p>この例では、<code>REMOTE_HOST</code> が + "<code>X</code>" で <code>REQUEST_METHOD</code> が + "<code>Y</code>" のときに変数 <code>Zed</code> を "<code>X_Y</code>" + に設定します。</p> - <p>$B0J2<$NNc$G$O!"(B<code>DOCUMENT_URI</code> $B$,(B <code>/foo/file.html</code> - $B$N$H$-$K(B "in foo" $B$r!"(B<code>/bar/file.html</code> $B$N$H$-$K(B "in bar" $B$r!"(B - $B$I$A$i$G$b$J$$$H$-$K$O(B "in neither" $B$rI=<($7$^$9!#(B</p> + <p>以下の例では、<code>DOCUMENT_URI</code> が <code>/foo/file.html</code> + のときに "in foo" を、<code>/bar/file.html</code> のときに "in bar" を、 + どちらでもないときには "in neither" を表示します。</p> <example> <!--#if expr='"$DOCUMENT_URI" = "/foo/file.html"' --><br /> @@ -453,9 +453,9 @@ </section> <section id="flowctrl"> - <title>$B%U%m!<@)8fMWAG(B</title> + <title>フロー制御要素</title> - <p>$B4pK\E*$J%U%m!<%3%s%H%m!<%kMWAG$O<!$NDL$j$G$9!#(B</p> + <p>基本的なフローコントロール要素は次の通りです。</p> <example> <!--#if expr="<var>test_condition</var>" --><br /> @@ -464,42 +464,42 @@ <!--#endif --> </example> - <p><code>if</code> $BMWAG$O%W%m%0%i%_%s%08@8l$N(B - if $BJ8$HF1$8$h$&$KF0:n$7$^$9!#>r7o$,I>2A$5$l!"7k2L$,??$G$"$l$P<!$N(B - <code>elif</code> $B$+(B <code>else</code> $B$+(B <code>endif</code> - $BMWAG$^$G$NJ8;zNs$,=PNO$KA^F~$5$l$^$9!#(B</p> + <p><code>if</code> 要素はプログラミング言語の + if 文と同じように動作します。条件が評価され、結果が真であれば次の + <code>elif</code> か <code>else</code> か <code>endif</code> + 要素までの文字列が出力に挿入されます。</p> - <p><code>elif</code> $B$d(B <code>else</code> $BJ8$O(B <var>test_condition</var> - $B$,56$N$H$-$K%F%-%9%H$r=PNO$KA^F~$9$k$?$a$K;H$o$l$^$9!#(B - $B$3$l$i$NMWAG$O$"$C$F$b$J$/$F$b9=$$$^$;$s!#(B</p> + <p><code>elif</code> や <code>else</code> 文は <var>test_condition</var> + が偽のときにテキストを出力に挿入するために使われます。 + これらの要素はあってもなくても構いません。</p> - <p><code>endif</code> $BMWAG$O(B <code>if</code> - $BMWAG$r=*N;$5$;$^$9!#$3$NMWAG$OI,?\$G$9!#(B</p> + <p><code>endif</code> 要素は <code>if</code> + 要素を終了させます。この要素は必須です。</p> - <p><var>test_condition</var> $B$O0J2<$N$I$l$+$G$9(B:</p> + <p><var>test_condition</var> は以下のどれかです:</p> <dl> <dt><code><var>string</var></code></dt> - <dd><var>string</var> $B$,6u$G$J$$>l9g$K??$G$9(B</dd> + <dd><var>string</var> が空でない場合に真です</dd> <dt><code><var>string1</var> = <var>string2</var><br /> <var>string1</var> == <var>string2</var><br /> <var>string1</var> != <var>string2</var></code></dt> - <dd><p><var>string1</var> $B$H(B <var>string2</var> $B$rHf3S$7$^$9!#(B - <var>string2</var> $B$,(B <code>/<var>string</var>/</code> - $B$H$$$&7A<0$G$"$l$P!"@55,I=8=$H$7$FHf3S$5$l$^$9!#@55,I=8=$O(B - <a href="http://www.pcre.org">PCRE</a> $B%(%s%8%s$G<BAu$5$l$F$$$F!"(B - <a href="http://www.perl.com">perl 5</a> $B$HF1$89=J8$r;HMQ$7$^$9!#(B - <code>==</code> $B$OC1$K(B <code>=</code> $B$NJLL>$G!"$^$C$?$/F1$8F0:n$r(B - $B$7$^$9!#(B</p> + <dd><p><var>string1</var> と <var>string2</var> を比較します。 + <var>string2</var> が <code>/<var>string</var>/</code> + という形式であれば、正規表現として比較されます。正規表現は + <a href="http://www.pcre.org">PCRE</a> エンジンで実装されていて、 + <a href="http://www.perl.com">perl 5</a> と同じ構文を使用します。 + <code>==</code> は単に <code>=</code> の別名で、まったく同じ動作を + します。</p> - <p>$B@5$N%^%C%A%s%0(B (<code>=</code> $B$^$?$O(B <code>==</code>) $B$N>l9g$O!"(B - $B@55,I=8=$G%0%k!<%WJ,$1$5$l$?%Q!<%D$r%-%c%W%A%c$9$k$3$H$,$G$-$^$9!#(B - $B%-%c%W%A%c$5$l$?ItJ,$OFC<lJQ?t(B <code>$1</code> .. <code>$9</code> - $B$K3JG<$5$l$^$9!#(B</p> + <p>正のマッチング (<code>=</code> または <code>==</code>) の場合は、 + 正規表現でグループ分けされたパーツをキャプチャすることができます。 + キャプチャされた部分は特殊変数 <code>$1</code> .. <code>$9</code> + に格納されます。</p> - <example><title>$BNc(B</title> + <example><title>例</title> <!--#if expr="$QUERY_STRING = /^sid=([a-zA-Z0-9]+)/" --><br /> <indent> <!--#set var="session" value="$1" --><br /> @@ -513,100 +513,100 @@ <var>string1</var> > <var>string2</var><br /> <var>string1</var> >= <var>string2</var></code></dt> - <dd><var>string1</var> $B$H(B <var>string2</var> $B$rHf3S$7$^$9!#(B - <em>$BJ8;zNs$H$7$F(B</em>$BHf3S$5$l$k(B (<code>strcmp(3)</code> $B$r;HMQ(B) - $B$3$H$KCm0U$7$F$/$@$5$$!#$G$9$+$i!"J8;zNs(B "100" $B$O(B "20" - $B$h$j$b>.$5$$$3$H$K$J$j$^$9!#(B</dd> + <dd><var>string1</var> と <var>string2</var> を比較します。 + <em>文字列として</em>比較される (<code>strcmp(3)</code> を使用) + ことに注意してください。ですから、文字列 "100" は "20" + よりも小さいことになります。</dd> <dt><code>( <var>test_condition</var> )</code></dt> - <dd><var>test_condition</var> $B$,??$N$H$-!"??(B</dd> + <dd><var>test_condition</var> が真のとき、真</dd> <dt><code>! <var>test_condition</var></code></dt> - <dd><var>test_condition</var> $B$,56$N$H$-!"??(B</dd> + <dd><var>test_condition</var> が偽のとき、真</dd> <dt><code><var>test_condition1</var> && <var>test_condition2</var></code></dt> - <dd><var>test_condition1</var> $B$+$D(B - <var>test_condition2</var> $B$,??$N$H$-!"??(B</dd> + <dd><var>test_condition1</var> かつ + <var>test_condition2</var> が真のとき、真</dd> <dt><code><var>test_condition1</var> || <var>test_condition2</var></code></dt> - <dd><var>test_condition1</var> $B$^$?$O(B - <var>test_condition2</var> $B$,??$N$H$-!"??(B</dd> + <dd><var>test_condition1</var> または + <var>test_condition2</var> が真のとき、真</dd> </dl> - <p>"<em>=</em>" $B$H(B "<em>!=</em>" $B$NJ}$,(B "<em>&&</em>" $B$h$j(B - $B$-$D$/B+G{$7$^$9!#(B"<em>!</em>" $B$NB+G{$,0lHV$-$D$/$J$C$F$$$^$9!#(B - $B$G$9$+$i0J2<$NFs$D$OEy2A$G$9(B:</p> + <p>"<em>=</em>" と "<em>!=</em>" の方が "<em>&&</em>" より + きつく束縛します。"<em>!</em>" の束縛が一番きつくなっています。 + ですから以下の二つは等価です:</p> <example> <!--#if expr="$a = test1 && $b = test2" --><br /> <!--#if expr="($a = test1) && ($b = test2)" --> </example> - <p>$B??56CM%*%Z%l!<%?(B <code>&&</code> $B$H(B <code>||</code> - $B$OF1$8M%@hEY$G$9!#(B - $B$3$l$i$N%*%Z%l!<%?$G0lJ}$K$h$j6/$$M%@hEY$r$D$1$?$$>l9g$K$O!"(B - $B3g8L$r;H$&I,MW$,$"$j$^$9!#(B</p> + <p>真偽値オペレータ <code>&&</code> と <code>||</code> + は同じ優先度です。 + これらのオペレータで一方により強い優先度をつけたい場合には、 + 括弧を使う必要があります。</p> - <p>$BJQ?t$d%*%Z%l!<%?$H$7$FG'<1$5$l$J$$$b$N$O$9$Y$FJ8;zNs$H$7$F(B - $B07$o$l$^$9!#J8;zNs$O0zMQId$G0O$`$3$H$b$G$-$^$9(B: <code>'string'</code> - $B$N$h$&$K!#0zMQId$G0O$^$l$F$$$J$$J8;zNs$K$O6uGr(B ($B%9%Z!<%9$H%?%V(B) - $B$r4^$a$k$3$H$O$G$-$^$;$s!#$=$l$i$OJQ?t$J$I$N6g$rJ,N%$9$k$?$a$K(B - $B;H$o$l$F$$$k$+$i$G$9!#J#?t$NJ8;zNs$,B3$$$F$$$k$H$-$O!"(B - $B6uGr$r4V$KF~$l$F0l$D$K$/$C$D$1$i$l$^$9!#$G$9$+$i!"(B</p> + <p>変数やオペレータとして認識されないものはすべて文字列として + 扱われます。文字列は引用符で囲むこともできます: <code>'string'</code> + のように。引用符で囲まれていない文字列には空白 (スペースとタブ) + を含めることはできません。それらは変数などの句を分離するために + 使われているからです。複数の文字列が続いているときは、 + 空白を間に入れて一つにくっつけられます。ですから、</p> <example> <p><code><var>string1</var> <var - >string2</var></code> $B$O(B <code><var>string1</var> <var - >string2</var></code> $B$K$J$j$^$9!#(B<br /> + >string2</var></code> は <code><var>string1</var> <var + >string2</var></code> になります。<br /> <br /> - $B$^$?!"(B<br /> + また、<br /> <br /> <code>'<var>string1</var> <var - >string2</var>'</code> $B$O(B <code><var + >string2</var>'</code> は <code><var >string1</var> <var>string2</var></code> - $B$K$J$j$^$9!#(B</p> + になります。</p> </example> - <note><title>$B??56CMI=8=$N:GE,2=(B</title> - <p>$B<0$,$b$C$HJ#;($K$J$j!"=hM}$NB.EYDc2<$,82Cx$K$J$C$?>l9g$O!"(B - $BI>2A%k!<%k$K=>$C$F:GE,2=$7$F$_$k$HNI$$$G$7$g$&!#(B</p> + <note><title>真偽値表現の最適化</title> + <p>式がもっと複雑になり、処理の速度低下が顕著になった場合は、 + 評価ルールに従って最適化してみると良いでしょう。</p> <ul> - <li>$BI>2A$O:8$+$i1&$K8~$+$C$F9T$o$l$^$9!#(B</li> - <li>$BFsCM??56CM%*%Z%l!<%?(B (<code>&&</code> $B$H(B <code>||</code>) - $B$O!"=PMh$k8B$jC;MmI>2A$5$l$^$9!#$D$^$j7k2L$H$7$F>e5-$N%k!<%k$O!"(B - <module>mod_include</module> $B$,:8$NI>2A<0$rI>2A$7$^$9!#(B - $B:8B&$G7k2L$r==J,7hDj$G$-$k>l9g$O!"I>2A$O$=$3$GDd;_$7$^$9!#(B - $B$=$&$G$J$$>l9g$O1&B&$rI>2A$7$F!":8$H1&$NN>J}$+$i7k2L$r7W;;$7$^$9!#(B</li> - <li>$BC;MmI>2A$OI>2A$NBP>]$K@55,I=8=$,4^$^$l$k>l9g!"%*%U$K$J$j$^$9!#(B - $B8eJ};2>H$9$kJQ?t(B (<code>$1</code> .. <code>$9</code>) - $B$rKd$a$k$?$a$K!"<B:]$KI>2A$9$kI,MW$,$"$k$+$i$G$9!#(B</li> + <li>評価は左から右に向かって行われます。</li> + <li>二値真偽値オペレータ (<code>&&</code> と <code>||</code>) + は、出来る限り短絡評価されます。つまり結果として上記のルールは、 + <module>mod_include</module> が左の評価式を評価します。 + 左側で結果を十分決定できる場合は、評価はそこで停止します。 + そうでない場合は右側を評価して、左と右の両方から結果を計算します。</li> + <li>短絡評価は評価の対象に正規表現が含まれる場合、オフになります。 + 後方参照する変数 (<code>$1</code> .. <code>$9</code>) + を埋めるために、実際に評価する必要があるからです。</li> </ul> - <p>$BFCDj$N<0$,$I$N$h$&$K07$o$l$k$+$rCN$j$?$$>l9g$O!"(B - <code>-DDEBUG_INCLUDE</code> $B%3%s%Q%$%i%*%W%7%g%s$rIU$1$F(B - <module>mod_include</module> $B$r%j%3%s%Q%$%k$9$k$HNI$$$G$7$g$&!#(B - $B$3$l$K$h$j!"A4$F$N%Q!<%9$5$l$?<0$KBP$7$F!";z6g2r@O>pJs!"(B - $B%Q!<%9%D%j!<$H!"(B - $B$=$l$,$I$N$h$&$K%/%i%$%"%s%H$KAw$i$l$?=PNO$^$GI>2A$5$l$?$+$r(B - $BA^F~$7$^$9!#(B</p> + <p>特定の式がどのように扱われるかを知りたい場合は、 + <code>-DDEBUG_INCLUDE</code> コンパイラオプションを付けて + <module>mod_include</module> をリコンパイルすると良いでしょう。 + これにより、全てのパースされた式に対して、字句解析情報、 + パースツリーと、 + それがどのようにクライアントに送られた出力まで評価されたかを + 挿入します。</p> </note> </section> <directivesynopsis> <name>SSIEndTag</name> -<description>include $BMWAG$r=*N;$5$;$kJ8;zNs(B</description> +<description>include 要素を終了させる文字列</description> <syntax>SSIEndTag <var>tag</var></syntax> <default>SSIEndTag "-->"</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> -<compatibility>2.0.30 $B0J9_$GMxMQ2DG=(B</compatibility> +<compatibility>2.0.30 以降で利用可能</compatibility> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O(B <module>mod_include</module> $B$,C5$9!"(B - include $BMWAG$N=*N;$r<($9J8;zNs$rJQ99$7$^$9!#(B</p> + <p>このディレクティブは <module>mod_include</module> が探す、 + include 要素の終了を示す文字列を変更します。</p> - <example><title>$BNc(B</title> + <example><title>例</title> SSIEndTag "%>" </example> @@ -616,20 +616,20 @@ <directivesynopsis> <name>SSIUndefinedEcho</name> -<description>$BL$Dj5A$NJQ?t$,(B echo $B$5$l$?$H$-$KI=<($5$l$kJ8;zNs(B</description> +<description>未定義の変数が echo されたときに表示される文字列</description> <syntax>SSIUndefinedEcho <var>string</var></syntax> <default>SSIUndefinedEcho "(none)"</default> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context></contextlist> <override>All</override> -<compatibility>2.0.34 $B0J9_$GMxMQ2DG=(B</compatibility> +<compatibility>2.0.34 以降で利用可能</compatibility> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$OJQ?t$,Dj5A$5$l$F$$$J$$$K$b4X$o$i$:(B - "echo" $B$5$l$?$H$-$K(B <module>mod_include</module> - $B$,I=<($9$kJ8;zNs$rJQ99$7$^$9!#(B</p> + <p>このディレクティブは変数が定義されていないにも関わらず + "echo" されたときに <module>mod_include</module> + が表示する文字列を変更します。</p> - <example><title>$BNc(B</title> + <example><title>例</title> SSIUndefinedEcho "<!-- undef -->" </example> </usage> @@ -637,26 +637,26 @@ <directivesynopsis> <name>SSIErrorMsg</name> -<description>SSI $B$N%(%i!<$,$"$C$?$H$-$KI=<($5$l$k%(%i!<%a%C%;!<%8(B</description> +<description>SSI のエラーがあったときに表示されるエラーメッセージ</description> <syntax>SSIErrorMsg <var>message</var></syntax> <default>SSIErrorMsg "[an error occurred while processing this directive]"</default> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context></contextlist> <override>All</override> -<compatibility>$B%P!<%8%g%s(B 2.0.30 $B0J9_$G;HMQ2DG=(B</compatibility> +<compatibility>バージョン 2.0.30 以降で使用可能</compatibility> <usage> - <p><directive>SSIErrorMsg</directive> $B%G%#%l%/%F%#%V$O(B <module>mod_include</module> - $B$,%(%i!<$,5/$3$C$?$H$-$KI=<($9$k%a%C%;!<%8$rJQ99$7$^$9!#%W%m%@%/%7%g%s%5!<%P$G$O(B - $B%a%C%;!<%8$,%f!<%6$KI=<($5$l$J$$$h$&$K$9$k$?$a$K(B - $B%G%U%)%k%H%(%i!<%a%C%;!<%8$r(B <code>"<!-- Error -->"</code> - $B$KJQ$($k$H$$$&$h$&$J$3$H$r9M$($k$+$b$7$l$^$;$s!#(B</p> + <p><directive>SSIErrorMsg</directive> ディレクティブは <module>mod_include</module> + がエラーが起こったときに表示するメッセージを変更します。プロダクションサーバでは + メッセージがユーザに表示されないようにするために + デフォルトエラーメッセージを <code>"<!-- Error -->"</code> + に変えるというようなことを考えるかもしれません。</p> - <p>$B$3$N%G%#%l%/%F%#%V$O(B <code><!--#config - errmsg=<var>message</var> --></code> $BMWAG$HF1$88z2L$K$J$j$^$9!#(B</p> + <p>このディレクティブは <code><!--#config + errmsg=<var>message</var> --></code> 要素と同じ効果になります。</p> - <example><title>$BNc(B</title> + <example><title>例</title> SSIErrorMsg "<!-- Error -->" </example> </usage> @@ -664,32 +664,32 @@ directive]"</default> <directivesynopsis> <name>SSIStartTag</name> -<description>include $BMWAG$r3+;O$9$kJ8;zNs(B</description> +<description>include 要素を開始する文字列</description> <syntax>SSIStartTag <var>tag</var></syntax> <default>SSIStartTag "<!--#"</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> -<compatibility>$B%P!<%8%g%s(B 2.0.30 $B0J9_$G;HMQ2DG=(B</compatibility> +<compatibility>バージョン 2.0.30 以降で使用可能</compatibility> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O(B <module>mod_include</module> $B$,C5$9!"(Binclude - $BMWAG$N3+;O$r<($9J8;zNs$rJQ99$7$^$9!#(B</p> + <p>このディレクティブは <module>mod_include</module> が探す、include + 要素の開始を示す文字列を変更します。</p> - <p>$BFs$D$N%5!<%P$G(B ($B$b$7$+$9$k$HJL!9$NCJ3,$G(B) $B%U%!%$%k$N=PNO$r2r@O$7$F$$$F!"(B - $B$=$l$>$l$K0c$&%3%^%s%I$r=hM}$5$;$?$$!"(B - $B$H$$$&$h$&$J$H$-$K$3$N%*%W%7%g%s$r;H$$$^$9!#(B</p> + <p>二つのサーバで (もしかすると別々の段階で) ファイルの出力を解析していて、 + それぞれに違うコマンドを処理させたい、 + というようなときにこのオプションを使います。</p> - <example><title>$BNc(B</title> + <example><title>例</title> SSIStartTag "<%"<br /> SSIEndTag "%>" </example> - <p>$B>e$NNc$N$h$&$KBP1~$9$k(B - <directive module="mod_include">SSIEndTag</directive> $B$rJ;$;$F;H$&$H!"(B - $B2<$K<($9Nc$N$h$&$K(B SSI $B%G%#%l%/%F%#%V$r;H$($^$9(B:</p> + <p>上の例のように対応する + <directive module="mod_include">SSIEndTag</directive> を併せて使うと、 + 下に示す例のように SSI ディレクティブを使えます:</p> - <example><title>$B0c$&3+;O$H=*N;$N%?%0$r;H$C$?(B SSI $B%G%#%l%/%F%#%V(B</title> + <example><title>違う開始と終了のタグを使った SSI ディレクティブ</title> <%printenv %> </example> </usage> @@ -698,36 +698,36 @@ directive]"</default> <directivesynopsis> <name>SSITimeFormat</name> -<description>$BF|IU$1$r8=$9J8;zNs$N=q<0$r@_Dj$9$k(B</description> +<description>日付けを現す文字列の書式を設定する</description> <syntax>SSITimeFormat <var>formatstring</var></syntax> <default>SSITimeFormat "%A, %d-%b-%Y %H:%M:%S %Z"</default> <contextlist> <context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context></contextlist> <override>All</override> -<compatibility>2.0.30 $B0J9_$G;HMQ2DG=(B</compatibility> +<compatibility>2.0.30 以降で使用可能</compatibility> <usage> -<p>$B$3$N%G%#%l%/%F%#%V$O(B <code>DATE</code> $B4D6-JQ?t$r(B echo $B$7$FF|IU$r8=$9J8;zNs$,(B - $BI=<($5$l$k$H$-$N=q<0$rJQ99$7$^$9!#(B<var>formatstring</var> $B$O(B - C $BI8=`%i%$%V%i%j$N(B <code>strftime(3)</code> $B$HF1$87A<0$G$9!#(B</p> +<p>このディレクティブは <code>DATE</code> 環境変数を echo して日付を現す文字列が + 表示されるときの書式を変更します。<var>formatstring</var> は + C 標準ライブラリの <code>strftime(3)</code> と同じ形式です。</p> - <p>$B$3$N%G%#%l%/%F%#%V$O(B <code><!--#config - timefmt=<var>formatstring</var> --></code> $BMWAG$HF1$88z2L$K$J$j$^$9!#(B</p> + <p>このディレクティブは <code><!--#config + timefmt=<var>formatstring</var> --></code> 要素と同じ効果になります。</p> - <example><title>$BNc(B</title> + <example><title>例</title> SSITimeFormat "%R, %B %d, %Y" </example> - <p>$B>e$N%G%#%l%/%F%#%V$G$O!"F|IU$O(B "22:26, June 14, 2002" $B$H$$$&(B - $B7A<0$GI=<($5$l$^$9!#(B</p> + <p>上のディレクティブでは、日付は "22:26, June 14, 2002" という + 形式で表示されます。</p> </usage> </directivesynopsis> <directivesynopsis> <name>XBitHack</name> -<description>$B<B9T%S%C%H$,@_Dj$5$l$?%U%!%$%k$N(B SSI $B%G%#%l%/%F%#%V$r(B -$B2r@O$9$k(B</description> +<description>実行ビットが設定されたファイルの SSI ディレクティブを +解析する</description> <syntax>XBitHack on|off|full</syntax> <default>XBitHack off</default> <contextlist><context>server config</context><context>virtual host</context> @@ -735,32 +735,32 @@ directive]"</default> <override>Options</override> <usage> - <p><directive>XBitHack</directive> $B%G%#%l%/%F%#%V$ODL>o$N(B HTML - $B%I%-%e%a%s%H$N2r@O$r@)8f$7$^$9!#$3$N%G%#%l%/%F%#%V$O(B MIME $B%?%$%W(B - <code>text/html</code> $B$H4XO"IU$1$i$l$F$$$k%U%!%$%k$K$N$_1F6A$7$^$9!#(B - <directive>XBitHack</directive> $B$O0J2<$NCM$r$H$k$3$H$,$G$-$^$9!#(B</p> + <p><directive>XBitHack</directive> ディレクティブは通常の HTML + ドキュメントの解析を制御します。このディレクティブは MIME タイプ + <code>text/html</code> と関連付けられているファイルにのみ影響します。 + <directive>XBitHack</directive> は以下の値をとることができます。</p> <dl> <dt><code>off</code></dt> - <dd>$B<B9T2DG=%U%!%$%k$KBP$7$FFCJL$J07$$$r$7$^$;$s!#(B</dd> + <dd>実行可能ファイルに対して特別な扱いをしません。</dd> <dt><code>on</code></dt> - <dd>$B%f!<%6$N<B9T%S%C%H$,@_Dj$5$l$F$$$k(B <code>text/html</code> - $B%U%!%$%k$OA4$F%5!<%P$G2r@O$9$k(B html $B%I%-%e%a%s%H$H$7$F07$o$l$^$9!#(B</dd> + <dd>ユーザの実行ビットが設定されている <code>text/html</code> + ファイルは全てサーバで解析する html ドキュメントとして扱われます。</dd> <dt><code>full</code></dt> - <dd><code>on</code> $B$HF1MM$G$9$,!"%0%k!<%W<B9T%S%C%H$b%F%9%H$7$^$9!#(B - $B$b$7$=$l$,@_Dj$5$l$F$$$l$P!"JV$5$l$k%U%!%$%k$N(B <code>Last-modified</code> $B$N(B - $BF|IU$r%U%!%$%k$N:G=*=$@5;~9o$K$7$^$9!#$=$l$,@_Dj$5$l$F$$$J$$$H$-$O!"(B - last-modified $B$NF|IU$OAw$i$l$^$;$s!#$3$N%S%C%H$r@_Dj$9$k$H!"(B - $B%/%i%$%"%s%H$d%W%m%-%7$,%j%/%(%9%H$r%-%c%C%7%e$G$-$k$h$&$K$J$j$^$9!#(B - - <note><strong>$BCm0U(B</strong> $BB>$N(B CGI $B$r(B <code>#include</code> - $B$9$k$+$b$7$l$J$$$b$N$d!"3F%"%/%;%9$KBP$7$F0c$&=PNO$r@8@.$9$k(B - ($B$b$7$/$O8e$N%j%/%(%9%H$GJQ$o$k$+$b$7$l$J$$$b$N(B) - $B$9$Y$F$N(B SSI $B%9%/%j%W%H$KBP$7$F%0%k!<%W<B9T%S%C%H$,(B - $B@_Dj$5$l$F$$$J$$$3$H$r3NG'$G$-$J$$>l9g$O!"(Bfull $B$O;H$o$J$$J}$,NI$$(B - $B$G$7$g$&!#(B</note> + <dd><code>on</code> と同様ですが、グループ実行ビットもテストします。 + もしそれが設定されていれば、返されるファイルの <code>Last-modified</code> の + 日付をファイルの最終修正時刻にします。それが設定されていないときは、 + last-modified の日付は送られません。このビットを設定すると、 + クライアントやプロキシがリクエストをキャッシュできるようになります。 + + <note><strong>注意</strong> 他の CGI を <code>#include</code> + するかもしれないものや、各アクセスに対して違う出力を生成する + (もしくは後のリクエストで変わるかもしれないもの) + すべての SSI スクリプトに対してグループ実行ビットが + 設定されていないことを確認できない場合は、full は使わない方が良い + でしょう。</note> </dd> </dl> diff --git a/docs/manual/mod/mod_info.xml.ja b/docs/manual/mod/mod_info.xml.ja index 0ad8976597..ed715fe843 100644 --- a/docs/manual/mod/mod_info.xml.ja +++ b/docs/manual/mod/mod_info.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 151408:450473 (outdated) --> @@ -23,14 +23,14 @@ <modulesynopsis metafile="mod_info.xml.meta"> <name>mod_info</name> -<description>$B%5!<%P$N@_Dj$NJq3gE*$J354Q$rDs6!$9$k(B</description> +<description>サーバの設定の包括的な概観を提供する</description> <status>Extension</status> <sourcefile>mod_info.c</sourcefile> <identifier>info_module</identifier> <summary> - <p><module>mod_info</module> $B$r@_Dj$9$k$K$O!"0J2<$r(B <code>httpd.conf</code> - $B%U%!%$%k$K2C$($^$9!#(B</p> + <p><module>mod_info</module> を設定するには、以下を <code>httpd.conf</code> + ファイルに加えます。</p> <example> <Location /server-info><br /> @@ -41,8 +41,8 @@ </example> <p><directive type="section" module="core">Location</directive> - $B$NCf$G(B <module>mod_access</module> $B$r;H$C$F!"%5!<%P@_Dj>pJs$X$N(B - $B%"%/%;%9$r@)8B$7$?$$$H;W$&$+$b$7$l$^$;$s(B :</p> + の中で <module>mod_access</module> を使って、サーバ設定情報への + アクセスを制限したいと思うかもしれません :</p> <example> <Location /server-info><br /> @@ -55,27 +55,27 @@ </Location> </example> - <p>$B0lC6@_Dj$9$k$H!"(B<code>http://your.host.example.com/server-info</code> - $B$K%"%/%;%9$9$k$3$H$G%5!<%P$N>pJs$rF@$i$l$k$h$&$K$J$j$^$9!#(B</p> + <p>一旦設定すると、<code>http://your.host.example.com/server-info</code> + にアクセスすることでサーバの情報を得られるようになります。</p> </summary> <section id="security"><title>Security Issues</title> - <p>$B0lC6(B <module>mod_info</module> $B$,%5!<%P$KFI$_9~$^$l$k$H!"(B - $BDs6!$7$F$$$k%O%s%I%i5!G=$O%G%#%l%/%H%jKh$N@_Dj%U%!%$%k(B (<em>$BNc$($P(B</em> - .htaccess) $B$r4^$`(B <em>$B$9$Y$F(B</em>$B$N@_Dj%U%!%$%k$GM-8z$K$J$j$^$9!#(B - $B$3$N%b%8%e!<%k$rM-8z$K$9$k$H$-$O%;%-%e%j%F%#$NLdBj$r9MN8$9$kI,MW$,(B - $B$"$k$G$7$g$&!#(B</p> - - <p>$BFC$K!"$3$N%b%8%e!<%k$O%7%9%F%`%Q%9!"%f!<%6L>(B/$B%Q%9%o!<%I!"(B - $B%G!<%?%Y!<%9L>$J$I!"B>$N(B Apache $B%b%8%e!<%k$N@_Dj%G%#%l%/%F%#%V$+$i(B - $B%;%-%e%j%F%#>eHyL/$J>pJs$rO3$i$92DG=@-$,$"$j$^$9!#(B - $B$G$9$+$i!"$3$N%b%8%e!<%k$O$-$A$s$H%"%/%;%9@)8f$5$l$?4D6-$G(B<strong>$B$N$_(B</strong>$B!"(B - $BCm0U$7$F;H$C$F$/$@$5$$!#(B</p> - - <p>$B@_Dj>pJs$X$N%"%/%;%9$r@)8B$9$k$?$a$K!"(B<module>mod_authz_host</module> $B$r(B - $B;H$&$N$,NI$$$G$7$g$&!#(B</p> + <p>一旦 <module>mod_info</module> がサーバに読み込まれると、 + 提供しているハンドラ機能はディレクトリ毎の設定ファイル (<em>例えば</em> + .htaccess) を含む <em>すべて</em>の設定ファイルで有効になります。 + このモジュールを有効にするときはセキュリティの問題を考慮する必要が + あるでしょう。</p> + + <p>特に、このモジュールはシステムパス、ユーザ名/パスワード、 + データベース名など、他の Apache モジュールの設定ディレクティブから + セキュリティ上微妙な情報を漏らす可能性があります。 + ですから、このモジュールはきちんとアクセス制御された環境で<strong>のみ</strong>、 + 注意して使ってください。</p> + + <p>設定情報へのアクセスを制限するために、<module>mod_authz_host</module> を + 使うのが良いでしょう。</p> - <example><title>$B%"%/%;%9@)8f(B</title> + <example><title>アクセス制御</title> <Location /server-info><br /> <indent> SetHandler server-info<br /> @@ -89,72 +89,72 @@ </example> </section> -<section id="queries"><title>$BI=<($5$l$k>pJs$NA*Br(B</title> - <p>$B%G%U%)%k%H$G$O!"%5!<%P>pJs$O$9$Y$F$NM-8z$J%b%8%e!<%k$H!"(B - $B3F%b%8%e!<%k$K$D$$$F!"%b%8%e!<%k$,M}2r$9$k%G%#%l%/%F%#%V!"(B - $B<BAu$7$F$$$k!"%U%C%/!"8=;~E@$G$N@_Dj$N4XO"$9$k%G%#%l%/%F%#%V$K(B - $B$J$C$F$$$^$9!#(B</p> +<section id="queries"><title>表示される情報の選択</title> + <p>デフォルトでは、サーバ情報はすべての有効なモジュールと、 + 各モジュールについて、モジュールが理解するディレクティブ、 + 実装している、フック、現時点での設定の関連するディレクティブに + なっています。</p> - <p><code>server-info</code> $B%j%/%(%9%H$X%/%(%j!<$rDI2C$9$k$3$H$G!"(B - $B@_Dj>pJs$NB>$NI=<(7A<0$rA*$V$3$H$,$G$-$^$9!#Nc$($P!"(B - <code>http://your.host.example.com/server-info?config</code> $B$O(B - $B$9$Y$F$N@_Dj%G%#%l%/%F%#%V$rI=<($7$^$9!#(B</p> + <p><code>server-info</code> リクエストへクエリーを追加することで、 + 設定情報の他の表示形式を選ぶことができます。例えば、 + <code>http://your.host.example.com/server-info?config</code> は + すべての設定ディレクティブを表示します。</p> <dl> <dt><code>?<module-name></code></dt> - <dd>$B;XDj$5$l$?%b%8%e!<%k$K4XO"$9$k>pJs$N$_(B</dd> + <dd>指定されたモジュールに関連する情報のみ</dd> <dt><code>?config</code></dt> - <dd>$B%b%8%e!<%k$G%=!<%H$;$:$K!"@_Dj%G%#%l%/%F%#%V$N$_(B</dd> + <dd>モジュールでソートせずに、設定ディレクティブのみ</dd> <dt><code>?hooks</code></dt> - <dd>$B3F%b%8%e!<%k$,;HMQ$9$k%U%C%/$N$_(B</dd> + <dd>各モジュールが使用するフックのみ</dd> <dt><code>?list</code></dt> - <dd>$BM-8z$J%b%8%e!<%k$N4JC1$J%j%9%H$N$_(B</dd> + <dd>有効なモジュールの簡単なリストのみ</dd> <dt><code>?server</code></dt> - <dd>$B4pK\%5!<%P>pJs$N$_(B</dd> + <dd>基本サーバ情報のみ</dd> </dl> </section> -<section id="limitations"><title>$B4{CN$N@)8B(B</title> - <p><module>mod_info</module> $B$O!"85$N@_Dj%U%!%$%k$rFI$`$N$G$O$J$/!"(B - $B4{$K%Q!<%9$5$l$?@_Dj$rFI$_9~$`$3$H$G>pJs$rDs6!$7$^$9!#=>$C$F!"(B - $B%Q!<%9:Q$_$N@_Dj>pJs$NLZ$,@8@.$5$l$kJ}K!$K$h$k@)8B$,$$$/$D$+$"$j$^$9(B:</p> +<section id="limitations"><title>既知の制限</title> + <p><module>mod_info</module> は、元の設定ファイルを読むのではなく、 + 既にパースされた設定を読み込むことで情報を提供します。従って、 + パース済みの設定情報の木が生成される方法による制限がいくつかあります:</p> <ul> - <li>$B%Q!<%9$5$l$?@_Dj$KJ]B8$5$l$:$K!"$9$0$K<B9T$5$l$k%G%#%l%/%F%#%V$O(B - $B0lMw$K8=$l$^$;$s!#$3$l$K$O(B + <li>パースされた設定に保存されずに、すぐに実行されるディレクティブは + 一覧に現れません。これには <directive module="core">ServerRoot</directive>, <directive module="mod_so">LoadModule</directive>, - <directive module="mod_so">LoadFile</directive> $B$,$"$j$^$9!#(B</li> + <directive module="mod_so">LoadFile</directive> があります。</li> <li><directive module="core">Include</directive>, <directive module="core"><IfModule></directive>, <directive module="core"><IfDefine></directive>, - $B$N$h$&$J@_Dj%U%!%$%k<+?H$r@)8f$9$k%G%#%l%/%F%#%V$OI=<($5$l$^$;$s!#(B - $B$=$N%G%#%l%/%F%#%V$NCf$K$"$j!"M-8z$K$J$C$F$$$k%G%#%l%/%F%#%V$O(B - $BI=<($5$l$^$9!#(B</li> - <li>$B%3%a%s%H$OI=<($5$l$^$;$s!#(B($B$3$l$O;EMM$@$H;W$C$F$/$@$5$$!#(B)</li> - <li><code>.htaccess</code> $B%U%!%$%k$N@_Dj%G%#%l%/%F%#%V$OI=<($5$l$^$;$s(B - ($B1J5WE*$J%5!<%P@_Dj$N0lIt$G$O$J$$$+$i$G$9(B)$B!#(B</li> + のような設定ファイル自身を制御するディレクティブは表示されません。 + そのディレクティブの中にあり、有効になっているディレクティブは + 表示されます。</li> + <li>コメントは表示されません。(これは仕様だと思ってください。)</li> + <li><code>.htaccess</code> ファイルの設定ディレクティブは表示されません + (永久的なサーバ設定の一部ではないからです)。</li> <li><directive module="core"><Directory></directive> - $B$N$h$&$J%3%s%F%J%G%#%l%/%F%#%V$OIaDL$KI=<($5$l$^$9$,!"(B - <module>mod_info</module> $B$OJD$8%?%0$N(B <directive module="core" - ></Directory></directive> $B$J$I$N?t$rCN$k$3$H$O$G$-$^$;$s!#(B</li> - <li><module>mod_perl</module> $B$N$h$&$J%5!<%I%Q!<%F%#%b%8%e!<%k(B - $B$N%G%#%l%/%F%#%V$OI=<($5$l$J$$$+$b$7$l$^$;$s!#(B</li> + のようなコンテナディレクティブは普通に表示されますが、 + <module>mod_info</module> は閉じタグの <directive module="core" + ></Directory></directive> などの数を知ることはできません。</li> + <li><module>mod_perl</module> のようなサードパーティモジュール + のディレクティブは表示されないかもしれません。</li> </ul> </section> <directivesynopsis> <name>AddModuleInfo</name> -<description>server-info $B%O%s%I%i$K$h$jI=<($5$l$k%b%8%e!<%k$N>pJs$K(B -$BDI2C$N>pJs$rIU$12C$($k(B</description> +<description>server-info ハンドラにより表示されるモジュールの情報に +追加の情報を付け加える</description> <syntax>AddModuleInfo <var>module-name</var> <var>string</var></syntax> <contextlist><context>server config</context><context>virtual host</context> </contextlist> -<compatibility>Apache 1.3 $B0J9_(B</compatibility> +<compatibility>Apache 1.3 以降</compatibility> <usage> - <p>$B$3$l$O!"(B<var>string</var> $B$NFbMF$,%b%8%e!<%k(B <var>module-name</var> - $B$N(B<strong>$BDI2C>pJs(B</strong> $B$H$7$F(B HTML - $B$H$7$F2r<a$5$l!"I=<($5$l$k$h$&$K$7$^$9!#Nc(B:</p> + <p>これは、<var>string</var> の内容がモジュール <var>module-name</var> + の<strong>追加情報</strong> として HTML + として解釈され、表示されるようにします。例:</p> <example> AddModuleInfo mod_deflate.c 'See <a \<br /> diff --git a/docs/manual/mod/mod_log_config.xml.ja b/docs/manual/mod/mod_log_config.xml.ja index acad178e92..4dd6aef356 100644 --- a/docs/manual/mod/mod_log_config.xml.ja +++ b/docs/manual/mod/mod_log_config.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 420990:579425 (outdated) --> @@ -23,316 +23,316 @@ <modulesynopsis metafile="mod_log_config.xml.meta"> <name>mod_log_config</name> -<description>$B%5!<%P$X$N%j%/%(%9%H$N%m%.%s%0(B</description> +<description>サーバへのリクエストのロギング</description> <status>Base</status> <sourcefile>mod_log_config.c</sourcefile> <identifier>log_config_module</identifier> <summary> <p> - $B$3$N%b%8%e!<%k$O%/%i%$%"%s%H$N%j%/%(%9%H$r=@Fp$K%m%0<}=8$9$k5!G=$r(B - $BDs6!$7$^$9!#%m%0$O%+%9%?%^%$%:2DG=$J=q<0$G=q$+$l!"%U%!%$%k$KD>@\(B - $B=q$$$?$j!"30It%W%m%0%i%`$KEO$7$?$j$9$k$3$H$,$G$-$^$9!#8D!9$N%j%/%(%9%H$r(B - $BFCD'$K1~$8$F%m%0$K=q$$$?$j=q$+$J$+$C$?$j$G$-$k$h$&$K!">r7o$K$h$k(B - $B%m%0<}=8$bDs6!$5$l$F$$$^$9!#(B</p> - - <p>$B$3$N%b%8%e!<%k$O;0$D$N%G%#%l%/%F%#%VDs6!$7$^$9(B: - $B%m%0%U%!%$%k$r:n@.$9$k$?$a$N(B <directive module="mod_log_config" + このモジュールはクライアントのリクエストを柔軟にログ収集する機能を + 提供します。ログはカスタマイズ可能な書式で書かれ、ファイルに直接 + 書いたり、外部プログラムに渡したりすることができます。個々のリクエストを + 特徴に応じてログに書いたり書かなかったりできるように、条件による + ログ収集も提供されています。</p> + + <p>このモジュールは三つのディレクティブ提供します: + ログファイルを作成するための <directive module="mod_log_config" >TransferLog</directive>, - $B?7$7$$=q<0$r(B $BDj5A$9$k(B <directive module="mod_log_config">LogFormat</directive>, - $B%m%0%U%!%$%k$H(B $B=q<0$r0lEY$KDj5A$9$k(B <directive module="mod_log_config" - >CustomLog</directive> $B$G$9!#(B - $B3F%j%/%(%9%H$,J#?t2s%m%0<}=8$5$l$k$h$&$K$9$k$?$a$K(B - <directive>TransferLog</directive> $B%G%#%l%/%F%#%V$H(B + 新しい書式を 定義する <directive module="mod_log_config">LogFormat</directive>, + ログファイルと 書式を一度に定義する <directive module="mod_log_config" + >CustomLog</directive> です。 + 各リクエストが複数回ログ収集されるようにするために + <directive>TransferLog</directive> ディレクティブと <directive>CustomLog</directive> - $B%G%#%l%/%F%#%V$OJ#?t2s;HMQ$9$k$3$H$,$G$-$^$9!#(B</p> + ディレクティブは複数回使用することができます。</p> </summary> -<seealso><a href="../logs.html">Apache $B%m%0%U%!%$%k(B</a></seealso> +<seealso><a href="../logs.html">Apache ログファイル</a></seealso> -<section id="formats"><title>$B%+%9%?%`%m%0=q<0(B</title> +<section id="formats"><title>カスタムログ書式</title> - <p><directive module="mod_log_config">LogFormat</directive> $B%G%#%l%/%F%#%V$H(B + <p><directive module="mod_log_config">LogFormat</directive> ディレクティブと <directive module="mod_log_config">CustomLog</directive> - $B%G%#%l%/%F%#%V$N=q<0$r;XDj$9$k0z?t$OJ8;zNs$G$9!#$3$NJ8;zNs$r;H$C$F$=$l$>$l$N(B - $B%j%/%(%9%H$,%m%0%U%!%$%k$K%m%0<}=8$5$l$^$9!#$=$NJ8;zNs$K$O(B - $B%m%0%U%!%$%k$K$=$N$^$^(B - $B=q$+$l$kJ8;zNs$d!"$=$l$>$l2~9T$H%?%V$rI=$9(B C $B8@8l(B - $B7A<0$N@)8fJ8;z(B "\n" $B$H(B "\t" - $B$H$r4^$a$k$3$H$,$G$-$^$9!#$=$N$^$^=PNO$5$;$?$$0zMQId$H%P%C%/%9%i%C%7%e$O(B - $B%P%C%/%9%i%C%7%e$G%(%9%1!<%W$9$kI,MW$,$"$j$^$9!#(B</p> - - <p>$B%j%/%(%9%H$NFCD'$=$N$b$N$O(B "<code>%</code>" - $B%G%#%l%/%F%#%V$r=q<0$NJ8;zNs$K=q$/$3$H$G(B - $B%m%0<}=8$5$l$^$9!#(B"%" - $B%G%#%l%/%F%#%V$O%m%0%U%!%$%kCf$G$O0J2<$N$h$&$J(B - $BCM$GCV49$5$l$^$9(B:</p> + ディレクティブの書式を指定する引数は文字列です。この文字列を使ってそれぞれの + リクエストがログファイルにログ収集されます。その文字列には + ログファイルにそのまま + 書かれる文字列や、それぞれ改行とタブを表す C 言語 + 形式の制御文字 "\n" と "\t" + とを含めることができます。そのまま出力させたい引用符とバックスラッシュは + バックスラッシュでエスケープする必要があります。</p> + + <p>リクエストの特徴そのものは "<code>%</code>" + ディレクティブを書式の文字列に書くことで + ログ収集されます。"%" + ディレクティブはログファイル中では以下のような + 値で置換されます:</p> <table border="1" style="zebra"> <columnspec><column width=".2"/><column width=".8"/></columnspec> - <tr><th>$B%U%)!<%^%C%HJ8;zNs(B</th> - <th>$B@bL@(B</th></tr> + <tr><th>フォーマット文字列</th> + <th>説明</th></tr> <tr><td><code>%%</code></td> - <td>$B%Q!<%;%s%H5-9f(B</td></tr> + <td>パーセント記号</td></tr> <tr><td><code>%a</code></td> - <td>$B%j%b!<%H(B IP $B%"%I%l%9(B</td></tr> + <td>リモート IP アドレス</td></tr> <tr><td><code>%A</code></td> - <td>$B%m!<%+%k(B IP $B%"%I%l%9(B</td></tr> + <td>ローカル IP アドレス</td></tr> <tr><td><code>%B</code></td> - <td>$B%l%9%]%s%9$N%P%$%H?t!#(BHTTP $B%X%C%@$O=|$/!#(B</td></tr> + <td>レスポンスのバイト数。HTTP ヘッダは除く。</td></tr> <tr><td><code>%b</code></td> - <td>$B%l%9%]%s%9$N%P%$%H?t!#(BHTTP $B%X%C%@$O=|$/!#(BCLF $B=q<0!#(B - <em>$B$9$J$o$A(B</em>$B!"(B1 $B%P%$%H$bAw$i$l$J$+$C$?$H$-$O(B 0 $B$G$O$J$/!"(B - '<code>-</code>' $B$K$J$k(B</td></tr> + <td>レスポンスのバイト数。HTTP ヘッダは除く。CLF 書式。 + <em>すなわち</em>、1 バイトも送られなかったときは 0 ではなく、 + '<code>-</code>' になる</td></tr> <tr><td><code>%{<var>Foobar</var>}C</code></td> - <td>$B%5!<%P$KAw$i$l$?%j%/%(%9%HCf$N%/%C%-!<(B <var>Foobar</var> $B$NCM(B</td></tr> + <td>サーバに送られたリクエスト中のクッキー <var>Foobar</var> の値</td></tr> <tr><td><code>%D</code></td> - <td>$B%j%/%(%9%H$r=hM}$9$k$N$K$+$+$C$?;~4V!"%^%$%/%mICC10L(B</td></tr> + <td>リクエストを処理するのにかかった時間、マイクロ秒単位</td></tr> <tr><td><code>%{<var>FOOBAR</var>}e</code></td> - <td>$B4D6-JQ?t(B <var>FOOBAR</var> $B$NFbMF(B</td></tr> + <td>環境変数 <var>FOOBAR</var> の内容</td></tr> <tr><td><code>%f</code></td> - <td>$B%U%!%$%kL>(B</td></tr> + <td>ファイル名</td></tr> <tr><td><code>%h</code></td> - <td>$B%j%b!<%H%[%9%H(B</td></tr> + <td>リモートホスト</td></tr> <tr><td><code>%H</code></td> - <td>$B%j%/%(%9%H%W%m%H%3%k(B</td></tr> + <td>リクエストプロトコル</td></tr> <tr><td><code>%{<var>Foobar</var>}i</code></td> - <td>$B%5!<%P$KAw$i$l$?%j%/%(%9%H$N(B <code><var>Foobar</var>:</code> - $B%X%C%@$NFbMF(B</td></tr> + <td>サーバに送られたリクエストの <code><var>Foobar</var>:</code> + ヘッダの内容</td></tr> <tr><td><code>%l</code></td> - <td>(identd $B$+$i$b$7Ds6!$5$l$F$$$l$P(B) $B%j%b!<%H%m%0L>!#(B - $B$3$l$O(B <module>mod_ident</module> $B$,%5!<%P$KB8:_$7$F!"(B + <td>(identd からもし提供されていれば) リモートログ名。 + これは <module>mod_ident</module> がサーバに存在して、 <directive module="mod_ident">IdentityCheck</directive> - $B%G%#%l%/%F%#%V$,(B <code>On</code> $B$K@_Dj$5$l$F$$$J$$8B$j!"(B - <code>-</code> $B$K$J$j$^$9!#(B</td></tr> + ディレクティブが <code>On</code> に設定されていない限り、 + <code>-</code> になります。</td></tr> <tr><td><code>%m</code></td> - <td>$B%j%/%(%9%H%a%=%C%I(B</td></tr> + <td>リクエストメソッド</td></tr> <tr><td><code>%{<var>Foobar</var>}n</code></td> - <td>$BB>$N%b%8%e!<%k$+$i$N%a%b(B <var>Foobar</var> $B$NFbMF(B</td></tr> + <td>他のモジュールからのメモ <var>Foobar</var> の内容</td></tr> <tr><td><code>%{<var>Foobar</var>}o</code></td> - <td>$B1~Ez$N(B <code><var>Foobar</var>:</code> $B%X%C%@$NFbMF(B</td></tr> + <td>応答の <code><var>Foobar</var>:</code> ヘッダの内容</td></tr> <tr><td><code>%p</code></td> - <td>$B%j%/%(%9%H$r07$C$F$$$k%5!<%P$N@5<0$J%]!<%H(B</td></tr> + <td>リクエストを扱っているサーバの正式なポート</td></tr> <tr><td><code>%P</code></td> - <td>$B%j%/%(%9%H$r07$C$?;R%W%m%;%9$N%W%m%;%9(B ID</td></tr> + <td>リクエストを扱った子プロセスのプロセス ID</td></tr> <tr><td><code>%{<var>format</var>}P</code></td> - <td>$B%j%/%(%9%H$r07$C$?%o!<%+!<$N%W%m%;%9(B ID $B$+%9%l%C%I(B ID$B!#(B - <var>format</var> $B$H$7$FM-8z$JCM$O(B <code>pid</code>, <code>tid</code>, - <code>hextid</code> $B$G$9!#(B<code>hextid</code> $B$r;H$&$K$O(B - APR 1.2.0 $B0J9_$,I,MW$G$9!#(B + <td>リクエストを扱ったワーカーのプロセス ID かスレッド ID。 + <var>format</var> として有効な値は <code>pid</code>, <code>tid</code>, + <code>hextid</code> です。<code>hextid</code> を使うには + APR 1.2.0 以降が必要です。 </td></tr> <tr><td><code>%q</code></td> - <td>$BLd$$9g$;J8;zNs(B ($BB8:_$9$k>l9g$OA0$K(B <code>?</code> $B$,DI2C$5$l$k!#(B - $B$=$&$G$J$$>l9g$O6uJ8;zNs(B)</td></tr> + <td>問い合せ文字列 (存在する場合は前に <code>?</code> が追加される。 + そうでない場合は空文字列)</td></tr> <tr><td><code>%r</code></td> - <td>$B%j%/%(%9%H$N:G=i$N9T(B</td></tr> + <td>リクエストの最初の行</td></tr> <tr><td><code>%s</code></td> - <td>$B%9%F!<%?%9!#FbIt$G%j%@%$%l%/%H$5$l$?%j%/%(%9%H$O!"85!9$N(B - $B%j%/%(%9%H$N%9%F!<%?%9(B --- $B:G8e$N%9%F!<%?%9$O(B <code>%>s</code> + <td>ステータス。内部でリダイレクトされたリクエストは、元々の + リクエストのステータス --- 最後のステータスは <code>%>s</code> </td></tr> <tr><td><code>%t</code></td> - <td>$B%j%/%(%9%H$r<uIU$1$?;~9o!#(B - CLF $B$N;~9o$N=q<0(B ($BI8=`$N1Q8l$N=q<0(B)</td></tr> + <td>リクエストを受付けた時刻。 + CLF の時刻の書式 (標準の英語の書式)</td></tr> <tr><td><code>%{<var>format</var>}t</code></td> - <td><var>format</var> $B$GM?$($i$l$?=q<0$K$h$k;~9o!#(Bformat $B$O(B - <code>strftime (3)</code> $B$N(B - $B=q<0$G$"$kI,MW$,$"$k!#(B($BCO0h2=$5$l$F$$$k2DG=@-$,$"$k(B)</td></tr> + <td><var>format</var> で与えられた書式による時刻。format は + <code>strftime (3)</code> の + 書式である必要がある。(地域化されている可能性がある)</td></tr> <tr><td><code>%T</code></td> - <td>$B%j%/%(%9%H$r07$&$N$K$+$+$C$?;~4V!"ICC10L(B</td></tr> + <td>リクエストを扱うのにかかった時間、秒単位</td></tr> <tr><td><code>%u</code></td> - <td>$B%j%b!<%H%f!<%6(B ($BG'>Z$K$h$k$b$N!#%9%F!<%?%9(B (<code>%s</code>) $B$,(B - 401 $B$N$H$-$O0UL#$,$J$$$b$N$G$"$k2DG=@-$,$"$k(B) + <td>リモートユーザ (認証によるもの。ステータス (<code>%s</code>) が + 401 のときは意味がないものである可能性がある) </td></tr> <tr><td><code>%U</code></td> - <td>$B%j%/%(%9%H$5$l$?(B URL $B%Q%9!#%/%(%jJ8;zNs$O4^$^$J$$(B</td></tr> + <td>リクエストされた URL パス。クエリ文字列は含まない</td></tr> <tr><td><code>%v</code></td> - <td>$B%j%/%(%9%H$r07$C$F$$$k%5!<%P$N@5<0$J(B <directive + <td>リクエストを扱っているサーバの正式な <directive module="core">ServerName</directive></td></tr> <tr><td><code>%V</code></td> <td><directive module="core" - >UseCanonicalName</directive> $B$N@_Dj$K$h$k%5!<%PL>(B</td></tr> + >UseCanonicalName</directive> の設定によるサーバ名</td></tr> <tr><td><code>%X</code></td> - <td>$B1~Ez$,40N;$7$?$H$-$N@\B3%9%F!<%?%9(B: + <td>応答が完了したときの接続ステータス: <table> <columnspec><column width=".2"/><column width=".6"/></columnspec> <tr><td><code>X</code> =</td> - <td>$B1~Ez$,40N;$9$kA0$K@\B3$,0[>o=*N;(B</td></tr> + <td>応答が完了する前に接続が異常終了</td></tr> <tr><td><code>+</code> =</td> - <td>$B1~Ez$,Aw$i$l$?8e$K@\B3$r;}B3$9$k$3$H$,2DG=(B</td></tr> + <td>応答が送られた後に接続を持続することが可能</td></tr> <tr><td><code>-</code> = </td> - <td>$B1~Ez$,Aw$i$l$?8e$K@\B3$,@Z$i$l$k(B</td></tr> + <td>応答が送られた後に接続が切られる</td></tr> </table> - <p>($B$3$N%G%#%l%/%F%#%V$O(B Apache - 1.3 $B$N8e4|$N%P!<%8%g%s$G$O(B <code>%c</code> $B$K3d$jEv$F$i$l$F(B - $B$$$^$7$?$,!"$3$l$ONr;KE*$K(B ssl $B$,;HMQ$7$F$$$k(B + <p>(このディレクティブは Apache + 1.3 の後期のバージョンでは <code>%c</code> に割り当てられて + いましたが、これは歴史的に ssl が使用している <code>%{<var>var</var>}c</code> - $B9=J8$H>WFM$7$F$$$^$7$?!#(B)</p></td></tr> + 構文と衝突していました。)</p></td></tr> <tr><td><code>%I</code></td> - <td>$B%j%/%(%9%H$H%X%C%@$r4^$`!"<u$1<h$C$?%P%$%H?t!#(B - 0 $B$K$O$J$i$J$$!#(B - $B$3$l$r;HMQ$9$k$?$a$K$O(B <module>mod_logio</module> $B$,I,MW(B</td></tr> + <td>リクエストとヘッダを含む、受け取ったバイト数。 + 0 にはならない。 + これを使用するためには <module>mod_logio</module> が必要</td></tr> <tr><td><code>%O</code></td> - <td>$B%X%C%@$r4^$`!"Aw?.$7$?%P%$%H?t!#(B0 $B$K$O$J$i$J$$!#(B - $B$3$l$r;HMQ$9$k$?$a$K$O(B <module>mod_logio</module> $B$,I,MW(B</td></tr> + <td>ヘッダを含む、送信したバイト数。0 にはならない。 + これを使用するためには <module>mod_logio</module> が必要</td></tr> </table> - <section id="modifiers"><title>$B=$>~;R(B</title> - - <p>$BFCDj$NMWAG$O(B "%" $B$ND>8e$K(B HTTP $B%9%F!<%?%9%3!<%I$r%+%s%^6h@Z$j$G(B - $B;XDj$9$k$3$H$G!"I=<($r@)8B$9$k$3$H$,$G$-$^$9!#Nc$($P(B - <code>"%400,501{User-agent}i"</code> $B$G$O!"(B - 400 $B$H(B 500 $BHV%(%i!<$G$N$_(B <code>User-agent</code> $B$r%m%0$7$^$9!#(B - $BB>$N%9%F!<%?%9%3!<%I$G$O(B <code>"-"</code> $B$H$$$&J8;zNs$,(B - $B%m%0$5$l$^$9!#%9%F!<%?%9%3!<%I$N%j%9%H$O(B "<code>!</code>" - $B$GH]Dj$r;XDj$9$k$3$H$,$G$-$^$9(B : - <code>"%!200,304,302{Referer}i"</code> $B$O!";XDj$5$l$?(B - 3 $B$D$N%3!<%I$N(B<em>$B$I$l$K$b3:Ev$7$J$$(B</em>$B%j%/%(%9%HA4$F$G(B - <code>Referer</code> $B$r%m%0$7$^$9!#(B</p> - - <p>$B=$>~;R(B "<" $B$H(B ">" $B$OFbIt%j%@%$%l%/%H$5$l$?%j%/%(%9%H$N%m%0$K(B - $B85$N%j%/%(%9%H$+:G=*E*$J%j%/%(%9%H$N$I$A$i$r;HMQ$9$k$+$r(B - $B;XDj$9$k$?$a$K;H$$$^$9!#%G%U%)%k%H$G$O!"(B<code>%</code> $B%G%#%l%/%F%#%V$N(B - <code>%s, %U, %T, %D, %r</code> $B$O85$N%j%/%(%9%H$r!"B>$O:G=*E*$J%j%/%(%9%H$r(B - $B;HMQ$7$^$9!#Nc$($P!"%j%/%(%9%H$N:G=*%9%F!<%?%9$r5-O?$9$k$K$O(B - <code>%>s</code> $B$r!"FbItE*$KG'>Z$5$l$F$$$J$$%j%=!<%9$X%j%@%$%l%/%H$5$l$?(B - $B%j%/%(%9%H$G85$N%j%/%(%9%H$GG'>Z$5$l$?%f!<%6$r5-O?$9$k$?$a$K$O(B - <code>%<u</code> $B$r;H$&$3$H$,$G$-$^$9!#(B</p> + <section id="modifiers"><title>修飾子</title> + + <p>特定の要素は "%" の直後に HTTP ステータスコードをカンマ区切りで + 指定することで、表示を制限することができます。例えば + <code>"%400,501{User-agent}i"</code> では、 + 400 と 500 番エラーでのみ <code>User-agent</code> をログします。 + 他のステータスコードでは <code>"-"</code> という文字列が + ログされます。ステータスコードのリストは "<code>!</code>" + で否定を指定することができます : + <code>"%!200,304,302{Referer}i"</code> は、指定された + 3 つのコードの<em>どれにも該当しない</em>リクエスト全てで + <code>Referer</code> をログします。</p> + + <p>修飾子 "<" と ">" は内部リダイレクトされたリクエストのログに + 元のリクエストか最終的なリクエストのどちらを使用するかを + 指定するために使います。デフォルトでは、<code>%</code> ディレクティブの + <code>%s, %U, %T, %D, %r</code> は元のリクエストを、他は最終的なリクエストを + 使用します。例えば、リクエストの最終ステータスを記録するには + <code>%>s</code> を、内部的に認証されていないリソースへリダイレクトされた + リクエストで元のリクエストで認証されたユーザを記録するためには + <code>%<u</code> を使うことができます。</p> </section> - <section id="format-notes"><title>$B$=$NB>Cm0UE@(B</title> - - <p>$B%;%-%e%j%F%#>e$NM}M3$K$h$j(B 2.0.46 $B$h$j!"(B - <code>%r</code>, <code>%i</code>, <code>%o</code> $B$KF~$C$F$$$k!"(B - $B0u;zIT2DG=$JJ8;z$HB>$NFCJL$JJ8;z$O!"(B<code>\x<var>hh</var></code> - $B$H$$$&7A<0$NJ8;zNs$G%(%9%1!<%W$5$l$k$h$&$K$J$j$^$7$?!#(B<var>hh</var> $B$O(B - $B$=$N$^$^$N%P%$%H$NCM$N(B 16 $B?J$G$NCM$G$9!#$3$N5,B'$NNc30$K$O!"(B - $B%P%C%/%9%i%C%7%e$r;H$C$F%(%9%1!<%W$5$l$k(B <code>"</code> $B$H(B <code>\</code> $B$H!"(B - C $B7A<0$NI=5-K!$,;H$o$l$k6uGrJ8;z(B (<code>\n</code>, <code>\t</code> $B$J$I(B) - $B$,$"$j$^$9!#(B2.0.46 $B0JA0$N%P!<%8%g%s$G$O%(%9%1!<%W=hM}$O9T$o$l$^$;$s$N$G!"(B - $B@8%m%0%U%!%$%k$r07$&:]$KCm0U$,I,MW$G$9!#(B</p> - - <p>httpd 2.0 $B$G$O(B 1.3 $B$H$O0[$J$j!"(B<code>%b</code> $B$H(B <code>%B</code> - $B%U%)!<%^%C%HJ8;zNs$O%/%i%$%"%s%H$KAw?.$5$l$?%P%$%H?t$=$N$b$N$G$O$J$/!"(B - HTTP $B%l%9%]%s%9$N%P%$%H?t$G$9(B ($B$3$l$i$O0[$J$k$b$N$G!"$?$H$($P!"(B - $B%3%M%/%7%g%s$,ESCf$GGK4~$5$l$?>l9g$d!"(BSSL $B;HMQ;~$K0lCW$7$^$;$s(B) $B!#(B - <module>mod_logio</module> $B$GDs6!$5$l$F$$$k(B <code>%O</code> - $B%U%)!<%^%C%HJ8;zNs$G!"%M%C%H%o!<%/7PM3$G<B:]$KE>Aw$5$l$?%P%$%H?t$r(B - $B5-O?$G$-$^$9!#(B</p> + <section id="format-notes"><title>その他注意点</title> + + <p>セキュリティ上の理由により 2.0.46 より、 + <code>%r</code>, <code>%i</code>, <code>%o</code> に入っている、 + 印字不可能な文字と他の特別な文字は、<code>\x<var>hh</var></code> + という形式の文字列でエスケープされるようになりました。<var>hh</var> は + そのままのバイトの値の 16 進での値です。この規則の例外には、 + バックスラッシュを使ってエスケープされる <code>"</code> と <code>\</code> と、 + C 形式の表記法が使われる空白文字 (<code>\n</code>, <code>\t</code> など) + があります。2.0.46 以前のバージョンではエスケープ処理は行われませんので、 + 生ログファイルを扱う際に注意が必要です。</p> + + <p>httpd 2.0 では 1.3 とは異なり、<code>%b</code> と <code>%B</code> + フォーマット文字列はクライアントに送信されたバイト数そのものではなく、 + HTTP レスポンスのバイト数です (これらは異なるもので、たとえば、 + コネクションが途中で破棄された場合や、SSL 使用時に一致しません) 。 + <module>mod_logio</module> で提供されている <code>%O</code> + フォーマット文字列で、ネットワーク経由で実際に転送されたバイト数を + 記録できます。</p> </section> - <section id="examples"><title>$BNc(B</title> + <section id="examples"><title>例</title> - <p>$B$h$/;H$o$l$k%U%)!<%^%C%HJ8;zNs$O(B:</p> + <p>よく使われるフォーマット文字列は:</p> <dl> <dt>Common Log Format (CLF)</dt> <dd><code>"%h %l %u %t \"%r\" %>s %b"</code></dd> - <dt>$B%P!<%A%c%k%[%9%HIU$-(B Common Log Format</dt> + <dt>バーチャルホスト付き Common Log Format</dt> <dd><code>"%v %h %l %u %t \"%r\" %>s %b"</code></dd> - <dt>NCSA extended/combined $B%m%0=q<0(B</dt> + <dt>NCSA extended/combined ログ書式</dt> <dd><code>"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""</code></dd> - <dt>Referer $B%m%0=q<0(B</dt> + <dt>Referer ログ書式</dt> <dd><code>"%{Referer}i -> %U"</code></dd> - <dt>Agent ($B%V%i%&%6(B) $B%m%0=q<0(B</dt> + <dt>Agent (ブラウザ) ログ書式</dt> <dd><code>"%{User-agent}i"</code></dd> </dl> </section> </section> -<section id="security"><title>$B%;%-%e%j%F%#$K4X$7$F(B</title> - <p>$B%m%0%U%!%$%k$,J]B8$5$l$F$$$k%G%#%l%/%H%j$,%5!<%P$r5/F0$7$?0J30$N%f!<%6$G(B - $B=q$-9~$_2DG=$J$H$-$K%;%-%e%j%F%#$NLdBj$,H/@8$9$kM}M3$N>\:Y$O(B<a - href="../misc/security_tips.html#serverroot">$B%;%-%e%j%F%#$N$3$D(B</a> - $B$r;2>H$7$F$/$@$5$$!#(B</p> +<section id="security"><title>セキュリティに関して</title> + <p>ログファイルが保存されているディレクトリがサーバを起動した以外のユーザで + 書き込み可能なときにセキュリティの問題が発生する理由の詳細は<a + href="../misc/security_tips.html#serverroot">セキュリティのこつ</a> + を参照してください。</p> </section> <directivesynopsis> <name>BufferedLogs</name> -<description>$B%G%#%9%/$K=q$-=P$9A0$K%a%b%j$K%m%0%(%s%H%j$r%P%C%U%!$9$k(B</description> +<description>ディスクに書き出す前にメモリにログエントリをバッファする</description> <syntax>BufferedLogs On|Off</syntax> <default>BufferedLogs Off</default> <contextlist><context>server config</context></contextlist> <status>Experimental</status> -<compatibility>2.0.41 $B0J9_(B</compatibility> +<compatibility>2.0.41 以降</compatibility> <usage> - <p><directive>BufferedLogs</directive> $B%G%#%l%/%F%#%V$r;H$&$H(B - <module>mod_log_config</module> $B$N5sF0$,JQ2=$7$F!"(B - $BJ#?t$N%m%0$r=q$-=P$9:]$K!"$=$l$>$l$N%j%/%(%9%H=hM}8eKh$K(B - $B=q$-=P$9$N$G$O$J$/!"$$$C$?$s%a%b%j$KC_$($F$+$i!"(B - $B$^$H$a$F%G%#%9%/$K=q$-=P$9$h$&$K$J$j$^$9!#(B - $B$3$N7k2L%G%#%9%/%"%/%;%9$,$h$j8zN(E*$K$J$j!"(B - $B9b$$%Q%U%)!<%^%s%9$NF@$i$l$k%7%9%F%`$b$"$k$G$7$g$&!#(B - $B$3$N%G%#%l%/%F%#%V$O%5!<%PA4BN$G0lEY$@$1@_Dj$G$-$^$9(B; - $B%P!<%A%c%k%[%9%H$4$H$K@_Dj$9$k$3$H$O$G$-$^$;$s!#(B</p> - - <note>$B$3$N%G%#%l%/%F%#%V$O<B83E*$J$b$N$G$9$N$G!"(B - $B;HMQ$9$k:]$OCm0U$7$F$/$@$5$$!#(B</note> + <p><directive>BufferedLogs</directive> ディレクティブを使うと + <module>mod_log_config</module> の挙動が変化して、 + 複数のログを書き出す際に、それぞれのリクエスト処理後毎に + 書き出すのではなく、いったんメモリに蓄えてから、 + まとめてディスクに書き出すようになります。 + この結果ディスクアクセスがより効率的になり、 + 高いパフォーマンスの得られるシステムもあるでしょう。 + このディレクティブはサーバ全体で一度だけ設定できます; + バーチャルホストごとに設定することはできません。</p> + + <note>このディレクティブは実験的なものですので、 + 使用する際は注意してください。</note> </usage> </directivesynopsis> <directivesynopsis> <name>CookieLog</name> -<description>$B%/%C%-%s%0$N%m%.%s%0$N$?$a$N%U%!%$%kL>$r@_Dj$9$k(B</description> +<description>クッキングのロギングのためのファイル名を設定する</description> <syntax>CookieLog <var>filename</var></syntax> <contextlist><context>server config</context><context>virtual host</context> </contextlist> -<compatibility>$B$3$N%G%#%l%/%F%#%V$OHs?d>)(B</compatibility> +<compatibility>このディレクティブは非推奨</compatibility> <usage> <p><directive>CookieLog</directive> - $B%G%#%l%/%F%#%V$O%/%C%-!<$N%m%.%s%0$N$?$a$N%U%!%$%kL>$r(B - $B@_Dj$7$^$9!#(Bfilename $B$O(B <directive + ディレクティブはクッキーのロギングのためのファイル名を + 設定します。filename は <directive module="core">ServerRoot</directive> - $B$+$i$NAjBP%Q%9$G$9!#$3$N%G%#%l%/%F%#%V$O(B <code - >mod_cookies</code> $B$H$N8_49@-$N$?$a$@$1$K(B - $BB8:_$7!";HMQ$O?d>)$5$l$F$$$^$;$s!#(B</p> + からの相対パスです。このディレクティブは <code + >mod_cookies</code> との互換性のためだけに + 存在し、使用は推奨されていません。</p> </usage> </directivesynopsis> <directivesynopsis> <name>CustomLog</name> -<description>$B%m%0%U%!%$%k$NL>A0$H=q<0$r@_Dj$9$k(B</description> +<description>ログファイルの名前と書式を設定する</description> <syntax>CustomLog <var>file</var>|<var>pipe</var> <var>format</var>|<var>nickname</var> [env=[!]<var>environment-variable</var>]</syntax> @@ -340,45 +340,45 @@ </contextlist> <usage> - <p><directive>CustomLog</directive> $B%G%#%l%/%F%#%V$O%5!<%P$X$N%j%/%(%9%H$r(B - $B%m%0<}=8$9$k$?$a$K;H$o$l$^$9!#%m%0$N=q<0$,;XDj$5$l!"(B - $B4D6-JQ?t$r;H$C$F%m%.%s%0$,>r7o$K1~$8$F9T$J$o$l$k$h$&$K$9$k$3$H$b$G$-$^$9!#(B</p> + <p><directive>CustomLog</directive> ディレクティブはサーバへのリクエストを + ログ収集するために使われます。ログの書式が指定され、 + 環境変数を使ってロギングが条件に応じて行なわれるようにすることもできます。</p> - <p>$B%m%0$,=q$+$l$k>l=j$r;XDj$9$k:G=i$N0z?t$O0J2<$NFs$D$N7A<0$NCM$r(B - $B$H$k$3$H$,$G$-$^$9(B:</p> + <p>ログが書かれる場所を指定する最初の引数は以下の二つの形式の値を + とることができます:</p> <dl> <dt><var>file</var></dt> <dd><directive module="core">ServerRoot</directive> - $B$+$i$NAjBP%Q%9$GI=$5$l$k%U%!%$%kL>!#(B</dd> + からの相対パスで表されるファイル名。</dd> <dt><var>pipe</var></dt> - <dd>$B%Q%$%WJ8;z(B "<code>|</code>" $B$H!"$=$N8e$KI8=`F~NO$+$i%m%0$N(B - $B>pJs$r<u$1$H$k%W%m%0%i%`$X$N%Q%9$,B3$$$?$b$N!#(B - - <note type="warning"><title>$B%;%-%e%j%F%#(B</title> - <p>$B$b$7%W%m%0%i%`$,;HMQ$5$l$?>l9g!"(B - <program>httpd</program> $B$,5/F0$5$l$?%f!<%6$H$7$F<B9T$5$l$^$9!#$3$l$O%5!<%P$,(B - root $B$K$h$C$F5/F0$5$l$?>l9g$O(B root $B$K$J$j$^$9!#%W%m%0%i%`$,(B - $B0BA4$G$"$k$h$&$KN10U$7$F$/$@$5$$!#(B</p> + <dd>パイプ文字 "<code>|</code>" と、その後に標準入力からログの + 情報を受けとるプログラムへのパスが続いたもの。 + + <note type="warning"><title>セキュリティ</title> + <p>もしプログラムが使用された場合、 + <program>httpd</program> が起動されたユーザとして実行されます。これはサーバが + root によって起動された場合は root になります。プログラムが + 安全であるように留意してください。</p> </note> - <note type="warning"><title>$BCm(B</title> - <p>Unix $B$G$J$$%W%i%C%H%U%)!<%`$G%U%!%$%k$N%Q%9$rF~NO$7$F$$$k$H$-$O!"(B - $B;HMQ$7$F$$$k%W%i%C%H%U%)!<%`$,%P%C%/%9%i%C%7%e$N;HMQ$r5v2D$7$F$$$?(B - $B$H$7$F!"DL>o$N%9%i%C%7%e$@$1$r;H$&$h$&$K5$$r$D$1$F$/$@$5$$!#(B - $B0lHLE*$K!"@_Dj%U%!%$%kCf$G$O>o$KIaDL$N%9%i%C%7%e$N$_$r;H$&$h$&$K$9$k(B - $BJ}$,NI$$$G$9!#(B</p> + <note type="warning"><title>注</title> + <p>Unix でないプラットフォームでファイルのパスを入力しているときは、 + 使用しているプラットフォームがバックスラッシュの使用を許可していた + として、通常のスラッシュだけを使うように気をつけてください。 + 一般的に、設定ファイル中では常に普通のスラッシュのみを使うようにする + 方が良いです。</p> </note></dd> </dl> - <p>$BFs$D$a$N0z?t$O%m%0%U%!%$%k$K2?$,=q$+$l$k$+$r;XDj$7$^$9!#(B - $BA0$K$"$k(B <directive - module="mod_log_config">LogFormat</directive> $B%G%#%l%/%F%#%V$K$h$j(B - $BDj5A$5$l$?(B <var>nickname</var> $B$+!"(B<a href="#formats">$B%m%0$N=q<0(B</a> - $B$N$H$3$m$G@bL@$5$l$F$$$k!"L@<(E*$J(B <var>format</var> $BJ8;zNs$N(B - $B$I$A$i$+$r;XDj$9$k$3$H$,$G$-$^$9!#(B</p> + <p>二つめの引数はログファイルに何が書かれるかを指定します。 + 前にある <directive + module="mod_log_config">LogFormat</directive> ディレクティブにより + 定義された <var>nickname</var> か、<a href="#formats">ログの書式</a> + のところで説明されている、明示的な <var>format</var> 文字列の + どちらかを指定することができます。</p> - <p>$BNc$($P!"0J2<$NFs$D$N%G%#%l%/%F%#%V72$OA4$/F1$88z2L$r$b$?$i$7$^$9(B:</p> + <p>例えば、以下の二つのディレクティブ群は全く同じ効果をもたらします:</p> <example> # CustomLog with format nickname<br /> @@ -389,18 +389,18 @@ CustomLog logs/access_log "%h %l %u %t \"%r\" %>s %b" </example> - <p>$B;0$DL\$N0z?t$O>JN,2DG=$G!"%5!<%P$N4D6-$K$"$kJQ?t$,$"$k$+$J$$$+$K(B - $B1~$8$F%j%/%(%9%H$r%m%0<}=8$9$k$+$I$&$+$r@)8f$9$k$?$a$K;H$&$3$H$,$G$-$^$9!#(B - $B;XDj$5$l$?(B<a href="../env.html">$B4D6-JQ?t(B</a>$B$,%j%/%(%9%H$KBP$7$F(B - $B@_Dj$5$l$F$$$?>l9g(B ('<code>env=!<var>name</var></code>' $BJ8$,;H$o$l$?$H$-$O(B - $B@_Dj$5$l$F$$$J$$>l9g(B)$B!"%j%/%(%9%H$,%m%0<}=8$5$l$^$9!#(B</p> - - <p>$B4D6-JQ?t$O(B <module>mod_setenvif</module> $B%b%8%e!<%k$H(B - <module>mod_rewrite</module> $B%b%8%e!<%k$NN>J}$b$7$/$O(B - $BJRJ}$rMQ$$$F%j%/%(%9%H$4$H$K@_Dj$9$k$3$H$,$G$-$^$9!#(B - $BNc$($P!"%5!<%P$K$"$k$9$Y$F$N(B GIF $B2hA|$X$N%j%/%(%9%H$rJL$N%m%0%U%!%$%k(B - $B$K$O5-O?$7$?$$$1$l$I!"%a%$%s%m%0$K$O5-O?$7$?$/$J$$!"$H$$$&$H$-$O(B - $B0J2<$N$b$N$r;H$&$3$H$,$G$-$^$9(B:</p> + <p>三つ目の引数は省略可能で、サーバの環境にある変数があるかないかに + 応じてリクエストをログ収集するかどうかを制御するために使うことができます。 + 指定された<a href="../env.html">環境変数</a>がリクエストに対して + 設定されていた場合 ('<code>env=!<var>name</var></code>' 文が使われたときは + 設定されていない場合)、リクエストがログ収集されます。</p> + + <p>環境変数は <module>mod_setenvif</module> モジュールと + <module>mod_rewrite</module> モジュールの両方もしくは + 片方を用いてリクエストごとに設定することができます。 + 例えば、サーバにあるすべての GIF 画像へのリクエストを別のログファイル + には記録したいけれど、メインログには記録したくない、というときは + 以下のものを使うことができます:</p> <example> SetEnvIf Request_URI \.gif$ gif-image<br /> @@ -408,8 +408,8 @@ CustomLog nongif-requests.log common env=!gif-image </example> - <p>$B8E$$(B RefererIgnore $B%G%#%l%/%F%#%V$HF1$85sF0$r$5$;$?$$>l9g$O!"(B - $B<!$N$h$&$K$7$^$9(B:</p> + <p>古い RefererIgnore ディレクティブと同じ挙動をさせたい場合は、 + 次のようにします:</p> <example> SetEnvIf Referer example\.com localreferer<br /> @@ -420,7 +420,7 @@ <directivesynopsis> <name>LogFormat</name> -<description>$B%m%0%U%!%$%k$G;HMQ$9$k=q<0$r@_Dj$9$k(B</description> +<description>ログファイルで使用する書式を設定する</description> <syntax>LogFormat <var>format</var>|<var>nickname</var> [<var>nickname</var>]</syntax> <default>LogFormat "%h %l %u %t \"%r\" %>s %b"</default> @@ -428,35 +428,35 @@ </contextlist> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O%"%/%;%9%m%0%U%!%$%k$N=q<0$r;XDj$7$^$9!#(B</p> - - <p><directive>LogFormat</directive> $B%G%#%l%/%F%#%V$OFs$D$N7A<0$N$I$A$i$+$r(B - $B$H$k$3$H$,$G$-$^$9!#:G=i$N7A<0$G$O0l$D$N0z?t$N$_$,;XDj$5$l!"(B - $BB3$/(B <directive>TransferLog</directive> - $B$G;XDj$5$l$?%m%0$G;H$o$l$k%m%0$N=q<0$r@_Dj$7$^$9!#$3$NC1FH$N0z?t$G$O(B - $B>e$N(B<a href="#formats">$B%+%9%?%`%m%0=q<0(B</a>$B$G@bL@$5$l$F$$$k$h$&$K(B - <var>format</var> $B$rL@<(E*$K;XDj$9$k$3$H$,$G$-$^$9!#(B - $B$b$7$/$O!"2<$G@bL@$5$l$F$$$k$h$&$KA0$K(B <directive>LogFormat</directive> - $B%G%#%l%/%F%#%V$GDj5A$5$l$?%m%0$N=q<0$r(B <var>nickname</var>$B$r;H$C$F(B - $B;2>H$9$k$3$H$b$G$-$^$9!#(B</p> - - <p><directive>LogFormat</directive> $B%G%#%l%/%F%#%V$NFs$D$a$N7A<0$O(B - <var>format</var> $B$K(B <var>nickname</var> $B$rM?$($^$9!#(B - $B%U%)!<%^%C%HJ8;zNsA4BN$r:F$S=q$/$+$o$j$K!"(B - $B$3$N(B <var>nickname</var> $B$rB3$-$N(B <directive - >LogFormat</directive> $B%G%#%l%/%F%#%V$d(B - <directive>CustomLog</directive> $B%G%#%l%/%F%#%V$G;H$&$3$H$,$G$-$^$9!#(B - Nickname $B$rDj5A$9$k(B <directive>LogFormat</directive> $B%G%#%l%/%F%#%V$O(B - <strong>$BB>$K$O2?$b$7$^$;$s(B</strong> -- $B$9$J$o$A!"%K%C%/%M!<%`$rDj5A(B - $B$9$k(B<em>$B$@$1(B</em>$B$G!"<B:]$K=q<0$rE,MQ$7$F%G%U%)%k%H$K$9$k$H$$$&$3$H$O9T$J$$$^$;$s!#(B - $B$G$9$+$i!"$3$l$OB3$/(B <directive module="mod_log_config">TransferLog</directive> - $B%G%#%l%/%F%#%V$K$O1F6A$rM?$($^$;$s!#(B - $B$5$i$K!"(B<directive>LogFormat</directive> $B%G%#%l%/%F%#%V$O4{B8$N(B nickname $B$r(B - $B;H$C$FJL$N(B nickname $B$rDj5A$9$k$3$H$O$G$-$^$;$s!#(BNickname $B$K$O(B - $B%Q!<%;%s%H5-9f(B (<code>%</code>) $B$,4^$^$l$F$$$F$O$$$1$J$$$3$H$K$bCm0U(B - $B$7$F$/$@$5$$!#(B</p> - - <example><title>$BNc(B</title> + <p>このディレクティブはアクセスログファイルの書式を指定します。</p> + + <p><directive>LogFormat</directive> ディレクティブは二つの形式のどちらかを + とることができます。最初の形式では一つの引数のみが指定され、 + 続く <directive>TransferLog</directive> + で指定されたログで使われるログの書式を設定します。この単独の引数では + 上の<a href="#formats">カスタムログ書式</a>で説明されているように + <var>format</var> を明示的に指定することができます。 + もしくは、下で説明されているように前に <directive>LogFormat</directive> + ディレクティブで定義されたログの書式を <var>nickname</var>を使って + 参照することもできます。</p> + + <p><directive>LogFormat</directive> ディレクティブの二つめの形式は + <var>format</var> に <var>nickname</var> を与えます。 + フォーマット文字列全体を再び書くかわりに、 + この <var>nickname</var> を続きの <directive + >LogFormat</directive> ディレクティブや + <directive>CustomLog</directive> ディレクティブで使うことができます。 + Nickname を定義する <directive>LogFormat</directive> ディレクティブは + <strong>他には何もしません</strong> -- すなわち、ニックネームを定義 + する<em>だけ</em>で、実際に書式を適用してデフォルトにするということは行ないません。 + ですから、これは続く <directive module="mod_log_config">TransferLog</directive> + ディレクティブには影響を与えません。 + さらに、<directive>LogFormat</directive> ディレクティブは既存の nickname を + 使って別の nickname を定義することはできません。Nickname には + パーセント記号 (<code>%</code>) が含まれていてはいけないことにも注意 + してください。</p> + + <example><title>例</title> LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common </example> </usage> @@ -464,23 +464,23 @@ <directivesynopsis> <name>TransferLog</name> -<description>$B%m%0%U%!%$%k$N0LCV$r;XDj(B</description> +<description>ログファイルの位置を指定</description> <syntax>TransferLog <var>file</var>|<var>pipe</var></syntax> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O!"%m%0=q<0$rD>@\;XDj$G$-$J$$$3$H$H!"(B - $B>r7oIU$-%m%.%s%0$,L5$$$3$H$r=|$/$H!"(B<directive module="mod_log_config" - >CustomLog</directive> $B$HA4$/F1$80z?t$H8z2L$,$"$j$^$9!#(B - $BD>@\%m%0=q<0$r;XDj$9$kBe$o$j$K!"%m%0$N=q<0$O$=$3$^$G$G0lHV:G8e$K;XDj$5$l$?(B - $B%K%C%/%M!<%`$rDj5A$7$J$$(B - <directive module="mod_log_config">LogFormat</directive> $B%G%#%l%/%F%#%V(B - $B$GDj5A$5$l$?$b$N$r;H$$$^$9!#(B - $B$b$7B>$N=q<0$,A4$/;XDj$5$l$F$$$J$$$H$-$O(B Common Log Format - $B$,;H$o$l$^$9!#(B</p> - - <example><title>$BNc(B</title> + <p>このディレクティブは、ログ書式を直接指定できないことと、 + 条件付きロギングが無いことを除くと、<directive module="mod_log_config" + >CustomLog</directive> と全く同じ引数と効果があります。 + 直接ログ書式を指定する代わりに、ログの書式はそこまでで一番最後に指定された + ニックネームを定義しない + <directive module="mod_log_config">LogFormat</directive> ディレクティブ + で定義されたものを使います。 + もし他の書式が全く指定されていないときは Common Log Format + が使われます。</p> + + <example><title>例</title> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""<br /> TransferLog logs/access_log </example> diff --git a/docs/manual/mod/mod_log_forensic.xml.ja b/docs/manual/mod/mod_log_forensic.xml.ja index a89c1786f8..1bf9cd25f7 100644 --- a/docs/manual/mod/mod_log_forensic.xml.ja +++ b/docs/manual/mod/mod_log_forensic.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 420993:533344 (outdated) --> @@ -23,50 +23,50 @@ <modulesynopsis metafile="mod_log_forensic.xml.meta"> <name>mod_log_forensic</name> -<description>$B%5!<%P$KAw$i$l$?%j%/%(%9%H$N(B forensic $B%m%.%s%0(B</description> +<description>サーバに送られたリクエストの forensic ロギング</description> <status>Extension</status> <sourcefile>mod_log_forensic.c</sourcefile> <identifier>log_forensic_module</identifier> -<compatibility><module>mod_unique_id</module> $B$O%P!<%8%g%s(B 2.1 $B$+$i$OI,?\$G$O(B -$B$J$/$J$C$?(B</compatibility> +<compatibility><module>mod_unique_id</module> はバージョン 2.1 からは必須では +なくなった</compatibility> <summary> - <p>$B$3$N%b%8%e!<%k$O%/%i%$%"%s%H%j%/%(%9%H$N(B forensic $B%m%.%s%0$r(B - $B9T$J$$$^$9!#%m%0<}=8$O%j%/%(%9%H$N=hM}$NA0$H8e$K9T$J$o$l$^$9$N$G!"(B - forensic $B%m%0$O3F%j%/%(%9%H$KBP$7$FFs9T%m%0<}=8$7$^$9!#(B - Forensic $B%m%,!<$OHs>o$K87L)$G$9!#$3$l$O0J2<$N$3$H$r0UL#$7$^$9(B:</p> + <p>このモジュールはクライアントリクエストの forensic ロギングを + 行ないます。ログ収集はリクエストの処理の前と後に行なわれますので、 + forensic ログは各リクエストに対して二行ログ収集します。 + Forensic ロガーは非常に厳密です。これは以下のことを意味します:</p> <ul> - <li>$B%U%)!<%^%C%H$O8GDj$G$9!#<B9T;~$K%m%.%s%0%U%)!<%^%C%H$rJQ99$9$k$3$H$O(B - $B$G$-$^$;$s!#(B</li> - <li>$B%G!<%?$r=q$1$J$$>l9g$O;R%W%m%;%9$O$=$N>l$G=*N;$7!"$5$i$K%3%"$r(B - $B%@%s%W$9$k$+$b$7$l$^$;$s(B (<directive module="mpm_common" - >CoreDumpDirectory</directive> $B%G%#%l%/%F%#%V$N@_Dj$K0M$j$^$9(B)$B!#(B</li> + <li>フォーマットは固定です。実行時にロギングフォーマットを変更することは + できません。</li> + <li>データを書けない場合は子プロセスはその場で終了し、さらにコアを + ダンプするかもしれません (<directive module="mpm_common" + >CoreDumpDirectory</directive> ディレクティブの設定に依ります)。</li> </ul> - <p>Forensic $B%m%0$N=PNO$r8!::$9$k$?$a$K$O!"(B - $BG[I[J*$N(B support $B%G%#%l%/%H%j$K$"$k(B <code>check_forensic</code> - $B%9%/%j%W%H$,Lr$KN)$D$G$7$g$&!#(B</p> + <p>Forensic ログの出力を検査するためには、 + 配布物の support ディレクトリにある <code>check_forensic</code> + スクリプトが役に立つでしょう。</p> </summary> -<seealso><a href="../logs.html">Apache $B%m%0%U%!%$%k(B</a></seealso> +<seealso><a href="../logs.html">Apache ログファイル</a></seealso> <seealso><module>mod_log_config</module></seealso> -<section id="formats"><title>Forensic $B%m%0%U%)!<%^%C%H(B</title> - <p>$B3F%j%/%(%9%H$O(B2$B2s%m%0<}=8$5$l$^$9!#:G=i$O%j%/%(%9%H$,=hM}$5$l$k(B - <em>$BA0(B</em> ($B$D$^$j!"%X%C%@$r<u$1<h$C$?8e(B) $B$G$9!#(B2$BEYL\$N%m%0$O(B - $B%j%/%(%9%H$,=hM}$5$l$?(B<em>$B8e(B</em>$B!"DL>o$N%m%0<}=8$HF1$8$H$-$K(B - $B9T$J$o$l$^$9!#(B</p> +<section id="formats"><title>Forensic ログフォーマット</title> + <p>各リクエストは2回ログ収集されます。最初はリクエストが処理される + <em>前</em> (つまり、ヘッダを受け取った後) です。2度目のログは + リクエストが処理された<em>後</em>、通常のログ収集と同じときに + 行なわれます。</p> - <p>$B3F%j%/%(%9%H$r<1JL$9$k$?$a$K!"%j%/%(%9%H$K$O(B - $B0l0U$J%j%/%(%9%H(B ID $B$,3d$jEv$F$i$l$^$9!#$3$N(B forensic ID $B$O(B - $B%U%)!<%^%C%HJ8;zNs(B <code>%{forensic-id}n</code> $B$r;H$&$3$H$G(B - $BDL>o$N(B transfer $B%m%0$K%m%0<}=8$9$k$3$H$b$G$-$^$9!#(B - <module>mod_unique_id</module> $B$r;H$C$F$$$k>l9g$O!"$=$l$,@8@.$9$k(B - ID $B$,;H$o$l$^$9!#(B</p> + <p>各リクエストを識別するために、リクエストには + 一意なリクエスト ID が割り当てられます。この forensic ID は + フォーマット文字列 <code>%{forensic-id}n</code> を使うことで + 通常の transfer ログにログ収集することもできます。 + <module>mod_unique_id</module> を使っている場合は、それが生成する + ID が使われます。</p> - <p>$B:G=i$N9T$O(B forensic ID$B!"%j%/%(%9%H9T$H<u$1<h$C$?$9$Y$F$N%X%C%@$r(B - $B%Q%$%WJ8;z(B (<code>|</code>) $B$GJ,N%$7$F%m%0<}=8$7$^$9!#(B - $BNc$($P0J2<$N$h$&$K$J$j$^$9(B ($B<B:]$O$9$Y$FF1$89T$K$J$j$^$9(B):</p> + <p>最初の行は forensic ID、リクエスト行と受け取ったすべてのヘッダを + パイプ文字 (<code>|</code>) で分離してログ収集します。 + 例えば以下のようになります (実際はすべて同じ行になります):</p> <example> +yQtJf8CoAB4AAFNXBIEAAAAA|GET /manual/de/images/down.gif @@ -75,71 +75,71 @@ Firefox/0.8|Accept:image/png, <var>etc...</var> </example> - <p>$B:G=i$N%W%i%9J8;z$,$3$N%m%0$O:G=i$N%m%0$G$"$k$3$H$r<($7$^$9!#(B - $BFsHVL\$N9T$O%^%$%J%9J8;z$H(B ID $B$N$_$G$9(B:</p> + <p>最初のプラス文字がこのログは最初のログであることを示します。 + 二番目の行はマイナス文字と ID のみです:</p> <example> -yQtJf8CoAB4AAFNXBIEAAAAA </example> - <p><code>check_forensic</code> $B%9%/%j%W%H$O0z?t$H$7$F%m%0%U%!%$%k$NL>A0$r(B - $B<h$j$^$9!#(B<code>+</code>/<code>-</code> $B$N(B ID $B$NAH$rD4$Y!"40N;$7$F$$$J$$(B - $B%j%/%(%9%H$,$"$k>l9g$O7Y9p$rH/$7$^$9!#(B</p> + <p><code>check_forensic</code> スクリプトは引数としてログファイルの名前を + 取ります。<code>+</code>/<code>-</code> の ID の組を調べ、完了していない + リクエストがある場合は警告を発します。</p> </section> -<section id="security"><title>$B%;%-%e%j%F%#$NLdBj(B</title> - <p>$B%m%0%U%!%$%k$,J]B8$5$l$k%G%#%l%/%H%j$,%5!<%P$r5/F0$7$?%f!<%6(B - $B0J30$G=q$-9~$_2DG=$K$J$C$F$$$k$H$-$K%;%-%e%j%F%#$,GK$i$l$k2DG=@-$,(B - $B$"$k$3$H$K$D$$$F$N>\:Y$O(B<a - href="../misc/security_tips.html#serverroot">$B%;%-%e%j%F%#$N$3$D(B</a>$B$r(B - $B;2>H$7$F$/$@$5$$!#(B</p> +<section id="security"><title>セキュリティの問題</title> + <p>ログファイルが保存されるディレクトリがサーバを起動したユーザ + 以外で書き込み可能になっているときにセキュリティが破られる可能性が + あることについての詳細は<a + href="../misc/security_tips.html#serverroot">セキュリティのこつ</a>を + 参照してください。</p> </section> <directivesynopsis> <name>ForensicLog</name> -<description>Forensic $B%m%0$N%U%!%$%kL>$r@_Dj$9$k(B</description> +<description>Forensic ログのファイル名を設定する</description> <syntax>ForensicLog <var>filename</var>|<var>pipe</var></syntax> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p><directive>ForensicLog</directive> $B%G%#%l%/%F%#%V$O(B forensic $B2r@O$N$?$a$N(B - $B%5!<%P$X$N%j%/%(%9%H$r%m%0<}=8$K;H$$$^$9!#(B - $B3F%m%0%(%s%H%j$K$O!"IaDL$N(B <directive module="mod_log_config" - >CustomLog</directive> $B%G%#%l%/%F%#%V$r;H$C$F%j%/%(%9%H$H4XO"IU$1$k$3$H$N(B - $B$G$-$k(B - $B0l0U$J(B ID $B$,3d$jEv$F$i$l$^$9!#(B<module>mod_log_forensic</module> $B$O(B - <code>forensic-id</code> $B$H$$$&%H!<%/%s$r:n@.$7!"%U%)!<%^%C%HJ8;zNs(B - <code>%{forensic-id}n</code> $B$r;H$&$3$H$G$=$N%H!<%/%s$r(B transfer $B%m%0$K(B - $BDI2C$9$k$3$H$,$G$-$^$9!#(B</p> - - <p>$B0z?t$O%m%0$,=q$-=P$5$l$k0LCV$r;XDj$7!"0J2<$N(B 2$B<oN`$NCM$N$I$A$i$+$r(B - $B<h$k$3$H$,$G$-$^$9(B:</p> + <p><directive>ForensicLog</directive> ディレクティブは forensic 解析のための + サーバへのリクエストをログ収集に使います。 + 各ログエントリには、普通の <directive module="mod_log_config" + >CustomLog</directive> ディレクティブを使ってリクエストと関連付けることの + できる + 一意な ID が割り当てられます。<module>mod_log_forensic</module> は + <code>forensic-id</code> というトークンを作成し、フォーマット文字列 + <code>%{forensic-id}n</code> を使うことでそのトークンを transfer ログに + 追加することができます。</p> + + <p>引数はログが書き出される位置を指定し、以下の 2種類の値のどちらかを + 取ることができます:</p> <dl> <dt><var>filename</var></dt> - <dd><directive module="core">ServerRoot</directive> $B$+$i$N(B - $BAjBP%U%!%$%kL>(B</dd> + <dd><directive module="core">ServerRoot</directive> からの + 相対ファイル名</dd> <dt><var>pipe</var></dt> - <dd>$B%Q%$%WJ8;z(B "<code>|</code>" $B$H!"$=$N8e$K%m%0>pJs$rI8=`F~NO$+$i(B - $B<u$1<h$k%W%m%0%i%`!#%W%m%0%i%`L>$O(B <directive - module="core">ServerRoot</directive> $B$+$i$NAjBP%Q%9$H$7$F$b(B - $B;XDj$G$-$^$9!#(B - - <note type="warning"><title>$B%;%-%e%j%F%#(B:</title> - <p>$B%W%m%0%i%`$r;H$&>l9g!"$=$N%W%m%0%i%`$O(B <program>httpd</program> $B$r5/F0$7$?%f!<%6$G(B - $B<B9T$5$l$^$9!#$D$^$j!"%5!<%P$,(B root $B$G<B9T$5$l$?>l9g$O(B root $B$G(B - $B<B9T$5$l$k$H$$$&$3$H$G$9!#%W%m%0%i%`$,0BA4$G$"$k$+!"$h$j8"8B$N>/$J$$(B - $B%f!<%6$K@Z$jBX$($k$h$&$K$J$C$F$$$k$3$H$r3N$+$a$F$/$@$5$$!#(B</p> + <dd>パイプ文字 "<code>|</code>" と、その後にログ情報を標準入力から + 受け取るプログラム。プログラム名は <directive + module="core">ServerRoot</directive> からの相対パスとしても + 指定できます。 + + <note type="warning"><title>セキュリティ:</title> + <p>プログラムを使う場合、そのプログラムは <program>httpd</program> を起動したユーザで + 実行されます。つまり、サーバが root で実行された場合は root で + 実行されるということです。プログラムが安全であるか、より権限の少ない + ユーザに切り替えるようになっていることを確かめてください。</p> </note> - <note><title>$BCm(B</title> - <p>Unix $B0J30$N%W%i%C%H%U%)!<%`$G%U%!%$%kL>$rF~NO$9$k$H$-$O!"(B - $B%W%i%C%H%U%)!<%`$,%P%C%/%9%i%C%7%e$N;HMQ$r5v2D$7$F$$$k>l9g$G$b!"(B - $B%9%i%C%7%e$N$_$,;H$o$l$k$h$&$K5$$r$D$1$F$/$@$5$$!#(B - $BIaDL$O@_Dj%U%!%$%k$9$Y$F$K$*$$$F!"%9%i%C%7%e$NJ}$r;HMQ$9$k$h$&$K(B - $B$7$F$/$@$5$$!#(B</p> + <note><title>注</title> + <p>Unix 以外のプラットフォームでファイル名を入力するときは、 + プラットフォームがバックスラッシュの使用を許可している場合でも、 + スラッシュのみが使われるように気をつけてください。 + 普通は設定ファイルすべてにおいて、スラッシュの方を使用するように + してください。</p> </note></dd> </dl> </usage> diff --git a/docs/manual/mod/mod_logio.xml.ja b/docs/manual/mod/mod_logio.xml.ja index bf835de544..d273f3a135 100644 --- a/docs/manual/mod/mod_logio.xml.ja +++ b/docs/manual/mod/mod_logio.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 420990:630289 (outdated) --> @@ -23,52 +23,52 @@ <modulesynopsis metafile="mod_logio.xml.meta"> <name>mod_logio</name> -<description>$B%j%/%(%9%HKh$KF~NO%P%$%H?t$H=PNO%P%$%H?t$H$r%m%.%s%0(B</description> +<description>リクエスト毎に入力バイト数と出力バイト数とをロギング</description> <status>Extension</status> <sourcefile>mod_logio.c</sourcefile> <identifier>logio_module</identifier> <summary> - <p>$B$3$N%b%8%e!<%k$O%j%/%(%9%H$4$H$K<u$1<h$C$?%P%$%H?t$H(B - $BAw?.$7$?%P%$%H?t$N%m%.%s%0$r9T$J$&5!G=$rDs6!$7$^$9!#(B - $B5-O?$5$l$k?t;z$O%j%/%(%9%H$N%X%C%@$H%l%9%]%s%9$NK\BN$r(B - $BH?1G$7$?!"<B:]$K%M%C%H%o!<%/$G<u$1<h$C$?%P%$%HCM$G$9!#(B - $BF~NO$G$O(B SSL/TLS $B$NA0$K!"=PNO$G$O(B SSL/TLS $B$N8e$K?t$($k$N$G!"(B - $B?t;z$O0E9f$K$h$kJQ2=$b@5$7$/H?1G$7$?$b$N$K$J$j$^$9!#(B</p> + <p>このモジュールはリクエストごとに受け取ったバイト数と + 送信したバイト数のロギングを行なう機能を提供します。 + 記録される数字はリクエストのヘッダとレスポンスの本体を + 反映した、実際にネットワークで受け取ったバイト値です。 + 入力では SSL/TLS の前に、出力では SSL/TLS の後に数えるので、 + 数字は暗号による変化も正しく反映したものになります。</p> - <p>$B$3$N%b%8%e!<%k$N;HMQ$K$O(B <module>mod_log_config</module> $B%b%8%e!<%k$,(B - $BI,MW$G$9!#(B</p> + <p>このモジュールの使用には <module>mod_log_config</module> モジュールが + 必要です。</p> </summary> <seealso><module>mod_log_config</module></seealso> -<seealso><a href="../logs.html">Apache $B%m%0%U%!%$%k(B</a></seealso> +<seealso><a href="../logs.html">Apache ログファイル</a></seealso> <section id="formats"> -<title>$B%+%9%?%`%m%0=q<0(B</title> +<title>カスタムログ書式</title> - <p>$B$3$N%b%8%e!<%k$O?7$7$$%m%.%s%0MQ%G%#%l%/%F%#%V$r2C$($^$9!#(B - $B%j%/%(%9%H<+?H$NFCD'$O%U%)!<%^%C%HJ8;zNs$K!"0J2<$NMM$KCV49$5$l$k(B - "<code>%</code>" $B%G%#%l%/%F%#%V$r(B - $BF~$l$k$3$H$G%m%0<}=8$5$l$^$9(B:</p> + <p>このモジュールは新しいロギング用ディレクティブを加えます。 + リクエスト自身の特徴はフォーマット文字列に、以下の様に置換される + "<code>%</code>" ディレクティブを + 入れることでログ収集されます:</p> <table border="1" style="zebra"> - <tr><th>$B%U%)!<%^%C%HJ8;zNs(B</th> - <th>$B@bL@(B</th></tr> + <tr><th>フォーマット文字列</th> + <th>説明</th></tr> <tr><td><code>%...I</code></td> - <td>$B%j%/%(%9%H$H%X%C%@$r4^$`!"<u$1<h$C$?%P%$%H?t!#(B - 0 $B$K$O$J$i$J$$!#(B</td></tr> + <td>リクエストとヘッダを含む、受け取ったバイト数。 + 0 にはならない。</td></tr> <tr><td><code>%...O</code></td> - <td>$B%X%C%@$r4^$`!"Aw?.$7$?%P%$%H?t!#(B0 $B$K$O$J$i$J$$!#(B</td></tr> + <td>ヘッダを含む、送信したバイト数。0 にはならない。</td></tr> </table> - <p>$BDL>o!"$3$N5!G=$O0J2<$NMM$K;HMQ$5$l$^$9(B:</p> + <p>通常、この機能は以下の様に使用されます:</p> <dl> - <dt>$B7k9g(B I/O $B%m%0=q<0(B:</dt> + <dt>結合 I/O ログ書式:</dt> <dd><code>"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\" %I %O"</code></dd> </dl> diff --git a/docs/manual/mod/mod_mem_cache.xml.ja b/docs/manual/mod/mod_mem_cache.xml.ja index 55d93f3f65..f63ca2bca9 100644 --- a/docs/manual/mod/mod_mem_cache.xml.ja +++ b/docs/manual/mod/mod_mem_cache.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 420990:656733 (outdated) --> @@ -23,77 +23,77 @@ <modulesynopsis metafile="mod_mem_cache.xml.meta"> <name>mod_mem_cache</name> -<description>URI $B$r%-!<$K$7$?%3%s%F%s%D$N%-%c%C%7%e(B</description> +<description>URI をキーにしたコンテンツのキャッシュ</description> <status>Extension</status> <sourcefile>mod_mem_cache.c</sourcefile> <identifier>mem_cache_module</identifier> <summary> - <p>$B$3$N%b%8%e!<%k$O(B <module>mod_cache</module> $B$r(B<em>$BI,MW$H$7$^$9(B</em>$B!#(B - $B$3$l$O(B <module>mod_cache</module> $B$N%5%]!<%H%b%8%e!<%k$H$7$F(B - $BF0:n$7!"%a%b%j$r;HMQ$7$?%9%H%l!<%84IM}5!9=$rDs6!$7$^$9!#(B - <module>mod_mem_cache</module> $B$OFs$D$N%b!<%I$N$I$A$i$+$GF0:n$9$k$h$&$K(B - $B@_Dj$G$-$^$9(B: $B%U%!%$%k5-=R;R$N%-%c%C%7%e$+%R!<%WCf$N%*%V%8%'%/%H$N(B - $B%-%c%C%7%e$G$9!#%m!<%+%k$G@8@.$5$l$?%3%s%F%s%D$KBP$7$F%-%c%C%7%e$9$k$H$-$d!"(B - <module>mod_proxy</module> $B$r;H$C$F(B <directive - module="mod_proxy">ProxyPass</directive> ($B$D$^$j(B<dfn>$B%j%P!<%9%W%m%-%7(B</dfn - >$B8~$1(B) $B$K@_Dj$7$?$H$-$N%P%C%/%(%s%I%5!<%P$N%3%s%F%s%D$KBP$7$F(B - $B%-%c%C%7%e$r$9$k$H$-$K!"$?$$$X$s8z2LE*$G$9!#(B</p> - - <p>$B%3%s%F%s%D$N%-%c%C%7%e$X$NJ]B8$H<hF@$O(B URI $B$K4p$E$$$?%-!<$,;H$o$l$^$9!#(B - $B%"%/%;%9J]8n$N$+$1$i$l$F$$$k%3%s%F%s%D$O%-%c%C%7%e$5$l$^$;$s!#(B</p> + <p>このモジュールは <module>mod_cache</module> を<em>必要とします</em>。 + これは <module>mod_cache</module> のサポートモジュールとして + 動作し、メモリを使用したストレージ管理機構を提供します。 + <module>mod_mem_cache</module> は二つのモードのどちらかで動作するように + 設定できます: ファイル記述子のキャッシュかヒープ中のオブジェクトの + キャッシュです。ローカルで生成されたコンテンツに対してキャッシュするときや、 + <module>mod_proxy</module> を使って <directive + module="mod_proxy">ProxyPass</directive> (つまり<dfn>リバースプロキシ</dfn + >向け) に設定したときのバックエンドサーバのコンテンツに対して + キャッシュをするときに、たいへん効果的です。</p> + + <p>コンテンツのキャッシュへの保存と取得は URI に基づいたキーが使われます。 + アクセス保護のかけられているコンテンツはキャッシュされません。</p> </summary> <seealso><module>mod_cache</module></seealso> <seealso><module>mod_disk_cache</module></seealso> <directivesynopsis> <name>MCacheSize</name> -<description>$B%-%c%C%7%e$K;H$o$l$k%a%b%j$N:GBgNL$r%P%$%HC10L$G;XDj(B</description> +<description>キャッシュに使われるメモリの最大量をバイト単位で指定</description> <syntax>MCacheSize <var>KBytes</var></syntax> <default>MCacheSize 100</default> <contextlist><context>server config</context></contextlist> <usage> - <p><directive>MCacheSize</directive> $B%G%#%l%/%F%#%V$O%-%c%C%7%e$K(B - $B;H$o$l$k%a%b%j$NBg$-$5$r%-%m%P%$%H(B (1024 $B%P%$%HC10L(B) $B$G@_Dj$7$^$9!#(B - $B?7$7$$%*%V%8%'%/%H$r%-%c%C%7%e$KA^F~$9$k$3$H$K$J$j!"%*%V%8%'%/%H$N(B - $B%5%$%:$,;D$j$N%a%b%j$h$jBg$-$$>l9g$O!"$=$N?7$7$$%*%V%8%'%/%H$NA^F~$,(B - $B2DG=$K$J$k$^$G!"8E$$%*%V%8%'%/%H$,:o=|$5$l$F$$$-$^$9!#(B - $B%*%V%8%'%/%H$O(B <directive + <p><directive>MCacheSize</directive> ディレクティブはキャッシュに + 使われるメモリの大きさをキロバイト (1024 バイト単位) で設定します。 + 新しいオブジェクトをキャッシュに挿入することになり、オブジェクトの + サイズが残りのメモリより大きい場合は、その新しいオブジェクトの挿入が + 可能になるまで、古いオブジェクトが削除されていきます。 + オブジェクトは <directive module="mod_mem_cache">MCacheRemovalAlgorithm</directive> - $B$G;XDj$7$?%"%k%4%j%:%`$K=>$C$F:o=|$5$l$^$9!#(B</p> + で指定したアルゴリズムに従って削除されます。</p> - <example><title>$BNc(B</title> + <example><title>例</title> MCacheSize 700000 </example> - <note><title>$BCm(B</title> - <p><directive>MCacheSize</directive> $B$NCM$O(B <directive module="mod_mem_cache" - >MCacheMaxObjectSize</directive> $B%G%#%l%/%F%#%V$G;XDj$7$?CM$h$j(B - $BBg$-$/$J$1$l$P$J$j$^$;$s!#(B</p> + <note><title>注</title> + <p><directive>MCacheSize</directive> の値は <directive module="mod_mem_cache" + >MCacheMaxObjectSize</directive> ディレクティブで指定した値より + 大きくなければなりません。</p> </note> </usage> </directivesynopsis> <directivesynopsis> <name>MCacheMaxObjectCount</name> -<description>$B%-%c%C%7%e$KJ]4I$5$l$k%*%V%8%'%/%H$N:GBg?t(B</description> +<description>キャッシュに保管されるオブジェクトの最大数</description> <syntax>MCacheMaxObjectCount <var>value</var></syntax> <default>MCacheMaxObjectCount 1009</default> <contextlist><context>server config</context></contextlist> <usage> - <p><directive>MCacheMaxObjectCount</directive> $B%G%#%l%/%F%#%V$O(B - $B%-%c%C%7%e$5$l$k%*%V%8%'%/%H$N:GBg?t$r;XDj$7$^$9!#(B - $B$3$NCM$O%O%C%7%e%F!<%V%k$r:n@.$9$k$H$-$K;H$o$l$^$9!#(B - $B?7$7$$%*%V%8%'%/%H$rA^F~$9$k$H$-$K!"%*%V%8%'%/%H$N:GBg?t$K(B - $BC#$7$F$7$^$C$F$$$k$H$-!"?7$7$$%*%V%8%'%/%H$r%-%c%C%7%e$G$-$k$h$&$K!"(B - $B%*%V%8%'%/%H$r0l$D>C5n$7$^$9!#%*%V%8%'%/%H$O(B + <p><directive>MCacheMaxObjectCount</directive> ディレクティブは + キャッシュされるオブジェクトの最大数を指定します。 + この値はハッシュテーブルを作成するときに使われます。 + 新しいオブジェクトを挿入するときに、オブジェクトの最大数に + 達してしまっているとき、新しいオブジェクトをキャッシュできるように、 + オブジェクトを一つ消去します。オブジェクトは <directive module="mod_mem_cache">MCacheRemovalAlgorithm</directive> - $B$G;XDj$5$l$?%"%k%4%j%:%`$K=>$C$F:o=|$5$l$^$9!#(B</p> + で指定されたアルゴリズムに従って削除されます。</p> - <example><title>$BNc(B</title> + <example><title>例</title> MCacheMaxObjectCount 13001 </example> </usage> @@ -101,16 +101,16 @@ <directivesynopsis> <name>MCacheMinObjectSize</name> -<description>$B%-%c%C%7%e$KJ]4I$5$l$k%I%-%e%a%s%H$N:G>.%5%$%:(B ($B%P%$%H(B)</description> +<description>キャッシュに保管されるドキュメントの最小サイズ (バイト)</description> <syntax>MCacheMinObjectSize <var>bytes</var></syntax> <default>MCacheMinObjectSize 0</default> <contextlist><context>server config</context></contextlist> <usage> - <p><directive>MCacheMinObjectSize</directive> $B%G%#%l%/%F%#%V$O!"%I%-%e%a%s%H$r(B - $B%-%c%C%7%e$9$k$+$I$&$+$rH=Dj$9$k!":G>.$N%5%$%:$r%P%$%H?t$G@_Dj$7$^$9!#(B</p> + <p><directive>MCacheMinObjectSize</directive> ディレクティブは、ドキュメントを + キャッシュするかどうかを判定する、最小のサイズをバイト数で設定します。</p> - <example><title>$BNc(B</title> + <example><title>例</title> MCacheMinObjectSize 10000 </example> </usage> @@ -118,51 +118,51 @@ <directivesynopsis> <name>MCacheMaxObjectSize</name> -<description>$B%-%c%C%7%e$KJ]4I$G$-$k%I%-%e%a%s%H$N:GBg%5%$%:(B ($B%P%$%H(B)</description> +<description>キャッシュに保管できるドキュメントの最大サイズ (バイト)</description> <syntax>MCacheMaxObjectSize <var>bytes</var></syntax> <default>MCacheMaxObjectSize 10000</default> <contextlist><context>server config</context></contextlist> <usage> - <p><directive>MCacheMaxObjectSize</directive> $B$O%I%-%e%a%s%H$r(B - $B%-%c%C%7%e$9$k$+$I$&$+$rH=Dj$9$k!":GBg$N%5%$%:$r%P%$%H?t$G@_Dj$7$^$9!#(B</p> + <p><directive>MCacheMaxObjectSize</directive> はドキュメントを + キャッシュするかどうかを判定する、最大のサイズをバイト数で設定します。</p> - <example><title>$BNc(B</title> + <example><title>例</title> MCacheMaxObjectSize 6400000 </example> - <note><title>$BCm(B</title> - <p><directive>MCacheMaxObjectSize</directive> $B$NCM$O(B <directive + <note><title>注</title> + <p><directive>MCacheMaxObjectSize</directive> の値は <directive module="mod_mem_cache">MCacheMinObjectSize</directive> - $B$G;XDj$7$?CM$h$j$bBg$-$/$J$1$l$P$J$j$^$;$s!#(B</p> + で指定した値よりも大きくなければなりません。</p> </note> </usage> </directivesynopsis> <directivesynopsis> <name>MCacheRemovalAlgorithm</name> -<description>$B%-%c%C%7%e$+$i:o=|$9$k%I%-%e%a%s%H$rA*$V$?$a$N%"%k%4%j%:%`(B</description> +<description>キャッシュから削除するドキュメントを選ぶためのアルゴリズム</description> <syntax>MCacheRemovalAlgorithm LRU|GDSF</syntax> <default>MCacheRemovalAlgorithm GDSF</default> <contextlist><context>server config</context></contextlist> <usage> - <p><directive>MCacheRemovalAlgorithm</directive> $B%G%#%l%/%F%#%V$O!"(B - $B%-%c%C%7%e$+$i:o=|$9$k%I%-%e%a%s%H$rA*Br$9$k$?$a$N%"%k%4%j%:%`$r(B - $B;XDj$7$^$9!#A*Br;h$OFs$D$"$j$^$9(B:</p> + <p><directive>MCacheRemovalAlgorithm</directive> ディレクティブは、 + キャッシュから削除するドキュメントを選択するためのアルゴリズムを + 指定します。選択肢は二つあります:</p> <dl> <dt><code>LRU</code> (Least Recently Used)</dt> - <dd><code>LRU</code> $B0lHVD9$/%"%/%;%9$5$l$F$$$J$$%I%-%e%a%s%H$r:o=|$7$^$9!#(B + <dd><code>LRU</code> 一番長くアクセスされていないドキュメントを削除します。 </dd> <dt><code>GDSF</code> (GreadyDual-Size)</dt> - <dd><code>GDSF</code> $B$O%-%c%C%7%e%_%9$N%3%9%H$H%I%-%e%a%s%H$N%5%$%:$r$b$H$K!"(B - $B%I%-%e%a%s%H$N%-%c%C%7%e$KBP$7$FM%@hEY$r$D$1$^$9!#(B - $BM%@hEY$N0lHVDc$$%I%-%e%a%s%H$,:G=i$K:o=|$5$l$^$9!#(B</dd> + <dd><code>GDSF</code> はキャッシュミスのコストとドキュメントのサイズをもとに、 + ドキュメントのキャッシュに対して優先度をつけます。 + 優先度の一番低いドキュメントが最初に削除されます。</dd> </dl> - <example><title>$BNc(B</title> + <example><title>例</title> MCacheRemovalAlgorithm GDSF<br /> MCacheRemovalAlgorithm LRU </example> @@ -171,36 +171,36 @@ <directivesynopsis> <name>MCacheMaxStreamingBuffer</name> -<description>$B%9%H%j!<%`$5$l$F$$$k1~Ez$r%-%c%C%7%eITG=$H7hDj$9$k$^$G$K(B -$B%a%b%j$K%P%C%U%!$9$k:GBgNL(B</description> +<description>ストリームされている応答をキャッシュ不能と決定するまでに +メモリにバッファする最大量</description> <syntax>MCacheMaxStreamingBuffer <var>size_in_bytes</var></syntax> -<default>MCacheMaxStreamingBuffer of 100000 $B$+(B MCacheMaxObjectSize $B$N>/$$J}(B</default> +<default>MCacheMaxStreamingBuffer of 100000 か MCacheMaxObjectSize の少い方</default> <contextlist><context>server config</context> </contextlist> <usage> - <p><directive>MCacheMaxStreamingBuffer</directive> $B%G%#%l%/%F%#%V$O!"(B - $B%5%$%:$,Bg$-$9$.$F%-%c%C%7%e$G$-$J$$$HH=CG$9$k$^$G$N!"(B - $B%9%H%j!<%`1~Ez$N%P%C%U%!$N$?$a$N:GBg%P%$%H?t$r;XDj$7$^$9!#(B - $B%9%H%j!<%`1~Ez$H$O!"%3%s%F%s%D$NA4BN$,$9$0$K$OF@$i$l$:!"(B - <code>Content-Length</code> $B$,$o$+$i$J$$1~Ez$r;X$7$^$9!#(B - $B%9%H%j!<%`1~Ez$r9T$J$&$h$&$J$b$N$K$O%W%m%-%7$5$l$?1~Ez$d!"(B - CGI $B%9%/%j%W%H$N=PNO$J$I$,$"$j$^$9!#%G%U%)%k%H$G$O%9%H%j!<%`$N1~Ez$O(B - <code>Content-Length</code> $B$,$J$$8B$j%-%c%C%7%e(B<em>$B$5$l$^$;$s(B</em>$B!#(B - $B$3$N$h$&$JF0:n$K$J$C$F$$$kM}M3$O!"7k6I%-%c%C%7%e$K<}$^$j$-$i$J$$$H(B - $BH=CG$9$k$3$H$K$J$C$F$7$^$&$h$&$J!"%5%$%:$NBg$-$J1~Ez$N%P%C%U%!%j%s%0$K!"(B - $BBgNL$N%a%b%j$,>CHq$5$l$k$N$rHr$1$k$?$a$G$9!#(B - <directive>MCacheMaxStreamingBuffer</directive> $B%G%#%l%/%F%#%V$r;H$&$H!"(B - <code>Content-Length</code> $B$r4^$^$J$$1~Ez$KBP$7$F;XDj$5$l$?:GBgNL$^$G(B - $B%P%C%U%!$9$k$h$&$K$G$-$^$9!#%P%C%U%!$r;H$$@Z$k$H!"%P%C%U%!Cf$N(B - $B%3%s%F%s%D$O<N$F$i$l!"%-%c%C%7%eF0:n$rCf;_$7$^$9!#(B</p> - - <note><title>$BCm(B:</title> - <p><directive>MCacheMaxStreamingBuffer</directive> $B$KHsNm$NCM$r(B - $B;H$C$F$b!"%/%i%$%"%s%H$X$N1~Ez$NE>Aw$KFC$KCY1d$OH/@8$7$^$;$s!#(B - <module>mod_mem_cache</module> $B$O%9%H%j!<%`%3%s%F%s%D$NCGJR$r(B - $B%P%C%U%!$K%3%T!<$7$?8e!"B(:B$K!"$=$NItJ,$r%/%i%$%"%s%H$X$NG[Aw$N(B - $B<!CJ$N=PNO%U%#%k%?$KAw$j$^$9!#(B</p> + <p><directive>MCacheMaxStreamingBuffer</directive> ディレクティブは、 + サイズが大きすぎてキャッシュできないと判断するまでの、 + ストリーム応答のバッファのための最大バイト数を指定します。 + ストリーム応答とは、コンテンツの全体がすぐには得られず、 + <code>Content-Length</code> がわからない応答を指します。 + ストリーム応答を行なうようなものにはプロキシされた応答や、 + CGI スクリプトの出力などがあります。デフォルトではストリームの応答は + <code>Content-Length</code> がない限りキャッシュ<em>されません</em>。 + このような動作になっている理由は、結局キャッシュに収まりきらないと + 判断することになってしまうような、サイズの大きな応答のバッファリングに、 + 大量のメモリが消費されるのを避けるためです。 + <directive>MCacheMaxStreamingBuffer</directive> ディレクティブを使うと、 + <code>Content-Length</code> を含まない応答に対して指定された最大量まで + バッファするようにできます。バッファを使い切ると、バッファ中の + コンテンツは捨てられ、キャッシュ動作を中止します。</p> + + <note><title>注:</title> + <p><directive>MCacheMaxStreamingBuffer</directive> に非零の値を + 使っても、クライアントへの応答の転送に特に遅延は発生しません。 + <module>mod_mem_cache</module> はストリームコンテンツの断片を + バッファにコピーした後、即座に、その部分をクライアントへの配送の + 次段の出力フィルタに送ります。</p> </note> <example> diff --git a/docs/manual/mod/mod_mime.xml.ja b/docs/manual/mod/mod_mime.xml.ja index f72818bd5e..ff4a0a504f 100644 --- a/docs/manual/mod/mod_mime.xml.ja +++ b/docs/manual/mod/mod_mime.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 193037:659902 (outdated) --> @@ -23,69 +23,69 @@ <modulesynopsis metafile="mod_mime.xml.meta"> <name>mod_mime</name> -<description>$B%j%/%(%9%H$5$l$?%U%!%$%k$N3HD%;R$H%U%!%$%k$N?6$kIq$$(B - ($B%O%s%I%i$H%U%#%k%?(B)$B!"FbMF(B (MIME $B%?%$%W!"8@8l!"J8;z%;%C%H!"%(%s%3!<%G%#%s%0(B) - $B$H$r4XO"IU$1$k(B</description> +<description>リクエストされたファイルの拡張子とファイルの振る舞い + (ハンドラとフィルタ)、内容 (MIME タイプ、言語、文字セット、エンコーディング) + とを関連付ける</description> <status>Base</status> <sourcefile>mod_mime.c</sourcefile> <identifier>mime_module</identifier> <summary> - <p>$B$3$N%b%8%e!<%k$O3HD%;R$r;H$C$F$$$m$$$m$J!V%a%?>pJs!W$r%U%!%$%k$K(B - $B4XO"IU$1$k$?$a$K;HMQ$5$l$^$9!#$3$N>pJs$O%I%-%e%a%s%H$N%U%!%$%kL>$H(B - MIME $B%?%$%W!"8@8l!"J8;z%;%C%H!"%(%s%3!<%G%#%s%0$H$r4XO"IU$1$^$9!#(B - $B$3$N>pJs$O%V%i%&%6$KAw$i$l$^$9$7!"J#?t$N%U%!%$%k$NCf$+$i%f!<%6$N9%$_$N(B - $B$b$N$,A*$P$l$k$h$&$K!"%3%s%F%s%H%M%4%7%(!<%7%g%s$G$b;H$o$l$^$9!#(B - <a href="../content-negotiation.html">$B%3%s%F%s%H%M%4%7%(!<%7%g%s(B</a> - $B$K4X$9$k>\$7$$>pJs$O(B <module>mod_negotiation</module> - $B$r$4Mw2<$5$$!#(B</p> - - <p><directive module="mod_mime">AddCharset</directive> $B%G%#%l%/%F%#%V!"(B - <directive module="mod_mime">AddEncoding</directive> $B%G%#%l%/%F%#%V!"(B - <directive module="mod_mime">AddHandler</directive> $B%G%#%l%/%F%#%V!"(B - <directive module="mod_mime">AddLanguage</directive> $B%G%#%l%/%F%#%V!"(B - <directive module="mod_mime">AddType</directive> $B%G%#%l%/%F%#%V$O$9$Y$F!"(B - $B%U%!%$%k$N3HD%;R$r%a%?>pJs$K%^%C%W$9$k$?$a$K;HMQ$5$l$^$9!#(B - $B$=$l$>$l!"%I%-%e%a%s%H$NJ8;z%;%C%H(B ($BLuCm(B: charset)$B!"(Bcontent-encoding, - content-language, MIME $B%?%$%W(B (content-type) $B$r@_Dj$7$^$9!#(B - <directive module="mod_mime">TypesConfig</directive> $B%G%#%l%/%F%#%V$O3HD%;R$r(B - MIME $B%?%$%W$K%^%C%W$9$k%U%!%$%k$r;XDj$9$k$?$a$K;HMQ$5$l$^$9!#(B</p> - - <p>$B$5$i$K!"(B<module>mod_mime</module> $B$O%3%s%F%s%D$r:n@.!"=hM}$9$k(B - <a href="../handler.html">$B%O%s%I%i(B</a> $B$H(B <a href="../filter.html">$B%U%#%k%?(B</a> - $B$r@_Dj$9$k$3$H$,$G$-$^$9!#(B<directive - module="mod_mime">AddHandler</directive> $B%G%#%l%/%F%#%V!"(B<directive - module="mod_mime">AddOutputFilter</directive> $B%G%#%l%/%F%#%V!"(B<directive - module="mod_mime">AddInputFilter</directive> $B%G%#%l%/%F%#%V$O(B - $B%I%-%e%a%s%H$r07$&%b%8%e!<%k$d%9%/%j%W%H$r@)8f$7$^$9!#(B - <directive module="mod_mime">MultiviewsMatch</directive> $B%G%#%l%/%F%#%V$O(B - $B$3$l$i$N%G%#%l%/%F%#%V$,;XDj$7$?%U%!%$%k$N3HD%;R$r(B - <module>mod_negotiation</module> $B$,(B Multiviews $B$N%^%C%A$r$H$k$H$-$K(B - $B9MN8$9$k$h$&$K$G$-$^$9!#(B</p> - - <p><module>mod_mime</module> $B$O%a%?>pJs$r%U%!%$%kL>$H4XO"IU$1$^$9$,!"(B - <module>core</module> $B%5!<%P$K$O$"$k%3%s%F%J(B - (<em>$B$?$H$($P(B</em>, <directive type="section" + <p>このモジュールは拡張子を使っていろいろな「メタ情報」をファイルに + 関連付けるために使用されます。この情報はドキュメントのファイル名と + MIME タイプ、言語、文字セット、エンコーディングとを関連付けます。 + この情報はブラウザに送られますし、複数のファイルの中からユーザの好みの + ものが選ばれるように、コンテントネゴシエーションでも使われます。 + <a href="../content-negotiation.html">コンテントネゴシエーション</a> + に関する詳しい情報は <module>mod_negotiation</module> + をご覧下さい。</p> + + <p><directive module="mod_mime">AddCharset</directive> ディレクティブ、 + <directive module="mod_mime">AddEncoding</directive> ディレクティブ、 + <directive module="mod_mime">AddHandler</directive> ディレクティブ、 + <directive module="mod_mime">AddLanguage</directive> ディレクティブ、 + <directive module="mod_mime">AddType</directive> ディレクティブはすべて、 + ファイルの拡張子をメタ情報にマップするために使用されます。 + それぞれ、ドキュメントの文字セット (訳注: charset)、content-encoding, + content-language, MIME タイプ (content-type) を設定します。 + <directive module="mod_mime">TypesConfig</directive> ディレクティブは拡張子を + MIME タイプにマップするファイルを指定するために使用されます。</p> + + <p>さらに、<module>mod_mime</module> はコンテンツを作成、処理する + <a href="../handler.html">ハンドラ</a> と <a href="../filter.html">フィルタ</a> + を設定することができます。<directive + module="mod_mime">AddHandler</directive> ディレクティブ、<directive + module="mod_mime">AddOutputFilter</directive> ディレクティブ、<directive + module="mod_mime">AddInputFilter</directive> ディレクティブは + ドキュメントを扱うモジュールやスクリプトを制御します。 + <directive module="mod_mime">MultiviewsMatch</directive> ディレクティブは + これらのディレクティブが指定したファイルの拡張子を + <module>mod_negotiation</module> が Multiviews のマッチをとるときに + 考慮するようにできます。</p> + + <p><module>mod_mime</module> はメタ情報をファイル名と関連付けますが、 + <module>core</module> サーバにはあるコンテナ + (<em>たとえば</em>, <directive type="section" module="core">Location</directive>, <directive type="section" module="core">Directory</directive>, <directive type="section" - module="core">Files</directive>) $B$NCf$N$9$Y$F$N%U%!%$%k$rFCDj$N(B - $B%a%?>pJs$H4XO"IU$1$k%G%#%l%/%F%#%V$,$"$j$^$9!#$3$l$i$N%G%#%l%/%F%#%V$K$O(B + module="core">Files</directive>) の中のすべてのファイルを特定の + メタ情報と関連付けるディレクティブがあります。これらのディレクティブには <directive module="core">ForceType</directive>, <directive module="core">SetHandler</directive>, <directive module="core">SetInputFilter</directive>, <directive - module="core">SetOutputFilter</directive> $B$,$"$j$^$9!#(B - $B%3%"$N%G%#%l%/%F%#%V$O(B <module>mod_mime</module> $B$K$h$jDj5A$5$l$?(B - $B%U%!%$%kL>$N3HD%;R$N%^%C%T%s%0$9$Y$F$r>e=q$-$7$^$9!#(B</p> - - <p>$B%U%!%$%k$N%a%?>pJs$rJQ$($F$b(B <code>Last-Modified</code> - $B%X%C%@$NCM$OJQ$o$i$J$$$3$H$KCm0U$7$F$/$@$5$$!#$G$9$+$i!"(B - $B$=$l$i$rJQ99$7$?>l9g$O!"%/%i%$%"%s%H$d%W%m%-%7$G0JA0$K%-%c%C%7%e$5$l$?(B - $B%3%T!<$,$=$N$H$-$N%X%C%@$H$H$b$K;H$o$l$k2DG=@-$,$"$j$^$9!#(B - $B%a%?>pJs(B ($B8@8l!"%3%s%F%s%H%?%$%W!"J8;z%;%C%H!"%(%s%3!<%G%#%s%0(B) $B$r(B - $BJQ99$7$?$H$-$O!"$9$Y$F$NK,Ld<T$,@5$7$$%3%s%F%s%H%X%C%@$r(B - $B<u$1<h$k$h$&$K!"1F6A$r<u$1$k%U%!%$%k$K(B 'touch' $B%3%^%s%I$r<B9T$9$k(B - ($B:G=*99?7F|$r99?7$9$k(B) $BI,MW$,$"$k$+$b$7$l$^$;$s!#(B</p> + module="core">SetOutputFilter</directive> があります。 + コアのディレクティブは <module>mod_mime</module> により定義された + ファイル名の拡張子のマッピングすべてを上書きします。</p> + + <p>ファイルのメタ情報を変えても <code>Last-Modified</code> + ヘッダの値は変わらないことに注意してください。ですから、 + それらを変更した場合は、クライアントやプロキシで以前にキャッシュされた + コピーがそのときのヘッダとともに使われる可能性があります。 + メタ情報 (言語、コンテントタイプ、文字セット、エンコーディング) を + 変更したときは、すべての訪問者が正しいコンテントヘッダを + 受け取るように、影響を受けるファイルに 'touch' コマンドを実行する + (最終更新日を更新する) 必要があるかもしれません。</p> </summary> <seealso><directive @@ -97,126 +97,126 @@ module="mod_mime_magic">MimeMagicFile</directive></seealso> <seealso><directive module="core">SetInputFilter</directive></seealso> <seealso><directive module="core">SetOutputFilter</directive></seealso> -<section id="multipleext"><title>$BJ#?t$N3HD%;R$N$"$k%U%!%$%k(B</title> - <p>$B%U%!%$%k$OJ#?t$N3HD%;R$r;}$D$3$H$,$G$-!"3HD%;R$N=gHV$O(B<em - >$BDL>o$O(B</em>$B4X78$"$j$^$;$s!#Nc$($P!"%U%!%$%k(B <code>welcome.html.fr</code> - $B$,%3%s%F%s%H%?%$%W$O(B <code>text/html</code> - $B$K!"8@8l$O%U%i%s%98l$K%^%C%W$5$l$k>l9g!"(B<code>welcome.fr.html</code> - $B$b$^$C$?$/F1$8>pJs$K%^%C%W$5$l$^$9!#(B - $BF1$8%a%?>pJs$K%^%C%W$5$l$k3HD%;R$,J#?t$"$k$H$-$K$O!"8@8l$H(B - $B%3%s%F%s%H%(%s%3!<%G%#%s%0$r=|$$$F!"(B - $B1&B&$K$"$k$b$N$,;HMQ$5$l$^$9!#$?$H$($P!"(B<code>.gif</code> $B$,(B MIME - $B%?%$%W(B <code>image/gif</code> $B$K%^%C%W$5$l!"(B<code>.html</code> - $B$,(B MIME $B%?%$%W(B <code>text/html</code> - $B$K%^%C%W$5$l$k>l9g$O!"%U%!%$%k(B <code>welcome.gif.html</code> $B$O(B - MIME $B%?%$%W(B <code>text/html</code> $B$K4XO"IU$1$i$l$^$9!#(B</p> - - <p>$B%j%=!<%9$KJ#?t$N8@8l$d%(%s%3!<%G%#%s%0$r4XO"IU$1$k$3$H(B - $B$,$G$-$k$?$a!"(B - <a href="#charset-lang">$B8@8l(B</a>$B$H(B<a href="#contentencoding" - >$B%3%s%F%s%H%(%s%3!<%G%#%s%0(B</a>$B$OA0$N$b$N$KDI2C$5$l$F$$$-$^$9!#(B - $B$?$H$($P!"%U%!%$%k(B <code>welcome.html.en.de</code> $B$O(B - <code>Content-Language: en, de</code> $B$H(B <code>Content-Type: - text/html</code> $B$H$7$FAw?.$5$l$^$9!#(B</p> - - <p>$BJ#?t$N3HD%;R$N$"$k%U%!%$%k$,(B MIME - $B%?%$%W$H%O%s%I%i$NN>J}$K4XO"IU$1$i$l$F$$$k$H$-$OCm0U$9$kI,MW$,$"$j$^$9!#(B - $B$=$N>l9g!"IaDL$O%j%/%(%9%H$,%O%s%I%i$K4XO"IU$1$i$l$?(B - $B%b%8%e!<%k$K$h$C$F07$o$l$k$3$H$K$J$j$^$9!#$?$H$($P!"3HD%;R(B - <code>.imap</code> $B$,(B (<module>mod_imagemap</module> $B$N(B) <code>imap-file</code> - $B$K%^%C%W$5$l$F$$$F!"(B<code>.html</code> $B$,(B MIME $B%?%$%W(B <code>text/html</code> - $B$K%^%C%W$5$l$F$$$k$H$-$O!"%U%!%$%k(B <code>world.imap.html</code> $B$O(B - <code>imap-file</code> $B%O%s%I%i$H(B <code>text/html</code> MIME - $B%?%$%W$K4XO"IU$1$i$l$^$9!#%U%!%$%k$,=hM}$5$l$k$H$-$O(B <code>imap-file</code> - $B%O%s%I%i$,;HMQ$5$l$^$9$N$G!"$=$N%U%!%$%k$O(B <module>mod_imagemap</module> - $B$N%$%a!<%8%^%C%W%U%!%$%k$H$7$F07$o$l$k$3$H$K$J$j$^$9!#(B</p> +<section id="multipleext"><title>複数の拡張子のあるファイル</title> + <p>ファイルは複数の拡張子を持つことができ、拡張子の順番は<em + >通常は</em>関係ありません。例えば、ファイル <code>welcome.html.fr</code> + がコンテントタイプは <code>text/html</code> + に、言語はフランス語にマップされる場合、<code>welcome.fr.html</code> + もまったく同じ情報にマップされます。 + 同じメタ情報にマップされる拡張子が複数あるときには、言語と + コンテントエンコーディングを除いて、 + 右側にあるものが使用されます。たとえば、<code>.gif</code> が MIME + タイプ <code>image/gif</code> にマップされ、<code>.html</code> + が MIME タイプ <code>text/html</code> + にマップされる場合は、ファイル <code>welcome.gif.html</code> は + MIME タイプ <code>text/html</code> に関連付けられます。</p> + + <p>リソースに複数の言語やエンコーディングを関連付けること + ができるため、 + <a href="#charset-lang">言語</a>と<a href="#contentencoding" + >コンテントエンコーディング</a>は前のものに追加されていきます。 + たとえば、ファイル <code>welcome.html.en.de</code> は + <code>Content-Language: en, de</code> と <code>Content-Type: + text/html</code> として送信されます。</p> + + <p>複数の拡張子のあるファイルが MIME + タイプとハンドラの両方に関連付けられているときは注意する必要があります。 + その場合、普通はリクエストがハンドラに関連付けられた + モジュールによって扱われることになります。たとえば、拡張子 + <code>.imap</code> が (<module>mod_imagemap</module> の) <code>imap-file</code> + にマップされていて、<code>.html</code> が MIME タイプ <code>text/html</code> + にマップされているときは、ファイル <code>world.imap.html</code> は + <code>imap-file</code> ハンドラと <code>text/html</code> MIME + タイプに関連付けられます。ファイルが処理されるときは <code>imap-file</code> + ハンドラが使用されますので、そのファイルは <module>mod_imagemap</module> + のイメージマップファイルとして扱われることになります。</p> </section> -<section id="contentencoding"><title>$B%3%s%F%s%H%(%s%3!<%G%#%s%0(B</title> - <p>$BFCDj$N(B MIME $B%?%$%W$N%U%!%$%k$O%$%s%?!<%M%C%H$G$NE>Aw$r4JC1$K$9$k$?$a$K!"(B - $B$5$i$KId9f2=$9$k$3$H$,$G$-$^$9!#$3$l$ODL>o$O(B <code>gzip</code> $B$N(B - $B$h$&$J05=L$N$3$H$r;X$7$^$9$,!"(B<code>pgp</code> $B$N$h$&$J0E9f2=$d!"(B - $B%P%$%J%j%U%!%$%k$r(B ASCII ($B%F%-%9%H(B) $B7A<0$GAw$k$?$a$K9M0F$5$l$?(B - UUencoding $B$N$3$H$r;X$9$3$H$b$"$j$^$9!#(B</p> +<section id="contentencoding"><title>コンテントエンコーディング</title> + <p>特定の MIME タイプのファイルはインターネットでの転送を簡単にするために、 + さらに符号化することができます。これは通常は <code>gzip</code> の + ような圧縮のことを指しますが、<code>pgp</code> のような暗号化や、 + バイナリファイルを ASCII (テキスト) 形式で送るために考案された + UUencoding のことを指すこともあります。</p> <p><a href="http://www.ietf.org/rfc/rfc2616.txt">HTTP/1.1 RFC</a> - 14.11 $B@a$G$O<!$N$h$&$K5-=R$5$l$F$$$^$9!#(B</p> + 14.11 節では次のように記述されています。</p> <blockquote cite="http://www.ietf.org/rfc/rfc2616.txt"> - <p>Content-Encoding $B%(%s%F%#%F%#%X%C%@%U%#!<%k%I$O%a%G%#%"%?%$%W$N(B - $B=$>~;R$H$7$F;H$o$l$^$9!#$=$l$,B8:_$7$F$$$l$P!"CM$O%(%s%F%#%F%#%\%G%#$K(B - $B$I$NDI2C$NId9f2=$,E,MQ$5$l$?$+$r<($7!"(BContent-Type $B%X%C%@%U%#!<%k%I$K(B - $B=q$+$l$F$$$k%a%G%#%"%?%$%W$rF@$k$?$a$K$I$NI|9f5!9=$rE,MQ$9$Y$-$+!"$b(B - $B<($7$F$$$k$3$H$K$J$j$^$9!#(BContent-Encoding $B$O<g$K!"85$N%a%G%#%"%?%$%W$N(B - $BF10l@-$r<:$&$3$H$J$/%I%-%e%a%s%H$r05=L$9$k$3$H$r2DG=$K$9$k$?$a$K(B - $B;HMQ$5$l$^$9!#(B</p> + <p>Content-Encoding エンティティヘッダフィールドはメディアタイプの + 修飾子として使われます。それが存在していれば、値はエンティティボディに + どの追加の符号化が適用されたかを示し、Content-Type ヘッダフィールドに + 書かれているメディアタイプを得るためにどの復号機構を適用すべきか、も + 示していることになります。Content-Encoding は主に、元のメディアタイプの + 同一性を失うことなくドキュメントを圧縮することを可能にするために + 使用されます。</p> </blockquote> - <p>$BJ#?t$N%U%!%$%k3HD%;R(B ($BJ#?t$N3HD%;R$K$D$$$F$O(B <a - href="#multipleext">$B>e$N@a(B</a> $B$r;2>H(B) $B;H$&$3$H$G!"(B - $B%U%!%$%k$N(B<em>$B%?%$%W(B</em>$B$d(B<em>$B%(%s%3!<%G%#%s%0(B</em>$B$r;XDj$9$k$3$H$,(B - $B$G$-$^$9!#(B</p> + <p>複数のファイル拡張子 (複数の拡張子については <a + href="#multipleext">上の節</a> を参照) 使うことで、 + ファイルの<em>タイプ</em>や<em>エンコーディング</em>を指定することが + できます。</p> - <p>$B$?$H$($P!"(BMicrosoft Word $B$N%I%-%e%a%s%H$,$"$j!"%5%$%:$r>.$5$/$9$k$?$a$K(B - pkzip $B$5$l$F$$$k$H$7$^$9!#(B<code>.doc</code> $B3HD%;R$,(B Microsoft Word $B$N(B - $B%U%!%$%k%?%$%W$H4XO"IU$1$i$l$F$$$F!"(B<code>.zip</code> $B3HD%;R$,(B - pkzip $B%U%!%$%k%(%s%3!<%G%#%s%0$H4XO"IU$1$i$l$F$$$k$H!"%U%!%$%k(B - <code>Resume.doc.zip</code> $B$O(B pkzip $B$5$l$?(B Word $B%I%-%e%a%s%H$G$"$k(B - $B$H$$$&$3$H$,$o$+$j$^$9!#(B</p> + <p>たとえば、Microsoft Word のドキュメントがあり、サイズを小さくするために + pkzip されているとします。<code>.doc</code> 拡張子が Microsoft Word の + ファイルタイプと関連付けられていて、<code>.zip</code> 拡張子が + pkzip ファイルエンコーディングと関連付けられていると、ファイル + <code>Resume.doc.zip</code> は pkzip された Word ドキュメントである + ということがわかります。</p> - <p>$B%/%i%$%"%s%H$N%V%i%&%6$K%(%s%3!<%G%#%s%0J}K!$rCN$i$;$k$?$a$K!"(B - Apache $B$O%j%=!<%9$H6&$K(B <code>Content-Encoding</code> $B%X%C%@$r(B - $BAw$j$^$9!#(B</p> + <p>クライアントのブラウザにエンコーディング方法を知らせるために、 + Apache はリソースと共に <code>Content-Encoding</code> ヘッダを + 送ります。</p> <example>Content-encoding: pkzip</example> </section> -<section id="charset-lang"><title>$BJ8;z%;%C%H$H8@8l(B</title> - <p>$B%U%!%$%k%?%$%W$H%U%!%$%k%(%s%3!<%G%#%s%0$NB>$K=EMW$J>pJs$O(B - $B%I%-%e%a%s%H$N=q$+$l$F$$$k8@8l$H!"$I$NJ8;z%;%C%H$G%U%!%$%k$,I=<((B - $B$5$l$k$Y$-$+!"$H$$$&$b$N$G$9!#$?$H$($P!"%I%-%e%a%s%H$O%Y%H%J%`$N(B - $B%"%k%U%!%Y%C%H$d%-%j%kJ8;z$G=q$+$l$F$$$F!"$=$N$h$&$KI=<($5$l$k(B - $BI,MW$,$"$k$+$b$7$l$^$;$s!#$3$N>pJs$b$^$?!"(BHTTP $B%X%C%@$G(B - $BAw?.$5$l$^$9!#(B</p> - - <p>$BJ8;z%;%C%H!"8@8l!"%(%s%3!<%G%#%s%0!"(Bmime $B%?%$%W$O$9$Y$F(B - $B%3%s%F%s%H%M%4%7%(!<%7%g%s(B (<module>mod_negotiation</module> $B;2>H(B) - $B$N:GCf$K!"J#?t$NJ8;z%;%C%H!"8@8l!"%(%s%3!<%G%#%s%0!"(BMIME $B%?%$%W$+$i$J$k(B - $BBeBXJ*$,$"$k$H$-$K$I$N%I%-%e%a%s%H$r%/%i%$%"%s%H$KAw$k$N$+$r(B - $B7hDj$9$k$H$-$K;H$o$l$^$9!#(B<directive module="mod_mime">AddCharset</directive>, +<section id="charset-lang"><title>文字セットと言語</title> + <p>ファイルタイプとファイルエンコーディングの他に重要な情報は + ドキュメントの書かれている言語と、どの文字セットでファイルが表示 + されるべきか、というものです。たとえば、ドキュメントはベトナムの + アルファベットやキリル文字で書かれていて、そのように表示される + 必要があるかもしれません。この情報もまた、HTTP ヘッダで + 送信されます。</p> + + <p>文字セット、言語、エンコーディング、mime タイプはすべて + コンテントネゴシエーション (<module>mod_negotiation</module> 参照) + の最中に、複数の文字セット、言語、エンコーディング、MIME タイプからなる + 代替物があるときにどのドキュメントをクライアントに送るのかを + 決定するときに使われます。<directive module="mod_mime">AddCharset</directive>, <directive module="mod_mime">AddEncoding</directive>, <directive module="mod_mime">AddLanguage</directive>, - <directive module="mod_mime">AddType</directive> $B$N3F%G%#%l%/%F%#%V$G:n@.$5$l$?(B - $B3HD%;R$N4XO"IU$1(B ($B$H(B <directive module="mod_mime_magic" - >MimeMagicFile</directive> $B$G%j%9%H$5$l$F$$$k(B - $B3HD%;R(B) $B$,$3$NA*Br$K;22C$7$^$9!#(B<directive module="mod_mime" + <directive module="mod_mime">AddType</directive> の各ディレクティブで作成された + 拡張子の関連付け (と <directive module="mod_mime_magic" + >MimeMagicFile</directive> でリストされている + 拡張子) がこの選択に参加します。<directive module="mod_mime" >AddHandler</directive>, <directive module="mod_mime">AddInputFilter</directive>, - <directive module="mod_mime">AddOutputFilter</directive> $B$N(B - $B3F%G%#%l%/%F%#%V$G$N$_4XO"IU$1$i$l$F$$$k3HD%;R$O(B - <directive module="mod_mime">MultiviewsMatch</directive> $B%G%#%l%/%F%#%V$r(B - $B;H$&$3$H$G%^%C%A$N(B - $B=hM}$K4^$a$k$3$H$b30$9$3$H$b$G$-$^$9!#(B</p> + <directive module="mod_mime">AddOutputFilter</directive> の + 各ディレクティブでのみ関連付けられている拡張子は + <directive module="mod_mime">MultiviewsMatch</directive> ディレクティブを + 使うことでマッチの + 処理に含めることも外すこともできます。</p> <section id="charset"><title>Charset</title> - <p>$B$5$i$K>pJs$rEA$($k$?$a$K!"(BApache $B$OJ8=q$N8@8l$r(B - <code>Content-Language</code> $B%X%C%@$GAw$k$3$H$b$"$j$^$9!#(B - $B$^$?!">pJs$r@5$7$/I=<($9$k$?$a$K;HMQ$9$Y$-J8;z%;%C%H$r<($9$?$a$K(B - <code>Conten-Type</code> $B%X%C%@$K>pJs$rDI2C$9$k$3$H$b$"$j$^$9!#(B</p> + <p>さらに情報を伝えるために、Apache は文書の言語を + <code>Content-Language</code> ヘッダで送ることもあります。 + また、情報を正しく表示するために使用すべき文字セットを示すために + <code>Conten-Type</code> ヘッダに情報を追加することもあります。</p> <example> Content-Language: en, fr<br /> Content-Type: text/plain; charset=ISO-8859-1 </example> - <p>$B8@8l$N;XDj$OFsJ8;z$NC;=L7A$G9T$J$o$l$^$9!#(B<code>charset</code> $B$,(B - $B;HMQ$9$Y$-J8;z%;%C%H$NL>A0$G$9!#(B</p> + <p>言語の指定は二文字の短縮形で行なわれます。<code>charset</code> が + 使用すべき文字セットの名前です。</p> </section> </section> <directivesynopsis> <name>AddCharset</name> -<description>$B%U%!%$%kL>$N3HD%;R$r;XDj$5$l$?J8;z%;%C%H$K%^%C%W$9$k(B</description> +<description>ファイル名の拡張子を指定された文字セットにマップする</description> <syntax>AddCharset <var>charset</var> <var>extension</var> [<var>extension</var>] ...</syntax> <contextlist><context>server config</context><context>virtual host</context> @@ -224,32 +224,32 @@ module="mod_mime_magic">MimeMagicFile</directive></seealso> <override>FileInfo</override> <usage> - <p><directive>AddCharset</directive> $B%G%#%l%/%F%#%V$O!"(B - $BM?$($i$l$?3HD%;R$r;XDj$5$l$?(B charset $B$K%^%C%W$7$^$9!#(B<var>charset</var> - $B$O!"3HD%;R(B <var>extension</var> $B$r4^$s$G$$$k%U%!%$%kL>$N(B + <p><directive>AddCharset</directive> ディレクティブは、 + 与えられた拡張子を指定された charset にマップします。<var>charset</var> + は、拡張子 <var>extension</var> を含んでいるファイル名の <a href="http://www.iana.org/assignments/character-sets">MIME charset - $B%Q%i%a!<%?(B</a>$B$G$9!#?7$7$$%^%C%T%s%0$O4{$K$"$kB>$N%^%C%T%s%0$KDI2C$5$l!"F1$83HD%;R(B - <var>extension</var> $B$N$?$a$N%^%C%T%s%0$r>e=q$-$7$^$9!#(B</p> + パラメータ</a>です。新しいマッピングは既にある他のマッピングに追加され、同じ拡張子 + <var>extension</var> のためのマッピングを上書きします。</p> - <example><title>$BNc(B</title> + <example><title>例</title> AddLanguage ja .ja<br /> AddCharset EUC-JP .euc<br /> AddCharset ISO-2022-JP .jis<br /> AddCharset SHIFT_JIS .sjis </example> - <p>$B$3$N>l9g!"%I%-%e%a%s%H(B <code>xxxx.ja.jis</code> $B$O(B charset $B$,(B - <code>ISO-2022-JP</code> $B$NF|K\8l$N%I%-%e%a%s%H$H$7$F07$o$l$^$9(B - (<code>xxxx.jis.ja</code> $B$bF1MM(B)$B!#(B<directive>AddCharset</directive> - $B%G%#%l%/%F%#%V$O!"%I%-%e%a%s%H$,E,@Z$K2r<a$5$lI=<($5$l$k$h$&$K!"(B - $B%I%-%e%a%s%H$N(B charset $B$N>pJs$r%/%i%$%"%s%H$K65$($k$?$a$KLr$KN)$A$^$9!#(B - $B$^$?!"%5!<%P$,%/%i%$%"%s%H$N(B charset - $B$NM%@hEY$K4p$E$$$FJ#?t$N%I%-%e%a%s%H$NCf$+$i%I%-%e%a%s%H$rA*$V(B<a + <p>この場合、ドキュメント <code>xxxx.ja.jis</code> は charset が + <code>ISO-2022-JP</code> の日本語のドキュメントとして扱われます + (<code>xxxx.jis.ja</code> も同様)。<directive>AddCharset</directive> + ディレクティブは、ドキュメントが適切に解釈され表示されるように、 + ドキュメントの charset の情報をクライアントに教えるために役に立ちます。 + また、サーバがクライアントの charset + の優先度に基づいて複数のドキュメントの中からドキュメントを選ぶ<a href="../content-negotiation.html" - >$B%3%s%F%s%H%M%4%7%(!<%7%g%s(B</a>$B$N$?$a$K$bLr$KN)$A$^$9!#(B</p> + >コンテントネゴシエーション</a>のためにも役に立ちます。</p> - <p>$B0z?t(B <var>extension</var>$B$OBgJ8;z>.J8;z$r6hJL$;$:!"(B - $B:G=i$N%I%C%H$O$"$C$F$b$J$/$F$b9=$$$^$;$s!#(B</p> + <p>引数 <var>extension</var>は大文字小文字を区別せず、 + 最初のドットはあってもなくても構いません。</p> </usage> <seealso><module>mod_negotiation</module></seealso> <seealso><directive module="core">AddDefaultCharset</directive></seealso> @@ -257,8 +257,8 @@ module="mod_mime_magic">MimeMagicFile</directive></seealso> <directivesynopsis> <name>AddEncoding</name> -<description>$B%U%!%$%kL>$N3HD%;R$r;XDj$5$l$?%(%s%3!<%G%#%s%0(B -$B$K%^%C%W$9$k(B</description> +<description>ファイル名の拡張子を指定されたエンコーディング +にマップする</description> <syntax>AddEncoding <var>MIME-enc</var> <var>extension</var> [<var>extension</var>] ...</syntax> <contextlist><context>server config</context><context>virtual host</context> @@ -266,46 +266,46 @@ module="mod_mime_magic">MimeMagicFile</directive></seealso> <override>FileInfo</override> <usage> - <p><directive>AddEncoding</directive> $B%G%#%l%/%F%#%V$O!"(B - $BM?$($i$l$?3HD%;R$r;XDj$5$l$?%(%s%3!<%G%#%s%0$K%^%C%W$7$^$9!#(B - <var>MIME-enc</var> $B$O!"3HD%;R(B <var>extension</var> - $B$r4^$s$@%I%-%e%a%s%H$K;HMQ$9$k(B MIME $B%(%s%3!<%G%#%s%0$G$9!#(B - $B$3$N?7$7$$%^%C%T%s%0$O4{$K$"$kB>$N%^%C%T%s%0$KDI2C$5$l!"(B - $BF1$83HD%;R(B <var>extension</var> $B$N$?$a$N%^%C%T%s%0$r>e=q$-$7$^$9!#(B</p> - - <example><title>$BNc(B</title> + <p><directive>AddEncoding</directive> ディレクティブは、 + 与えられた拡張子を指定されたエンコーディングにマップします。 + <var>MIME-enc</var> は、拡張子 <var>extension</var> + を含んだドキュメントに使用する MIME エンコーディングです。 + この新しいマッピングは既にある他のマッピングに追加され、 + 同じ拡張子 <var>extension</var> のためのマッピングを上書きします。</p> + + <example><title>例</title> <code>AddEncoding x-gzip .gz<br /> AddEncoding x-compress .Z</code> </example> - <p>$B$3$l$O!"3HD%;R(B <code>.gz</code> $B$r4^$`%U%!%$%kL>$,(B <code>x-gzip</code> - $B%(%s%3!<%G%#%s%0$r;H$C$F%(%s%3!<%I$5$l$F$$$k$3$H$H!"3HD%;R(B <code>.Z</code> - $B$r4^$`%U%!%$%kL>$,(B <code>x-compress</code> - $B$G%(%s%3!<%I$5$l$F$$$k$3$H$r;XDj$7$^$9!#(B</p> - - <p>$B8E$$%/%i%$%"%s%H$O(B <code>x-zip</code> $B$H(B <code>x-compress</code> - $B$,JV$C$F$/$k$3$H$r4|BT$7$^$9$,!"I8=`5,3J$G$O$=$l$>$l(B - <code>gzip</code> $B$H(B <code>compress</code> - $B$HEy2A$G$"$k$3$H$K$J$C$F$$$^$9!#(BApache - $B$O!"%3%s%F%s%H%(%s%3!<%G%#%s%0$NHf3S$r$9$k$H$-$K$O!"@hF,$K$"$k(B - <code>x-</code> $B$rL5;k$7$^$9!#(BApache - $B$,%(%s%3!<%G%#%s%0IU$-$G1~Ez$rJV$9$H$-$O!"%/%i%$%"%s%H$,MW5a$7$?7A<0(B - (<em>$B$9$J$o$A(B</em>$B!"(B<code>x-foo</code> $B$d(B <code>foo</code>) - $B$r;HMQ$7$^$9!#MW$9$k$K!"$3$NFs$D$N%(%s%3!<%G%#%s%0$N>l9g$O>o$K(B - <code>x-gzip</code> $B$H(B <code>x-compress</code> - $B$r;H$&$Y$-$G$"$k!"$H$$$&$3$H$G$9!#(B<code>deflate</code> - $B$N$h$&$J$h$j?7$7$$%(%s%3!<%G%#%s%0$G$O!"(B<code>x-</code> - $B$J$7$G;XDj$7$F$/$@$5$$!#(B + <p>これは、拡張子 <code>.gz</code> を含むファイル名が <code>x-gzip</code> + エンコーディングを使ってエンコードされていることと、拡張子 <code>.Z</code> + を含むファイル名が <code>x-compress</code> + でエンコードされていることを指定します。</p> + + <p>古いクライアントは <code>x-zip</code> と <code>x-compress</code> + が返ってくることを期待しますが、標準規格ではそれぞれ + <code>gzip</code> と <code>compress</code> + と等価であることになっています。Apache + は、コンテントエンコーディングの比較をするときには、先頭にある + <code>x-</code> を無視します。Apache + がエンコーディング付きで応答を返すときは、クライアントが要求した形式 + (<em>すなわち</em>、<code>x-foo</code> や <code>foo</code>) + を使用します。要するに、この二つのエンコーディングの場合は常に + <code>x-gzip</code> と <code>x-compress</code> + を使うべきである、ということです。<code>deflate</code> + のようなより新しいエンコーディングでは、<code>x-</code> + なしで指定してください。 </p> - <p>$B0z?t(B <var>extension</var> $B$OBgJ8;z>.J8;z$r6hJL$;$:!"(B - $B:G=i$N%I%C%H$O$"$C$F$b$J$/$F$b9=$$$^$;$s!#(B</p> + <p>引数 <var>extension</var> は大文字小文字を区別せず、 + 最初のドットはあってもなくても構いません。</p> </usage> </directivesynopsis> <directivesynopsis> <name>AddHandler</name> -<description>$B%U%!%$%kL>$N3HD%;R$r;XDj$5$l$?%O%s%I%i$K%^%C%W$9$k(B</description> +<description>ファイル名の拡張子を指定されたハンドラにマップする</description> <syntax>AddHandler <var>handler-name</var> <var>extension</var> [<var>extension</var>] ...</syntax> <contextlist><context>server config</context><context>virtual host</context> @@ -313,52 +313,52 @@ module="mod_mime_magic">MimeMagicFile</directive></seealso> <override>FileInfo</override> <usage> - <p>$B3HD%;R(B <var>extension</var> $B$,L>A0$K$"$k%U%!%$%k$O;XDj$5$l$?(B <a - href="../handler.html">handler-name</a> $B$K07$o$l$^$9!#(B - $B$3$N?7$7$$%^%C%T%s%0$O4{$K$"$kB>$N%^%C%T%s%0$KDI2C$5$l!"(B - $BF1$83HD%;R(B <var>extension</var> - $B$N$?$a$N%^%C%T%s%0$r>e=q$-$7$^$9!#$?$H$($P!"3HD%;R(B - "<code>.cgi</code>" $B$G=*$o$k%U%!%$%k$r(B CGI - $B%9%/%j%W%H$H$7$F07$$$?$$$H$-$O!"0J2<$N@_Dj$r$7$^$9!#(B</p> + <p>拡張子 <var>extension</var> が名前にあるファイルは指定された <a + href="../handler.html">handler-name</a> に扱われます。 + この新しいマッピングは既にある他のマッピングに追加され、 + 同じ拡張子 <var>extension</var> + のためのマッピングを上書きします。たとえば、拡張子 + "<code>.cgi</code>" で終わるファイルを CGI + スクリプトとして扱いたいときは、以下の設定をします。</p> <example> AddHandler cgi-script .cgi </example> - <p>$B$3$l$r(B httpd.conf $B%U%!%$%k$K5-=R$9$k$3$H$G!"3HD%;R(B - "<code>.cgi</code>" $B$N%U%!%$%k$O(B CGI $B%W%m%0%i%`$H$7$F07$o$l$^$9!#(B + <p>これを httpd.conf ファイルに記述することで、拡張子 + "<code>.cgi</code>" のファイルは CGI プログラムとして扱われます。 </p> - <p>$B0z?t(B <var>extension</var> $B$OBgJ8;z>.J8;z$r6hJL$;$:!"(B - $B:G=i$N%I%C%H$O$"$C$F$b$J$/$F$b9=$$$^$;$s!#(B</p> + <p>引数 <var>extension</var> は大文字小文字を区別せず、 + 最初のドットはあってもなくても構いません。</p> </usage> <seealso><directive module="core">SetHandler</directive></seealso> </directivesynopsis> <directivesynopsis> <name>AddInputFilter</name> -<description>$B%U%!%$%k$N3HD%;R$r%/%i%$%"%s%H$N%j%/%(%9%H$r=hM}$9$k(B - $B%U%#%k%?$K%^%C%W$9$k(B</description> +<description>ファイルの拡張子をクライアントのリクエストを処理する + フィルタにマップする</description> <syntax>AddInputFilter <var>filter</var>[;<var>filter</var>...] <var>extension</var> [<var>extension</var>] ...</syntax> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context></contextlist> <override>FileInfo</override> -<compatibility>2.0.26 $B0J9_$G;HMQ2DG=(B</compatibility> +<compatibility>2.0.26 以降で使用可能</compatibility> <usage> - <p><directive>AddInputFilter</directive> $B$O%U%!%$%k$N3HD%;R(B - <var>extension</var> $B$r%/%i%$%"%s%H$N%j%/%(%9%H$d(B POST $B$,%5!<%P$KMh$?$H$-$K(B - $B=hM}$r$9$k(B<a href="../filter.html">$B%U%#%k%?(B</a>$B$K%^%C%W$7$^$9!#(B - $B$3$l$O!"(B<directive module="core">SetInputFilter</directive> $B%G%#%l%/%F%#%V$b(B - $B4^$a!"B>$N>l=j$GDj5A$5$l$F$$$k%U%#%k%?$K2C$($i$l$^$9!#(B - $B$3$N%^%C%T%s%0$O$9$G$K$"$k$b$N$h$jM%@h$5$l$F%^!<%8$5$l!"(B - $BF1$8(B <var>extension</var> $B$KBP$9$k4{B8$N%^%C%T%s%0$r>e=q$-$7$^$9!#(B</p> - - <p>$BJ#?t$N%U%#%k%?$r;XDj$9$k$H$-$O!"%G!<%?$r=hM}$9$k=gHV$K%;%_%3%m%s$G(B - $B7R$$$G=q$/I,MW$,$"$j$^$9!#%U%#%k%?$H(B <var>extension</var> $B$H$N(B - $BN>J}$N0z?t$OBgJ8;z>.J8;z$r6hJL$;$:!"3HD%;R$N:G=i$N%I%C%H$O(B - $B$"$C$F$b$J$/$F$b9=$$$^$;$s!#(B</p> + <p><directive>AddInputFilter</directive> はファイルの拡張子 + <var>extension</var> をクライアントのリクエストや POST がサーバに来たときに + 処理をする<a href="../filter.html">フィルタ</a>にマップします。 + これは、<directive module="core">SetInputFilter</directive> ディレクティブも + 含め、他の場所で定義されているフィルタに加えられます。 + このマッピングはすでにあるものより優先されてマージされ、 + 同じ <var>extension</var> に対する既存のマッピングを上書きします。</p> + + <p>複数のフィルタを指定するときは、データを処理する順番にセミコロンで + 繋いで書く必要があります。フィルタと <var>extension</var> との + 両方の引数は大文字小文字を区別せず、拡張子の最初のドットは + あってもなくても構いません。</p> </usage> <seealso><directive module="mod_mime">RemoveInputFilter</directive></seealso> <seealso><directive module="core">SetInputFilter</directive></seealso> @@ -366,7 +366,7 @@ module="mod_mime_magic">MimeMagicFile</directive></seealso> <directivesynopsis> <name>AddLanguage</name> -<description>$B%U%!%$%kL>$r;XDj$5$l$?8@8l$K%^%C%W(B</description> +<description>ファイル名を指定された言語にマップ</description> <syntax>AddLanguage <var>MIME-lang</var> <var>extension</var> [<var>extension</var>] ...</syntax> <contextlist><context>server config</context><context>virtual host</context> @@ -374,30 +374,30 @@ module="mod_mime_magic">MimeMagicFile</directive></seealso> <override>FileInfo</override> <usage> - <p><directive>AddLanguage</directive> $B%G%#%l%/%F%#%V$O!"M?$($i$l$?3HD%;R$r;XDj$5$l$?(B - content language $B$K%^%C%W$7$^$9!#(B<var>MIME-lang</var> $B$O!"3HD%;R(B - <var>extension</var> $B$r4^$s$G$$$k%U%!%$%kL>$N(B MIME $B$K$*$1$k8@8l$G$9!#(B - $B$3$N?7$7$$%^%C%T%s%0$O4{$K$"$k%^%C%T%s%0$KDI2C$5$l!"F1$83HD%;R(B - <var>extension</var> $B$N$?$a$N%^%C%T%s%0$r>e=q$-$7$^$9!#(B</p> + <p><directive>AddLanguage</directive> ディレクティブは、与えられた拡張子を指定された + content language にマップします。<var>MIME-lang</var> は、拡張子 + <var>extension</var> を含んでいるファイル名の MIME における言語です。 + この新しいマッピングは既にあるマッピングに追加され、同じ拡張子 + <var>extension</var> のためのマッピングを上書きします。</p> - <example><title>$BNc(B</title> + <example><title>例</title> AddEncoding x-compress .Z<br /> AddLanguage en .en<br /> AddLanguage fr .fr </example> - <p>$B$3$N>l9g!"(B<code>xxxx.en.Z</code> $B%I%-%e%a%s%H$O(B compress - $B$5$l$?1Q8l$N%I%-%e%a%s%H$H$7$F07$o$l$^$9(B (<code>xxxx.Z.en</code> - $B$bF1MM(B)$B!#(Bcontent language $B$O%/%i%$%"%s%H$KDLCN$5$l$^$9$,!"(B - $B%V%i%&%6$,$3$N>pJs$r;H$&$3$H$O$*$=$i$/$"$j$^$;$s!#(B + <p>この場合、<code>xxxx.en.Z</code> ドキュメントは compress + された英語のドキュメントとして扱われます (<code>xxxx.Z.en</code> + も同様)。content language はクライアントに通知されますが、 + ブラウザがこの情報を使うことはおそらくありません。 <directive>AddLanguage</directive> - $B%G%#%l%/%F%#%V$O!"%5!<%P$,%/%i%$%"%s%H$N8@8l$NM%@hEY$K4p$E$$$FJ#?t$N(B - $B%I%-%e%a%s%H$NCf$+$i%I%-%e%a%s%H$rA*$V(B<a + ディレクティブは、サーバがクライアントの言語の優先度に基づいて複数の + ドキュメントの中からドキュメントを選ぶ<a href="../content-negotiation.html" - >$B%3%s%F%s%H%M%4%7%(!<%7%g%s(B</a>$B$N$?$a$K$h$jLr$KN)$A$^$9!#(B</p> + >コンテントネゴシエーション</a>のためにより役に立ちます。</p> - <p>$BJ#?t$N8@8l$,F1$83HD%;R$K3d$jEv$F$i$l$F$$$k$H$-$O!"(B - $B:G8e$N$b$N$,;HMQ$5$l$^$9!#$9$J$o$A!"<!$N$h$&$J>l9g!"(B</p> + <p>複数の言語が同じ拡張子に割り当てられているときは、 + 最後のものが使用されます。すなわち、次のような場合、</p> <example> AddLanguage en .en<br /> @@ -405,48 +405,48 @@ module="mod_mime_magic">MimeMagicFile</directive></seealso> AddLanguage en-us .en </example> - <p>$B3HD%;R(B <code>.en</code> $B$N$"$k%I%-%e%a%s%H$O(B - <code>en-us</code> $B$H$7$F07$o$l$^$9!#(B</p> + <p>拡張子 <code>.en</code> のあるドキュメントは + <code>en-us</code> として扱われます。</p> - <p>$B0z?t(B <var>extension</var> $B$OBgJ8;z>.J8;z$r6hJL$;$:!"(B - $B:G=i$N%I%C%H$O$"$C$F$b$J$/$F$b9=$$$^$;$s!#(B</p> + <p>引数 <var>extension</var> は大文字小文字を区別せず、 + 最初のドットはあってもなくても構いません。</p> </usage> <seealso><module>mod_negotiation</module></seealso> </directivesynopsis> <directivesynopsis> <name>AddOutputFilter</name> -<description>$B%U%!%$%kL>$N3HD%;R$r%5!<%P$+$i$N1~Ez$r=hM}$9$k%U%#%k%?$K(B - $B%^%C%W$9$k(B</description> +<description>ファイル名の拡張子をサーバからの応答を処理するフィルタに + マップする</description> <syntax>AddOutputFilter <var>filter</var>[;<var>filter</var>...] <var>extension</var> [<var>extension</var>] ...</syntax> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context></contextlist> <override>FileInfo</override> -<compatibility>2.0.26 $B0J9_$G;HMQ2DG=(B</compatibility> +<compatibility>2.0.26 以降で使用可能</compatibility> <usage> - <p><directive>AddOutputFilter</directive> $B%G%#%l%/%F%#%V$O(B - $B3HD%;R(B <var>extension</var> $B$r%5!<%P$N1~Ez$,%/%i%$%"%s%H$KAw$i$l$k(B - $BA0$K=hM}$9$k(B<a href="../filter.html">$B%U%#%k%?(B</a>$B$rDj5A$7$^$9!#(B - $B$3$l$O(B <directive module="core">SetOutputFilter</directive> - $B%G%#%l%/%F%#%V$H(B <directive module="core" - >AddOutputFilterByType</directive> $B%G%#%l%/%F%#%V(B - $B$r4^$a!"B>$N>l=j$GDj5A$5$l$F$$$k%U%#%k%?$K2C$($i$l$^$9!#(B - $B$3$N?7$7$$%^%C%T%s%0$O4{$K$"$k%^%C%T%s%0$KDI2C$5$l!"F1$83HD%;R(B - <var>extension</var> $B$N$?$a$N%^%C%T%s%0$r>e=q$-$7$^$9!#(B</p> - - <p>$BNc$($P!"0J2<$N@_Dj$O$9$Y$F$N(B <code>.shtml</code> $B%U%!%$%k$r(B SSI $B$G=hM}$7!"(B - $B$=$N=PNO$r(B <module>mod_deflate</module> $B$r;H$C$F05=L$7$^$9!#(B</p> + <p><directive>AddOutputFilter</directive> ディレクティブは + 拡張子 <var>extension</var> をサーバの応答がクライアントに送られる + 前に処理する<a href="../filter.html">フィルタ</a>を定義します。 + これは <directive module="core">SetOutputFilter</directive> + ディレクティブと <directive module="core" + >AddOutputFilterByType</directive> ディレクティブ + を含め、他の場所で定義されているフィルタに加えられます。 + この新しいマッピングは既にあるマッピングに追加され、同じ拡張子 + <var>extension</var> のためのマッピングを上書きします。</p> + + <p>例えば、以下の設定はすべての <code>.shtml</code> ファイルを SSI で処理し、 + その出力を <module>mod_deflate</module> を使って圧縮します。</p> <example> AddOutputFilter INCLUDES;DEFLATE shtml </example> - <p>$BJ#?t$N%U%#%k%?$r;XDj$9$k$H$-$O!"%G!<%?$r=hM}$9$k=gHV$K%;%_%3%m%s$G(B - $B7R$$$G=q$/I,MW$,$"$j$^$9!#(B<var>filter</var> $B$H(B <var>extension</var> $B$N(B - $BN>0z?t$OBgJ8;z>.J8;z$r6hJL$;$:!"3HD%;R$N:G=i$N%I%C%H$O(B - $B$"$C$F$b$J$/$F$b9=$$$^$;$s!#(B</p> + <p>複数のフィルタを指定するときは、データを処理する順番にセミコロンで + 繋いで書く必要があります。<var>filter</var> と <var>extension</var> の + 両引数は大文字小文字を区別せず、拡張子の最初のドットは + あってもなくても構いません。</p> </usage> <seealso><directive module="mod_mime">RemoveOutputFilter</directive></seealso> <seealso><directive module="core">SetOutputFilter</directive></seealso> @@ -454,7 +454,7 @@ module="mod_mime_magic">MimeMagicFile</directive></seealso> <directivesynopsis> <name>AddType</name> -<description>$B%U%!%$%kL>$N3HD%;R$r;XDj$5$l$?%3%s%F%s%H%?%$%W$K%^%C%W(B</description> +<description>ファイル名の拡張子を指定されたコンテントタイプにマップ</description> <syntax>AddType <var>MIME-type</var> <var>extension</var> [<var>extension</var>] ...</syntax> <contextlist><context>server config</context><context>virtual host</context> @@ -462,28 +462,28 @@ module="mod_mime_magic">MimeMagicFile</directive></seealso> <override>FileInfo</override> <usage> - <p><directive>AddType</directive> $B%G%#%l%/%F%#%V$O!"(B - $BM?$($i$l$?3HD%;R$r;XDj$5$l$?%3%s%F%s%H%?%$%W$K%^%C%W$7$^$9!#(B - <var>MIME-type</var> $B$O3HD%;R(B <var>extension</var> - $B$r4^$s$@%I%-%e%a%s%H$K;HMQ$9$k(B MIME $B%?%$%W$G$9!#(B - $B$3$N?7$7$$%^%C%T%s%0$O4{$K$"$k%^%C%T%s%0$KDI2C$5$l!"F1$83HD%;R(B - <var>extension</var> $B$N$?$a$N%^%C%T%s%0$r>e=q$-$7$^$9!#(B - $B$3$N%G%#%l%/%F%#%V$O(B MIME $B%?%$%W%U%!%$%k(B (<directive - module="mod_mime">TypesConfig</directive> $B%G%#%l%/%F%#%V$r;2>H(B) - $B$KL5$$%^%C%T%s%0$rDI2C$9$k$?$a$K;HMQ$9$k$3$H$,$G$-$^$9!#(B</p> - - <example><title>$BNc(B</title> + <p><directive>AddType</directive> ディレクティブは、 + 与えられた拡張子を指定されたコンテントタイプにマップします。 + <var>MIME-type</var> は拡張子 <var>extension</var> + を含んだドキュメントに使用する MIME タイプです。 + この新しいマッピングは既にあるマッピングに追加され、同じ拡張子 + <var>extension</var> のためのマッピングを上書きします。 + このディレクティブは MIME タイプファイル (<directive + module="mod_mime">TypesConfig</directive> ディレクティブを参照) + に無いマッピングを追加するために使用することができます。</p> + + <example><title>例</title> AddType image/gif .gif </example> <note> - $B?7$7$$(B MIME $B%?%$%W$O!"(B<directive module="mod_mime">TypesConfig</directive> - $B%U%!%$%k$rJQ99$9$k$N$G$O$J$/!"(B<directive>AddType</directive> - $B%G%#%l%/%F%#%V$r;H$C$FDI2C$9$k$3$H$,?d>)$5$l$F$$$^$9!#(B + 新しい MIME タイプは、<directive module="mod_mime">TypesConfig</directive> + ファイルを変更するのではなく、<directive>AddType</directive> + ディレクティブを使って追加することが推奨されています。 </note> - <p>$B0z?t(B <var>extension</var> $B$OBgJ8;z>.J8;z$r6hJL$;$:!"(B - $B:G=i$N%I%C%H$O$"$C$F$b$J$/$F$b9=$$$^$;$s!#(B</p> + <p>引数 <var>extension</var> は大文字小文字を区別せず、 + 最初のドットはあってもなくても構いません。</p> </usage> <seealso><directive module="core">DefaultType</directive></seealso> <seealso><directive module="core">ForceType</directive></seealso> @@ -491,50 +491,50 @@ module="mod_mime_magic">MimeMagicFile</directive></seealso> <directivesynopsis> <name>MultiviewsMatch</name> -<description>MultiViews $B$G$N%^%C%A%s%0$N8!:w$K4^$^$;$k(B -$B%U%!%$%k$N%?%$%W$r;XDj$9$k(B</description> +<description>MultiViews でのマッチングの検索に含ませる +ファイルのタイプを指定する</description> <syntax>MultiviewsMatch Any|NegotiatedOnly|Filters|Handlers [Handlers|Filters]</syntax> <default>MultiviewsMatch NegotiatedOnly</default> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context></contextlist> <override>FileInfo</override> -<compatibility>2.0.26 $B0J9_$G;HMQ2DG=(B</compatibility> +<compatibility>2.0.26 以降で使用可能</compatibility> <usage> - <p><directive>MultiviewsMatch</directive> $B$r;HMQ$9$k$3$H$G!"(B - <a href="mod_negotiation.html">mod_negotiation</a> $B$N(B - Multiviews $B$K(B 3 $B<oN`$N0[$J$k5sF0$r$5$;$k$3$H$,$G$-$^$9!#(B - Multiviews $B$r;HMQ$9$k$H!"%U%!%$%k(B ($BNc(B <code>index.html</code>) - $B$KBP$9$k%j%/%(%9%H$KBP$7$F!"%M%4%7%(!<%7%g%s$9$k3HD%;R$,%Y!<%9$KIU$$$?$b$N(B - (<code>index.html.en</code>, <code>index.html.fr</code> $B$d(B + <p><directive>MultiviewsMatch</directive> を使用することで、 + <a href="mod_negotiation.html">mod_negotiation</a> の + Multiviews に 3 種類の異なる挙動をさせることができます。 + Multiviews を使用すると、ファイル (例 <code>index.html</code>) + に対するリクエストに対して、ネゴシエーションする拡張子がベースに付いたもの + (<code>index.html.en</code>, <code>index.html.fr</code> や <code>index.html.gz</code>) - $B$r%^%C%A$5$;$k$3$H$,$G$-$^$9!#(B</p> - - <p><code>NegotiatedOnly</code> $B%*%W%7%g%s$G$O!"%Y!<%9L>$KB3$/3HD%;RA4$F$,(B - $B%3%s%F%s%H%M%4%7%(!<%7%g%s$G(B <module>mod_mime</module> - $B$,G'<1$9$k3HD%;R(B (<em>$BNc(B</em> $BJ8;z%;%C%H!"%3%s%F%s%H%?%$%W!"8@8l$d%(%s%3!<%G%#%s%0(B) - $B$K4XO"IU$1$i$l$F$$$J$1$l$P$J$j$^$;$s!#$3$l$OI{:nMQ$N:G$b>/$J$$(B - $B:G$bE*3N$J<BAu$G!"%G%U%)%k%H$K$J$C$F$$$^$9!#(B</p> - - <p>$B%O%s%I%i$H%U%#%k%?$NN>J}$b$7$/$OJRJ}$H4XO"IU$1$i$l$?3HD%;R$r4^$a$k$K$O!"(B - <directive>MultiviewsMatch</directive> $B%G%#%l%/%F%#%V$K(B <code>Handlers</code>, - <code>Filters</code> $B$^$?$O$=$NN>J}$N%*%W%7%g%s$r%;%C%H$7$^$9!#(B - $B$b$7B>$N>r7o$,F1$8$G$"$l$P!":G$b>.$5$$%U%!%$%k$,Aw?.$5$l$^$9!#(B - $BNc$($P!"(B500 $BJ8;z$N(B <code>index.html.cgi</code> $B$H(B 1000 $B%P%$%H$N(B - <code>index.html.pl</code> $B$G$"$l$P!"(B<code>.cgi</code> - $B$N%U%!%$%k$,M%@h$5$l$^$9!#(B<code>.asis</code> $B%U%!%$%k$rMxMQ$7$F$$$k%f!<%6$O!"(B - <code>.asis</code> $B%U%!%$%k$,(B <code>asis-handler</code> $B$K4XO"IU$1$i$l$F$$$k$H$-$K$O!"(B - $B%O%s%I%i%*%W%7%g%s$N;HMQ$r9%$`$G$7$g$&!#(B</p> - - <p>$B:G8e$K!"(B<module>mod_mime</module> $B$,G'<1$7$J$$3HD%;R$G$"$m$&$H$b!"(B - $B$I$s$J3HD%;R$G$b%^%C%A$5$;$k(B <code>Any</code> $B$,;HMQ$G$-$^$9!#(B - $B$3$N5sF0$O(B Apache 1.3 $B$N$H$-$HF1$8$b$N$G!"M=4|$7$J$$F0:n!"Nc$($P(B <code>.old</code> $B$d(B - <code>.bak</code> $B%U%!%$%k$H$$$C$?%&%'%V%^%9%?$,Aw?.$r0U?^$7$F$$$J$$(B - $B%U%!%$%k$rAw?.$9$k!"$H$$$C$?F0:n$r9T$J$&2DG=@-$,$"$j$^$9!#(B</p> - - <p>$BNc$($P<!$N@_Dj$G$O!"%O%s%I%i$d%U%#%k%?$,(B Multiviews $B$K;22C$9$k$3$H$,(B - $B$G$-$^$9$7!"L$CN$N%U%!%$%k$O=|30$9$k$3$H$,$G$-$^$9!#(B</p> + をマッチさせることができます。</p> + + <p><code>NegotiatedOnly</code> オプションでは、ベース名に続く拡張子全てが + コンテントネゴシエーションで <module>mod_mime</module> + が認識する拡張子 (<em>例</em> 文字セット、コンテントタイプ、言語やエンコーディング) + に関連付けられていなければなりません。これは副作用の最も少ない + 最も的確な実装で、デフォルトになっています。</p> + + <p>ハンドラとフィルタの両方もしくは片方と関連付けられた拡張子を含めるには、 + <directive>MultiviewsMatch</directive> ディレクティブに <code>Handlers</code>, + <code>Filters</code> またはその両方のオプションをセットします。 + もし他の条件が同じであれば、最も小さいファイルが送信されます。 + 例えば、500 文字の <code>index.html.cgi</code> と 1000 バイトの + <code>index.html.pl</code> であれば、<code>.cgi</code> + のファイルが優先されます。<code>.asis</code> ファイルを利用しているユーザは、 + <code>.asis</code> ファイルが <code>asis-handler</code> に関連付けられているときには、 + ハンドラオプションの使用を好むでしょう。</p> + + <p>最後に、<module>mod_mime</module> が認識しない拡張子であろうとも、 + どんな拡張子でもマッチさせる <code>Any</code> が使用できます。 + この挙動は Apache 1.3 のときと同じもので、予期しない動作、例えば <code>.old</code> や + <code>.bak</code> ファイルといったウェブマスタが送信を意図していない + ファイルを送信する、といった動作を行なう可能性があります。</p> + + <p>例えば次の設定では、ハンドラやフィルタが Multiviews に参加することが + できますし、未知のファイルは除外することができます。</p> <example> MultiviewsMatch Handlers Filters @@ -547,35 +547,35 @@ module="mod_mime_magic">MimeMagicFile</directive></seealso> <directivesynopsis> <name>DefaultLanguage</name> -<description>$B$"$k%9%3!<%W$N$9$Y$F$N%U%!%$%k$r;XDj$5$l$?8@8l$K(B -$B@_Dj$9$k(B</description> +<description>あるスコープのすべてのファイルを指定された言語に +設定する</description> <syntax>DefaultLanguage <var>MIME-lang</var></syntax> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context></contextlist> <override>FileInfo</override> <usage> - <p><directive>DefaultLanguage</directive> $B%G%#%l%/%F%#%V$O!"(BApache - $B$,%G%#%l%/%F%#%V$N%9%3!<%W(B (<em>$BNc$($P(B</em>$B!"$=$N;~E@$N(B + <p><directive>DefaultLanguage</directive> ディレクティブは、Apache + がディレクティブのスコープ (<em>例えば</em>、その時点の <directive module="core" type="section">Directory</directive> - $B$NHO0O(B) $B$K$"$k!"L@<(E*$J8@8l3HD%;R(B - (<directive module="mod_mime">AddLanguage</directive> $B$G@_Dj$5$l$k(B - <code>.fr</code> $B$d(B <code>.de</code>) $B$N$J$$A4$F$N%U%!%$%k$r!";XDj$5$l$?(B - <var>MIME-lang</var> $B8@8l$G$"$k$H$_$J$9$h$&$K$7$^$9!#(B - $B$3$l$K$h$j!"$9$Y$F$N%U%!%$%kL>$rJQ$($k$3$H$J$/!"(B - $B%G%#%l%/%H%j$,%*%i%s%@8l$N%3%s%F%s%H$r4^$s$G$$$k!"(B - $B$H$$$&$h$&$J$3$H$r;XDj$9$k$3$H$,$G$-$^$9!#(B - $B3HD%;R$r;HMQ$7$F8@8l$r;XDj$9$kJ}K!$H0c$$!"(B + の範囲) にある、明示的な言語拡張子 + (<directive module="mod_mime">AddLanguage</directive> で設定される + <code>.fr</code> や <code>.de</code>) のない全てのファイルを、指定された + <var>MIME-lang</var> 言語であるとみなすようにします。 + これにより、すべてのファイル名を変えることなく、 + ディレクトリがオランダ語のコンテントを含んでいる、 + というようなことを指定することができます。 + 拡張子を使用して言語を指定する方法と違い、 <directive>DefaultLanguage</directive> - $B$O0l$D$N8@8l$7$+;XDj$G$-$J$$$3$H$KCm0U$7$F$/$@$5$$!#(B</p> + は一つの言語しか指定できないことに注意してください。</p> <p><directive>DefaultLanguage</directive> - $B%G%#%l%/%F%#%V$,M-8z$G$J$/!"%U%!%$%k$K(B + ディレクティブが有効でなく、ファイルに <directive module="mod_mime">AddLanguage</directive> - $B$G@_Dj$5$l$?8@8l$N3HD%;R$,$J$$$H$-$O!"(B - $B%U%!%$%k$K$O8@8lB0@-$,$J$$$H$_$J$5$l$^$9!#(B</p> + で設定された言語の拡張子がないときは、 + ファイルには言語属性がないとみなされます。</p> - <example><title>$BNc(B</title> + <example><title>例</title> DefaultLanguage en </example> </usage> @@ -584,63 +584,63 @@ module="mod_mime_magic">MimeMagicFile</directive></seealso> <directivesynopsis> <name>ModMimeUsePathInfo</name> -<description><code>path_info</code> $B%3%s%]!<%M%s%H$r%U%!%$%kL>$N0lIt$H$7$F07$&$h$&$K(B -<module>mod_mime</module> $B$KDLCN$9$k(B</description> +<description><code>path_info</code> コンポーネントをファイル名の一部として扱うように +<module>mod_mime</module> に通知する</description> <syntax>ModMimeUsePathInfo On|Off</syntax> <default>ModMimeUsePathInfo Off</default> <contextlist><context>directory</context></contextlist> -<compatibility>Apache 2.0.41 $B0J9_(B</compatibility> +<compatibility>Apache 2.0.41 以降</compatibility> <usage> - <p><directive>ModMimeUsePathInfo</directive> $B%G%#%l%/%F%#%V$O!"(B - <module>mod_mime</module> $B$N;}$D%G%#%l%/%F%#%V$r(B - $B%j%/%(%9%H$KE,MQ$5$;$k$?$a$K!"%U%!%$%kL>$H(B <code>path_info</code> URL - $B%3%s%]!<%M%s%H$r7k9g$5$;$k$?$a$K;HMQ$7$^$9!#(B - $B%G%U%)%k%H$G$O!V(B <code>Off</code> $B!W$G!"(B<code>path_info</code> - $B%3%s%]!<%M%s%H$OL5;k$5$l$^$9!#(B</p> + <p><directive>ModMimeUsePathInfo</directive> ディレクティブは、 + <module>mod_mime</module> の持つディレクティブを + リクエストに適用させるために、ファイル名と <code>path_info</code> URL + コンポーネントを結合させるために使用します。 + デフォルトでは「 <code>Off</code> 」で、<code>path_info</code> + コンポーネントは無視されます。</p> - <p>$B$3$N%G%#%l%/%F%#%V$O!"%P!<%A%c%k%U%!%$%k%7%9%F%`$r;HMQ$7$F$$$k:]$K(B - $B?d>)$5$l$k%G%#%l%/%F%#%V$G$9!#(B</p> + <p>このディレクティブは、バーチャルファイルシステムを使用している際に + 推奨されるディレクティブです。</p> - <example><title>$BNc(B</title> + <example><title>例</title> ModMimeUsePathInfo On </example> - <p><code>/bar</code> $B$,B8:_$7$F(B (foo.shtml $B$OB8:_$7$J$$(B) - <directive>ModMimeUsePathInfo</directive> $B$,(B <code>On</code> $B$G$"$k$H$7$F!"(B - <code>/bar/foo.shtml</code> $B$KBP$9$k%j%/%(%9%H$rH/9T$7$?>l9g!"(B - <module>mod_mime</module> $B$OF~$C$F$-$?%j%/%(%9%H$r(B - <code>/bar/foo.shtml</code> $B$H$7$F07$$!"(B - <code>AddOutputFileter INCLUDES .shtml</code> $B$N$h$&$J%G%#%l%/%F%#%V$O(B - <code>INCLUDES</code> $B%U%#%k%?$r%j%/%(%9%H$KIU2C$5$;$^$9!#(B - <directive>ModMimeUsePathInfo</directive> $B$,@_Dj$5$l$J$1$l$P!"(B - <code>INCLUDES</code> $B%U%#%k%?$OIU2C$5$l$^$;$s!#(B</p> + <p><code>/bar</code> が存在して (foo.shtml は存在しない) + <directive>ModMimeUsePathInfo</directive> が <code>On</code> であるとして、 + <code>/bar/foo.shtml</code> に対するリクエストを発行した場合、 + <module>mod_mime</module> は入ってきたリクエストを + <code>/bar/foo.shtml</code> として扱い、 + <code>AddOutputFileter INCLUDES .shtml</code> のようなディレクティブは + <code>INCLUDES</code> フィルタをリクエストに付加させます。 + <directive>ModMimeUsePathInfo</directive> が設定されなければ、 + <code>INCLUDES</code> フィルタは付加されません。</p> </usage> <seealso><directive module="core">AcceptPathInfo</directive></seealso> </directivesynopsis> <directivesynopsis> <name>RemoveCharset</name> -<description>$B%U%!%$%k$N3HD%;R$K4XO"IU$1$i$l$?$9$Y$F$NJ8;z%;%C%H(B -$B$r2r=|$9$k(B</description> +<description>ファイルの拡張子に関連付けられたすべての文字セット +を解除する</description> <syntax>RemoveCharset <var>extension</var> [<var>extension</var>] ...</syntax> <contextlist><context>virtual host</context><context>directory</context> <context>.htaccess</context></contextlist> <override>FileInfo</override> -<compatibility>2.0.24 $B0J9_$G;HMQ2DG=(B</compatibility> +<compatibility>2.0.24 以降で使用可能</compatibility> <usage> - <p><directive>RemoveCharset</directive> $B%G%#%l%/%F%#%V(B - $B$OM?$($i$l$?3HD%;R$K4XO"IU$1$i$l$?J8;z%;%C%H$r<h$j>C$7$^$9!#(B - $B$3$l$K$h$j!"%5%V%G%#%l%/%H%j$K$"$k(B <code>.htaccess</code> - $B%U%!%$%k$,?F%G%#%l%/%H%j$d%5!<%P$N@_Dj%U%!%$%k(B - $B$+$i7Q>5$7$?4XO"IU$1$r<h$j>C$9$3$H$,$G$-$^$9!#Nc$($P(B:</p> + <p><directive>RemoveCharset</directive> ディレクティブ + は与えられた拡張子に関連付けられた文字セットを取り消します。 + これにより、サブディレクトリにある <code>.htaccess</code> + ファイルが親ディレクトリやサーバの設定ファイル + から継承した関連付けを取り消すことができます。例えば:</p> - <p><var>extension</var> $B$OBgJ8;z>.J8;z$r6hJL$7$^$;$s!#(B - $B$^$?!":G=i$N%I%C%H$O$"$C$F$b$J$/$F$b9=$$$^$;$s!#(B</p> + <p><var>extension</var> は大文字小文字を区別しません。 + また、最初のドットはあってもなくても構いません。</p> - <example><title>$BNc(B</title> + <example><title>例</title> RemoveCharset .html .shtml </example> </usage> @@ -648,8 +648,8 @@ module="mod_mime_magic">MimeMagicFile</directive></seealso> <directivesynopsis> <name>RemoveEncoding</name> -<description>$B%U%!%$%k$N3HD%;R$K4XO"IU$1$i$l$?$9$Y$F$N%3%s%F%s%H%(%s%3!<%G%#%s%0(B -$B$r2r=|$9$k(B</description> +<description>ファイルの拡張子に関連付けられたすべてのコンテントエンコーディング +を解除する</description> <syntax>RemoveEncoding <var>extension</var> [<var>extension</var>] ...</syntax> <contextlist><context>virtual host</context><context>directory</context> @@ -657,11 +657,11 @@ module="mod_mime_magic">MimeMagicFile</directive></seealso> <override>FileInfo</override> <usage> - <p><directive>RemoveEncoding</directive> $B%G%#%l%/%F%#%V$O!"(B - $BM?$($i$l$?3HD%;R$K4XO"IU$1$i$l$?%(%s%3!<%G%#%s%0$r<h$j>C$7$^$9!#(B - $B$3$l$K$h$j!"%5%V%G%#%l%/%H%j$K$"$k(B <code>.htaccess</code> - $B%U%!%$%k$,?F%G%#%l%/%H%j$d%5!<%P$N@_Dj%U%!%$%k$+$i7Q>5$7$?4XO"IU$1$r(B - $B<h$j>C$9$3$H$,$G$-$^$9!#(B</p> + <p><directive>RemoveEncoding</directive> ディレクティブは、 + 与えられた拡張子に関連付けられたエンコーディングを取り消します。 + これにより、サブディレクトリにある <code>.htaccess</code> + ファイルが親ディレクトリやサーバの設定ファイルから継承した関連付けを + 取り消すことができます。</p> <example><title>/foo/.htaccess:</title> AddEncoding x-gzip .gz<br /> @@ -673,28 +673,28 @@ module="mod_mime_magic">MimeMagicFile</directive></seealso> </Files> </example> - <p>$B$3$l$O!"(B<code>foo.gz</code> $B$O(B gzip - $B$G%(%s%3!<%I$5$l$F$$$k$3$H$r;XDj$7$^$9$,!"(B<code>foo.gz.asc</code> - $B$O%(%s%3!<%I$5$l$F$$$J$$%W%l!<%s%F%-%9%H$N(B - $B%U%!%$%k$G$"$k$H$$$&$3$H$r;XDj$7$^$9!#(B</p> + <p>これは、<code>foo.gz</code> は gzip + でエンコードされていることを指定しますが、<code>foo.gz.asc</code> + はエンコードされていないプレーンテキストの + ファイルであるということを指定します。</p> - <note><title>$BCm0U(B</title> - <p><directive>RemoveEncoding</directive> $B$O(B + <note><title>注意</title> + <p><directive>RemoveEncoding</directive> は <directive module="mod_mime">AddEncoding</directive> - $B%G%#%l%/%F%#%V$N(B<em>$B8e(B</em>$B$G=hM}$5$l$^$9$N$G!"(B - $BF1$8%G%#%l%/%H%j$N@_DjCf$KN>J}$,8=$l$k$H!"(B - $B8e<T$N8z2L$,BG$A>C$5$l$k2DG=@-$,$"$j$^$9!#(B</p> + ディレクティブの<em>後</em>で処理されますので、 + 同じディレクトリの設定中に両方が現れると、 + 後者の効果が打ち消される可能性があります。</p> </note> - <p><var>extension</var> $B$OBgJ8;z>.J8;z$r6hJL$7$^$;$s!#(B - $B$^$?!":G=i$N%I%C%H$O$"$C$F$b$J$/$F$b9=$$$^$;$s!#(B</p> + <p><var>extension</var> は大文字小文字を区別しません。 + また、最初のドットはあってもなくても構いません。</p> </usage> </directivesynopsis> <directivesynopsis> <name>RemoveHandler</name> -<description>$B%U%!%$%k$N3HD%;R$K4XO"IU$1$i$l$?$9$Y$F$N%O%s%I%i$r(B -$B2r=|$9$k(B</description> +<description>ファイルの拡張子に関連付けられたすべてのハンドラを +解除する</description> <syntax>RemoveHandler <var>extension</var> [<var>extension</var>] ...</syntax> <contextlist><context>virtual host</context><context>directory</context> @@ -702,11 +702,11 @@ module="mod_mime_magic">MimeMagicFile</directive></seealso> <override>FileInfo</override> <usage> - <p><directive>RemoveHandler</directive> $B%G%#%l%/%F%#%V(B - $B$OM?$($i$l$?3HD%;R$K4XO"IU$1$i$l$?%O%s%I%i$r<h$j>C$7$^$9!#(B - $B$3$l$K$h$j!"%5%V%G%#%l%/%H%j$K$"$k(B <code>.htaccess</code> - $B%U%!%$%k$,?F%G%#%l%/%H%j$d%5!<%P$N@_Dj%U%!%$%k(B - $B$+$i7Q>5$7$?4XO"IU$1$r<h$j>C$9$3$H$,$G$-$^$9!#$?$H$($P(B:</p> + <p><directive>RemoveHandler</directive> ディレクティブ + は与えられた拡張子に関連付けられたハンドラを取り消します。 + これにより、サブディレクトリにある <code>.htaccess</code> + ファイルが親ディレクトリやサーバの設定ファイル + から継承した関連付けを取り消すことができます。たとえば:</p> <example><title>/foo/.htaccess:</title> AddHandler server-parsed .html @@ -716,35 +716,35 @@ module="mod_mime_magic">MimeMagicFile</directive></seealso> RemoveHandler .html </example> - <p>$B$3$l$O!"(B<code>/foo/bar</code> $B%G%#%l%/%H%j$N(B <code>.html</code> - $B%U%!%$%k$O(B SSI (<module>mod_include</module> $B%b%8%e!<%k;2>H(B) $B$G$O$J$/!"(B - $BIaDL$N%U%!%$%k$H$7$F07$o$l$k$h$&$K$9$k8z2L$,$"$j$^$9!#(B + <p>これは、<code>/foo/bar</code> ディレクトリの <code>.html</code> + ファイルは SSI (<module>mod_include</module> モジュール参照) ではなく、 + 普通のファイルとして扱われるようにする効果があります。 </p> - <p><var>extension</var> $B$OBgJ8;z>.J8;z$r6hJL$7$^$;$s!#(B - $B$^$?!":G=i$N%I%C%H$O$"$C$F$b$J$/$F$b9=$$$^$;$s!#(B</p> + <p><var>extension</var> は大文字小文字を区別しません。 + また、最初のドットはあってもなくても構いません。</p> </usage> </directivesynopsis> <directivesynopsis> <name>RemoveInputFilter</name> -<description>$B%U%!%$%k3HD%;R$K4XO"IU$1$i$l$?F~NO%U%#%k%?$r2r=|$9$k(B</description> +<description>ファイル拡張子に関連付けられた入力フィルタを解除する</description> <syntax>RemoveInputFilter <var>extension</var> [<var>extension</var>] ...</syntax> <contextlist><context>virtual host</context><context>directory</context> <context>.htaccess</context></contextlist> <override>FileInfo</override> -<compatibility>2.0.26 $B0J9_$G;HMQ2DG=(B</compatibility> +<compatibility>2.0.26 以降で使用可能</compatibility> <usage> - <p><directive>RemoveInputFilter</directive> $B%G%#%l%/%F%#%V$O(B - $B;XDj$5$l$?%U%!%$%k3HD%;R$K4XO"IU$1$i$l$?F~NO%U%#%k%?$r2r=|$7$^$9!#(B - $B$3$l$rMxMQ$9$k$3$H$G!"?F%G%#%l%/%H%j$d%5!<%P@_Dj%U%!%$%k$+$i(B - $B7Q>5$7$?4XO"IU$1$r(B $B%5%V%G%#%l%/%H%jFb$K$*$$$F(B - <code>.htaccess</code> $B%U%!%$%k$G<h$j>C$9$3$H$,$G$-$^$9!#(B</p> - - <p><var>extension</var> $B0z?t$OBgJ8;z>.J8;z$r6hJL$7$^$;$s!#$^$?!"(B - $B:G=i$N%I%C%H$O$"$C$F$b$J$/$F$b9=$$$^$;$s!#(B</p> + <p><directive>RemoveInputFilter</directive> ディレクティブは + 指定されたファイル拡張子に関連付けられた入力フィルタを解除します。 + これを利用することで、親ディレクトリやサーバ設定ファイルから + 継承した関連付けを サブディレクトリ内において + <code>.htaccess</code> ファイルで取り消すことができます。</p> + + <p><var>extension</var> 引数は大文字小文字を区別しません。また、 + 最初のドットはあってもなくても構いません。</p> </usage> <seealso><directive module="mod_mime">AddInputFilter</directive></seealso> <seealso><directive module="core">SetInputFilter</directive></seealso> @@ -752,47 +752,47 @@ module="mod_mime_magic">MimeMagicFile</directive></seealso> <directivesynopsis> <name>RemoveLanguage</name> -<description>$B%U%!%$%k3HD%;R$K4XO"IU$1$i$l$?8@8l$r2r=|$9$k(B</description> +<description>ファイル拡張子に関連付けられた言語を解除する</description> <syntax>RemoveLanguage <var>extension</var> [<var>extension</var>] ...</syntax> <contextlist><context>virtual host</context><context>directory</context> <context>.htaccess</context></contextlist> <override>FileInfo</override> -<compatibility>2.0.24 $B0J9_$G;HMQ2DG=(B</compatibility> +<compatibility>2.0.24 以降で使用可能</compatibility> <usage> - <p><directive>RemoveLanguage</directive> $B%G%#%l%/%F%#%V$O(B - $B;XDj$5$l$?%U%!%$%k3HD%;R$K4XO"IU$1$i$l$?8@8l$r2r=|$7$^$9!#(B - $B$3$l$rMxMQ$9$k$3$H$G!"?F%G%#%l%/%H%j$d%5!<%P@_Dj%U%!%$%k$+$i(B - $B7Q>5$7$?4XO"IU$1$r(B $B%5%V%G%#%l%/%H%jFb$K$*$$$F(B - <code>.htaccess</code> $B%U%!%$%k$G<h$j>C$9$3$H$,$G$-$^$9!#(B</p> - - <p><var>extension</var> $B0z?t$OBgJ8;z>.J8;z$r6hJL$7$^$;$s!#$^$?!"(B - $B:G=i$N%I%C%H$O$D$$$F$b$D$+$J$/$F$b9=$$$^$;$s!#(B</p> + <p><directive>RemoveLanguage</directive> ディレクティブは + 指定されたファイル拡張子に関連付けられた言語を解除します。 + これを利用することで、親ディレクトリやサーバ設定ファイルから + 継承した関連付けを サブディレクトリ内において + <code>.htaccess</code> ファイルで取り消すことができます。</p> + + <p><var>extension</var> 引数は大文字小文字を区別しません。また、 + 最初のドットはついてもつかなくても構いません。</p> </usage> </directivesynopsis> <directivesynopsis> <name>RemoveOutputFilter</name> -<description>$B%U%!%$%k3HD%;R$K4XO"IU$1$i$l$?=PNO%U%#%k%?$r2r=|$9$k(B</description> +<description>ファイル拡張子に関連付けられた出力フィルタを解除する</description> <syntax>RemoveOutputFilter <var>extension</var> [<var>extension</var>] ...</syntax> <contextlist><context>virtual host</context><context>directory</context> <context>.htaccess</context></contextlist> <override>FileInfo</override> -<compatibility>2.0.26 $B0J9_$G$N$_;HMQ2DG=(B</compatibility> +<compatibility>2.0.26 以降でのみ使用可能</compatibility> <usage> - <p><directive>RemoveOutputFilter</directive> $B%G%#%l%/%F%#%V$O(B - $B;XDj$5$l$?%U%!%$%k3HD%;R$K4XO"IU$1$i$l$?=PNO%U%#%k%?$r2r=|$7$^$9!#(B - $B$3$l$rMxMQ$9$k$3$H$G!"?F%G%#%l%/%H%j$d%5!<%P@_Dj%U%!%$%k$+$i(B - $B7Q>5$7$?4XO"IU$1$r(B $B%5%V%G%#%l%/%H%jFb$K$*$$$F(B - <code>.htaccess</code> $B%U%!%$%k$G<h$j>C$9$3$H$,$G$-$^$9!#(B</p> + <p><directive>RemoveOutputFilter</directive> ディレクティブは + 指定されたファイル拡張子に関連付けられた出力フィルタを解除します。 + これを利用することで、親ディレクトリやサーバ設定ファイルから + 継承した関連付けを サブディレクトリ内において + <code>.htaccess</code> ファイルで取り消すことができます。</p> - <p><var>extension</var> $B$OBgJ8;z>.J8;z$r6hJL$7$^$;$s!#(B - $B$^$?!":G=i$N%I%C%H$O$"$C$F$b$J$/$F$b9=$$$^$;$s!#(B</p> + <p><var>extension</var> は大文字小文字を区別しません。 + また、最初のドットはあってもなくても構いません。</p> - <example><title>$BNc(B</title> + <example><title>例</title> RemoveOutputFilter shtml </example> </usage> @@ -801,8 +801,8 @@ module="mod_mime_magic">MimeMagicFile</directive></seealso> <directivesynopsis> <name>RemoveType</name> -<description>$B%U%!%$%k$N3HD%;R$H4XO"IU$1$i$l$?%3%s%F%s%H%?%$%W$r(B -$B2r=|$9$k(B</description> +<description>ファイルの拡張子と関連付けられたコンテントタイプを +解除する</description> <syntax>RemoveType <var>extension</var> [<var>extension</var>] ...</syntax> <contextlist><context>virtual host</context><context>directory</context> @@ -810,78 +810,78 @@ module="mod_mime_magic">MimeMagicFile</directive></seealso> <override>FileInfo</override> <usage> - <p><directive>RemoveType</directive> $B%G%#%l%/%F%#%V$OM?$($i$l$?3HD%;R$N(B - MIME $B%?%$%W$N4XO"IU$1$r<h$j>C$7$^$9!#$3$l$K$h$j!"(B - $B%5%V%G%#%l%/%H%j$K$"$k(B <code>.htaccess</code> - $B%U%!%$%k$,?F%G%#%l%/%H%j$d%5!<%P$N@_Dj%U%!%$%k$+$i7Q>5$7$?(B - $B4XO"IU$1$r<h$j>C$9$3$H$,$G$-$^$9!#$?$H$($P(B:</p> + <p><directive>RemoveType</directive> ディレクティブは与えられた拡張子の + MIME タイプの関連付けを取り消します。これにより、 + サブディレクトリにある <code>.htaccess</code> + ファイルが親ディレクトリやサーバの設定ファイルから継承した + 関連付けを取り消すことができます。たとえば:</p> <example><title>/foo/.htaccess:</title> RemoveType .cgi </example> - <p>$B$3$l$O(B <code>/foo/</code> $B%G%#%l%/%H%j0J2<$N(B <code>.cgi</code> - $B%U%!%$%k$NFCJL$J07$$$r<h$j>C$7$^$9!#%U%!%$%k$O(B <directive - module="core">DefaultType</directive> $B$H$7$F07$o$l$^$9!#(B</p> + <p>これは <code>/foo/</code> ディレクトリ以下の <code>.cgi</code> + ファイルの特別な扱いを取り消します。ファイルは <directive + module="core">DefaultType</directive> として扱われます。</p> - <note><title>$BCm0U(B</title> - <p><directive>RemoveType</directive> $B%G%#%l%/%F%#%V$O(B + <note><title>注意</title> + <p><directive>RemoveType</directive> ディレクティブは <directive module="mod_mime">AddType</directive> - $B%G%#%l%/%F%#%V$N(B<em>$B8e(B</em>$B$K=hM}$5$l$^$9$N$G!"(B - $BN>J}$,F1$8%G%#%l%/%H%j$N@_DjCf$K8=$l$?>l9g!"(B - $B8e<T$N8z2L$,BG$A>C$5$l$k2DG=@-$,$"$j$^$9!#(B</p> + ディレクティブの<em>後</em>に処理されますので、 + 両方が同じディレクトリの設定中に現れた場合、 + 後者の効果が打ち消される可能性があります。</p> </note> - <p><var>extension</var> $B$OBgJ8;z>.J8;z$r6hJL$7$^$;$s!#(B - $B$^$?!":G=i$N%I%C%H$O$"$C$F$b$J$/$F$b9=$$$^$;$s!#(B</p> + <p><var>extension</var> は大文字小文字を区別しません。 + また、最初のドットはあってもなくても構いません。</p> </usage> </directivesynopsis> <directivesynopsis> <name>TypesConfig</name> -<description><code>mime.types</code> $B%U%!%$%k$N0LCV(B</description> +<description><code>mime.types</code> ファイルの位置</description> <syntax>TypesConfig <var>file-path</var></syntax> <default>TypesConfig conf/mime.types</default> <contextlist><context>server config</context></contextlist> <usage> - <p><directive>TypesConfig</directive> $B%G%#%l%/%F%#%V$O!"(BMIME - $B%?%$%W@_Dj%U%!%$%k$N0LCV$r@_Dj$7$^$9!#(B<var>filename</var> $B$O(B - <directive module="core">ServerRoot</directive> $B$+$i$NAjBP%Q%9$G$9!#(B - $B$3$N%U%!%$%k$O%U%!%$%k$N3HD%;R$+$i%3%s%F%s%H%?%$%W$X$N(B - $B%G%U%)%k%H$N%^%C%T%s%0$r@_Dj$7$^$9!#(B - $B$[$H$s$I$N4IM}<T$O!"$h$/;H$o$l$k%U%!%$%kL>$N3HD%;R$r(B - IANA $B$KEPO?$5$l$?%3%s%F%s%H%?%$%W$K4XO"IU$1$F$$$k!"(B - Apache $B$N(B <code>mime.types</code> $B%U%!%$%k$r;H$$$^$9!#(B - $B8=:_$N0lMw$O(B <a href= + <p><directive>TypesConfig</directive> ディレクティブは、MIME + タイプ設定ファイルの位置を設定します。<var>filename</var> は + <directive module="core">ServerRoot</directive> からの相対パスです。 + このファイルはファイルの拡張子からコンテントタイプへの + デフォルトのマッピングを設定します。 + ほとんどの管理者は、よく使われるファイル名の拡張子を + IANA に登録されたコンテントタイプに関連付けている、 + Apache の <code>mime.types</code> ファイルを使います。 + 現在の一覧は <a href= "http://www.iana.org/assignments/media-types/index.html" >http://www.iana.org/assignments/media-types/index.html</a> - $B$G4IM}$5$l$F$$$^$9!#$3$l$O!"<gMW$J%a%G%#%"%?%$%W$NDj5A$rDs6!$7$F!"(B - $BI,MW$H$3$m$r(B <directive module="mod_mime">AddType</directive> $B$G(B - $B>e=q$-$9$k!"$H$$$&J}K!$G(B <code>httpd.conf</code> $B$r4JN,$K$7$^$9!#(B - <code>mime.types</code> $B$O%5!<%P$r%"%C%W%0%l!<%I$7$?$H$-$K(B - $BCV$-49$($i$l$k$+$b$7$l$J$$$N$G!"$=$N%U%!%$%k$rD>@\(B - $BJT=8$7$J$$$G$/$@$5$$!#(B</p> + で管理されています。これは、主要なメディアタイプの定義を提供して、 + 必要ところを <directive module="mod_mime">AddType</directive> で + 上書きする、という方法で <code>httpd.conf</code> を簡略にします。 + <code>mime.types</code> はサーバをアップグレードしたときに + 置き換えられるかもしれないので、そのファイルを直接 + 編集しないでください。</p> - <p>$B%U%!%$%k$O!"(B<directive module="mod_mime">AddType</directive> - $B%G%#%l%/%F%#%V$N0z?t$HF1$87A<0$N9T$G9=@.$5$l$^$9!#(B</p> + <p>ファイルは、<directive module="mod_mime">AddType</directive> + ディレクティブの引数と同じ形式の行で構成されます。</p> <example> <var>MIME-type</var> [<var>extension</var>] ... </example> - <p>$B3HD%;R$NBgJ8;z>.J8;z$O6hJL$5$l$^$;$s!#6u9T$d%O%C%7%e(B (`#') - $B$G;O$^$k9T$OL5;k$5$l$^$9!#(B</p> + <p>拡張子の大文字小文字は区別されません。空行やハッシュ (`#') + で始まる行は無視されます。</p> <note> - (1) IANA $B$K4{$KEPO?$5$l$F$$$k!"$"$k$$$O(B (2) - $B9-$/<u$1F~$l$i$l$F$$$F%W%i%C%H%[!<%`4V$G%U%!%$%k3HD%;R$K>WFM$,$J$$!"(B - $B$H$$$&>l9g$G$J$1$l$P!"G[I[Cf$N(B <code>mime.types</code> - $B%U%!%$%k$K?7$?$J$b$N$rEPO?$9$k$h$&$K(B - Apache HTTP Server Project $B$K%j%/%(%9%H$7$J$$$G$/$@$5$$!#(B - <code>category/x-subtype</code> $B$N%j%/%(%9%H$O<+F0E*$K5Q2<$5$l$^$9$7!"(B - $B8@8l$dJ8;z%;%C%H$NL>A06u4V$G4{$K;HMQ$5$l$F$$$F!">WFM$N2DG=@-$N$"$k(B - 2 $BJ8;z$N3HD%;R$b5Q2<$5$l$^$9!#(B + (1) IANA に既に登録されている、あるいは (2) + 広く受け入れられていてプラットホーム間でファイル拡張子に衝突がない、 + という場合でなければ、配布中の <code>mime.types</code> + ファイルに新たなものを登録するように + Apache HTTP Server Project にリクエストしないでください。 + <code>category/x-subtype</code> のリクエストは自動的に却下されますし、 + 言語や文字セットの名前空間で既に使用されていて、衝突の可能性のある + 2 文字の拡張子も却下されます。 </note> </usage> <seealso><module>mod_mime_magic</module></seealso> diff --git a/docs/manual/mod/mod_negotiation.xml.ja b/docs/manual/mod/mod_negotiation.xml.ja index 5569d5bee7..56a50d93a0 100644 --- a/docs/manual/mod/mod_negotiation.xml.ja +++ b/docs/manual/mod/mod_negotiation.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 151408:420990 (outdated) --> @@ -23,109 +23,109 @@ <modulesynopsis metafile="mod_negotiation.xml.meta"> <name>mod_negotiation</name> -<description><a href="../content-negotiation.html">$B%3%s%F%s%H%M%4%7%(!<%7%g%s(B</a> - $B5!G=$rDs6!$9$k(B</description> +<description><a href="../content-negotiation.html">コンテントネゴシエーション</a> + 機能を提供する</description> <status>Base</status> <sourcefile>mod_negotiation.c</sourcefile> <identifier>negotiation_module</identifier> <summary> - <p>$B%3%s%F%s%H%M%4%7%(!<%7%g%s!"$h$j@53N$K$O%3%s%F%s%D$NA*Br5!G=$O!"(B - $BJ#?tMQ0U$5$l$F$$$k%I%-%e%a%s%H$+$i!"%/%i%$%"%s%H$NG=NO$K0lHV9g$C$?(B - $B%I%-%e%a%s%H$rA*Br$9$k5!G=$G$9!#$3$N<BAu$OFs$D$"$j$^$9!#(B</p> + <p>コンテントネゴシエーション、より正確にはコンテンツの選択機能は、 + 複数用意されているドキュメントから、クライアントの能力に一番合った + ドキュメントを選択する機能です。この実装は二つあります。</p> <ul> - <li>$B%?%$%W%^%C%W(B (<code>type-map</code> - $B%O%s%I%i$G07$o$l$k%U%!%$%k(B)$B!#$3$l$O(B variants - $B$r4^$s$G$$$k%U%!%$%k$rL@<(E*$K;XDj$7$^$9!#(B</li> - - <li>MultiViews $B$NC5:w(B (<code>MultiViews</code> <directive - module="core">Option</directive> $B$GM-8z$K$J$j$^$9(B)$B!#(B - $B%5!<%P$,0EL[$NFb$K%U%!%$%kL>$N%Q%?!<%s%^%C%A$r9T$J$$!"(B - $B$=$N7k2L$+$iA*Br$7$^$9!#(B</li> + <li>タイプマップ (<code>type-map</code> + ハンドラで扱われるファイル)。これは variants + を含んでいるファイルを明示的に指定します。</li> + + <li>MultiViews の探索 (<code>MultiViews</code> <directive + module="core">Option</directive> で有効になります)。 + サーバが暗黙の内にファイル名のパターンマッチを行ない、 + その結果から選択します。</li> </ul> </summary> <seealso><directive module="core">Options</directive></seealso> <seealso><module>mod_mime</module></seealso> -<seealso><a href="../content-negotiation.html">$B%3%s%F%s%H%M%4%7%(!<%7%g%s(B</a></seealso> -<seealso><a href="../env.html">$B4D6-JQ?t(B</a></seealso> - -<section id="typemaps"><title>$B%?%$%W%^%C%W(B</title> - <p>$B%?%$%W%^%C%W$O(B RFC 822 $B$N%a!<%k%X%C%@$KN`;w$7$?=q<0$G$9!#(B - $B%I%-%e%a%s%H$N5-=R$,6u9T$GJ,N%$5$l$F=q$+$l$F$$$F!"%O%C%7%eJ8;z(B - ('#') $B$G;O$^$k9T$O%3%a%s%H$H$7$F07$o$l$^$9!#(B - $B%I%-%e%a%s%H$N@bL@$OJ#?t$N%X%C%@%l%3!<%I$+$i9=@.$5$l$^$9!#(B - $B%l%3!<%I$O!"B3$-$N9T$,6uGr$G;O$^$C$F$$$k$HJ#?t$N9T$K$^$?$,$j$^$9!#(B - $B:G=i$N6uGr$,>C5n$5$l$F!"A0$N9T$H$D$J$2$F(B 1 $B9T$H$7$F07$o$l$^$9!#(B - $B%X%C%@%l%3!<%I$O%-!<%o!<%IL>$N8e$KCM$,B3$/$H$$$&7A<0$G!"(B - $B%-!<%o!<%IL>$O>o$K%3%m%s$G=*$o$j$^$9!#6uGr$O%X%C%@L>$HCM$N4V!"(B - $BCM$N%H!<%/%s$N4V$KF~$l$k$3$H$,$G$-$^$9!#(B - $B;HMQ2DG=$J%X%C%@$O0J2<$N$H$*$j$G$9(B:</p> +<seealso><a href="../content-negotiation.html">コンテントネゴシエーション</a></seealso> +<seealso><a href="../env.html">環境変数</a></seealso> + +<section id="typemaps"><title>タイプマップ</title> + <p>タイプマップは RFC 822 のメールヘッダに類似した書式です。 + ドキュメントの記述が空行で分離されて書かれていて、ハッシュ文字 + ('#') で始まる行はコメントとして扱われます。 + ドキュメントの説明は複数のヘッダレコードから構成されます。 + レコードは、続きの行が空白で始まっていると複数の行にまたがります。 + 最初の空白が消去されて、前の行とつなげて 1 行として扱われます。 + ヘッダレコードはキーワード名の後に値が続くという形式で、 + キーワード名は常にコロンで終わります。空白はヘッダ名と値の間、 + 値のトークンの間に入れることができます。 + 使用可能なヘッダは以下のとおりです:</p> <dl> <dt><code>Content-Encoding:</code></dt> - <dd>$B%U%!%$%k$N%(%s%3!<%G%#%s%0!#(BApache $B$O(B <directive - module="mod_mime">AddEncoding</directive> $B%G%#%l%/%F%#%V(B - $B$GDj5A$5$l$?%(%s%3!<%G%#%s%0$@$1$rG'<1$7$^$9!#DL>o(B compress - $B$5$l$?%U%!%$%k$N$?$a$N(B <code>x-compress</code> $B$H(B gzip - $B$5$l$?%U%!%$%k$N$?$a$N(B <code>x-gzip</code> $B$r4^$_$^$9!#(B - $B%(%s%3!<%G%#%s%0$NHf3S$r$9$k$H$-$O!"@\F,<-(B <code>x-</code> - $B$OL5;k$5$l$^$9!#(B</dd> + <dd>ファイルのエンコーディング。Apache は <directive + module="mod_mime">AddEncoding</directive> ディレクティブ + で定義されたエンコーディングだけを認識します。通常 compress + されたファイルのための <code>x-compress</code> と gzip + されたファイルのための <code>x-gzip</code> を含みます。 + エンコーディングの比較をするときは、接頭辞 <code>x-</code> + は無視されます。</dd> <dt><code>Content-Language:</code></dt> - <dd>$B%$%s%?!<%M%C%HI8=`$N8@8l%?%0(B + <dd>インターネット標準の言語タグ (<a href="http://www.ietf.org/rfc/rfc1766.txt">RFC 1766</a>) - $B$GDj5A$5$l$F$$$k8@8l$N<oN`!#Nc$($P!"(B<code>en</code> - $B$O1Q8l$rI=$7$^$9!#(B - $BJ#?t$N8@8l$,3JG<$5$l$k>l9g$O%3%s%^$G6h@Z$i$l$^$9!#(B</dd> + で定義されている言語の種類。例えば、<code>en</code> + は英語を表します。 + 複数の言語が格納される場合はコンマで区切られます。</dd> <dt><code>Content-Length:</code></dt> - <dd>$B%U%!%$%k$ND9$5(B ($B%P%$%H?t(B)$B!#(B - $B$3$N%X%C%@$,$J$$>l9g!"%U%!%$%k$N<B:]$ND9$5$,;HMQ$5$l$^$9!#(B</dd> + <dd>ファイルの長さ (バイト数)。 + このヘッダがない場合、ファイルの実際の長さが使用されます。</dd> <dt><code>Content-Type:</code></dt> - <dd>$B%I%-%e%a%s%H$N(B MIME - $B%a%G%#%"%?%$%W!"%*%W%7%g%J%k$J%Q%i%a!<%?IU$-!#%Q%i%a!<%?$N9=J8$O(B + <dd>ドキュメントの MIME + メディアタイプ、オプショナルなパラメータ付き。パラメータの構文は <code>name=value</code> - $B$G!"%a%G%#%"%?%$%W$dB>$N%Q%i%a!<%?$H$O%;%_%3%m%s$GJ,N%$5$l$^$9!#(B - $B6&DL$N%Q%i%a!<%?$O0J2<$N$H$*$j(B: + で、メディアタイプや他のパラメータとはセミコロンで分離されます。 + 共通のパラメータは以下のとおり: <dl> <dt><code>level</code></dt> - <dd>$B%a%G%#%"%?%$%W$N%P!<%8%g%s$r<($9@0?t!#(B - <code>text/html</code> $B$G$O(B 2 $B$,%G%U%)%k%H$G!"$=$NB>$N>l9g$O(B - 0 $B$,%G%U%)%k%H$G$9!#(B</dd> + <dd>メディアタイプのバージョンを示す整数。 + <code>text/html</code> では 2 がデフォルトで、その他の場合は + 0 がデフォルトです。</dd> <dt><code>qs</code></dt> - <dd>$B%/%i%$%"%s%H$NG=NO$K4X78$J$/!"(Bvariant - $B$rB>$HHf3S$7$?$H$-$NAjBPE*$J!VIJ<A!W$G!"(B0.0 $B$+$i(B 1.0 - $B$NHO0O$NIbF0E@>.?t!#(B - $BNc$($P!"<L??$rI=8=$7$h$&$H$7$F$$$k$H$-$OIaDL$O(B JPEG - $B%U%!%$%k$NJ}$,(B ASCII $B%U%!%$%k$h$j$b9b$$IJ<A$K$J$j$^$9!#(B - $B$7$+$7!"%j%=!<%9$,(B ASCII $B%"!<%H$GI=8=$5$l$F$$$k$H$-$O!"(BASCII - $B%U%!%$%k$NJ}$,(B JPEG - $B%U%!%$%k$h$j$b9b$$IJ<A$K$J$j$^$9!#$3$N$h$&$K!"(B<code>qs</code> - $B$O%j%=!<%9Kh$KFCM-$NCM$r<h$j$^$9!#(B + <dd>クライアントの能力に関係なく、variant + を他と比較したときの相対的な「品質」で、0.0 から 1.0 + の範囲の浮動点小数。 + 例えば、写真を表現しようとしているときは普通は JPEG + ファイルの方が ASCII ファイルよりも高い品質になります。 + しかし、リソースが ASCII アートで表現されているときは、ASCII + ファイルの方が JPEG + ファイルよりも高い品質になります。このように、<code>qs</code> + はリソース毎に特有の値を取ります。 </dd> </dl> - <example><title>$BNc(B</title> + <example><title>例</title> Content-Type: image/jpeg; qs=0.8 </example> </dd> <dt><code>URI:</code></dt> - <dd>($B;XDj$N%a%G%#%"%?%$%W!"%3%s%F%s%H%(%s%3!<%G%#%s%0$N(B) variant $B$N(B - $B%U%!%$%k$N(B uri. $B$3$l$O!"%^%C%W%U%!%$%k$+$i$NAjBP(B URL $B$H$7$F(B - $B2r<a$5$l$^$9!#F1$8%5!<%P$KB8:_$7$J$1$l$P$J$i$:!"%/%i%$%"%s%H$,(B - $BD>@\%j%/%(%9%H$7$?$H$-$K%"%/%;%9$r5v2D$5$l$k$b$N$G$J$1$l$P$J$j$^$;$s!#(B</dd> + <dd>(指定のメディアタイプ、コンテントエンコーディングの) variant の + ファイルの uri. これは、マップファイルからの相対 URL として + 解釈されます。同じサーバに存在しなければならず、クライアントが + 直接リクエストしたときにアクセスを許可されるものでなければなりません。</dd> <dt><code>Body:</code></dt> - <dd>Apache 2.0 $B$G?7@_$5$l$?$3$N(B Body $B%X%C%@$r;H$C$F!"(B - $B%j%=!<%9$N<B:]$NFbMF$r%?%$%W%^%C%W%U%!%$%k$K=q$/$3$H$,$G$-$^$9!#(B - $B$3$N%X%C%@$OK\J8$NFbMF$N6h@Z$j$H$J$kJ8;zNs$G;O$^$kI,MW$,$"$j$^$9!#(B - $B%?%$%W%^%C%W%U%!%$%k$NB3$/9T$O!"6h@Z$jJ8;zNs$,8+$D$+$k$^$G!"(B - $B%j%=!<%9$NK\J8$K$J$j$^$9!#(B + <dd>Apache 2.0 で新設されたこの Body ヘッダを使って、 + リソースの実際の内容をタイプマップファイルに書くことができます。 + このヘッダは本文の内容の区切りとなる文字列で始まる必要があります。 + タイプマップファイルの続く行は、区切り文字列が見つかるまで、 + リソースの本文になります。 <example><title>Example:</title> Body:----xyz----<br /> @@ -141,110 +141,110 @@ </section> <section id="multiviews"><title>MultiViews</title> - <p>MultiViews $BC5:w$O!"(B<code>Multiviews</code> <directive - module="core">Options</directive> $B%G%#%l%/%F%#%V$K$h$jM-8z$K$J$j$^$9!#(B - $B%5!<%P$,(B <code>/some/dir/foo</code> - $B$X$N%j%/%(%9%H$r<u$1<h$j!"(B<code>/some/dir/foo</code> $B$,B8:_(B - <em>$B$7$J$$(B</em>$B>l9g!"%5!<%P$O%G%#%l%/%H%j$rFI$s$G!"(B - <code>foo.*</code> $B$K$"$F$O$^$kA4$F$N%U%!%$%k$rC5$7!"(B - $B;v<B>e$=$l$i$N%U%!%$%k$r%^%C%W$9$k%?%$%W%^%C%W$r:n$j$^$9!#(B - $B$=$N$H$-!"%a%G%#%"%?%$%W$H%3%s%F%s%H%(%s%3!<%G%#%s%0$O!"(B - $B$=$N%U%!%$%kL>$rD>@\;XDj$7$?$H$-$HF1$8$b$N$,3d$jEv$F$i$l$^$9!#(B - $B$=$l$+$i%/%i%$%"%s%H$NMW5a$K0lHV9g$&$b$N$rA*$S!"(B - $B$=$N%I%-%e%a%s%H$rJV$7$^$9!#(B</p> - - <p>$B%U%!%$%k$rA*Br$9$k:]$K!"4XO"$9$k%3%s%F%s%H%M%4%7%(!<%7%g%s$N(B - $B%a%?>pJs$r;}$?$J$$%U%!%$%k$K$D$$$F!"H=Dj$r9T$&$+$I$&$+$r(B + <p>MultiViews 探索は、<code>Multiviews</code> <directive + module="core">Options</directive> ディレクティブにより有効になります。 + サーバが <code>/some/dir/foo</code> + へのリクエストを受け取り、<code>/some/dir/foo</code> が存在 + <em>しない</em>場合、サーバはディレクトリを読んで、 + <code>foo.*</code> にあてはまる全てのファイルを探し、 + 事実上それらのファイルをマップするタイプマップを作ります。 + そのとき、メディアタイプとコンテントエンコーディングは、 + そのファイル名を直接指定したときと同じものが割り当てられます。 + それからクライアントの要求に一番合うものを選び、 + そのドキュメントを返します。</p> + + <p>ファイルを選択する際に、関連するコンテントネゴシエーションの + メタ情報を持たないファイルについて、判定を行うかどうかを <directive module="mod_mime">MultiViewsMatch</directive> - $B%G%#%l%/%F%#%V$G@_Dj$7$^$9!#(B</p> + ディレクティブで設定します。</p> </section> <directivesynopsis> <name>CacheNegotiatedDocs</name> -<description>$B%3%s%F%s%H%M%4%7%(!<%7%g%s$5$l$?%I%-%e%a%s%H$r%W%m%-%7%5!<%P$,(B -$B%-%c%C%7%e$G$-$k$h$&$K$9$k(B</description> +<description>コンテントネゴシエーションされたドキュメントをプロキシサーバが +キャッシュできるようにする</description> <syntax>CacheNegotiatedDocs On|Off</syntax> <default>CacheNegotiatedDocs Off</default> <contextlist><context>server config</context> <context>virtual host</context> </contextlist> -<compatibility>$B%P!<%8%g%s(B 2.0$B$G9=J8$,JQ$o$j$^$7$?(B</compatibility> +<compatibility>バージョン 2.0で構文が変わりました</compatibility> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$,@_Dj$5$l$F$$$k$H!"%3%s%F%s%H%M%4%7%(!<%7%g%s(B - $B$r$7$?7k2L$N%I%-%e%a%s%H$N%-%c%C%7%e$r5v2D$7$^$9!#(B - $B$3$l$O!"%W%m%-%7$N8e$m$K$$$k%/%i%$%"%s%H$,G=NO$K0lHV9g$C$?(B - $B%I%-%e%a%s%H$G$O$J$/!"(B - $B%-%c%C%7%e$r$h$j8z2LE*$K$9$k$b$N$rF@$k2DG=@-$,$"$k$H$$$&$3$H$G$9!#(B</p> - - <p>$B$3$N%G%#%l%/%F%#%V$O(B HTTP/1.0 $B%V%i%&%6$+$i$N%j%/%(%9%H(B - $B$N$_$KE,MQ$5$l$^$9!#(BHTTP/1.1 $B$O!"(B - $B8r>D$5$l$?%I%-%e%a%s%H$N%-%c%C%7%e$KBP$7$F$:$C$H$h$$@)8f$,2DG=$J$N$G!"(B - $B$3$N%G%#%l%/%F%#%V$O(B HTTP/1.1 $B$N%j%/%(%9%H$K$O1F6A$7$^$;$s!#(B</p> - <p>2.0 $B$h$jA0$N%P!<%8%g%s$G$O!"(B - <directive>CacheNegotiatedDocs</directive> $B$O0z?t$r<h$i$:!"(B - $B%G%#%l%/%F%#%V$,B8:_$9$k$3$H$G(B on $B$NF0:n$r$7$F$$$^$7$?!#(B</p> + <p>このディレクティブが設定されていると、コンテントネゴシエーション + をした結果のドキュメントのキャッシュを許可します。 + これは、プロキシの後ろにいるクライアントが能力に一番合った + ドキュメントではなく、 + キャッシュをより効果的にするものを得る可能性があるということです。</p> + + <p>このディレクティブは HTTP/1.0 ブラウザからのリクエスト + のみに適用されます。HTTP/1.1 は、 + 交渉されたドキュメントのキャッシュに対してずっとよい制御が可能なので、 + このディレクティブは HTTP/1.1 のリクエストには影響しません。</p> + <p>2.0 より前のバージョンでは、 + <directive>CacheNegotiatedDocs</directive> は引数を取らず、 + ディレクティブが存在することで on の動作をしていました。</p> </usage> </directivesynopsis> <directivesynopsis> <name>ForceLanguagePriority</name> -<description>$BMW5a$K9g$&C1FH$N%I%-%e%a%s%H$,8+$D$+$i$J$+$C$?$H$-$K9T$J$&$3$H$r;XDj(B +<description>要求に合う単独のドキュメントが見つからなかったときに行なうことを指定 </description> <syntax>ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback]</syntax> <default>ForceLanguagePriority Prefer</default> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context></contextlist> <override>FileInfo</override> -<compatibility>$B%P!<%8%g%s(B 2.0.30 $B0J9_$G;HMQ2DG=(B</compatibility> +<compatibility>バージョン 2.0.30 以降で使用可能</compatibility> <usage> - <p><directive>ForceLanguagePriority</directive> $B%G%#%l%/%F%#%V$O(B - $BMW5a$K9g$&%I%-%e%a%s%H$r0l$D$@$1JV$9$3$H$,$G$-$J$$$H$-$K!"(B + <p><directive>ForceLanguagePriority</directive> ディレクティブは + 要求に合うドキュメントを一つだけ返すことができないときに、 <directive module="mod_negotiation">LanguagePriority</directive> - $B%G%#%l%/%F%#%V$r;H$C$F%M%4%7%(!<%7%g%s$N7k2L$rJV$7$^$9!#(B</p> + ディレクティブを使ってネゴシエーションの結果を返します。</p> - <p><code>ForceLanguagePriority Prefer</code> $B$O!"F1Ey$NA*Br;h$,(B - $B$$$/$D$+$"$k$H$-$K!"(BHTTP $B$N(B 300 (MULTIPLE CHOICES) $B$rJV$9Be$o$j$K!"(B - <code>LanguagePriority</code> $B$r;H$C$F0l$D$@$1%I%-%e%a%s%H$rJV$9$h$&$K(B - $B$7$^$9!#0J2<$N%G%#%l%/%F%#%V$,;XDj$5$l$F$$$F!"%f!<%6$N(B <code>Accept-Language</code> - $B%X%C%@$G$O(B <code>en</code> $B$H(B <code>de</code> $B$NIJ<A$,6&$K(B - <code>.500</code> ($BF1$8$/$i$$5vMF(B) $B$G$"$k$H$-$O!"(B - $B:G=i$K%^%C%A$9$k(B variant $B$N(B <code>en</code> $B$,Aw$i$l$^$9!#(B</p> + <p><code>ForceLanguagePriority Prefer</code> は、同等の選択肢が + いくつかあるときに、HTTP の 300 (MULTIPLE CHOICES) を返す代わりに、 + <code>LanguagePriority</code> を使って一つだけドキュメントを返すように + します。以下のディレクティブが指定されていて、ユーザの <code>Accept-Language</code> + ヘッダでは <code>en</code> と <code>de</code> の品質が共に + <code>.500</code> (同じくらい許容) であるときは、 + 最初にマッチする variant の <code>en</code> が送られます。</p> <example> LanguagePriority en fr de<br /> ForceLanguagePriority Prefer </example> - <p><code>ForceLanguagePriority Fallback</code> $B$G$O!"(BHTTP 406 - (NOT ACCEPTABLE) $B$rAw?.$9$kBe$o$j$K!"(B + <p><code>ForceLanguagePriority Fallback</code> では、HTTP 406 + (NOT ACCEPTABLE) を送信する代わりに、 <directive module="mod_negotiation">LanguagePriority</directive> - $B$,@5$7$$7k2L$rAw$j$^$9!#(B - $B0J2<$N%G%#%l%/%F%#%V$,;XDj$5$l$F$$$F!"%f!<%6$N(B <code>Accept-Language</code> - $B$,(B <code>es</code> $B8@8l$N$_$r5v2D$7$F$$$F!"$5$i$K$=$N$h$&$J(B variant $B$,$J$$$H$-$K$O!"(B - $B0J2<$N(B <directive module="mod_negotiation">LanguagePriority</directive> - $B$N%j%9%H$N:G=i$N(B variant $B$,Aw$l$l$^$9!#(B</p> + が正しい結果を送ります。 + 以下のディレクティブが指定されていて、ユーザの <code>Accept-Language</code> + が <code>es</code> 言語のみを許可していて、さらにそのような variant がないときには、 + 以下の <directive module="mod_negotiation">LanguagePriority</directive> + のリストの最初の variant が送れれます。</p> <example> LanguagePriority en fr de<br /> ForceLanguagePriority Fallback </example> - <p><code>Prefer</code> $B$H(B <code>Fallback</code> $B$NN>J}$N%*%W%7%g%s$r(B - $BF1;~$K;XDj$9$k$3$H$,$G$-$^$9!#(B - $B$G$9$+$i!"J#?t$N(B variant $B$,$"$k$H$-$O(B - <directive module="mod_negotiation">LanguagePriority</directive> $B$N:G=i$N(B - variant $B$,Aw$i$l!"%/%i%$%"%s%H$N5vMF8@8l$K9g$&(B vaiant $B$,$J$$$H$-$O(B - $BB8:_$9$k%I%-%e%a%s%H$G:G=i$N$b$N$,Aw$i$l$k!"$H$$$&MM$K$9$k$3$H$,$G$-$^$9!#(B</p> + <p><code>Prefer</code> と <code>Fallback</code> の両方のオプションを + 同時に指定することができます。 + ですから、複数の variant があるときは + <directive module="mod_negotiation">LanguagePriority</directive> の最初の + variant が送られ、クライアントの許容言語に合う vaiant がないときは + 存在するドキュメントで最初のものが送られる、という様にすることができます。</p> </usage> <seealso><directive module="mod_mime">AddLanguage</directive></seealso> </directivesynopsis> <directivesynopsis> <name>LanguagePriority</name> -<description>$B%/%i%$%"%s%H$,M%@hEY$r<($5$J$+$C$?$H$-$N8@8l$N(B variant $B$NM%@hEY$r(B -$B;XDj(B</description> +<description>クライアントが優先度を示さなかったときの言語の variant の優先度を +指定</description> <syntax>LanguagePriority <var>MIME-lang</var> [<var>MIME-lang</var>] ...</syntax> <contextlist><context>server config</context><context>virtual host</context> @@ -252,25 +252,25 @@ <override>FileInfo</override> <usage> - <p><directive>LanguagePriority</directive> $B$O!"(BMultiViews - $B%j%/%(%9%H$r07$&$H$-$K!"%/%i%$%"%s%H$,M%@h=g0L$rDs6!$7$F$$$J$$>l9g$N(B - $B8@8l$NM%@h=g0L$r@_Dj$7$^$9!#(B<var>MIME-lang</var> - $B$N%j%9%H$,M%@hEY$N9_=g$KJB$S$^$9!#(B</p> + <p><directive>LanguagePriority</directive> は、MultiViews + リクエストを扱うときに、クライアントが優先順位を提供していない場合の + 言語の優先順位を設定します。<var>MIME-lang</var> + のリストが優先度の降順に並びます。</p> <example><title>Example:</title> LanguagePriority en fr de </example> - <p><code>foo.html</code> $B$,%j%/%(%9%H$5$l!"(B<code>foo.html.fr</code> - $B$H(B <code>foo.html.de</code> $B$,N>J}B8:_$7!"(B - $B%V%i%&%6$,8@8l$NM%@h=g0L$rDs6!$7$F$J$$>l9g$O(B - <code>foo.html.fr</code> $B$,JV$5$l$^$9!#(B</p> + <p><code>foo.html</code> がリクエストされ、<code>foo.html.fr</code> + と <code>foo.html.de</code> が両方存在し、 + ブラウザが言語の優先順位を提供してない場合は + <code>foo.html.fr</code> が返されます。</p> - <p>$B$3$N%G%#%l%/%F%#%V$OB>$NJ}K!$G!V:GA1!W(B - $B$N8@8l$,7hDj$G$-$J$$$H$-$+!"(B<directive - module="mod_negotiation">ForceLanguagePriority</directive> $B%G%#%l%/%F%#%V$,(B - <code>None</code> $B0J30$N$H$-$K$N$_8z2L$,$"$k$3$H$KCm0U$7$F$/$@$5$$!#(B - $B0lHLE*$K$O!"%5!<%PB&$G$O$J$/%/%i%$%"%s%HB&$G9%$_$N8@8l$r7hDj$7$^$9!#(B</p> + <p>このディレクティブは他の方法で「最善」 + の言語が決定できないときか、<directive + module="mod_negotiation">ForceLanguagePriority</directive> ディレクティブが + <code>None</code> 以外のときにのみ効果があることに注意してください。 + 一般的には、サーバ側ではなくクライアント側で好みの言語を決定します。</p> </usage> <seealso><directive module="mod_mime">AddLanguage</directive></seealso> </directivesynopsis> diff --git a/docs/manual/mod/mod_proxy.xml.ja b/docs/manual/mod/mod_proxy.xml.ja index 38d9a2ab51..976d56631e 100644 --- a/docs/manual/mod/mod_proxy.xml.ja +++ b/docs/manual/mod/mod_proxy.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 189754:661107 (outdated) --> @@ -23,43 +23,43 @@ <modulesynopsis metafile="mod_proxy.xml.meta"> <name>mod_proxy</name> -<description>HTTP/1.1 $B%W%m%-%7(B/$B%2!<%H%&%'%$%5!<%P(B</description> +<description>HTTP/1.1 プロキシ/ゲートウェイサーバ</description> <status>Extension</status> <sourcefile>mod_proxy.c</sourcefile> <identifier>proxy_module</identifier> <summary> - <note type="warning"><title>$B7Y9p(B</title> + <note type="warning"><title>警告</title> <p><a href="#access" - >$B%5!<%P$r0BA4$K$9$k(B</a>$B$^$G(B <directive module="mod_proxy" - >ProxyRequests</directive> $B$OM-8z$K$7$J$$$G$/$@$5$$!#(B - $B%*!<%W%s%W%m%-%7%5!<%P$O$"$J$?<+?H$N%M%C%H%o!<%/$K$H$C$F$b!"(B - $B%$%s%?!<%M%C%HA4BN$K$H$C$F$b4m81$G$9!#(B</p> + >サーバを安全にする</a>まで <directive module="mod_proxy" + >ProxyRequests</directive> は有効にしないでください。 + オープンプロキシサーバはあなた自身のネットワークにとっても、 + インターネット全体にとっても危険です。</p> </note> - <p>$B$3$N%b%8%e!<%k$O(B Apache $B$N%W%m%-%7(B/$B%2!<%H%&%'%$5!G=$r<BAu$7$F$$$^$9!#(B + <p>このモジュールは Apache のプロキシ/ゲートウェイ機能を実装しています。 <code>AJP13</code> (Apache JServe Protocol version 1.3), - <code>FTP</code>, <code>CONNECT</code> (SSL $BMQ(B), + <code>FTP</code>, <code>CONNECT</code> (SSL 用), <code>HTTP/0.9</code>, <code>HTTP/1.0</code>, <code>HTTP/1.1</code> - $B$N%W%m%-%75!G=$r<BAu$7$F$$$^$9!#$3$l$i$N%W%m%H%3%k$d$=$NB>$N%W%m%H%3%kMQ$N(B - $B%W%m%-%75!G=$r;}$C$?!"B>$N%b%8%e!<%k$K@\B3$9$k$h$&$K$b@_Dj$G$-$^$9!#(B</p> + のプロキシ機能を実装しています。これらのプロトコルやその他のプロトコル用の + プロキシ機能を持った、他のモジュールに接続するようにも設定できます。</p> - <p>Apache $B$N%W%m%-%75!G=$O(B <module>mod_proxy</module> $B$NB>$K!"(B - $B$$$/$D$+$N%b%8%e!<%k$KJ,3d$5$l$F$$$^$9(B: + <p>Apache のプロキシ機能は <module>mod_proxy</module> の他に、 + いくつかのモジュールに分割されています: <module>mod_proxy_http</module>, <module>mod_proxy_ftp</module>, <module>mod_proxy_ajp</module>, <module>mod_proxy_balancer</module>, - <module>mod_proxy_connect</module> $B$G$9!#$G$9$+$i!"(B - $BFCDj$N%W%m%-%7$N5!G=$r;H$$$?$$>l9g$O!"(B<module>mod_proxy</module> <em>$B$H(B</em> - $B3:Ev$9$k%b%8%e!<%k$r%5!<%P$K(B ($B%3%s%Q%$%k;~$K@EE*$K9T$J$&$+(B - <directive module="mod_so">LoadModule</directive> $B$GF0E*$KFI$_9~$`$+$7$F(B) - $BAH$_9~$`I,MW$,$"$j$^$9!#(B</p> - - <p>$B$3$l$K2C$($F!"B>$N%b%8%e!<%k$K$h$C$F3HD%5!G=$,Ds6!$5$l$F$$$^$9!#(B - $B%-%c%C%7%e$O(B <module>mod_cache</module> $B$H4XO"%b%8%e!<%k$G(B - $BDs6!$5$l$F$$$^$9!#(BSSL/TLS $B$G1s3V%5!<%P$K@\B3$9$k5!G=$O(B - <module>mod_ssl</module> $B$N(B <code>SSLProxy*</code> $B%G%#%l%/%F%#%V$G(B - $BDs6!$5$l$F$$$^$9!#$3$l$i$N5!G=$rMxMQ$9$k$?$a$K$O!"3:Ev$9$k%b%8%e!<%k$r(B - $BAH$_9~$s$G@_Dj$7$J$1$l$P$J$j$^$;$s!#(B</p> + <module>mod_proxy_connect</module> です。ですから、 + 特定のプロキシの機能を使いたい場合は、<module>mod_proxy</module> <em>と</em> + 該当するモジュールをサーバに (コンパイル時に静的に行なうか + <directive module="mod_so">LoadModule</directive> で動的に読み込むかして) + 組み込む必要があります。</p> + + <p>これに加えて、他のモジュールによって拡張機能が提供されています。 + キャッシュは <module>mod_cache</module> と関連モジュールで + 提供されています。SSL/TLS で遠隔サーバに接続する機能は + <module>mod_ssl</module> の <code>SSLProxy*</code> ディレクティブで + 提供されています。これらの機能を利用するためには、該当するモジュールを + 組み込んで設定しなければなりません。</p> </summary> <seealso><module>mod_cache</module></seealso> <seealso><module>mod_proxy_http</module></seealso> @@ -68,66 +68,66 @@ <seealso><module>mod_proxy_balancer</module></seealso> <seealso><module>mod_ssl</module></seealso> - <section id="forwardreverse"><title>$B%U%)%o!<%I%W%m%-%7$H%j%P!<%9%W%m%-%7(B</title> - <p>Apache $B$O(B<dfn>$B%U%)%o!<%I(B</dfn>$B%W%m%-%7$H$7$F$b!"(B - <dfn>$B%j%P!<%9(B</dfn>$B%W%m%-%7$H$7$F$b@_Dj$9$k$3$H$,$G$-$^$9!#(B</p> - - <p>$BDL>o$N(B<dfn>$B%U%)%o!<%I%W%m%-%7(B</dfn>$B$O%/%i%$%"%s%H$H(B - <em>$B%*%j%8%s%5!<%P(B</em> <transnote>$B%3%s%F%s%D@8@.85$N%5!<%P(B</transnote> - $B$N4V$K0LCV$9$kCf4V%5!<%P$G$9!#(B - $B%*%j%8%s%5!<%P$+$i%3%s%F%s%D$r<hF@$9$k2aDx$G$O!"%/%i%$%"%s%H$O(B - $B9T$-@h$H$7$F%*%j%8%s%5!<%P$r;XDj$7$D$D%W%m%-%7$K%j%/%(%9%H$rAw$j!"(B - $B%W%m%-%7$O%*%j%8%s%5!<%P$+$i%3%s%F%s%D<hF@$N%j%/%(%9%H$rAw$j!"(B - $B%3%s%F%s%D$,<hF@$G$-$l$P$=$l$r%/%i%$%"%s%H$KJV$7$^$9!#(B - $B%/%i%$%"%s%H$,B>$N%5%$%H$K%U%)%o!<%I%W%m%/%77PM3$G%"%/%;%9$9$k$K$O!"(B - $BFCJL$K$=$lMQ$N@_Dj$r$7$J$1$l$P$J$j$^$;$s!#(B</p> - - <p>$B%U%)%o!<%I%W%m%-%7$N0lHLE*$J;HMQJ}K!$O!"%U%!%$%"%&%)!<%k$K$h$C$F(B - $B@)8B$5$l$F$$$kFbIt$N%/%i%$%"%s%H$K%$%s%?!<%M%C%H$X$N%"%/%;%9$r(B - $BDs6!$9$k$b$N$G$9!#%U%)%o!<%I%W%m%-%7$O%M%C%H%o!<%/$N;HMQNL$r(B - $B8:$i$9$?$a$K(B (<module>mod_cache</module> $B$GDs6!$5$l$F$$$k(B) - $B%-%c%C%7%e5!G=$rMQ$$$k$3$H$b$G$-$^$9!#(B</p> - - <p>$B%U%)%o!<%I%W%m%-%7$O(B <directive - module="mod_proxy">ProxyRequests</directive> $B%G%#%l%/%F%#%V$G(B - $BM-8z$K$J$j$^$9!#%U%)%o!<%I%W%m%-%7$G$O!"%/%i%$%"%s%H$OK\Ev$N?H85$r(B - $B1#$7$FG$0U$N%5%$%H$K%"%/%;%9$G$-$k$h$&$K$J$k$?$a!"%U%)%o!<%I%W%m%-%7$r(B - $BM-8z$K$9$kA0$K!">5G'$5$l$?%/%i%$%"%s%H$N$_$,%W%m%-%7$K%"%/%;%9$G$-$k$h$&$K(B - <a href="#access">$B%5!<%P$r0BA4$K$9$k(B</a>$B$3$H$,=EMW$G$9!#(B</p> - - <p>$B0lJ}(B<dfn>$B%j%P!<%9%W%m%-%7(B</dfn>$B$O!"%/%i%$%"%s%H$K$OIaDL$N(B - $B%&%'%V%5!<%P$N$h$&$K8+$($^$9!#%/%i%$%"%s%HB&$KFCJL$J@_Dj$OI,MW$"$j$^$;$s!#(B - $B%/%i%$%"%s%H$O%j%P!<%9%W%m%-%7$NL>A06u4V$KBP$7$FDL>o$N%3%s%F%s%D$X$N(B - $B%j%/%(%9%H$r9T$J$$$^$9!#%W%m%-%7$O%j%/%(%9%H$r$I$3$KAw$l$PNI$$$+$rH=Dj$7!"(B - $B$"$?$+$b<+J,<+?H$,%*%j%8%s%5!<%P$G$"$C$?$+$N$h$&$K%/%i%$%"%s%H$K(B - $B%3%s%F%s%D$rJV$7$^$9!#(B</p> - - <p>$B%j%P!<%9%W%m%-%7$N$h$/$"$kMxMQJ}K!$O!"%$%s%?!<%M%C%H%f!<%6$K(B - $B%U%!%$%"%&%)!<%k$NCf$K$"$k%5!<%P$K%"%/%;%9$rM?$($k$H$$$&$b$N$G$9!#(B - $B%j%P!<%9%W%m%-%7$OJ#?t$N%P%C%/%(%s%I%5!<%P$XIi2YJ,;6$r$9$k$?$a$K(B - $B;H$C$?$j!"CY$$%P%C%/%(%s%I%(%s%I%5!<%P$N$?$a$K%-%c%C%7%e5!G=$rDs6!$7$?$j(B - $B$9$k$?$a$K;H$($^$9!#$^$?!"%j%P!<%9%W%m%-%7$OJ#?t$N%5!<%P$r(B - $BF1$8(B URL $B6u4V$K$^$H$a$k$?$a$K;H$&$3$H$b$G$-$^$9!#(B</p> - - <p>$B%j%P!<%9%W%m%-%7$O(B <directive - module="mod_proxy">ProxyPass</directive> $B%G%#%l%/%F%#%V$d(B + <section id="forwardreverse"><title>フォワードプロキシとリバースプロキシ</title> + <p>Apache は<dfn>フォワード</dfn>プロキシとしても、 + <dfn>リバース</dfn>プロキシとしても設定することができます。</p> + + <p>通常の<dfn>フォワードプロキシ</dfn>はクライアントと + <em>オリジンサーバ</em> <transnote>コンテンツ生成元のサーバ</transnote> + の間に位置する中間サーバです。 + オリジンサーバからコンテンツを取得する過程では、クライアントは + 行き先としてオリジンサーバを指定しつつプロキシにリクエストを送り、 + プロキシはオリジンサーバからコンテンツ取得のリクエストを送り、 + コンテンツが取得できればそれをクライアントに返します。 + クライアントが他のサイトにフォワードプロクシ経由でアクセスするには、 + 特別にそれ用の設定をしなければなりません。</p> + + <p>フォワードプロキシの一般的な使用方法は、ファイアウォールによって + 制限されている内部のクライアントにインターネットへのアクセスを + 提供するものです。フォワードプロキシはネットワークの使用量を + 減らすために (<module>mod_cache</module> で提供されている) + キャッシュ機能を用いることもできます。</p> + + <p>フォワードプロキシは <directive + module="mod_proxy">ProxyRequests</directive> ディレクティブで + 有効になります。フォワードプロキシでは、クライアントは本当の身元を + 隠して任意のサイトにアクセスできるようになるため、フォワードプロキシを + 有効にする前に、承認されたクライアントのみがプロキシにアクセスできるように + <a href="#access">サーバを安全にする</a>ことが重要です。</p> + + <p>一方<dfn>リバースプロキシ</dfn>は、クライアントには普通の + ウェブサーバのように見えます。クライアント側に特別な設定は必要ありません。 + クライアントはリバースプロキシの名前空間に対して通常のコンテンツへの + リクエストを行ないます。プロキシはリクエストをどこに送れば良いかを判定し、 + あたかも自分自身がオリジンサーバであったかのようにクライアントに + コンテンツを返します。</p> + + <p>リバースプロキシのよくある利用方法は、インターネットユーザに + ファイアウォールの中にあるサーバにアクセスを与えるというものです。 + リバースプロキシは複数のバックエンドサーバへ負荷分散をするために + 使ったり、遅いバックエンドエンドサーバのためにキャッシュ機能を提供したり + するために使えます。また、リバースプロキシは複数のサーバを + 同じ URL 空間にまとめるために使うこともできます。</p> + + <p>リバースプロキシは <directive + module="mod_proxy">ProxyPass</directive> ディレクティブや <directive - module="mod_rewrite">RewriteRule</directive> $B%G%#%l%/%F%#%V$N(B - <code>[P]</code> $B%U%i%0$r;H$&$3$H$GM-8z$K$J$j$^$9!#%j%P!<%9%W%m%-%7$N(B - $B@_Dj$N$?$a$K(B <directive - module="mod_proxy">ProxyRequests</directive> $B$r@_Dj$9$kI,MW$O(B - <em>$B$"$j$^$;$s(B</em>$B!#(B</p> + module="mod_rewrite">RewriteRule</directive> ディレクティブの + <code>[P]</code> フラグを使うことで有効になります。リバースプロキシの + 設定のために <directive + module="mod_proxy">ProxyRequests</directive> を設定する必要は + <em>ありません</em>。</p> </section> <!-- /forwardreverse --> - <section id="examples"><title>$B4pK\$NNc(B</title> + <section id="examples"><title>基本の例</title> - <p>$B0J2<$NNc$O<j;O$a$N4JC1$JNc$G$9!#8D!9$N%G%#%l%/%F%#%V$N0UL#$O(B - $B$=$l$>$l$N@bL@$r$*FI$_$/$@$5$$!#(B</p> + <p>以下の例は手始めの簡単な例です。個々のディレクティブの意味は + それぞれの説明をお読みください。</p> - <p>$B$^$?%-%c%C%7%e5!G=$rM-8z$K$7$?$$>l9g$O!"(B<module>mod_cache</module> - $B$N@bL@$rFI$s$G$/$@$5$$!#(B</p> + <p>またキャッシュ機能を有効にしたい場合は、<module>mod_cache</module> + の説明を読んでください。</p> - <example><title>$B%U%)%o!<%I%W%m%-%7(B</title> + <example><title>フォワードプロキシ</title> ProxyRequests On<br /> ProxyVia On<br /> <br /> @@ -140,7 +140,7 @@ </Proxy> </example> - <example><title>$B%j%P!<%9%W%m%-%7(B</title> + <example><title>リバースプロキシ</title> ProxyRequests Off<br /> <br /> <Proxy *><br /> @@ -156,10 +156,10 @@ </section> <!-- /examples --> - <section id="access"><title>$B%W%m%-%7$X$N%"%/%;%9@)8f(B</title> - <p>$B%W%m%-%7$N%"%/%;%9$O0J2<$N$h$&$K(B <directive - module="mod_proxy" type="section">Proxy</directive> $B%3%s%F%J$NCf$K(B - $B%G%#%l%/%F%#%V$r=q$/$3$H$G@)8f$G$-$^$9(B:</p> + <section id="access"><title>プロキシへのアクセス制御</title> + <p>プロキシのアクセスは以下のように <directive + module="mod_proxy" type="section">Proxy</directive> コンテナの中に + ディレクティブを書くことで制御できます:</p> <example> <Proxy *><br /> @@ -171,168 +171,168 @@ </Proxy> </example> - <p>$B%"%/%;%9@)8f$N$?$a$N%G%#%l%/%F%#%V$N$h$j>\$7$$>pJs$O(B - <module>mod_authz_host</module> $B$r$*FI$_$/$@$5$$!#(B</p> + <p>アクセス制御のためのディレクティブのより詳しい情報は + <module>mod_authz_host</module> をお読みください。</p> <p>(<directive - module="mod_proxy">ProxyRequests</directive> $B%G%#%l%/%F%#%V$r(B - $B;H$C$F(B) $B%U%)%o!<%I%W%m%-%7$r@_Dj$7$F$$$k>l9g$O!"87$7$/%"%/%;%9(B - $B@)8B$r9T$J$&$3$H$,Hs>o$KBg@Z$G$9!#$=$&$7$J$$$H!"G$0U$N%/%i%$%"%s%H$,(B - $B?H85$rL@$+$9$3$H$J$/G$0U$N%[%9%H$K%"%/%;%9$9$k$?$a$K%5!<%P$r;H$&$3$H$,(B - $B$G$-$F$7$^$$$^$9!#$3$l$O$"$J$?<+?H$N%M%C%H%o!<%/$K$H$C$F$b!"%$%s%?!<%M%C%H(B - $BA4BN$K$H$C$F$b4m81$J$3$H$G$9!#(B(<code>ProxyRequests Off</code> $B$K$7$F(B + module="mod_proxy">ProxyRequests</directive> ディレクティブを + 使って) フォワードプロキシを設定している場合は、厳しくアクセス + 制限を行なうことが非常に大切です。そうしないと、任意のクライアントが + 身元を明かすことなく任意のホストにアクセスするためにサーバを使うことが + できてしまいます。これはあなた自身のネットワークにとっても、インターネット + 全体にとっても危険なことです。(<code>ProxyRequests Off</code> にして <directive - module="mod_proxy">ProxyPass</directive> $B%G%#%l%/%F%#%V$r;H$C$F(B) - $B%j%P!<%9%W%m%-%7$r;H$C$F$$$k>l9g$K$O!"%/%i%$%"%s%H$O$"$J$?$,L@<(E*$K(B - $B@_Dj$7$?%[%9%H$K$7$+%"%/%;%9$G$-$J$$$?$a!"%U%)%o!<%I%W%m%-%7$N$H$-(B - $B$[$I%"%/%;%9@)8f$KNO$rCm$,$J$/$F$bBg>fIW$G$9!#(B</p> + module="mod_proxy">ProxyPass</directive> ディレクティブを使って) + リバースプロキシを使っている場合には、クライアントはあなたが明示的に + 設定したホストにしかアクセスできないため、フォワードプロキシのとき + ほどアクセス制御に力を注がなくても大丈夫です。</p> </section> <!-- /access --> - <section id="ftp-proxy"><title>FTP $B%W%m%-%7(B</title> + <section id="ftp-proxy"><title>FTP プロキシ</title> - <section id="mimetypes"><title>$B$I$&$7$F%U%!%$%k%?%$%W$,(B <var>xxx</var> - $B$N%U%!%$%k$r(B FTP $B$G%@%&%s%m!<%I$G$-$J$$$N(B?</title> - <p>$B$*$=$i$/!"%W%m%-%7$N(B mime.types $B@_Dj%U%!%$%k$G$=$N%U%!%$%k%?%$%W$,(B - <code>application/octet-stream</code> $B$G$"$k$HDj5A$5$l$F$$$J$$$N$G$7$g$&!#(B - $B0J2<$N$h$&$J$b$N$,Lr$KN)$D$+$b$7$l$^$;$s(B:</p> + <section id="mimetypes"><title>どうしてファイルタイプが <var>xxx</var> + のファイルを FTP でダウンロードできないの?</title> + <p>おそらく、プロキシの mime.types 設定ファイルでそのファイルタイプが + <code>application/octet-stream</code> であると定義されていないのでしょう。 + 以下のようなものが役に立つかもしれません:</p> <example> <pre>application/octet-stream bin dms lha lzh exe class tgz taz</pre> </example> - <p>$BJL$NJ}K!$H$7$F!"$9$Y$F$N%G%U%)%k%H$r%P%$%J%j$K$9$k$3$H$b$G$-$^$9(B:</p> + <p>別の方法として、すべてのデフォルトをバイナリにすることもできます:</p> <example> <pre>DefaultType application/octet-stream</pre> </example> </section> <!-- /mimetypes --> - <section id="type"><title>$B%U%!%$%k(B <var>xxx</var> $B$r(B FTP $B$N(B ASCII $B%@%&%s%m!<%I(B - $B$K$5$;$k$N$O$I$&$9$l$P$h$$$N(B?</title> - <p>$B$^$l$K!"(B($B%G%U%)%k%H$NE>Aw$O(B <code>binary</code> $B%b!<%I$G(B) $BFCDj$N(B - $B%U%!%$%k$N$_(B FTP $B$N(B <code>ASCII</code> $BE>AwJ}K!$r;H$o$J$1$l$P$J$i$J$$(B - $B>l9g$K$O!"%j%/%(%9%H$N:G8e$K(B <code>;type=a</code> $B$rIU$1$k$3$H$G(B - <module>mod_proxy</module> $B$K(B ASCII $BE>Aw$r$5$;$k$3$H$,$G$-$^$9!#(B - ($B$?$@$7!"(BFTP $B$N%G%#%l%/%H%j0lMw$O>o$K(B ASCII $B%b!<%I$G9T$J$o$l$^$9!#(B)</p> + <section id="type"><title>ファイル <var>xxx</var> を FTP の ASCII ダウンロード + にさせるのはどうすればよいの?</title> + <p>まれに、(デフォルトの転送は <code>binary</code> モードで) 特定の + ファイルのみ FTP の <code>ASCII</code> 転送方法を使わなければならない + 場合には、リクエストの最後に <code>;type=a</code> を付けることで + <module>mod_proxy</module> に ASCII 転送をさせることができます。 + (ただし、FTP のディレクトリ一覧は常に ASCII モードで行なわれます。)</p> </section> <!-- /type --> - <section id="ftpnonget"><title>FTP $B$N%"%C%W%m!<%I$O$I$&$9$l$P$h$$$N(B?</title> - <p>$B8=;~E@$G$O!"(Bmod_proxy $B$N(B FTP $B%5%]!<%H$O(B GET $B$N$_$G$9!#$b$A$m$s(B - Apache $B$N(B $B%W%m%-%7$r;H$C$F(B HTTP $B$N%"%C%W%m!<%I(B (POST $B$d(B PUT) $B$r(B - $B$9$k$3$H$O$G$-$^$9!#(B</p> + <section id="ftpnonget"><title>FTP のアップロードはどうすればよいの?</title> + <p>現時点では、mod_proxy の FTP サポートは GET のみです。もちろん + Apache の プロキシを使って HTTP のアップロード (POST や PUT) を + することはできます。</p> </section> - <section id="percent2fhck"><title>$B%[!<%`%G%#%l%/%H%j$N30$N(B FTP $B%U%!%$%k$K(B - $B%"%/%;%9$9$k$K$O$I$&$9$l$P$h$$$N(B?</title> - <p>FTP URI $B$O%m%0%$%s$7$F$$$k%f!<%6$N%[!<%`%G%#%l%/%H%j$+$i$N(B - $BAjBP%Q%9$H$7$F07$o$l$^$9!#;DG0$J$3$H$K!"(B/../ $B$O%V%i%&%6$K$h$j2r<a$5$l!"(B - $B<B:]$K(B FTP $B%5!<%P$K$OAw$i$l$J$$$?$a!"(B/../ $B$r;H$C$F>e0L$N%G%#%l%/%H%j$K(B - $BE~C#$9$k$3$H$O$G$-$^$;$s!#$3$NLdBj$r2r7h$9$k$?$a$K!"$$$o$f$k(B - <dfn>Squid %2f $B%O%C%/(B</dfn> $B$r(B Apache $B$N(B FTP $B%W%m%-%7$O<BAu$7$F$$$^$9!#(B - $B$3$l$O(B <a - href="http://www.squid-cache.org/">Squid Proxy $B%-%c%C%7%e(B</a> $B$N$h$&$J(B - $BB>$N$h$/;H$o$l$F$$$k%W%m%-%7%5!<%P$G$b<h$i$l$F$$$kJ}K!$G$9!#(B - $B%j%/%(%9%H$N%Q%9$N@hF,$K(B <code>/%2f</code> $B$rIU$1$k$3$H$G!"%W%m%-%7$K(B - FTP $B$N3+;O%G%#%l%/%H%j$r(B ($B%[!<%`%G%#%l%/%H%j$NBe$o$j$K(B) <code>/</code> - $B$KJQ$($k$3$H$,$G$-$^$9!#Nc$($P!"(B<code>/etc/motd</code> $B$r<hF@$9$k$?$a$K$O(B - $B<!$N(B URL $B$r;H$$$^$9(B:</p> + <section id="percent2fhck"><title>ホームディレクトリの外の FTP ファイルに + アクセスするにはどうすればよいの?</title> + <p>FTP URI はログインしているユーザのホームディレクトリからの + 相対パスとして扱われます。残念なことに、/../ はブラウザにより解釈され、 + 実際に FTP サーバには送られないため、/../ を使って上位のディレクトリに + 到達することはできません。この問題を解決するために、いわゆる + <dfn>Squid %2f ハック</dfn> を Apache の FTP プロキシは実装しています。 + これは <a + href="http://www.squid-cache.org/">Squid Proxy キャッシュ</a> のような + 他のよく使われているプロキシサーバでも取られている方法です。 + リクエストのパスの先頭に <code>/%2f</code> を付けることで、プロキシに + FTP の開始ディレクトリを (ホームディレクトリの代わりに) <code>/</code> + に変えることができます。例えば、<code>/etc/motd</code> を取得するためには + 次の URL を使います:</p> <example> ftp://<var>user</var>@<var>host</var>/%2f/etc/motd </example> </section> <!-- /percent2fhck --> - <section id="ftppass"><title>$B%V%i%&%6$N(B URL $BI=<($G(B FTP $B$NJ?J8%Q%9%o!<%I$r(B - $B1#$9$K$O$I$&$9$l$P$h$$$N(B?</title> - <p>FTP $B%5!<%P$K%f!<%6L>$H%Q%9%o!<%I$r;H$C$F%m%0%$%s$9$k$?$a$K!"(B - Apache $B$O0[$J$kJ}K!$r;H$$$^$9!#(BURL $B$K%f!<%6L>$H%Q%9%o!<%I$,$^$C$?$/(B - $B$J$$>l9g$O!"(BApache $B$O(B FTP $B%5!<%P$K(B anonymous $B%m%0%$%s$rAw$j$^$9!#(B - <em>$B$D$^$j(B</em>$B!"(B</p> + <section id="ftppass"><title>ブラウザの URL 表示で FTP の平文パスワードを + 隠すにはどうすればよいの?</title> + <p>FTP サーバにユーザ名とパスワードを使ってログインするために、 + Apache は異なる方法を使います。URL にユーザ名とパスワードがまったく + ない場合は、Apache は FTP サーバに anonymous ログインを送ります。 + <em>つまり</em>、</p> <example> user: anonymous<br /> password: apache_proxy@ </example> - <p>$B$3$l$O(B anonymous $B%"%/%;%9$,@_Dj$5$l$?(B - $B$9$Y$F$N(B FTP $B%5!<%P$KBP$7$FF0:n$7$^$9!#(B</p> + <p>これは anonymous アクセスが設定された + すべての FTP サーバに対して動作します。</p> - <p>$B%f!<%6L>$r;H$C$?8D?MJL$N%m%0%$%s$K$O!"(BURL $B$K%f!<%6L>$rF~$l$k$3$H$,(B - $B$G$-$^$9(B:</p> + <p>ユーザ名を使った個人別のログインには、URL にユーザ名を入れることが + できます:</p> <example> ftp://<var>username</var>@<var>host</var>/myfile </example> - <p>$B$3$N%f!<%6L>$,M?$($i$l$?$H$-$K!"(BFTP $B%5!<%P$,%Q%9%o!<%I$rMW5a$9$l$P(B - ($B$b$A$m$s$=$&$9$Y$-$J$N$G$9$,(B)$B!"(BApache $B$O(B <code>401</code> - (Authorization required) $B$rJV$7$^$9!#$3$l$K$h$j!"%V%i%&%6$O%f!<%6L>(B - $B%Q%9%o!<%I$NF~NO%@%$%"%m%0$rI=<($7$^$9!#%Q%9%o!<%I$,F~NO$5$l$?8e!"(B - $B:F$S@\B3$r;n$_!"@.8y$9$l$P%j%/%(%9%H$7$?%j%=!<%9$,I=<($5$l$^$9!#(B - $B$3$NJ}K!$NMxE@$O%V%i%&%6$,%Q%9%o!<%I$rJ?J8$GI=<($7$J$$$3$H$G$9!#(B - ($B$b$7:G=i$+$i(B</p> + <p>このユーザ名が与えられたときに、FTP サーバがパスワードを要求すれば + (もちろんそうすべきなのですが)、Apache は <code>401</code> + (Authorization required) を返します。これにより、ブラウザはユーザ名 + パスワードの入力ダイアログを表示します。パスワードが入力された後、 + 再び接続を試み、成功すればリクエストしたリソースが表示されます。 + この方法の利点はブラウザがパスワードを平文で表示しないことです。 + (もし最初から</p> <example> ftp://<var>username</var>:<var>password</var>@<var>host</var>/myfile </example> - <p>$B$HF~NO$7$?>l9g$K$OI=<($5$l$F$7$^$$$^$9!#(B)</p> + <p>と入力した場合には表示されてしまいます。)</p> - <note><title>$BCm(B</title> - <p>$BAw?.$5$l$k%Q%9%o!<%I$O!"0E9f2=$5$l$FAw$i$l$k$o$1$G$O$"$j$^$;$s!#(B - $B%V%i%&%6$H(B Apache $B%W%m%-%7%5!<%P$O(B base64 $B$GId9f2=$5$l$?(B - $BJ8;zNs$H$7$F!"(BApache $B%W%m%-%7$H(B FTP $B%5!<%P$N4V$OJ?J8$H$7$FAw$i$l$^$9!#(B - $B$G$9$+$i!"(BHTTP $B$r;H$C$F(B HTTP $B$r%"%/%;%9$9$kA0(B ($B$b$7$/$O!"$=$b$=$b(B - $B8D?ME*$J%U%!%$%k$r(B FTP $B$G%"%/%;%9$9$kA0(B) $B$K$h$/9M$($kI,MW$,$"$j$^$9!#(B - $B0BA4$G$J$$DL?.O)$r;H$C$?>l9g$O!"EpD0<T$KESCf$G%Q%9%o!<%I$rEp$^$l$k(B - $B2DG=@-$,$"$j$^$9!#(B</p> + <note><title>注</title> + <p>送信されるパスワードは、暗号化されて送られるわけではありません。 + ブラウザと Apache プロキシサーバは base64 で符号化された + 文字列として、Apache プロキシと FTP サーバの間は平文として送られます。 + ですから、HTTP を使って HTTP をアクセスする前 (もしくは、そもそも + 個人的なファイルを FTP でアクセスする前) によく考える必要があります。 + 安全でない通信路を使った場合は、盗聴者に途中でパスワードを盗まれる + 可能性があります。</p> </note> </section> <!-- /ftppass --> </section> <!-- /ftpproxy --> - <section id="startup"><title>$BCY$$5/F0(B</title> + <section id="startup"><title>遅い起動</title> <p><directive module="mod_proxy" - >ProxyBlock</directive> $B%G%#%l%/%F%#%V$r;H$C$F$$$k>l9g!"(B - $B8e$N%F%9%H$N$?$a$K5/F0;~$K%[%9%H$N(B - IP $B%"%I%l%9$,D4$Y$i$l$F%-%c%C%7%e$5$l$^$9!#%[%9%HL>$N%k%C%/%"%C%W$N(B - $BB.$5$K$h$C$F$O!"?tIC(B ($B$+$=$l0J>e(B) $B$+$+$k$+$b$7$l$^$;$s!#(B</p> + >ProxyBlock</directive> ディレクティブを使っている場合、 + 後のテストのために起動時にホストの + IP アドレスが調べられてキャッシュされます。ホスト名のルックアップの + 速さによっては、数秒 (かそれ以上) かかるかもしれません。</p> </section> <!-- /startup --> - <section id="intranet"><title>$B%$%s%H%i%M%C%H%W%m%-%7(B</title> - <p>$B%$%s%H%i%M%C%H$K$"$k(B Apache $B%W%m%-%7%5!<%P$O30It$X$N%j%/%(%9%H$r(B - $B2q<R$N%U%!%$%"%&%)!<%k$rDL$7$FAw$i$J$1$l$P$J$j$^$;$s!#(B($B$3$N$?$a$K$O(B - $B8D!9$N(B <var>scheme</var> $B$K$D$$$F$=$l$>$l!"%U%!%$%"%&%)!<%k$N(B - $B%W%m%-%7$K%U%)%o!<%I$5$l$k$h$&$K(B - <directive module="mod_proxy">ProxyRemote</directive> $B%G%#%l%/%F%#%V$r(B - $B@_Dj$7$F$/$@$5$$(B)$B!#$7$+$7%$%s%H%i%M%C%HFb$N%j%=!<%9$K%"%/%;%9$9$k$H$-$O!"(B - $B%U%!%$%"%&%)!<%k$rDL$5$J$$$G$b%"%/%;%9$G$-$^$9!#(B - $B$I$N%[%9%H$,%$%s%H%i%M%C%H$KB0$7!"D>@\%"%/%;%9$9$Y$-$+$r;XDj$9$k$K$O!"(B - <directive module="mod_proxy">NoProxy</directive> $B%G%#%l%/%F%#%V$,(B - $BLr$KN)$A$^$9!#(B</p> - - <p>$B%$%s%H%i%M%C%HFb$N%f!<%6$O(B WWW $B$N%j%/%(%9%H$G%m!<%+%k%I%a%$%s$r(B - $B>JN,$9$k$3$H$,$h$/$"$j$^$9!#(B<code>http://somehost.example.com/</code> - $B$H$$$&%j%/%(%9%H$NBe$o$j$K(B "http://somehost/" $B$r%j%/%(%9%H$7$?$j$7$^$9!#(B - $B$3$N$h$&$J%j%/%(%9%H$r<u$1IU$1!"%5!<%P$K@_Dj$5$l$F$$$k%m!<%+%k%I%a%$%s$,(B - $B0EL[$N$&$A$K;H$o$l$F$$$k$H2r<a$7$F!"C1=c$K%j%/%(%9%H$r=hM}$9$k$b$N$b(B - $B>&MQ%W%m%-%7%5!<%P$NCf$K$O$"$j$^$9!#(B - $B%5!<%P$,(B <a - href="#proxyrequests">$B%W%m%-%7$N%5!<%S%9MQ$K@_Dj$5$l$F$$$F(B</a> - <directive module="mod_proxy">ProxyDomain</directive> $B%G%#%l%/%F%#%V$,(B - $B;HMQ$5$l$?>l9g$K$O!"(BApache $B$O%/%i%$%"%s%H$K%j%@%$%l%/%H1~Ez$rAw$C$F!"(B - $B@5$7$$!"40A4$J(B (<transnote>fully qualified</transnote>) - $B%5!<%P$N%"%I%l%9$KAw$k$3$H$,$G$-$^$9!#$3$N$h$&$K(B - $B%j%@%$%l%/%H$9$k$H!"%f!<%6$N%V%C%/%^!<%/$,@5$7$$40A4$J%[%9%HL>$r4^$`(B - $B$3$H$K$b$J$k$?$a!"$h$j9%$^$7$$J}K!$H8@$($k$G$7$g$&!#(B</p> + <section id="intranet"><title>イントラネットプロキシ</title> + <p>イントラネットにある Apache プロキシサーバは外部へのリクエストを + 会社のファイアウォールを通して送らなければなりません。(このためには + 個々の <var>scheme</var> についてそれぞれ、ファイアウォールの + プロキシにフォワードされるように + <directive module="mod_proxy">ProxyRemote</directive> ディレクティブを + 設定してください)。しかしイントラネット内のリソースにアクセスするときは、 + ファイアウォールを通さないでもアクセスできます。 + どのホストがイントラネットに属し、直接アクセスすべきかを指定するには、 + <directive module="mod_proxy">NoProxy</directive> ディレクティブが + 役に立ちます。</p> + + <p>イントラネット内のユーザは WWW のリクエストでローカルドメインを + 省略することがよくあります。<code>http://somehost.example.com/</code> + というリクエストの代わりに "http://somehost/" をリクエストしたりします。 + このようなリクエストを受け付け、サーバに設定されているローカルドメインが + 暗黙のうちに使われていると解釈して、単純にリクエストを処理するものも + 商用プロキシサーバの中にはあります。 + サーバが <a + href="#proxyrequests">プロキシのサービス用に設定されていて</a> + <directive module="mod_proxy">ProxyDomain</directive> ディレクティブが + 使用された場合には、Apache はクライアントにリダイレクト応答を送って、 + 正しい、完全な (<transnote>fully qualified</transnote>) + サーバのアドレスに送ることができます。このように + リダイレクトすると、ユーザのブックマークが正しい完全なホスト名を含む + ことにもなるため、より好ましい方法と言えるでしょう。</p> </section> <!-- /intranet --> - <section id="envsettings"><title>$B%W%m%H%3%k$ND4@0(B</title> - <p>Keepalive $B$d(B HTTP/1.1 $B$rE,@Z$K<BAu$7$F$$$J$$%"%W%j%1!<%7%g%s%5!<%P$,(B - $B$"$k>u67$G!"(BHTTP/1.0 $B$G(B keepalive $B$rL5$7$K$7$F%j%/%(%9%H$rAw$k$?$a$N(B - $B4D6-JQ?t$,Fs$D$"$j$^$9!#$3$l$i$O(B <directive module="mod_env" - >SetEnv</directive> $B%G%#%l%/%F%#%V$G@_Dj$7$^$9!#(B</p> + <section id="envsettings"><title>プロトコルの調整</title> + <p>Keepalive や HTTP/1.1 を適切に実装していないアプリケーションサーバが + ある状況で、HTTP/1.0 で keepalive を無しにしてリクエストを送るための + 環境変数が二つあります。これらは <directive module="mod_env" + >SetEnv</directive> ディレクティブで設定します。</p> - <p><code>force-proxy-request-1.0</code> $B$H(B <code>proxy-nokeepalive</code> - $B$,$=$N4D6-JQ?t$G$9!#(B</p> + <p><code>force-proxy-request-1.0</code> と <code>proxy-nokeepalive</code> + がその環境変数です。</p> <example> <Location /buggyappserver/><br /> @@ -347,18 +347,18 @@ <directivesynopsis type="section"> <name>Proxy</name> -<description>$B%W%m%-%7$5$l$k%j%=!<%9$KE,MQ$5$l$k%3%s%F%J(B</description> +<description>プロキシされるリソースに適用されるコンテナ</description> <syntax><Proxy <var>wildcard-url</var>> ...</Proxy></syntax> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p><directive type="section">Proxy</directive> $B%;%/%7%g%sCf$N(B - $B%G%#%l%/%F%#%V$O%^%C%A$9$k%W%m%-%7$5$l$k%3%s%F%s%D$K$N$_E,MQ$5$l$^$9!#(B - $B%7%'%k7A<0$N%o%$%k%I%+!<%I$,;H$($^$9!#(B</p> + <p><directive type="section">Proxy</directive> セクション中の + ディレクティブはマッチするプロキシされるコンテンツにのみ適用されます。 + シェル形式のワイルドカードが使えます。</p> - <p>$BNc$($P!"<!$N@_Dj$O(B <code>yournetwork.example.com</code> $B$N(B - $B%[%9%H$K$N$_%W%m%-%7%5!<%P$r7PM3$7$?%"%/%;%9$r5v2D$7$^$9(B:</p> + <p>例えば、次の設定は <code>yournetwork.example.com</code> の + ホストにのみプロキシサーバを経由したアクセスを許可します:</p> <example> <Proxy *><br /> @@ -370,9 +370,9 @@ </Proxy> </example> - <p>$B<!$NNc$O(B <code>example.com</code> $B$N(B <code>foo</code> $B%G%#%l%/%H%j$N(B - $B$9$Y$F$N%U%!%$%k$KBP$7$F!"%W%m%-%7%5!<%P$rDL$7$FAw$i$l$?$H$-$K$O(B - <code>INCLUDES</code> $B%U%#%k%?$rDL$7$FAw$k$h$&$K@_Dj$7$^$9(B:</p> + <p>次の例は <code>example.com</code> の <code>foo</code> ディレクトリの + すべてのファイルに対して、プロキシサーバを通して送られたときには + <code>INCLUDES</code> フィルタを通して送るように設定します:</p> <example> <Proxy http://example.com/foo/*><br /> @@ -388,343 +388,343 @@ <directivesynopsis> <name>ProxyBadHeader</name> -<description>$B1~Ez$K$*$+$7$J%X%C%@$,$"$k>l9g$N07$$J}$r7h$a$k(B</description> +<description>応答におかしなヘッダがある場合の扱い方を決める</description> <syntax>ProxyBadHeader IsError|Ignore|StartBody</syntax> <default>ProxyBadHeader IsError</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> -<compatibility>2.0.44 $B0J9_(B</compatibility> +<compatibility>2.0.44 以降</compatibility> <usage> - <p><directive>ProxyBadHeader</directive> $B%G%#%l%/%F%#%V$O9=J8E*$K(B - $B4V0c$C$?%X%C%@(B (<em>$B$D$^$j(B</em> $B%3%m%s$r4^$^$J$$$b$N(B) $B$r<u$1<h$C$?$H$-$K(B - <module>mod_proxy</module> $B$,$I$&?6$kIq$&$+$r7h$a$^$9!#0J2<$N0z?t$r(B - $B<h$k$3$H$,$G$-$^$9(B:</p> + <p><directive>ProxyBadHeader</directive> ディレクティブは構文的に + 間違ったヘッダ (<em>つまり</em> コロンを含まないもの) を受け取ったときに + <module>mod_proxy</module> がどう振る舞うかを決めます。以下の引数を + 取ることができます:</p> <dl> <dt><code>IsError</code></dt> - <dd>$B%j%/%(%9%H$rCf;_$7$F(B 502 (Bad Gateway) $B1~Ez$rJV$9!#(B - $B$3$l$,%G%U%)%k%H$NF0:n$G$9!#(B</dd> + <dd>リクエストを中止して 502 (Bad Gateway) 応答を返す。 + これがデフォルトの動作です。</dd> <dt><code>Ignore</code></dt> - <dd>$B4V0c$C$?%X%C%@9T$r$=$b$=$bB8:_$7$J$+$C$?$b$N$H$7$F07$&!#(B</dd> + <dd>間違ったヘッダ行をそもそも存在しなかったものとして扱う。</dd> <dt><code>StartBody</code></dt> - <dd>$B4V0c$C$?%X%C%@9T$r<u$1<h$C$?$i!"%X%C%@$NFI$_9~$_$r=*N;$7$F!"(B - $B$=$l0J9_$N;D$j$r%\%G%#$H$7$F07$&!#$3$l$O%X%C%@$H%\%G%#$N4V$K6u9T$rF~$lK:$l$F(B - $B$7$^$C$F$$$k$h$&$J!"$-$A$s$HF0:n$7$F$$$J$$%P%C%/%(%s%I%5!<%P$,$"$k$H$-$K!"(B - $BLdBj$r2sHr$9$k$N$KLr$KN)$A$^$9!#(B</dd> + <dd>間違ったヘッダ行を受け取ったら、ヘッダの読み込みを終了して、 + それ以降の残りをボディとして扱う。これはヘッダとボディの間に空行を入れ忘れて + しまっているような、きちんと動作していないバックエンドサーバがあるときに、 + 問題を回避するのに役に立ちます。</dd> </dl> </usage> </directivesynopsis> <directivesynopsis type="section"> <name>ProxyMatch</name> -<description>$B@55,I=8=$G$N%^%C%A$K$h$k%W%m%-%7%j%=!<%9MQ$N%G%#%l%/%F%#%V%3%s%F%J(B</description> +<description>正規表現でのマッチによるプロキシリソース用のディレクティブコンテナ</description> <syntax><ProxyMatch <var>regex</var>> ...</ProxyMatch></syntax> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p><directive type="section">ProxyMatch</directive> $B$O(B URL $B$N%^%C%A$K(B - $B@55,I=8=$rMQ$$$k$3$H$r=|$$$F(B <directive type="section" - >Proxy</directive> $B%G%#%l%/%F%#%V$HF1$8$G$9!#(B</p> + <p><directive type="section">ProxyMatch</directive> は URL のマッチに + 正規表現を用いることを除いて <directive type="section" + >Proxy</directive> ディレクティブと同じです。</p> </usage> </directivesynopsis> <directivesynopsis> <name>ProxyPreserveHost</name> -<description>$B%W%m%-%7%j%/%(%9%H$K!"<u$1IU$1$?(B Host HTTP $B%X%C%@$r;H$&(B</description> +<description>プロキシリクエストに、受け付けた Host HTTP ヘッダを使う</description> <syntax>ProxyPreserveHost On|Off</syntax> <default>ProxyPreserveHost Off</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> -<compatibility>Apache 2.0.31 $B0J9_$G;HMQ2DG=(B</compatibility> +<compatibility>Apache 2.0.31 以降で使用可能</compatibility> <usage> - <p>$B$3$N%*%W%7%g%s$,M-8z$K$J$C$F$$$k>l9g!"(B<directive>ProxyPass</directive> - $B$G;XDj$7$?%[%9%HL>$NBe$o$j$K!"<u$1IU$1$?%j%/%(%9%H$N(B Host: $B9T$r(B - $B%W%m%-%7@h$N%[%9%H$KAw$j$^$9!#(B</p> - - <p>$B$3$N%*%W%7%g%s$ODL>o$O(B <code>Off</code> $B$K@_Dj$7$F$/$@$5$$!#(B - $B$[$H$s$I$N>l9g!"$3$l$OBgNL$NL>A0%Y!<%9$N%P!<%A%c%k%[%9%F%#%s%0$r9T$J$C$F$$$F!"(B - $B85!9$N(B Host $B%X%C%@$r%P%C%/%(%s%I%5!<%P$,2r<a$9$kI,MW$N$"$k$H$-$N$h$&$J!"(B - $BFCJL$J@_Dj$,I,MW$J>l9g$K$N$_M-MQ$G$9!#(B</p> + <p>このオプションが有効になっている場合、<directive>ProxyPass</directive> + で指定したホスト名の代わりに、受け付けたリクエストの Host: 行を + プロキシ先のホストに送ります。</p> + + <p>このオプションは通常は <code>Off</code> に設定してください。 + ほとんどの場合、これは大量の名前ベースのバーチャルホスティングを行なっていて、 + 元々の Host ヘッダをバックエンドサーバが解釈する必要のあるときのような、 + 特別な設定が必要な場合にのみ有用です。</p> </usage> </directivesynopsis> <directivesynopsis> <name>ProxyRequests</name> -<description>$B%U%)%o!<%I(B ($BI8=`$N(B) $B%W%m%-%7%j%/%(%9%H$rM-8z$K$9$k(B</description> +<description>フォワード (標準の) プロキシリクエストを有効にする</description> <syntax>ProxyRequests On|Off</syntax> <default>ProxyRequests Off</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p>$B$3$l$O(B Apache $B$N%U%)%o!<%I%W%m%-%7%5!<%P$H$7$F$NF0:n$r(B - $BM-8z$b$7$/$OL58z$K$7$^$9!#(B(ProxyRequests $B$r(B <code>Off</code> $B$K(B - $B@_Dj$7$F$b!"(B<directive module="mod_proxy">ProxyPass</directive> - $B$N@_Dj$OL58z$K$J$j$^$;$s!#(B)</p> + <p>これは Apache のフォワードプロキシサーバとしての動作を + 有効もしくは無効にします。(ProxyRequests を <code>Off</code> に + 設定しても、<directive module="mod_proxy">ProxyPass</directive> + の設定は無効になりません。)</p> - <p>$BDL>o$N%j%P!<%9%W%m%-%7$N@_Dj$G$O!"$3$N%*%W%7%g%s$O(B <code>Off</code> - $B$K@_Dj$7$F$/$@$5$$!#(B</p> + <p>通常のリバースプロキシの設定では、このオプションは <code>Off</code> + に設定してください。</p> - <p>HTTP $B$d(B FTP $B%5%$%H$X$N%W%m%-%7$N5!G=$rM-8z$K$7$?$$>l9g$O!"(B - <module>mod_proxy_http</module> $B$d(B <module>mod_proxy_ftp</module> $B$,(B - $B%5!<%P$KAH$_9~$^$l$F$$$J$1$l$P$J$j$^$;$s!#(B</p> + <p>HTTP や FTP サイトへのプロキシの機能を有効にしたい場合は、 + <module>mod_proxy_http</module> や <module>mod_proxy_ftp</module> が + サーバに組み込まれていなければなりません。</p> - <note type="warning"><title>$B7Y9p(B</title> + <note type="warning"><title>警告</title> <p><a href="#access" - >$B%5!<%P$r0BA4$K$9$k(B</a>$B$^$G(B <directive module="mod_proxy" - >ProxyRequests</directive> $B$OM-8z$K$7$J$$$G$/$@$5$$!#(B - $B%*!<%W%s%W%m%-%7%5!<%P$O$"$J$?<+?H$N%M%C%H%o!<%/$K$H$C$F$b!"(B - $B%$%s%?!<%M%C%HA4BN$K$H$C$F$b4m81$G$9!#(B</p> + >サーバを安全にする</a>まで <directive module="mod_proxy" + >ProxyRequests</directive> は有効にしないでください。 + オープンプロキシサーバはあなた自身のネットワークにとっても、 + インターネット全体にとっても危険です。</p> </note> </usage> </directivesynopsis> <directivesynopsis> <name>ProxyRemote</name> -<description>$BFCDj$N%j%/%(%9%H$r07$&;~$K;H$o$l$k%j%b!<%H%W%m%-%7$r;XDj$9$k(B</description> +<description>特定のリクエストを扱う時に使われるリモートプロキシを指定する</description> <syntax>ProxyRemote <var>match</var> <var>remote-server</var></syntax> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O$3$N%W%m%-%7$KBP$9$k%j%b!<%H%W%m%-%7$rDj5A$7$^$9!#(B - <var>match</var> $B$O%j%b!<%H%5!<%P$,%5%]!<%H$9$k(B URL $B%9%-!<%`!"(B - $B%j%b!<%H%5!<%P$,;H$&$O$:$N(B URL $B$N0lItJ,!"%5!<%P$,$9$Y$F$N(B - $B%j%/%(%9%H$K;H$o$l$k$3$H$r<($9(B <code>*</code> $B$N$I$l$+$K$J$j$^$9!#(B - <var>remote-server</var> $B$O%j%b!<%H%5!<%P$NItJ,(B URL $B$G$9!#9=J8(B:</p> + <p>このディレクティブはこのプロキシに対するリモートプロキシを定義します。 + <var>match</var> はリモートサーバがサポートする URL スキーム、 + リモートサーバが使うはずの URL の一部分、サーバがすべての + リクエストに使われることを示す <code>*</code> のどれかになります。 + <var>remote-server</var> はリモートサーバの部分 URL です。構文:</p> <example> <dfn>remote-server</dfn> = <var>scheme</var>://<var>hostname</var>[:<var>port</var>] </example> - <p><var>scheme</var> $B$O<B:]>e%j%b!<%H%5!<%P$H$NDL?.$K;H$o$l$k%W%m%H%3%k$r(B - $B7hDj$7$^$9!#$3$N%b%8%e!<%k$G$O(B <code>http</code> $B$@$1$,%5%]!<%H$5$l$F(B - $B$$$^$9!#(B</p> + <p><var>scheme</var> は実際上リモートサーバとの通信に使われるプロトコルを + 決定します。このモジュールでは <code>http</code> だけがサポートされて + います。</p> - <example><title>$BNc(B</title> + <example><title>例</title> ProxyRemote http://goodguys.com/ http://mirrorguys.com:8000<br /> ProxyRemote * http://cleversite.com<br /> ProxyRemote ftp http://ftpproxy.mydomain.com:8080 </example> - <p>$B$3$NNc$G$O!"%W%m%-%7$O(B FTP $B%j%/%(%9%H$rJL$N(B HTTP $B%j%/%(%9%H$GJq$s$G(B - $B$=$N$h$&$J%j%/%(%9%H$r07$($kJL$N%W%m%-%7$KE>Aw$7$^$9!#(B</p> + <p>この例では、プロキシは FTP リクエストを別の HTTP リクエストで包んで + そのようなリクエストを扱える別のプロキシに転送します。</p> - <p>$B$3$N%*%W%7%g%s$O%j%P!<%9%W%m%-%7$N@_Dj$b%5%]!<%H$7$^$9!#(B - $B%5!<%P$,JL$N%U%)%o!<%I%W%m%-%7$N8e$m$K1#$5$l$F$$$k>l9g$G$b(B - $B%P%C%/%(%s%I%&%'%V%5!<%P$r%P!<%A%c%k%[%9%H$N(B URL $B6u4V$KF~$l$k$3$H$,(B - $B$G$-$^$9!#(B</p> + <p>このオプションはリバースプロキシの設定もサポートします。 + サーバが別のフォワードプロキシの後ろに隠されている場合でも + バックエンドウェブサーバをバーチャルホストの URL 空間に入れることが + できます。</p> </usage> </directivesynopsis> <directivesynopsis> <name>ProxyRemoteMatch</name> -<description>$B@55,I=8=$G$N%^%C%A$K$h$k%j%/%(%9%H$r07$&%j%b!<%H%W%m%-%7$N;XDj(B</description> +<description>正規表現でのマッチによるリクエストを扱うリモートプロキシの指定</description> <syntax>ProxyRemoteMatch <var>regex</var> <var>remote-server</var></syntax> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p><directive>ProxyRemoteMatch</directive> $B$O:G=i$N0z?t$,%j%/%(%9%H$5$l$?(B - URL $B$K%^%C%A$9$k@55,I=8=$G$"$k$3$H$r=|$1$P(B <directive - module="mod_proxy">ProxyRemote</directive> $B%G%#%l%/%F%#%V$HF1$8$G$9!#(B</p> + <p><directive>ProxyRemoteMatch</directive> は最初の引数がリクエストされた + URL にマッチする正規表現であることを除けば <directive + module="mod_proxy">ProxyRemote</directive> ディレクティブと同じです。</p> </usage> </directivesynopsis> <directivesynopsis> <name>ProxyPass</name> -<description>$B%j%b!<%H%5!<%P$r%m!<%+%k%5!<%P$N(B URL $B6u4V$K%^%C%W$9$k(B</description> +<description>リモートサーバをローカルサーバの URL 空間にマップする</description> <syntax>ProxyPass [<var>path</var>] !|<var>url</var> [<var>key=value</var> <var>key=value</var> ...]]</syntax> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context> </contextlist> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O%j%b!<%H%5!<%P$r%m!<%+%k%5!<%P$NL>A06u4V$K(B - $B%^%C%W$G$-$k$h$&$K$7$^$9!#%m!<%+%k%5!<%P$ODL>o$N0UL#$G$N%W%m%-%7$H(B - $B$7$F$OF0:n$;$:!"%j%b!<%H%5!<%P$N%_%i!<$H$7$F?6$kIq$$$^$9!#(B - <var>path</var> $B$O%m!<%+%k$N2>A[%Q%9$NL>A0$G$9!#(B<var>url</var> $B$O(B - $B%j%b!<%H%5!<%P$NItJ,(B URL $B$K$J$j!"%/%(%j!<J8;zNs$r4^$`$3$H$O$G$-$^$;$s!#(B</p> + <p>このディレクティブはリモートサーバをローカルサーバの名前空間に + マップできるようにします。ローカルサーバは通常の意味でのプロキシと + しては動作せず、リモートサーバのミラーとして振る舞います。 + <var>path</var> はローカルの仮想パスの名前です。<var>url</var> は + リモートサーバの部分 URL になり、クエリー文字列を含むことはできません。</p> - <note type="warning"><directive>ProxyPass</directive> $B%G%#%l%/%F%#%V$r(B - $B;H$C$F$$$k$H$-$O(B <directive - module="mod_proxy">ProxyRequests</directive> $B%G%#%l%/%F%#%V$ODL>o$O(B - <strong>off</strong> $B$K@_Dj$5$l$F$$$k$Y$-$G$9!#(B</note> + <note type="warning"><directive>ProxyPass</directive> ディレクティブを + 使っているときは <directive + module="mod_proxy">ProxyRequests</directive> ディレクティブは通常は + <strong>off</strong> に設定されているべきです。</note> - <p>$B%m!<%+%k%5!<%P$N%"%I%l%9$,(B <code>http://example.com/</code> $B$G$"$k$H(B - $B$7$^$9!#$9$k$H!"(B</p> + <p>ローカルサーバのアドレスが <code>http://example.com/</code> であると + します。すると、</p> <example> ProxyPass /mirror/foo/ http://backend.example.com/ </example> - <p>$B$H@_Dj$9$k$H(B <code>http://example.com/mirror/foo/bar</code> $B$X$N(B - $B%j%/%(%9%H$,FbItE*$K(B <code>http://backend.example.com/bar</code> $B$X$N(B - $B%W%m%-%7%j%/%(%9%H$KJQ49$5$l$k$3$H$K$J$j$^$9!#(B</p> + <p>と設定すると <code>http://example.com/mirror/foo/bar</code> への + リクエストが内部的に <code>http://backend.example.com/bar</code> への + プロキシリクエストに変換されることになります。</p> - <p>$B%5%V%G%#%l%/%H%j$r%j%P!<%9%W%m%-%7$7$?$/$J$$$H$-$K(B <code>!</code> $B$O(B - $BLr$KN)$A$^$9!#(B<em>$BNc$($P(B</em>$B!"(B</p> + <p>サブディレクトリをリバースプロキシしたくないときに <code>!</code> は + 役に立ちます。<em>例えば</em>、</p> <example> ProxyPass /mirror/foo/i !<br /> ProxyPass /mirror/foo http://backend.example.com </example> - <p>$B$O(B <code>/mirror/foo/i</code> $B$r(B<em>$B=|$/(B</em> - <code>/mirror/foo</code> $B$X$N$9$Y$F$N%j%/%(%9%H$r(B - <code>backend.example.com</code> $B$K%W%m%-%7$7$^$9!#(B</p> + <p>は <code>/mirror/foo/i</code> を<em>除く</em> + <code>/mirror/foo</code> へのすべてのリクエストを + <code>backend.example.com</code> にプロキシします。</p> - <note><title>$BCm(B</title> - <p>$B=gHV$O=EMW$G$9!#0lHLE*$J(B <directive>ProxyPass</directive> - $B%G%#%l%/%F%#%V$N(B<em>$BA0$K(B</em> - $B=|30%G%#%l%/%F%#%V$rCV$/I,MW$,$"$j$^$9!#(B</p> + <note><title>注</title> + <p>順番は重要です。一般的な <directive>ProxyPass</directive> + ディレクティブの<em>前に</em> + 除外ディレクティブを置く必要があります。</p> </note> - <p>2.1 $B$N?75!G=$G!"%P%C%/%(%s%I%5!<%P$H$N@\B3$K%W!<%k$5$l$?%3%M%/%7%g%s$r(B - $B;H$($k$h$&$K$J$j$^$7$?!#(B<code>key=value</code> $B7A<0$N%Q%i%a!<%?$G(B - $B$3$N%3%M%/%7%g%s%W!<%j%s%0$ND4@0$,$G$-$^$9!#(B<code>Hard Maximum</code> - $B$N%G%U%)%k%HCM$O!"M-8z$K$J$C$F$$$k(B MPM $B$G$N%W%m%;%9Ev$?$j$N%9%l%C%I?t$H(B - $BF1$8?t$N%3%M%/%7%g%s?t$G$9!#(Bprefork MPM $B$G$ODL>o$O(B 1 $B$G!"(Bworker MPM $B$G$O(B - <directive>ThreadsPerChild</directive> $B$GD4@0$5$l$^$9!#(B</p> + <p>2.1 の新機能で、バックエンドサーバとの接続にプールされたコネクションを + 使えるようになりました。<code>key=value</code> 形式のパラメータで + このコネクションプーリングの調整ができます。<code>Hard Maximum</code> + のデフォルト値は、有効になっている MPM でのプロセス当たりのスレッド数と + 同じ数のコネクション数です。prefork MPM では通常は 1 で、worker MPM では + <directive>ThreadsPerChild</directive> で調整されます。</p> - <p><code>min</code> $B$N@_Dj$G!"%P%C%/%(%s%I%5!<%P$H$N4V$K2?K\$N%3%M%/%7%g%s$r(B - $B>o;~3+$/$+$,7h$^$j$^$9!#(BSoft Maximum <code>smax</code> $B$N?t$K(B - $BC#$9$k$^$GI,MW$K1~$8$F%3%M%/%7%g%s$O@8@.$5$l$^$9!#(B<code>smax</code> - $B$rD6$($??t$N%3%M%/%7%g%s$O!"@8B8;~4V(B <code>ttl</code> $B$G@ZCG$5$l$^$9!#(B - $B%P%C%/%(%s%I%5!<%P$H(B Hard Maximum <code>max</code> $B$N?t0J>e$N%3%M%/%7%g%s$r(B - $B@8@.$9$k$3$H$O$"$j$^$;$s!#(B</p> + <p><code>min</code> の設定で、バックエンドサーバとの間に何本のコネクションを + 常時開くかが決まります。Soft Maximum <code>smax</code> の数に + 達するまで必要に応じてコネクションは生成されます。<code>smax</code> + を超えた数のコネクションは、生存時間 <code>ttl</code> で切断されます。 + バックエンドサーバと Hard Maximum <code>max</code> の数以上のコネクションを + 生成することはありません。</p> <example> ProxyPass /example http://backend.example.com smax=5 max=20 ttl=120 retry=300 </example> <table> - <tr><th>$B%Q%i%a!<%?(B</th> - <th>$B%G%U%)%k%HCM(B</th> - <th>$B@bL@(B</th></tr> + <tr><th>パラメータ</th> + <th>デフォルト値</th> + <th>説明</th></tr> <tr><td>min</td> <td>0</td> - <td>$B%P%C%/%(%s%I%5!<%P$H$N@\B3$G(B - $B>o$K3+$$$F$$$k%3%M%/%7%g%s?t$N:G>.CM(B</td></tr> + <td>バックエンドサーバとの接続で + 常に開いているコネクション数の最小値</td></tr> <tr><td>max</td> <td>1...n</td> - <td>$B%P%C%/%(%s%I%5!<%P$H$N@\B3?t$N(B Hard Maximum - <transnote>$B%O!<%I%j%_%C%H(B</transnote>$B!#(B - $B%G%U%)%k%HCM$O!";HMQ$7$F$$$k(B MPM $B$N%W%m%;%9$"$?$j$N%9%l%C%I?t$K$J$C$F$$$^$9!#(B - Prefork MPM $B$G$O>o$K(B 1 $B$G!"(BWorker MPM $B$G$O(B <directive>ThreadsPerChild</directive> - $B$GD4@a$G$-$^$9!#(BHard Maximum $B0J>e$K%P%C%/%(%s%I%5!<%P$H$N%3%M%/%7%g%s$r(B - $B@8@.$9$k$3$H$O$"$j$^$;$s!#(B</td></tr> + <td>バックエンドサーバとの接続数の Hard Maximum + <transnote>ハードリミット</transnote>。 + デフォルト値は、使用している MPM のプロセスあたりのスレッド数になっています。 + Prefork MPM では常に 1 で、Worker MPM では <directive>ThreadsPerChild</directive> + で調節できます。Hard Maximum 以上にバックエンドサーバとのコネクションを + 生成することはありません。</td></tr> <tr><td>smax</td> <td>max</td> - <td>$B@\B3?t$N(B Soft Maximum <transnote>$B%=%U%H%j%_%C%H(B</transnote>$B$^$G!"(B - $B%3%M%/%7%g%s$OI,MW$K1~$8$F@8@.$5$l$^$9!#(B - <code>smax</code> $B$rD6$($??t$N%3%M%/%7%g%s$O@8B8;~4V(B <code>ttl</code> - $B$G@ZCG$5$l$^$9!#(B + <td>接続数の Soft Maximum <transnote>ソフトリミット</transnote>まで、 + コネクションは必要に応じて生成されます。 + <code>smax</code> を超えた数のコネクションは生存時間 <code>ttl</code> + で切断されます。 </td></tr> <tr><td>ttl</td> <td>-</td> - <td><code>smax</code> $B?t$rD6$($?Hs3hF0>uBV$N%3%M%/%7%g%s$N@8B8;~4V$r!"(B - $BIC$G;XDj$7$^$9!#$3$N4|4VFb$K;HMQ$5$l$J$+$C$?%3%M%/%7%g%s$O!"(B - $BA4$FJD$8$i$l$^$9!#(B + <td><code>smax</code> 数を超えた非活動状態のコネクションの生存時間を、 + 秒で指定します。この期間内に使用されなかったコネクションは、 + 全て閉じられます。 </td></tr> <tr><td>timeout</td> <td><directive>Timeout</directive></td> - <td>$B%3%M%/%7%g%s%?%$%`%"%&%H$rIC$G;XDj$7$^$9!#FC$K;XDj$5$l$J$1$l$P!"(B - $B%U%j!<$J%3%M%/%7%g%s$r<hF@$G$-$k$^$GBT$A$^$9!#$3$N%G%#%l%/%F%#%V$O(B - <code>max</code> $B%Q%i%a!<%?$H9g$o$;$F;H$&$3$H$G!"%P%C%/%(%s%I%5!<%P$H$N(B - $B@\B3?t$r@)8f$9$k$N$K;H$$$^$9!#(B + <td>コネクションタイムアウトを秒で指定します。特に指定されなければ、 + フリーなコネクションを取得できるまで待ちます。このディレクティブは + <code>max</code> パラメータと合わせて使うことで、バックエンドサーバとの + 接続数を制御するのに使います。 </td></tr> <tr><td>acquire</td> <td>-</td> - <td>$B@_Dj$9$k$H!"%3%M%/%7%g%s%W!<%k$+$i%U%j!<$N%3%M%/%7%g%s$r<hF@$9$k$?$a$K(B - $BBT5!$9$kBT$A;~4V$N:GBgCM$K$J$j$^$9!#%U%j!<$N%3%M%/%7%g%s$,%W!<%k$K$J$+$C$?>l9g$O!"(B - <code>SERVER_BUSY</code> $B%9%F!<%?%9$,%/%i%$%"%s%H$KJV$5$l$^$9!#(B + <td>設定すると、コネクションプールからフリーのコネクションを取得するために + 待機する待ち時間の最大値になります。フリーのコネクションがプールになかった場合は、 + <code>SERVER_BUSY</code> ステータスがクライアントに返されます。 </td></tr> <tr><td>keepalive</td> <td>Off</td> - <td>$B%P%C%/%(%s%I%5!<%P$H(B Apache $B$N4V$K%U%!%$%"!<%&%)!<%k$,$"$k>l9g$K$O!"(B - $B$3$N%Q%i%a!<%?$r;H$C$F$/$@$5$$!#%U%!%$%"%&%)!<%k$O1}!9$K$7$F!"(B - $BHs3hF0>uBV$N%3%M%/%7%g%s$rMn$H$=$&$H$7$^$9!#(B - $B$3$N%U%i%0$O(B OS $B$K;X<($7$F!"(B<code>KEEP_ALIVE</code> $B%a%C%;!<%8$rHs3hF0>uBV$N(B - $B%3%M%/%7%g%s$G$bAw$k$h$&$K$7$^$9(B ($B4V3V$O(B OS $B$N%0%m!<%P%k@_Dj$K0MB8$7!"(B - $BDL>o$O(B 120ms $B4V3V(B) $B!#$3$l$K$h$C$F%U%!%$%"%&%)!<%k$K$h$C$F%3%M%/%7%g%s$,(B - $BMn$H$5$l$k$3$H$rKI$2$^$9!#(Bkeepalive $B$rM-8z$K$9$k$K$O!"$3$N%W%m%Q%F%#$r(B - <code>On</code> $B$K$7$F$/$@$5$$!#(B + <td>バックエンドサーバと Apache の間にファイアーウォールがある場合には、 + このパラメータを使ってください。ファイアウォールは往々にして、 + 非活動状態のコネクションを落とそうとします。 + このフラグは OS に指示して、<code>KEEP_ALIVE</code> メッセージを非活動状態の + コネクションでも送るようにします (間隔は OS のグローバル設定に依存し、 + 通常は 120ms 間隔) 。これによってファイアウォールによってコネクションが + 落とされることを防げます。keepalive を有効にするには、このプロパティを + <code>On</code> にしてください。 </td></tr> <tr><td>retry</td> <td>60</td> - <td>$B%3%M%/%7%g%s$r%W!<%j%s%0$9$k$?$a$N!"%j%H%i%$$N%?%$%`%"%&%H$rIC$G(B - $B;XDj$7$^$9!#%P%C%/%(%s%I%5!<%P$X$N%3%M%/%7%g%s%W!<%j%s%0$,<:GT$7$?>l9g$O!"(B - $B%?%$%`%"%&%H$N4|4V$,2a$.$k$^$G!"$=$N%5!<%P$K%j%/%(%9%H$r%U%)%o!<%I$7$^$;$s!#(B - $B$3$N5!G=$r;H$&$H!"%P%C%/%(%s%I%5!<%P$r%a%s%F%J%s%9$N$?$a$K%7%c%C%H%@%&%s$7!"(B - $B8e$G%*%s%i%$%s$KI|5"$5$;$k$H$$$C$?$3$H$,$G$-$^$9!#(B + <td>コネクションをプーリングするための、リトライのタイムアウトを秒で + 指定します。バックエンドサーバへのコネクションプーリングが失敗した場合は、 + タイムアウトの期間が過ぎるまで、そのサーバにリクエストをフォワードしません。 + この機能を使うと、バックエンドサーバをメンテナンスのためにシャットダウンし、 + 後でオンラインに復帰させるといったことができます。 </td></tr> <tr><td>loadfactor</td> <td>1</td> - <td>$B%o!<%+!<$"$?$j$NIi2Y78?t$G$9!#(BBalancerMember $B$G;H$$$^$9!#(B - 1 $B$+$i(B 100 $B$^$G$N?t;z$G$=$N%o!<%+!<$KBP$9$k@55,2=$5$l$?Ii2YN($r;XDj$7$^$9!#(B + <td>ワーカーあたりの負荷係数です。BalancerMember で使います。 + 1 から 100 までの数字でそのワーカーに対する正規化された負荷率を指定します。 </td></tr> <tr><td>route</td> <td>-</td> - <td>$B%m!<%I%P%i%s%5$G;H$C$?>l9g!"%o!<%+!<$N%k!<%F%#%s%0$r$7$^$9!#(B - $B%k!<%H$O%;%C%7%g%s(B ID $B$KIU2C$5$l$?CM$K$J$j$^$9!#(B + <td>ロードバランサで使った場合、ワーカーのルーティングをします。 + ルートはセッション ID に付加された値になります。 </td></tr> <tr><td>redirect</td> <td>-</td> - <td>$B%o!<%+!<$N%j%@%$%l%/%7%g%s7PO)$G$9!#$3$NCM$ODL>o$O!"(B - $B0BA4$K%/%i%9%?$+$i%N!<%I$r<h$j5n$k@_Dj$rF0E*$KF~$l$k$?$a$K;H$$$^$9!#(B - $B%;%C%7%g%s(B ID $B$NL5$$%j%/%(%9%HA4$F$r;XDj$7$?>l9g$O!"(B - $B$3$NCM$HF1$8%k!<%F%#%s%0%Q%i%a!<%?$r;}$D(B - BalancerMember $B$K%j%@%$%l%/%H$5$l$^$9!#(B + <td>ワーカーのリダイレクション経路です。この値は通常は、 + 安全にクラスタからノードを取り去る設定を動的に入れるために使います。 + セッション ID の無いリクエスト全てを指定した場合は、 + この値と同じルーティングパラメータを持つ + BalancerMember にリダイレクトされます。 </td></tr> </table> - <p>Proxy $B%G%#%l%/%F%#%V$N%9%-!<%`$,(B <code>balancer://</code> $B$K$J$C$F$$$k>l9g$O!"(B - $B%P%C%/%(%s%I%5!<%P$H<B:]$K$ODL?.$7$J$$2>A[%o!<%+!<$,@8@.$5$l$^$9!#(B - $B$3$N%o!<%+!<$O4v$D$+$N(B "$BK\J*$N(B" $B%o!<%+!<$N4IM}$r$D$+$5$I$j$^$9!#(B - $B$3$N>l9g%Q%i%a!<%?$O!"$3$N2>A[%o!<%+!<$KBP$7$F@_Dj$5$l$^$9!#(B + <p>Proxy ディレクティブのスキームが <code>balancer://</code> になっている場合は、 + バックエンドサーバと実際には通信しない仮想ワーカーが生成されます。 + このワーカーは幾つかの "本物の" ワーカーの管理をつかさどります。 + この場合パラメータは、この仮想ワーカーに対して設定されます。 </p> <table> - <tr><th>$B%Q%i%a!<%?(B</th> - <th>$B%G%U%)%k%HCM(B</th> - <th>$B@bL@(B</th></tr> + <tr><th>パラメータ</th> + <th>デフォルト値</th> + <th>説明</th></tr> <tr><td>lbmethod</td> <td>-</td> - <td>Balancer $B$N%m!<%I%P%i%s%9J}K!!#;HMQ$9$k%m!<%I%P%i%s%9$N(B - $B%9%1%8%e!<%j%s%0J}K!$rA*$S$^$9!#=hM}$7$?%j%/%(%9%H$N?t$G=E$_IU$1$9$k(B - <code>byrequests</code> $B$+!"E>AwNL$N%P%$%H?t$G=E$_IU$1$9$k(B - <code>bytraffic</code> $B$r@_Dj$G$-$^$9!#%G%U%)%k%H$O(B - <code>byrequests</code> $B$G$9!#(B + <td>Balancer のロードバランス方法。使用するロードバランスの + スケジューリング方法を選びます。処理したリクエストの数で重み付けする + <code>byrequests</code> か、転送量のバイト数で重み付けする + <code>bytraffic</code> を設定できます。デフォルトは + <code>byrequests</code> です。 </td></tr> <tr><td>stickysession</td> <td>-</td> - <td>$B%P%i%s%5!<$N%9%F%#%C%-!<%;%C%7%g%sL>$G$9!#DL>o$O$3$NCM$O(B <code>JSESSIONID</code> - $B$d(B <code>PHPSESSIONID</code> $B$H$$$C$?$b$N$K$J$j$^$9$,!"$3$NCM$O(B - $B%P%C%/%(%s%I%"%W%j%1!<%7%g%s$N%5%]!<%H$9$k%;%C%7%g%s$K0MB8$7$^$9!#(B + <td>バランサーのスティッキーセッション名です。通常はこの値は <code>JSESSIONID</code> + や <code>PHPSESSIONID</code> といったものになりますが、この値は + バックエンドアプリケーションのサポートするセッションに依存します。 </td></tr> <tr><td>nofailover</td> <td>Off</td> - <td><code>On</code> $B$K$J$C$F$$$k$H!"%o!<%+!<$,%(%i!<$r5/$3$7$?$j(B - $BL58z$K$J$C$F$$$k>l9g$K%;%C%7%g%s$,@Z$l$^$9!#(B - $B%P%C%/%(%s%I%5!<%P$,%;%C%7%g%s%l%W%j%1!<%7%g%s$r%5%]!<%H$7$F$$$J$$>l9g$O!"(B - On $B$K$7$F$/$@$5$$!#(B + <td><code>On</code> になっていると、ワーカーがエラーを起こしたり + 無効になっている場合にセッションが切れます。 + バックエンドサーバがセッションレプリケーションをサポートしていない場合は、 + On にしてください。 </td></tr> <tr><td>timeout</td> <td>0</td> - <td>$B%P%i%s%5!<$N%?%$%`%"%&%H$rIC$G;XDj$7$^$9!#(B - $B$3$NCM$r@_Dj$9$k$H!"%U%j!<$N%o!<%+!<$r<hF@$9$k$^$G$N:GBgBT5!;~4V$K$J$j$^$9!#(B - $B%G%U%)%k%H$G$OBT5!$7$^$;$s!#(B + <td>バランサーのタイムアウトを秒で指定します。 + この値を設定すると、フリーのワーカーを取得するまでの最大待機時間になります。 + デフォルトでは待機しません。 </td></tr> <tr><td>maxattempts</td> <td>1</td> - <td>$B%U%'%$%k%*!<%P!<$r;n$_$k:GBg$N2s?t$r;XDj$7$^$9!#(B + <td>フェイルオーバーを試みる最大の回数を指定します。 </td></tr> </table> @@ -742,46 +742,46 @@ </example> <p><directive type="section" module="core" - >Location</directive> $B%;%/%7%g%s$NCf$G;H$o$l$?>l9g!":G=i$N0z?t$O(B - $B>JN,$5$l!"%m!<%+%k%G%#%l%/%H%j$O(B <directive type="section" module="core" - >Location</directive> $B$+$i<hF@$5$l$^$9!#(B</p> + >Location</directive> セクションの中で使われた場合、最初の引数は + 省略され、ローカルディレクトリは <directive type="section" module="core" + >Location</directive> から取得されます。</p> - <p>$B$h$j=@Fp$J%j%P!<%9%W%m%-%7$N@_Dj$,I,MW$J>l9g$O!"(B<code>[P]</code> - $B%U%i%0IU$-$N(B <directive module="mod_rewrite">RewriteRule</directive> - $B%G%#%l%/%F%#%V$r;2>H$7$F$/$@$5$$!#(B</p> + <p>より柔軟なリバースプロキシの設定が必要な場合は、<code>[P]</code> + フラグ付きの <directive module="mod_rewrite">RewriteRule</directive> + ディレクティブを参照してください。</p> </usage> </directivesynopsis> <directivesynopsis> <name>ProxyPassReverse</name> -<description>$B%j%P!<%9%W%m%-%7$5$l$?%5!<%P$+$iAw$i$l$?(B HTTP $B1~Ez%X%C%@$N(B -URL $B$rD4@0$9$k(B</description> +<description>リバースプロキシされたサーバから送られた HTTP 応答ヘッダの +URL を調整する</description> <syntax>ProxyPassReverse [<var>path</var>] <var>url</var></syntax> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context> </contextlist> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O(B Apache $B$K(B HTTP $B%j%@%$%l%/%H1~Ez$N(B + <p>このディレクティブは Apache に HTTP リダイレクト応答の <code>Location</code>, <code>Content-Location</code>, <code>URI</code> - $B%X%C%@$ND4@0$r$5$;$^$9!#$3$l$O!"(BApache $B$,%j%P!<%9%W%m%-%7$H$7$F;H$o$l$F$$$k(B - $B$H$-$K!"%j%P!<%9%W%m%-%7$rDL$5$J$$$G%"%/%;%9$9$k$3$H$rKI$0$?$a$K(B - $B=EMW$G$9!#$3$l$K$h$j%P%C%/%(%s%I%5!<%P$N(B HTTP $B%j%@%$%l%/%H$,(B - $B%j%P!<%9%W%m%-%7$H%P%C%/%(%s%I$N4V$G07$o$l$k$h$&$K$J$j$^$9!#(B</p> - - <p>$B%G%#%l%/%F%#%V$GL@<($5$l$F$$$k(B HTTP $B1~Ez%X%C%@$N$_$,=q$-49$($i$l$^$9!#(B - Apache $B$OB>$N1~Ez%X%C%@$r=q$-49$($?$j!"(BHTML $B%Z!<%8$NCf$N(B URL $B;2>H$r(B - $B=q$-49$($?$j$9$k$3$H$O$"$j$^$;$s!#(BHTML $B$NCf$r8+$F!"(BURL $B;2>H$r=q$-49$($k(B - $B%b%8%e!<%k$K(B Nick Kew $B$5$s$N(B <a + ヘッダの調整をさせます。これは、Apache がリバースプロキシとして使われている + ときに、リバースプロキシを通さないでアクセスすることを防ぐために + 重要です。これによりバックエンドサーバの HTTP リダイレクトが + リバースプロキシとバックエンドの間で扱われるようになります。</p> + + <p>ディレクティブで明示されている HTTP 応答ヘッダのみが書き換えられます。 + Apache は他の応答ヘッダを書き換えたり、HTML ページの中の URL 参照を + 書き換えたりすることはありません。HTML の中を見て、URL 参照を書き換える + モジュールに Nick Kew さんの <a href="http://apache.webthing.com/mod_proxy_html/" - >mod_proxy_html</a> $B$,$"$j$^$9!#(B</p> + >mod_proxy_html</a> があります。</p> - <p><var>path</var> $B$O%m!<%+%k2>A[%Q%9$NL>A0$G$9!#(B<var>url</var> $B$O(B - $B%j%b!<%H%5!<%P$NItJ,(B URL $B$G$9!#$3$l$i$O(B <directive module="mod_proxy" - >ProxyPass</directive> $B%G%#%l%/%F%#%V$HF1MM$G$9!#(B</p> + <p><var>path</var> はローカル仮想パスの名前です。<var>url</var> は + リモートサーバの部分 URL です。これらは <directive module="mod_proxy" + >ProxyPass</directive> ディレクティブと同様です。</p> - <p>$BNc$($P!"%m!<%+%k%5!<%P$N%"%I%l%9$,(B <code>http://example.com/</code> - $B$@$H$7$^$9!#$9$k$H(B</p> + <p>例えば、ローカルサーバのアドレスが <code>http://example.com/</code> + だとします。すると</p> <example> ProxyPass /mirror/foo/ http://backend.example.com/<br /> @@ -790,139 +790,139 @@ URL $B$rD4@0$9$k(B</description> ProxyPassReverseCookiePath / /mirror/foo/ </example> - <p>$B$H$$$&@_Dj$r$9$k$H!"(B<code>http://example.com/mirror/foo/bar</code> - $B$X$N%m!<%+%k%j%/%(%9%H$,(B <code>http://backend.example.com/bar</code> - $B$X$N%W%m%-%7%j%/%(%9%H$KFbIt$G%j%@%$%l%/%H$5$l$k$@$1$G$O$"$j$^$;$s(B - ($B$3$l$O(B <code>ProxyPass</code> $B$N5!G=$G$9(B)$B!#(B<code>backend.example.com</code> - $B$,Aw$k%j%@%$%l%/%H$NLLE]$b$_$^$9!#(B<code>http://backend.example.com/bar</code> - $B$,(B <code>http://backend.example.com/quux</code> $B$K%j%@%$%l%/%H$5$l$?$H$-!"(B - Apache $B$O(B HTTP $B%j%@%$%l%/%H1~Ez$r%/%i%$%"%s%H$KAw$kA0$K!"(B - <code>http://example.com/mirror/foo/quux</code> $B$KJQ99$7$^$9!#(B - URL $B$r9=@.$9$k$N$K;H$o$l$k%[%9%HL>$O(B <directive - module="core">UseCanonicalName</directive> $B$N@_Dj$K1~$8$FA*Br$5$l$k$3$H$K(B - $BCm0U$7$F$/$@$5$$!#(B</p> - - <p><directive>ProxyPassReverse</directive> $B%G%#%l%/%F%#%V$O(B - $BBP1~$9$k(B <directive module="mod_proxy" - >ProxyPass</directive> $B%G%#%l%/%F%#%V$K$O0MB8$7$J$$$?$a!"(B - <module>mod_rewrite</module> $B$N%W%m%-%7DL2a5!G=(B - (<code>RewriteRule ... [P]</code>) $B$HJ;$;$F;HMQ$9$k$3$H$,$G$-$^$9!#(B</p> + <p>という設定をすると、<code>http://example.com/mirror/foo/bar</code> + へのローカルリクエストが <code>http://backend.example.com/bar</code> + へのプロキシリクエストに内部でリダイレクトされるだけではありません + (これは <code>ProxyPass</code> の機能です)。<code>backend.example.com</code> + が送るリダイレクトの面倒もみます。<code>http://backend.example.com/bar</code> + が <code>http://backend.example.com/quux</code> にリダイレクトされたとき、 + Apache は HTTP リダイレクト応答をクライアントに送る前に、 + <code>http://example.com/mirror/foo/quux</code> に変更します。 + URL を構成するのに使われるホスト名は <directive + module="core">UseCanonicalName</directive> の設定に応じて選択されることに + 注意してください。</p> + + <p><directive>ProxyPassReverse</directive> ディレクティブは + 対応する <directive module="mod_proxy" + >ProxyPass</directive> ディレクティブには依存しないため、 + <module>mod_rewrite</module> のプロキシ通過機能 + (<code>RewriteRule ... [P]</code>) と併せて使用することができます。</p> <p><directive type="section" module="core" - >Location</directive> $B%;%/%7%g%s$NCf$G;H$o$l$?>l9g$O!"(B - $B:G=i$N0z?t$O>JN,$5$l!"%m!<%+%k%G%#%l%/%H%j$O(B <directive - type="section" module="core">Location</directive> $B$+$i<hF@$5$l$^$9!#(B</p> + >Location</directive> セクションの中で使われた場合は、 + 最初の引数は省略され、ローカルディレクトリは <directive + type="section" module="core">Location</directive> から取得されます。</p> </usage> </directivesynopsis> <directivesynopsis> <name>ProxyPassReverseCookieDomain</name> -<description>$B%j%P!<%9%W%m%-%7%5!<%P$+$i$N(B Set-Cookie $B%X%C%@$N(B Domain $BJ8;zNs$r(B -$BD4@0$9$k(B</description> +<description>リバースプロキシサーバからの Set-Cookie ヘッダの Domain 文字列を +調整する</description> <syntax>ProxyPassReverseCookieDomain <var>internal-domain</var> <var>public-domain</var></syntax> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context> </contextlist> <usage> -<p>$B;HMQK!$O4pK\E*$K(B -<directive module="mod_proxy">ProxyPassReverse</directive> $B$HF1$8$G$9$,!"(B -$B%X%C%@$N(B URL $B$NBe$o$j$K(B <code>Set-Cookie</code> $B%X%C%@$N(B -<code>domain</code> $BJ8;zNs$r=q$-49$($^$9!#(B</p> +<p>使用法は基本的に +<directive module="mod_proxy">ProxyPassReverse</directive> と同じですが、 +ヘッダの URL の代わりに <code>Set-Cookie</code> ヘッダの +<code>domain</code> 文字列を書き換えます。</p> </usage> </directivesynopsis> <directivesynopsis> <name>ProxyPassReverseCookiePath</name> -<description>Reverse $B%W%m%-%7%5!<%P$+$i$N(B Set-Cookie $B%X%C%@$N(B Path $BJ8;zNs$r(B -$BD4@0$9$k(B</description> +<description>Reverse プロキシサーバからの Set-Cookie ヘッダの Path 文字列を +調整する</description> <syntax>ProxyPassReverseCookiePath <var>internal-path</var> <var>public-path</var></syntax> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context> </contextlist> <usage> -<p>$B;HMQK!$O4pK\E*$K(B -<directive module="mod_proxy">ProxyPassReverse</directive> $B$HF1$8$G$9$,!"(B -$B%X%C%@$N(B URL $B$NBe$o$j$K(B <code>Set-Cookie</code> $B%X%C%@$N(B -<code>path</code> $BJ8;zNs$r=q$-49$($^$9!#(B</p> +<p>使用法は基本的に +<directive module="mod_proxy">ProxyPassReverse</directive> と同じですが、 +ヘッダの URL の代わりに <code>Set-Cookie</code> ヘッダの +<code>path</code> 文字列を書き換えます。</p> </usage> </directivesynopsis> <directivesynopsis> <name>AllowCONNECT</name> -<description>$B%W%m%-%7$r7PM3$7$F!"$I$N%]!<%H$K(B <code>CONNECT</code> -$B$G$-$k$+$r;XDj$9$k(B</description> +<description>プロキシを経由して、どのポートに <code>CONNECT</code> +できるかを指定する</description> <syntax>AllowCONNECT <var>port</var> [<var>port</var>] ...</syntax> <default>AllowCONNECT 443 563</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p><directive>AllowCONNECT</directive> $B$O%W%m%-%7$N(B <code>CONNECT</code> - $B%a%=%C%I$,@\B3$r5v2D$9$k%]!<%HHV9f$N%j%9%H$r;XDj$7$^$9!#(B - $B:#F|$N%V%i%&%6$O!"(B<code>https</code> $B%3%M%/%7%g%s$,MW5a$5$l$F$$$F!"(B - HTTP $B>e$G$N%W%m%-%7$K$h$k%H%s%M%j%s%0$,$G$-$k$H$-$K!"(B - $B$3$N%a%=%C%I$r;H$$$^$9!#(B</p> - - <p>$B%G%U%)%k%H$N@_Dj$G$O!"(Bhttps $B$N%G%U%)%k%H%]!<%H(B (<code>443</code>) $B$H(B - $B%G%U%)%k%H$N(B snews $B%]!<%H(B (<code>563</code>) $B$,M-8z$K$J$C$F$$$^$9!#(B - $B$3$N%G%U%)%k%H$r>e=q$-$7$F!"%j%9%H$K5-:\$7$?%]!<%H$K$N$_@\B3$r5v2D$7$?$$>l9g!"(B - <directive>AllowCONNECT</directive> $B%G%#%l%/%F%#%V$r;HMQ$7$^$9!#(B</p> - - <p><code>CONNECT</code> $B$r;HMQ$9$k$K$O!"(B<module>mod_proxy_connect</module> - $B$,%5!<%P$KAH$_9~$^$l$F$$$J$1$l$P$J$i$J$$$3$H$KCm0U$7$F$/$@$5$$!#(B</p> + <p><directive>AllowCONNECT</directive> はプロキシの <code>CONNECT</code> + メソッドが接続を許可するポート番号のリストを指定します。 + 今日のブラウザは、<code>https</code> コネクションが要求されていて、 + HTTP 上でのプロキシによるトンネリングができるときに、 + このメソッドを使います。</p> + + <p>デフォルトの設定では、https のデフォルトポート (<code>443</code>) と + デフォルトの snews ポート (<code>563</code>) が有効になっています。 + このデフォルトを上書きして、リストに記載したポートにのみ接続を許可したい場合、 + <directive>AllowCONNECT</directive> ディレクティブを使用します。</p> + + <p><code>CONNECT</code> を使用するには、<module>mod_proxy_connect</module> + がサーバに組み込まれていなければならないことに注意してください。</p> </usage> </directivesynopsis> <directivesynopsis> <name>ProxyBlock</name> -<description>$B%W%m%-%7@\B3$r6X;_$9$k8l6g!"%[%9%HL>!"%I%a%$%s$r;XDj$9$k(B</description> +<description>プロキシ接続を禁止する語句、ホスト名、ドメインを指定する</description> <syntax>ProxyBlock *|<var>word</var>|<var>host</var>|<var>domain</var> [<var>word</var>|<var>host</var>|<var>domain</var>] ...</syntax> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p><directive>ProxyBlock</directive> $B%G%#%l%/%F%#%V$O6uGr$G6h@Z$i$l$?(B - $B8l6g!"%[%9%HL>!"%I%a%$%s$N%j%9%H$r;XDj$7$^$9!#%5%$%HL>$K$=$N8l6g!"%[%9%HL>!"(B - $B%I%a%$%s$r4^$`%5%$%H$X$N(B HTTP$B!"(BHTTPS$B!"(BFTP $B$K$h$k%I%-%e%a%s%H$N%j%/%(%9%H$O(B - $B%W%m%-%7%5!<%P$K$h$j(B<em>$B%V%m%C%/$5$l$^$9(B</em>$B!#%W%m%-%7%b%8%e!<%k$O(B - $B5/F0;~$K%[%9%HL>$H;W$7$-9`L\$N(B IP $B%"%I%l%9$rD4$Y!"8e$N%F%9%H$N$?$a$K(B - $B%-%c%C%7%e$7$^$9!#$3$l$K$h$j!"%5!<%P$N5/F0$,>/$7CY$/$J$k$+$b$7$l$^$;$s!#(B</p> + <p><directive>ProxyBlock</directive> ディレクティブは空白で区切られた + 語句、ホスト名、ドメインのリストを指定します。サイト名にその語句、ホスト名、 + ドメインを含むサイトへの HTTP、HTTPS、FTP によるドキュメントのリクエストは + プロキシサーバにより<em>ブロックされます</em>。プロキシモジュールは + 起動時にホスト名と思しき項目の IP アドレスを調べ、後のテストのために + キャッシュします。これにより、サーバの起動が少し遅くなるかもしれません。</p> <example><title>Example</title> ProxyBlock joes-garage.com some-host.co.uk rocky.wotsamattau.edu </example> - <p><code>rocky.wotsamattau.edu</code> $B$,(B IP $B%"%I%l%9$G;2>H$5$l$?$H$-$G$b(B - $B%^%C%A$7$^$9!#(B</p> + <p><code>rocky.wotsamattau.edu</code> が IP アドレスで参照されたときでも + マッチします。</p> - <p><code>wotsamattau.edu</code> $B$N%^%C%A$K$O(B <code>wotsamattau</code> - $B$@$1$G$b==J,$G$9!#(B</p> + <p><code>wotsamattau.edu</code> のマッチには <code>wotsamattau</code> + だけでも十分です。</p> <example> ProxyBlock * </example> - <p>$B$O$9$Y$F$N%5%$%H$X$N@\B3$r%V%m%C%/$9$k$3$H$KCm0U$7$F$/$@$5$$!#(B</p> + <p>はすべてのサイトへの接続をブロックすることに注意してください。</p> </usage> </directivesynopsis> <directivesynopsis> <name>ProxyReceiveBufferSize</name> -<description>$B%W%m%-%7$5$l$k(B HTTP $B$H(B FTP $B@\B3$N$?$a$N%M%C%H%o!<%/%P%C%U%!%5%$%:(B</description> +<description>プロキシされる HTTP と FTP 接続のためのネットワークバッファサイズ</description> <syntax>ProxyReceiveBufferSize <var>bytes</var></syntax> <default>ProxyReceiveBufferSize 0</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p><directive>ProxyReceiveBufferSize</directive> $B%G%#%l%/%F%#%V$O(B - $B%9%k!<%W%C%H$r>e$2$k$?$a$KL@<(E*$K(B (TCP/IP) $B%M%C%H%o!<%/%P%C%U%!$N%5%$%:$r(B - $B@_Dj$7$^$9!#CM$O(B <code>512</code> $B0J>e$+!"%7%9%F%`$N%G%U%)%k%H$N%P%C%U%!(B - $B%5%$%:$r0UL#$9$k(B <code>0</code> $B$G$J$1$l$P$J$j$^$;$s!#(B</p> + <p><directive>ProxyReceiveBufferSize</directive> ディレクティブは + スループットを上げるために明示的に (TCP/IP) ネットワークバッファのサイズを + 設定します。値は <code>512</code> 以上か、システムのデフォルトのバッファ + サイズを意味する <code>0</code> でなければなりません。</p> - <example><title>$BNc(B</title> + <example><title>例</title> ProxyReceiveBufferSize 2048 </example> </usage> @@ -930,37 +930,37 @@ URL $B$rD4@0$9$k(B</description> <directivesynopsis> <name>ProxyIOBufferSize</name> -<description>$BFbIt%G!<%?%9%k!<%W%C%H%P%C%U%!$N%5%$%:$r7hDj$9$k(B</description> +<description>内部データスループットバッファのサイズを決定する</description> <syntax>ProxyIOBufferSize <var>bytes</var></syntax> <default>ProxyIOBufferSize 8192</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p><directive>ProxyIOBufferSize</directive> $B%G%#%l%/%F%#%V$OF~NO$H(B - $B=PNOMQ$N0l;~%a%b%j$H$7$F;H$o$l$kFbIt%P%C%U%!$N%5%$%:$rD4@0$7$^$9!#(B - $B%5%$%:$O(B <code>8192</code> $B0J2<$G$J$1$l$P$J$j$^$;$s!#(B</p> + <p><directive>ProxyIOBufferSize</directive> ディレクティブは入力と + 出力用の一時メモリとして使われる内部バッファのサイズを調整します。 + サイズは <code>8192</code> 以下でなければなりません。</p> - <p>$B$[$H$s$I$9$Y$F$N>l9g!"$3$NCM$rJQ99$9$kM}M3$O$"$j$^$;$s!#(B</p> + <p>ほとんどすべての場合、この値を変更する理由はありません。</p> </usage> </directivesynopsis> <directivesynopsis> <name>ProxyMaxForwards</name> -<description>$B%j%/%(%9%H$,%U%)%o!<%I$5$l$k%W%m%-%7$N:GBg?t(B</description> +<description>リクエストがフォワードされるプロキシの最大数</description> <syntax>ProxyMaxForwards <var>number</var></syntax> <default>ProxyMaxForwards 10</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> -<compatibility>Apache 2.0 $B0J9_$G;HMQ2DG=(B</compatibility> +<compatibility>Apache 2.0 以降で使用可能</compatibility> <usage> - <p><directive>ProxyMaxForwards</directive> $B%G%#%l%/%F%#%V$O(B - $B%j%/%(%9%H$K(B <code>Max-Forwards</code> $B%X%C%@$,;XDj$5$l$F$$$J$$>l9g$K(B - $B%j%/%(%9%H$,DL2a2DG=$J%W%m%-%7$N:GBg?t$r@_Dj$7$^$9!#$3$l$O(B - $B%W%m%-%7$NL58B%k!<%W$d(B DoS $B967b$rKI$0$?$a$K@_Dj$5$l$F$$$^$9!#(B</p> + <p><directive>ProxyMaxForwards</directive> ディレクティブは + リクエストに <code>Max-Forwards</code> ヘッダが指定されていない場合に + リクエストが通過可能なプロキシの最大数を設定します。これは + プロキシの無限ループや DoS 攻撃を防ぐために設定されています。</p> - <example><title>$BNc(B</title> + <example><title>例</title> ProxyMaxForwards 15 </example> </usage> @@ -968,166 +968,166 @@ URL $B$rD4@0$9$k(B</description> <directivesynopsis> <name>NoProxy</name> -<description>$BD>@\@\B3$9$k(B $B%[%9%H!"%I%a%$%s!"%M%C%H%o!<%/(B</description> +<description>直接接続する ホスト、ドメイン、ネットワーク</description> <syntax>NoProxy <var>host</var> [<var>host</var>] ...</syntax> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O%$%s%H%i%M%C%HCf$N(B Apache $B%W%m%-%7%5!<%P$K$N$_(B - $BM-MQ$G$9!#(B<directive>NoProxy</directive> $B%G%#%l%/%F%#%V$O6uGr6h@Z$j$G!"(B - $B%5%V%M%C%H!"(BIP $B%"%I%l%9!"%[%9%H!"%I%a%$%s$N%j%9%H$r;XDj$7$^$9!#(B - $B$3$l$i$N$I$l$+$K%^%C%A$9$k%[%9%H$X$N%j%/%(%9%H$O(B <directive - module="mod_proxy">ProxyRemote</directive> $B$G@_Dj$5$l$?%W%m%-%7%5!<%P$K(B - $B%U%)%o!<%I$5$l$:!"D>@\=hM}$5$l$^$9!#(B</p> - - <example><title>$BNc(B</title> + <p>このディレクティブはイントラネット中の Apache プロキシサーバにのみ + 有用です。<directive>NoProxy</directive> ディレクティブは空白区切りで、 + サブネット、IP アドレス、ホスト、ドメインのリストを指定します。 + これらのどれかにマッチするホストへのリクエストは <directive + module="mod_proxy">ProxyRemote</directive> で設定されたプロキシサーバに + フォワードされず、直接処理されます。</p> + + <example><title>例</title> ProxyRemote * http://firewall.mycompany.com:81<br /> NoProxy .mycompany.com 192.168.112.0/21 </example> - <p><directive>NoProxy</directive> $B%G%#%l%/%F%#%V$N(B <var>host</var> $B0z?t$O(B - $B0J2<$N<oN`$N$I$l$+$G$9(B:</p> + <p><directive>NoProxy</directive> ディレクティブの <var>host</var> 引数は + 以下の種類のどれかです:</p> <dl> <!-- ===================== Domain ======================= --> <dt><var><a name="domain" id="domain">Domain</a></var></dt> <dd> - <p><dfn>Domain</dfn> $B$O@hF,$K%T%j%*%I$NCe$$$?ItJ,(B DNS $B%I%a%$%sL>$G$9!#(B - $BF10l(B DNS $B%I%a%$%s5Z$S%>!<%s(B (<em>$B$9$J$o$A(B</em>$B!"%[%9%HL>$NKvHx$,$9$Y$F(B - <var>Domain</var> $B$G=*$o$C$F$$$k$H$$$&$3$H(B) $B$KB0$9$k%[%9%H$N%j%9%H$r(B - $BI=$7$^$9(B)$B!#(B</p> + <p><dfn>Domain</dfn> は先頭にピリオドの着いた部分 DNS ドメイン名です。 + 同一 DNS ドメイン及びゾーン (<em>すなわち</em>、ホスト名の末尾がすべて + <var>Domain</var> で終わっているということ) に属するホストのリストを + 表します)。</p> - <example><title>$BNc(B</title> + <example><title>例</title> .com .apache.org. </example> - <p><var>Domain</var> $B$r(B <a href="#hostname" - >Hostname</a> $B$H6hJL$9$k$?$a$K(B ($B0UL#E*$K$b9=J8E*$K$b!#(BDNS $B%I%a%$%s$b(B - DNS $B$N(B A $B%l%3!<%I$r;}$D$3$H$,$G$-$k$N$G$9(B!)$B!"(B<var>Domain</var> $B$O(B - $B>o$K%T%j%*%I$G;O$^$j$^$9!#(B</p> + <p><var>Domain</var> を <a href="#hostname" + >Hostname</a> と区別するために (意味的にも構文的にも。DNS ドメインも + DNS の A レコードを持つことができるのです!)、<var>Domain</var> は + 常にピリオドで始まります。</p> - <note><title>$BCm(B</title> - <p>$B%I%a%$%sL>$NHf3S$OBgJ8;z>.J8;z$r6hJL$;$:$K9T$J$o$l!"(B<var>Domain</var> - $B$O>o$K(B DNS $B%D%j!<$N%k!<%H$+$i;O$^$k$b$N$H$_$J$5$l$^$9!#$G$9$+$i!"(B - $B<!$NFs$D$N%I%a%$%s(B <code>.MyDomain.com</code> $B$H(B - <code>.mydomain.com.</code> ($B:G8e$N%T%j%*%I$KCmL\(B) $B$OF10l$G$"$k$H(B - $B$_$J$5$l$^$9!#%I%a%$%s$NHf3S$O(B DNS $B%k%C%/%"%C%W$J$7$G9T$J$o$l$k$?$a!"(B - $B%5%V%M%C%H$NHf3S$h$j$b$:$C$H8zN(E*$G$9!#(B</p> + <note><title>注</title> + <p>ドメイン名の比較は大文字小文字を区別せずに行なわれ、<var>Domain</var> + は常に DNS ツリーのルートから始まるものとみなされます。ですから、 + 次の二つのドメイン <code>.MyDomain.com</code> と + <code>.mydomain.com.</code> (最後のピリオドに注目) は同一であると + みなされます。ドメインの比較は DNS ルックアップなしで行なわれるため、 + サブネットの比較よりもずっと効率的です。</p> </note></dd> <!-- ===================== SubNet ======================= --> <dt><var><a name="subnet" id="subnet">SubNet</a></var></dt> <dd> - <p><dfn>SubNet</dfn> $B$O?tCM7A<0(B ($B%I%C%H$G6h@Z$i$l$?;M$D$N?t;z(B) $B$N(B - $BItJ,%$%s%?!<%M%C%H%"%I%l%9$G$9!#8e$K%9%i%C%7%e$H(B <var>Subnet</var> - $B$N0UL#$N$"$k%S%C%H?t$r;XDj$9$k%M%C%H%^%9%/$H$rB3$1$k$3$H$,$G$-$^$9!#(B - $B6&DL$N%M%C%H%o!<%/%$%s%?%U%'!<%9$r;H$C$FE~C#$9$k$3$H$N$G$-$k%5%V%M%C%H$r(B - $BI=$9$?$a$K;H$o$l$^$9!#L@<(E*$K%M%C%H%^%9%/$r;XDj$7$J$$>l9g$O(B - $B:G8e$N>JN,$5$l$?(B ($B$b$7$/$OCM$,(B 0 $B$N(B) $B?t;z$,%^%9%/$r;XDj$7$^$9!#(B - ($B$3$N>l9g$O!"%M%C%H%^%9%/$O(B 8 $B%S%C%HC10L$G$7$+;XDj$G$-$^$;$s!#(B) - $BNc(B:</p> + <p><dfn>SubNet</dfn> は数値形式 (ドットで区切られた四つの数字) の + 部分インターネットアドレスです。後にスラッシュと <var>Subnet</var> + の意味のあるビット数を指定するネットマスクとを続けることができます。 + 共通のネットワークインタフェースを使って到達することのできるサブネットを + 表すために使われます。明示的にネットマスクを指定しない場合は + 最後の省略された (もしくは値が 0 の) 数字がマスクを指定します。 + (この場合は、ネットマスクは 8 ビット単位でしか指定できません。) + 例:</p> <dl> - <dt><code>192.168</code> $B$b$7$/$O(B <code>192.168.0.0</code></dt> - <dd>$B%5%V%M%C%H(B 192.168.0.0 $B$H0EL[$N(B 16 $B%S%C%HM-8z$J%M%C%H%^%9%/(B - (<code>255.255.0.0</code> $B$H$$$&%M%C%H%^%9%/$N7A<0$G;H$o$l$k$3$H$b(B - $B$"$j$^$9(B)</dd> + <dt><code>192.168</code> もしくは <code>192.168.0.0</code></dt> + <dd>サブネット 192.168.0.0 と暗黙の 16 ビット有効なネットマスク + (<code>255.255.0.0</code> というネットマスクの形式で使われることも + あります)</dd> <dt><code>192.168.112.0/21</code></dt> - <dd>$B%5%V%M%C%H(B<code>192.168.112.0/21</code> $B$H(B 21 $B%S%C%HM-8z$J(B - $B%M%C%H%^%9%/(B (<code>255.255.248.0</code> $B$H$$$&7A<0$G;H$o$l$k$3$H$b(B - $B$"$j$^$9(B)</dd> + <dd>サブネット<code>192.168.112.0/21</code> と 21 ビット有効な + ネットマスク (<code>255.255.248.0</code> という形式で使われることも + あります)</dd> </dl> - <p>$BFCJL$J>l9g$K!"(B32 $B%S%C%HM-8z$J(B <em>SubNet</em> $B$O(B - <var><a href="#ipadr">IPAddr</a></var> $B$HF1Ey$G!"(B - 0 $B%S%C%HM-8z$J(B <var>SubNet</var> (<em>$BNc$($P(B</em>$B!"(B0.0.0.0/0) $B$O(B - $B$9$Y$F$N(B IP $B%"%I%l%9$K%^%C%A$9$kDj?t(B <var>_Default_</var> $B$HF1$8$G$9!#(B</p> + <p>特別な場合に、32 ビット有効な <em>SubNet</em> は + <var><a href="#ipadr">IPAddr</a></var> と同等で、 + 0 ビット有効な <var>SubNet</var> (<em>例えば</em>、0.0.0.0/0) は + すべての IP アドレスにマッチする定数 <var>_Default_</var> と同じです。</p> </dd> <!-- ===================== IPAddr ======================= --> <dt><var><a name="ipaddr" id="ipaddr">IPAddr</a></var></dt> <dd> - <p><dfn>IPAddr</dfn> $B$O?tCM7A<0(B ($B%I%C%H$G6h@Z$i$l$?;M$D$N?t;z(B) $B$N(B - $B40A4%$%s%?!<%M%C%H%"%I%l%9$G$9!#DL>o$O$3$N%"%I%l%9$O%[%9%H$r(B - $BI=$7$^$9$,!"I,$:$7$b%"%I%l%9$KBP1~$9$k(B DNS $B%I%a%$%sL>$,$"$k$o$1$G$O(B - $B$"$j$^$;$s!#(B</p> + <p><dfn>IPAddr</dfn> は数値形式 (ドットで区切られた四つの数字) の + 完全インターネットアドレスです。通常はこのアドレスはホストを + 表しますが、必ずしもアドレスに対応する DNS ドメイン名があるわけでは + ありません。</p> - <example><title>$BNc(B</title> + <example><title>例</title> 192.168.123.7 </example> - <note><title>$BCm(B</title> - <p><var>IPAddr</var> $B$O(B DNS $B%7%9%F%`$K$h$j2r7h$5$l$kI,MW$,$J$$$N$G!"(B - apache $B$N@-G=$,8~>e$9$k$+$b$7$l$^$;$s!#(B</p> + <note><title>注</title> + <p><var>IPAddr</var> は DNS システムにより解決される必要がないので、 + apache の性能が向上するかもしれません。</p> </note></dd> <!-- ===================== Hostname ======================= --> <dt><var><a name="hostname" id="hostname">Hostname</a></var></dt> <dd> - <p><dfn>Hostname</dfn> $B$O(B DNS $B%I%a%$%s%5!<%S%9$K$h$j0l$D$b$7$/$O(B - $BJ#?t$N(B <var><a href="#ipaddr">IPAddr</a></var> $B$K2r7h2DG=$J(B - $B40A4$J(B DNS $B%I%a%$%sL>$G$9!#$3$l$O(B (<var><a href="#domain">Domain</a></var> - $B$H0c$C$F!"@bL@$O>e5-$r;2>H(B) $BO@M}E*$J%[%9%H$rI=$7!">/$/$H$b0l$D$N(B - <var><a href="#ipaddr">IPAddr</a></var> ($B$b$7$/$O0c$&(B - <var><a href="#ipaddr">IPAddr</a></var> $B$N%[%9%H$N%j%9%H(B) $B$K2r7h(B - $B$5$l$J$1$l$P$J$j$^$;$s(B)$B!#(B</p> - - <example><title>$BNc(B</title> + <p><dfn>Hostname</dfn> は DNS ドメインサービスにより一つもしくは + 複数の <var><a href="#ipaddr">IPAddr</a></var> に解決可能な + 完全な DNS ドメイン名です。これは (<var><a href="#domain">Domain</a></var> + と違って、説明は上記を参照) 論理的なホストを表し、少くとも一つの + <var><a href="#ipaddr">IPAddr</a></var> (もしくは違う + <var><a href="#ipaddr">IPAddr</a></var> のホストのリスト) に解決 + されなければなりません)。</p> + + <example><title>例</title> prep.ai.mit.edu<br /> www.apache.org </example> - <note><title>$BCm(B</title> - <p>$BB?$/$N>l9g!"(B<var>Hostname</var> $B$NBe$o$j$K(B <var><a - href="#ipaddr">IPAddr</a></var> $B$r;XDj$7$?J}$,!"(BDNS $B%k%C%/%"%C%W$r(B - $BHr$1$k$3$H$,$G$-$k$?$a!"8zN($,NI$/$J$j$^$9!#(BApache $B$NL>A02r7h$O(B - $B%M!<%`%5!<%P$X$N@\B3$,CY$$(B PPP $B>e$N>l9g$J$I$K$+$J$j;~4V$r<h$i$l$k(B - $B$3$H$,$"$j$^$9!#(B</p> - <p><var>Hostname</var> $B$NHf3S$OBgJ8;z>.J8;z$r6hJL$;$:$K9T$J$o$l!"(B - <var>Hostname</var> $B$O>o$K(B DNS $B%D%j!<$N%k!<%H$+$i;O$^$k$b$N$H$_$J$5$l$^$9!#(B - $B$G$9$+$i!"Fs$D$N%I%a%$%s(B <code>WWW.MyDomain.com</code> $B$H(B - <code>www.mydomain.com.</code> ($B:G8e$N%T%j%*%I$KCmL\(B) $B$OF10l$G$"$k$H(B - $B$_$J$5$l$^$9!#(B</p> + <note><title>注</title> + <p>多くの場合、<var>Hostname</var> の代わりに <var><a + href="#ipaddr">IPAddr</a></var> を指定した方が、DNS ルックアップを + 避けることができるため、効率が良くなります。Apache の名前解決は + ネームサーバへの接続が遅い PPP 上の場合などにかなり時間を取られる + ことがあります。</p> + <p><var>Hostname</var> の比較は大文字小文字を区別せずに行なわれ、 + <var>Hostname</var> は常に DNS ツリーのルートから始まるものとみなされます。 + ですから、二つのドメイン <code>WWW.MyDomain.com</code> と + <code>www.mydomain.com.</code> (最後のピリオドに注目) は同一であると + みなされます。</p> </note></dd> </dl> </usage> -<seealso><a href="../dns-caveats.html">DNS $B$K4X$9$kLdBj(B</a></seealso> +<seealso><a href="../dns-caveats.html">DNS に関する問題</a></seealso> </directivesynopsis> <directivesynopsis> <name>ProxyTimeout</name> -<description>$B%W%m%-%7$5$l$?%j%/%(%9%H$N%M%C%H%o!<%/%?%$%`%"%&%H(B</description> +<description>プロキシされたリクエストのネットワークタイムアウト</description> <syntax>ProxyTimeout <var>seconds</var></syntax> <default>ProxyTimeout 300</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> -<compatibility>Apache 2.0.31 $B0J9_$G;HMQ2DG=(B</compatibility> +<compatibility>Apache 2.0.31 以降で使用可能</compatibility> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O%f!<%6$,%W%m%-%7%j%/%(%9%H$N%?%$%`%"%&%H$r(B - $B;XDj$G$-$k$h$&$K$7$^$9!#$3$l$O%O%s%0$7$F$7$^$&CY$$!"$b$7$/$O5sF0$N(B - $B2x$7$$%5!<%P$,$"$j!"%5!<%P$,%G!<%?$rJV$9$^$G$R$?$9$iBT$AB3$1$k$h$j$b(B - $B%?%$%`%"%&%H$rJV$7$F$h$j4K$d$+$K(B<transnote>graceful $B$K(B</transnote> - $B<:GT$5$;$?$$>l9g$KLr$KN)$A$^$9!#(B</p> + <p>このディレクティブはユーザがプロキシリクエストのタイムアウトを + 指定できるようにします。これはハングしてしまう遅い、もしくは挙動の + 怪しいサーバがあり、サーバがデータを返すまでひたすら待ち続けるよりも + タイムアウトを返してより緩やかに<transnote>graceful に</transnote> + 失敗させたい場合に役に立ちます。</p> </usage> </directivesynopsis> <directivesynopsis> <name>ProxyDomain</name> -<description>$B%W%m%-%7$5$l$?%j%/%(%9%H$N%G%U%)%k%H$N%I%a%$%sL>(B</description> +<description>プロキシされたリクエストのデフォルトのドメイン名</description> <syntax>ProxyDomain <var>Domain</var></syntax> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O%$%s%H%i%M%C%HFb$N(B Apache $B%W%m%-%7%5!<%P$K$N$_(B - $BM-MQ$G$9!#(B<directive>ProxyDomain</directive> $B%G%#%l%/%F%#%V$O(B - apache $B%W%m%-%7%5!<%P$,B0$9$k%G%U%)%k%H$N%I%a%$%s$r;XDj$7$^$9!#(B - $B%I%a%$%sL>$NL5$$%j%/%(%9%H$r<u$1$?>l9g!"@_Dj$5$l$?(B <var>Domain</var> - $B$,DI2C$5$l$?F1$8%[%9%H$X$N%j%@%$%l%/%H1~Ez$,JV$5$l$^$9!#(B</p> + <p>このディレクティブはイントラネット内の Apache プロキシサーバにのみ + 有用です。<directive>ProxyDomain</directive> ディレクティブは + apache プロキシサーバが属するデフォルトのドメインを指定します。 + ドメイン名の無いリクエストを受けた場合、設定された <var>Domain</var> + が追加された同じホストへのリダイレクト応答が返されます。</p> - <example><title>$BNc(B</title> + <example><title>例</title> ProxyRemote * http://firewall.mycompany.com:81<br /> NoProxy .mycompany.com 192.168.112.0/21<br /> ProxyDomain .mycompany.com @@ -1137,56 +1137,56 @@ URL $B$rD4@0$9$k(B</description> <directivesynopsis> <name>ProxyVia</name> -<description>$B%W%m%-%7$5$l$?%j%/%(%9%H$N(B <code>Via</code> HTTP $B1~Ez%X%C%@(B -$B$K$h$jDs6!$5$l$k>pJs(B</description> +<description>プロキシされたリクエストの <code>Via</code> HTTP 応答ヘッダ +により提供される情報</description> <syntax>ProxyVia On|Off|Full|Block</syntax> <default>ProxyVia Off</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O%W%m%-%7$N(B <code>Via:</code> HTTP $B%X%C%@$N;HMQ$r(B - $B@)8f$7$^$9!#A[Dj$5$l$F$$$k;H$$J}$O!"%W%m%-%7%5!<%P$,$$$/$D$b7R$,$C$F$$$k$H$-$K(B - $B%W%m%-%7%j%/%(%9%H$NN.$l$r@)8f$9$k$3$H$G$9!#(B<code>Via:</code> $B%X%C%@9T$N(B - $B@bL@$O(B <a + <p>このディレクティブはプロキシの <code>Via:</code> HTTP ヘッダの使用を + 制御します。想定されている使い方は、プロキシサーバがいくつも繋がっているときに + プロキシリクエストの流れを制御することです。<code>Via:</code> ヘッダ行の + 説明は <a href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a> (HTTP/1.1) - $B$N(B 14.45 $B@a$rFI$s$G$/$@$5$$!#(B</p> + の 14.45 節を読んでください。</p> <ul> - <li>$B%G%U%)%k%H$N(B <code>Off</code> $B$K@_Dj$5$l$F$$$k$H!"FCJL$J=hM}$O(B - $B9T$J$o$l$^$;$s!#%j%/%(%9%H$d%j%W%i%$$K(B <code>Via:</code> $B%X%C%@$,$"$l$P!"(B - $BJQ99$5$l$:$K$=$N$^$^EO$7$^$9!#(B</li> + <li>デフォルトの <code>Off</code> に設定されていると、特別な処理は + 行なわれません。リクエストやリプライに <code>Via:</code> ヘッダがあれば、 + 変更されずにそのまま渡します。</li> - <li><code>On</code> $B$K@_Dj$5$l$F$$$l$P!"3F%j%/%(%9%H$H%j%W%i%$$K(B - <code>Via:</code> $B9T$,DI2C$5$l$^$9!#(B</li> + <li><code>On</code> に設定されていれば、各リクエストとリプライに + <code>Via:</code> 行が追加されます。</li> - <li><code>Full</code> $B$K@_Dj$5$l$F$$$l$P!"(B<code>Via:</code> $B%X%C%@$O(B - $B%3%a%s%HItJ,$K(B Apache $B%5!<%P$N%P!<%8%g%s$b4^$`$h$&$K$J$j$^$9!#(B</li> + <li><code>Full</code> に設定されていれば、<code>Via:</code> ヘッダは + コメント部分に Apache サーバのバージョンも含むようになります。</li> - <li><code>Block</code> $B$K@_Dj$5$l$F$$$l$P!"$9$Y$F$N%W%m%-%7%j%/%(%9%H$+$i(B - <code>Via:</code> $B%X%C%@$,<h$j=|$+$l$^$9!#?7$?$K(B <code>Via:</code> $B$,(B - $B@8@.$5$l$k$3$H$O$"$j$^$;$s!#(B</li> + <li><code>Block</code> に設定されていれば、すべてのプロキシリクエストから + <code>Via:</code> ヘッダが取り除かれます。新たに <code>Via:</code> が + 生成されることはありません。</li> </ul> </usage> </directivesynopsis> <directivesynopsis> <name>ProxyErrorOverride</name> -<description>$B%W%m%-%7$5$l$?%3%s%F%s%D$N%(%i!<%Z!<%8$r>e=q$-$9$k(B</description> +<description>プロキシされたコンテンツのエラーページを上書きする</description> <syntax>ProxyErrorOverride On|Off</syntax> <default>ProxyErrorOverride Off</default> <contextlist><context>server config</context><context>virtual host</context> </contextlist> -<compatibility>$B%P!<%8%g%s(B 2.0 $B0J9_$G;HMQ2DG=(B</compatibility> +<compatibility>バージョン 2.0 以降で使用可能</compatibility> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O%j%P!<%9%W%m%-%7$r;HMQ$7$F$$$F!"(B - $B%(%s%I%f!<%6$KAw$i$l$k%(%i!<%Z!<%8$N308+$r6&DL$N$b$N$K$7$?$$$H$-$K(B - $BM-MQ$G$9!#$3$N%G%#%l%/%F%#%V$O(B (<module>mod_include</module> $B$N(B SSI $B$K$h$C$F(B) - $B%$%s%/%k!<%I$5$l$?%U%!%$%k$,%(%i!<%3!<%I$r<hF@$7$F!"@5$7$/F0:n$r(B - $B$9$k$h$&$K$b$7$^$9(B ($B%G%U%)%k%H$NF0:n$O!"%W%m%-%7$5$l$?%5!<%P$N(B - $B%(%i!<%Z!<%8$NI=<($G!"$3$N%G%#%l%/%F%#%V$rM-8z$K$9$k$H(B SSI $B$N%(%i!<(B - $B%a%C%;!<%8$rI=<($7$^$9(B)$B!#(B</p> + <p>このディレクティブはリバースプロキシを使用していて、 + エンドユーザに送られるエラーページの外見を共通のものにしたいときに + 有用です。このディレクティブは (<module>mod_include</module> の SSI によって) + インクルードされたファイルがエラーコードを取得して、正しく動作を + するようにもします (デフォルトの動作は、プロキシされたサーバの + エラーページの表示で、このディレクティブを有効にすると SSI のエラー + メッセージを表示します)。</p> </usage> </directivesynopsis> diff --git a/docs/manual/mod/mod_proxy_ajp.xml.ja b/docs/manual/mod/mod_proxy_ajp.xml.ja index 4174298175..361b92bcf4 100644 --- a/docs/manual/mod/mod_proxy_ajp.xml.ja +++ b/docs/manual/mod/mod_proxy_ajp.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 395228:655869 (outdated) --> @@ -23,123 +23,123 @@ <modulesynopsis metafile="mod_proxy_ajp.xml.meta"> <name>mod_proxy_ajp</name> -<description><module>mod_proxy</module> $B$G(B AJP -$B$r%5%]!<%H$9$k$?$a$N%b%8%e!<%k(B</description> +<description><module>mod_proxy</module> で AJP +をサポートするためのモジュール</description> <status>Extension</status> <sourcefile>proxy_ajp.c</sourcefile> <identifier>proxy_ajp_module</identifier> <summary> - <p>$BK\%b%8%e!<%k$K$O(B <module>mod_proxy</module> $B$,(B<em>$BI,MW$G$9(B</em>$B!#(B - <code>Apache JServ Protocol version 1.3</code> ($B0J9_(B <em>AJP13</em>) - $B$r%5%]!<%H$7$^$9!#(B</p> + <p>本モジュールには <module>mod_proxy</module> が<em>必要です</em>。 + <code>Apache JServ Protocol version 1.3</code> (以降 <em>AJP13</em>) + をサポートします。</p> - <p><code>AJP13</code> $B%W%m%H%3%k$r07$($k$h$&$K$9$k$K$O(B - <module>mod_proxy</module> $B$H(B <module>mod_proxy_ajp</module> - $B$r%5!<%P$KAH$_9~$`I,MW$,$"$j$^$9!#(B</p> + <p><code>AJP13</code> プロトコルを扱えるようにするには + <module>mod_proxy</module> と <module>mod_proxy_ajp</module> + をサーバに組み込む必要があります。</p> - <note type="warning"><title>$B7Y9p(B</title> + <note type="warning"><title>警告</title> <p><a href="#access" - >$B0BA4$J%5!<%P$K$9$k(B</a>$B$^$G%W%m%/%75!G=$OM-8z$K$7$J$$$G$/$@$5$$!#(B - $B%*!<%W%s%W%m%-%7%5!<%P$O$"$J$?<+?H$N%M%C%H%o!<%/$K$H$C$F$b!"(B - $B%$%s%?!<%M%C%HA4BN$K$H$C$F$b4m81$G$9!#(B</p> + >安全なサーバにする</a>までプロクシ機能は有効にしないでください。 + オープンプロキシサーバはあなた自身のネットワークにとっても、 + インターネット全体にとっても危険です。</p> </note> </summary> <seealso><module>mod_proxy</module></seealso> -<section id="overviewprotocol"><title>$B%W%m%H%3%k$N35MW(B</title> - <p><code>AJP13</code> $B%W%m%H%3%k$O%Q%1%C%H;X8~$G$9!#(B - $B2DFI$J%W%l!<%s%F%-%9%H7A<0$G$O$J$/%P%$%J%j7A<0$K$J$C$?$N$O!"(B - $B$*$=$i$/%Q%U%)!<%^%s%9>e$NM}M3$K$h$j$^$9!#(B - $B%&%'%V%5!<%P$O%5!<%V%l%C%H%3%s%F%J$H(B TCP $B%3%M%/%7%g%s$GDL?.$7$^$9!#(B - $B%=%1%C%H@8@.$O=E$$=hM}$J$N$G!"Ii2Y$r8:$i$9$?$a$K!"%5!<%V%l%C%H%3%s%F%J$H$N(B - TCP $B@\B3$r0];}$7!"J#?t$N%j%/%(%9%H!&%l%9%]%s%9=hM}%5%$%/%k$KBP$7$F0l$D$N(B - $B%3%M%/%7%g%s$r;H$$$^$o$9$h$&$K$J$C$F$$$^$9!#(B</p> - <p>$B$"$k%j%/%(%9%H$K%3%M%/%7%g%s$,3d$jEv$F$i$l$k$H!"$=$N=hM}%5%$%/%k$,(B - $B40N;$9$k$^$GB>$N$b$N$K;H$o$l$k$3$H$O$"$j$^$;$s!#(B - $B$D$^$j%3%M%/%7%g%s>e$G$O!"%j%/%(%9%H$NF1;~=hM}$O9T$o$l$^$;$s!#(B - $B$3$N$?$a!"%3%M%/%7%g%sN>C<$G$N<B9T$9$k%3!<%I$r4J7i$K$G$-$k0lJ}$G!"(B - $BF1;~$K3+$/%3%M%/%7%g%s$OB?$/$J$C$F$$$^$9!#(B</p> - <p>$B%5!<%V%l%C%H%3%s%F%J$X$N%3%M%/%7%g%s$r3+$$$?8e$O!"%3%M%/%7%g%s$N>uBV$O(B - $B<!$N$I$l$+$K$J$j$^$9(B:</p> +<section id="overviewprotocol"><title>プロトコルの概要</title> + <p><code>AJP13</code> プロトコルはパケット指向です。 + 可読なプレーンテキスト形式ではなくバイナリ形式になったのは、 + おそらくパフォーマンス上の理由によります。 + ウェブサーバはサーブレットコンテナと TCP コネクションで通信します。 + ソケット生成は重い処理なので、負荷を減らすために、サーブレットコンテナとの + TCP 接続を維持し、複数のリクエスト・レスポンス処理サイクルに対して一つの + コネクションを使いまわすようになっています。</p> + <p>あるリクエストにコネクションが割り当てられると、その処理サイクルが + 完了するまで他のものに使われることはありません。 + つまりコネクション上では、リクエストの同時処理は行われません。 + このため、コネクション両端での実行するコードを簡潔にできる一方で、 + 同時に開くコネクションは多くなっています。</p> + <p>サーブレットコンテナへのコネクションを開いた後は、コネクションの状態は + 次のどれかになります:</p> <ul> - <li> Idle <br />$B%3%M%/%7%g%s>e$G=hM}$5$l$F$$$k%j%/%(%9%H$O$"$j$^$;$s!#(B</li> - <li> Assigned <br />$B%3%M%/%7%g%s$O%j%/%(%9%H$r=hM}Cf$G$9!#(B</li> + <li> Idle <br />コネクション上で処理されているリクエストはありません。</li> + <li> Assigned <br />コネクションはリクエストを処理中です。</li> </ul> - <p>$B%3%M%/%7%g%s$,FCDj$N%j%/%(%9%H$K%"%5%$%s$5$l$k$H!"4pK\E*$J>pJs(B ($BNc$($P(B - HTTP $B%X%C%@Ey(B) $B$,05=L$5$l$?7A(B ($BNc$($PDL>o$NJ8;zNs$O@0?t$K%(%s%3!<%I$5$l$^$9(B) - $B$GE>Aw$5$l$^$9!#>\:Y$O2<5-$N!V%j%/%(%9%H%Q%1%C%H$N9=B$!W$r;2>H$7$F$/$@$5$$!#(B - $B%j%/%(%9%H$K%\%G%#$,B8:_(B <code>(content-length > 0)</code> $B$9$l$P!"(B - $B4pK\E*$J>pJs$ND>8e$KJL%Q%1%C%H$GE>Aw$5$l$^$9!#(B</p> - <p>$B$3$N;~E@$G$*$=$i$/!"%5!<%V%l%C%H%3%s%F%J$O=hM}$r3+;O$G$-$k$h$&$K$J$j$^$9!#(B - $B$G$9$N$G!"<!$N%a%C%;!<%8$r%&%'%V%5!<%P$KLa$7$FCN$i$;$i$l$k$h$&$K$J$j$^$9!#(B</p> + <p>コネクションが特定のリクエストにアサインされると、基本的な情報 (例えば + HTTP ヘッダ等) が圧縮された形 (例えば通常の文字列は整数にエンコードされます) + で転送されます。詳細は下記の「リクエストパケットの構造」を参照してください。 + リクエストにボディが存在 <code>(content-length > 0)</code> すれば、 + 基本的な情報の直後に別パケットで転送されます。</p> + <p>この時点でおそらく、サーブレットコンテナは処理を開始できるようになります。 + ですので、次のメッセージをウェブサーバに戻して知らせられるようになります。</p> <ul> - <li>SEND_HEADERS <br/>$B%V%i%&%6$K%X%C%@$rAw?.$7$^$9!#(B</li> - <li>SEND_BODY_CHUNK <br/>$B%V%i%&%6$K%\%G%#%G!<%?$N%A%c%s%/$rAw$j$^$9!#(B + <li>SEND_HEADERS <br/>ブラウザにヘッダを送信します。</li> + <li>SEND_BODY_CHUNK <br/>ブラウザにボディデータのチャンクを送ります。 </li> - <li>GET_BODY_CHUNK <br/>$B%j%/%(%9%H$N%G!<%?$rA4$F<u$1<h$j=*$o$C$F$$$J$$$H$-$K!"(B - $B;D$C$F$$$k%G!<%?$r<u$1<h$j$^$9!#%Q%1%C%H$K$"$kDj$^$C$?:GBgD9$,$"$j!"G$0U$N(B - $BBg$-$5$N%G!<%?$,%j%/%(%9%H$N%\%G%#$H$7$F4^$^$l$&$k>l9g(B - ($BNc$($P%U%!%$%k$N%"%C%W%m!<%I$N>l9g(B) $B$KI,MW$H$J$j$^$9!#(B - ($BCm(B: HTTP $B$N%A%c%s%/E>Aw$H$O4XO"$"$j$^$;$s!#(B)</li> - <li>END_RESPONSE <br/>$B%j%/%(%9%H=hM}%5%$%/%k$r=*N;$7$^$9!#(B</li> + <li>GET_BODY_CHUNK <br/>リクエストのデータを全て受け取り終わっていないときに、 + 残っているデータを受け取ります。パケットにある定まった最大長があり、任意の + 大きさのデータがリクエストのボディとして含まれうる場合 + (例えばファイルのアップロードの場合) に必要となります。 + (注: HTTP のチャンク転送とは関連ありません。)</li> + <li>END_RESPONSE <br/>リクエスト処理サイクルを終了します。</li> </ul> - <p>$B8D!9$N%a%C%;!<%8$O$=$l$>$l0[$J$k%G!<%?%Q%1%C%H7A<0$K$J$C$F$$$^$9!#(B - $B8e=R$N!V%l%9%]%s%9%Q%1%C%H$N9=B$!W$r;2>H$7$F$/$@$5$$!#(B</p> + <p>個々のメッセージはそれぞれ異なるデータパケット形式になっています。 + 後述の「レスポンスパケットの構造」を参照してください。</p> </section> -<section id="basppacketstruct"><title>$B4pK\%Q%1%C%H9=B$(B</title> - <p>$B$3$N%W%m%H%3%k$K$O(B XDR $B$+$i<u$17Q$$$@ItJ,$,>/$7$"$j$^$9$,!"B?$/$NE@$G(B - $B0[$J$j$^$9(B ($BNc$($P(B 4 $B%P%$%H%"%i%$%a%s%H$G$J$$$3$H$J$I(B) $B!#(B</p> - <p>$B%P%$%H%*!<%@!<(B: $B8D!9$N%P%$%H$N%(%s%G%#%"%s$,$I$&$J$C$F$$$k$+$O!"(B - $B;d$O>\$7$/$J$$$N$G$9$,!"%j%H%k%(%s%G%#%"%s$K$J$C$F$$$k$H;W$$$^$9!#(B - XDR $B;EMM$G$=$&$J$C$F$$$k$N$H!"AG@2$i$7$$$3$H$K(B sys/socket $B%i%$%V%i%j$,(B - (C $B$G(B) $B$=$&$$$&Iw$K$G$-$F$$$k$N$G$=$&$J$N$@$H;W$$$^$7$?!#(B - $B%=%1%C%H8F$S=P$7$NFbIt$K$D$$$F$h$j>\$7$$J}$,$$$i$C$7$c$$$^$7$?$i!"(B - $B$465<x$/$@$5$$!#(B</p> - <p>$B%W%m%H%3%k$K$O(B 4 $B$D$N%G!<%?%?%$%W$,$"$j$^$9(B: byte, boolean, - integer, string $B$G$9!#(B</p> +<section id="basppacketstruct"><title>基本パケット構造</title> + <p>このプロトコルには XDR から受け継いだ部分が少しありますが、多くの点で + 異なります (例えば 4 バイトアライメントでないことなど) 。</p> + <p>バイトオーダー: 個々のバイトのエンディアンがどうなっているかは、 + 私は詳しくないのですが、リトルエンディアンになっていると思います。 + XDR 仕様でそうなっているのと、素晴らしいことに sys/socket ライブラリが + (C で) そういう風にできているのでそうなのだと思いました。 + ソケット呼び出しの内部についてより詳しい方がいらっしゃいましたら、 + ご教授ください。</p> + <p>プロトコルには 4 つのデータタイプがあります: byte, boolean, + integer, string です。</p> <dl> - <dt><strong>Byte</strong></dt><dd>$B%P%$%H0l$D$G$9!#(B</dd> + <dt><strong>Byte</strong></dt><dd>バイト一つです。</dd> <dt><strong>Boolean</strong></dt> - <dd>$B%P%$%H0l$D$G!"(B<code>1 = true</code>, <code>0 = false</code> $B$G$9!#(B - (C $B$N$h$&$K(B) $BHsNm$r??$H$7$F07$C$F$7$^$&$H!"$"$k>l9g$OF0$/$+$b$7$l$^$;$s$7!"(B - $BF0$+$J$$$+$b$7$l$^$;$s!#(B</dd> + <dd>バイト一つで、<code>1 = true</code>, <code>0 = false</code> です。 + (C のように) 非零を真として扱ってしまうと、ある場合は動くかもしれませんし、 + 動かないかもしれません。</dd> <dt><strong>Integer</strong></dt> - <dd><code>0 $B$+$i(B 2^16 (32768)</code> $B$NHO0O$N?t;z!#9b<!$N(B 2 $B%P%$%H$,(B - $B@h$K3JG<$5$l$^$9!#(B</dd> + <dd><code>0 から 2^16 (32768)</code> の範囲の数字。高次の 2 バイトが + 先に格納されます。</dd> <dt><strong>String</strong></dt> - <dd>$B2DJQD9$NJ8;zNs(B (2^16 $B$,D9$5$N>e8B(B) $B!#D9$5>pJs$N%Q%1%C%H(B 2 $B%P%$%H$N8e$K(B - $BJ8;zNs(B ($B=*C<J8;z(B '\0' $B$r4^$`(B) $B$,B3$/7A<0$G%(%s%3!<%I$5$l$^$9!#(B - $B%(%s%3!<%I$5$l$F$$$kD9$5>pJs$O:G8e$N(B '\0' $B$r(B<strong>$B%+%&%s%H$7$J$$(B</strong> - $B$3$H$KCm0U$7$F$/$@$5$$!=!=$3$l$O(B <code>strlen</code> $B$HF1MM$G$9!#(B - $B$3$l$i$N=*C<J8;z$r%9%-%C%W$9$k$?$a$K!"$"$^$j0UL#$NL5$$%$%s%/%j%a%s%HJ8(B - $B$r$?$/$5$s=q$+$J$$$H$$$1$J$$$N$O!"(B - Java $B$NB&$+$i8+$k$H>/$7J6$i$o$7$/46$8$i$l$k$+$b$7$l$^$;$s!#(B - $B$3$&$J$C$?M}M3$O$*$=$i$/!"(BServlet $B%3%s%F%J$+$iJV$5$l$kJ8;zNs$rFI$_=P$9;~$K!"(B - $B8zN($h$/(B C $B$N%3!<%I$r=q$1$k$h$&$K$9$k!=!=%5!<%V%l%C%H$+$iJV$5$l$k(B - $BJ8;zNs$O(B \0 $BJ8;z$G=*C<$5$l$F$$$k$N$G!"(BC $B$N%3!<%I$G$O$o$6$o$6%3%T!<$r$;$:$K!"(B - $B0l$D$N%P%C%U%!$X$N%j%U%!%l%s%9$r<h$j2s$9$h$&$K=q$/$3$H$,$G$-$k!=!=(B - $B$?$a$@$H;W$o$l$^$9!#(B - '\0' $BJ8;z$,$J$$>l9g$O!"(BC $B$G$OJ8;zNs$N5,B'$K9g$&$h$&$K%3%T!<$7$J$1$l$P(B - $B$$$1$J$/$J$C$F$7$^$$$^$9!#(B</dd> + <dd>可変長の文字列 (2^16 が長さの上限) 。長さ情報のパケット 2 バイトの後に + 文字列 (終端文字 '\0' を含む) が続く形式でエンコードされます。 + エンコードされている長さ情報は最後の '\0' を<strong>カウントしない</strong> + ことに注意してください――これは <code>strlen</code> と同様です。 + これらの終端文字をスキップするために、あまり意味の無いインクリメント文 + をたくさん書かないといけないのは、 + Java の側から見ると少し紛らわしく感じられるかもしれません。 + こうなった理由はおそらく、Servlet コンテナから返される文字列を読み出す時に、 + 効率よく C のコードを書けるようにする――サーブレットから返される + 文字列は \0 文字で終端されているので、C のコードではわざわざコピーをせずに、 + 一つのバッファへのリファレンスを取り回すように書くことができる―― + ためだと思われます。 + '\0' 文字がない場合は、C では文字列の規則に合うようにコピーしなければ + いけなくなってしまいます。</dd> </dl> - <section><title>$B%Q%1%C%H%5%$%:(B</title> - <p>$BB?$/$N%3!<%I$G$=$&$J$C$F$$$k$N$G$9$,!"%Q%1%C%H%5%$%:$N:GBg%5%$%:$O(B - <code>8 * 1024 (8K)</code> $B$G$9!#%Q%1%C%H$N<B:]$ND9$5$O%X%C%@$K(B - $B%(%s%3!<%I$5$l$FF~$C$F$$$^$9!#(B</p> + <section><title>パケットサイズ</title> + <p>多くのコードでそうなっているのですが、パケットサイズの最大サイズは + <code>8 * 1024 (8K)</code> です。パケットの実際の長さはヘッダに + エンコードされて入っています。</p> </section> - <section><title>$B%Q%1%C%H%X%C%@(B</title> - <p>$B%5!<%P$+$i%3%s%F%J$KAw=P$5$l$k%Q%1%C%H$O(B <code>0x1234</code> $B$G;O$^$j$^$9!#(B - $B%3%s%F%J$+$i%5!<%P$KAw$i$l$k%Q%1%C%H$O(B <code>AB</code> (ASCII $B%3!<%I(B A $B$H(B - ASCII $B%3!<%I(B B) $B$G;O$^$j$^$9!#$3$NFs%P%$%H$N8e$K!"%Z%$%m!<%ID9$,(B ($B>e5-$N7A<0$G(B) - $BB3$-$^$9!#$3$N$?$a!"%Z%$%m!<%ID9$N:GBgCM$O(B 2^16 $B$K$G$-$k$h$&$K;W$($^$9$,!"(B - $B<B:]$K$O%3!<%I$G$O:GBgCM$O(B 8K $B$K@_Dj$5$l$F$$$^$9!#(B</p> + <section><title>パケットヘッダ</title> + <p>サーバからコンテナに送出されるパケットは <code>0x1234</code> で始まります。 + コンテナからサーバに送られるパケットは <code>AB</code> (ASCII コード A と + ASCII コード B) で始まります。この二バイトの後に、ペイロード長が (上記の形式で) + 続きます。このため、ペイロード長の最大値は 2^16 にできるように思えますが、 + 実際にはコードでは最大値は 8K に設定されています。</p> <table> <tr> - <td colspan="6"><em>$B%Q%1%C%H7A<0(B (Server->Container)</em></td> + <td colspan="6"><em>パケット形式 (Server->Container)</em></td> </tr> <tr> <td>Byte</td> @@ -153,13 +153,13 @@ <td>Contents</td> <td>0x12</td> <td>0x34</td> - <td colspan="2">$B%G!<%?D9(B (n)</td> + <td colspan="2">データ長 (n)</td> <td>Data</td> </tr> </table> <table> <tr> - <td colspan="6"><em>$B%Q%1%C%H7A<0(B (Container->Server)</em></td> + <td colspan="6"><em>パケット形式 (Container->Server)</em></td> </tr> <tr> <td>Byte</td> @@ -173,98 +173,98 @@ <td>Contents</td> <td>A</td> <td>B</td> - <td colspan="2">$B%G!<%?D9(B (n)</td> + <td colspan="2">データ長 (n)</td> <td>Data</td> </tr> </table> - <p>$B$[$H$s$I$N%Q%1%C%H$G!"%Z%$%m!<%I$N:G=i$N%P%$%H$,%a%C%;!<%8$N7?$r%(%s%3!<%I(B - $B$7$F$$$^$9!#Nc30$O%5!<%P$+$i%3%s%F%J$KAw$i$l$k%j%/%(%9%H%\%G%#%Q%1%C%H$G$9(B - $B!=!=$3$l$i$OI8=`E*$J%Q%1%C%H7A<0(B (<code>0x1234</code> $B$H%Q%1%C%HD9(B) - $B$G$9$,!"$=$N8e$KB3$/%W%l%U%#%C%/%9%3!<%I$,$"$j$^$;$s!#(B</p> - <p>$B%&%'%V%5!<%P$O<!$N%a%C%;!<%8$r%5!<%V%l%C%H%3%s%F%J$KAw=P$G$-$^$9!#(B</p> + <p>ほとんどのパケットで、ペイロードの最初のバイトがメッセージの型をエンコード + しています。例外はサーバからコンテナに送られるリクエストボディパケットです + ――これらは標準的なパケット形式 (<code>0x1234</code> とパケット長) + ですが、その後に続くプレフィックスコードがありません。</p> + <p>ウェブサーバは次のメッセージをサーブレットコンテナに送出できます。</p> <table> <tr> - <td>$B%3!<%I(B</td> - <td>$B%Q%1%C%H$N7?(B</td> - <td>$B0UL#(B</td> + <td>コード</td> + <td>パケットの型</td> + <td>意味</td> </tr> <tr> <td>2</td> <td>Forward Request</td> - <td>$B%j%/%(%9%H=hM}%5%$%/%k$r8eB3$N%G!<%?$H$H$b$K3+;O$9$k!#(B</td> + <td>リクエスト処理サイクルを後続のデータとともに開始する。</td> </tr> <tr> <td>7</td> <td>Shutdown</td> - <td>$B%&%'%V%5!<%P$,%3%s%F%J$K!"%3%s%F%J$r=*N;$9$k$h$&$KEA$($k!#(B</td> + <td>ウェブサーバがコンテナに、コンテナを終了するように伝える。</td> </tr> <tr> <td>8</td> <td>Ping</td> - <td>$B%&%'%V%5!<%P$,%3%s%F%J$K@)8f$r<u$1;}$D$h$&$KEA$($k(B - ($B%;%-%e%"%m%0%$%s%U%'!<%:(B) $B!#(B</td> + <td>ウェブサーバがコンテナに制御を受け持つように伝える + (セキュアログインフェーズ) 。</td> </tr> <tr> <td>10</td> <td>CPing</td> - <td>$B%&%'%V%5!<%P$,%3%s%F%J$K(B CPong $B$GB(:B$K1~Ez$9$k$h$&$KEA$($k!#(B</td> + <td>ウェブサーバがコンテナに CPong で即座に応答するように伝える。</td> </tr> <tr> <td>none</td> <td>Data</td> - <td>$B%5%$%:(B (2 $B%P%$%H(B) $B$H$=$l$KB3$/%\%G%#%G!<%?!#(B</td> + <td>サイズ (2 バイト) とそれに続くボディデータ。</td> </tr> </table> - <p>$B4pK\E*$J%;%-%e%j%F%#$r3NJ]$9$k$?$a!"%[%9%H$5$l$F$$$k%^%7%s$HF10l$N(B - $B%^%7%s$+$i$N%j%/%(%9%H$KBP$7$F$N$_!"%3%s%F%J$O<B:]$K(B <code>Shutdown</code> - $B$r<B9T$7$^$9!#(B</p> - <p>$B:G=i$N(B <code>Data</code> $B%Q%1%C%H$O!"(B<code>Forward Request</code> - $B$ND>8e$K%&%'%V%5!<%P$+$iAw$i$l$^$9!#(B</p> - <p>$B%5!<%V%l%C%H%3%s%F%J$O%&%'%V%5!<%P$K!"<!$N%?%$%W$N%a%C%;!<%8$rAw$k$3$H$,(B - $B$G$-$^$9(B :</p> + <p>基本的なセキュリティを確保するため、ホストされているマシンと同一の + マシンからのリクエストに対してのみ、コンテナは実際に <code>Shutdown</code> + を実行します。</p> + <p>最初の <code>Data</code> パケットは、<code>Forward Request</code> + の直後にウェブサーバから送られます。</p> + <p>サーブレットコンテナはウェブサーバに、次のタイプのメッセージを送ることが + できます :</p> <table> <tr> - <td>$B%3!<%I(B</td> - <td>$B%Q%1%C%H$N7?(B</td> - <td>$B0UL#(B</td> + <td>コード</td> + <td>パケットの型</td> + <td>意味</td> </tr> <tr> <td>3</td> <td>Send Body Chunk</td> - <td>$B%5!<%V%l%C%H%3%s%F%J$+$i%&%'%V%5!<%P$K(B - ($B$=$7$F$*$=$i$/$=$N$^$^%V%i%&%6$K(B)$B!"%\%G%#$N%A%c%s%/$rAw$k!#(B</td> + <td>サーブレットコンテナからウェブサーバに + (そしておそらくそのままブラウザに)、ボディのチャンクを送る。</td> </tr> <tr> <td>4</td> <td>Send Headers</td> - <td>$B%5!<%V%l%C%H%3%s%F%J$+$i%&%'%V%5!<%P$K(B ($B$=$7$F$*$=$i$/$=$N$^$^%V%i%&%6$K(B) - $B%l%9%]%s%9%X%C%@$rAw$k!#(B</td> + <td>サーブレットコンテナからウェブサーバに (そしておそらくそのままブラウザに) + レスポンスヘッダを送る。</td> </tr> <tr> <td>5</td> <td>End Response</td> - <td>$B%l%9%]%s%9(B ($B$D$^$j%j%/%(%9%H=hM}%5%$%/%k(B) $B=*N;$NL\0u$rAw$k!#(B + <td>レスポンス (つまりリクエスト処理サイクル) 終了の目印を送る。 </td> </tr> <tr> <td>6</td> <td>Get Body Chunk</td> - <td>$B$^$@A4$FE>Aw$5$l$F$$$J$$>l9g!";D$C$F$$$k%j%/%(%9%H$N%G!<%?$r<u$1<h$k!#(B + <td>まだ全て転送されていない場合、残っているリクエストのデータを受け取る。 </td> </tr> <tr> <td>9</td> - <td>CPong $B1~Ez(B</td> - <td>CPing $B%j%/%(%9%H$K1~Ez$9$k!#(B</td> + <td>CPong 応答</td> + <td>CPing リクエストに応答する。</td> </tr> </table> - <p>$B>e5-%a%C%;!<%8$O!"$=$l$>$lFbIt9=B$$,0[$J$C$F$$$^$9!#>\:Y$O2<5-$r$4Mw$/$@$5$$!#(B + <p>上記メッセージは、それぞれ内部構造が異なっています。詳細は下記をご覧ください。 </p> </section> </section> -<section id="rpacetstruct"><title>$B%j%/%(%9%H%Q%1%C%H9=B$(B</title> - <p>$B%5!<%P$+$i%3%s%F%J$XAw$i$l$k%a%C%;!<%8$,(B - <em>Forward Request</em> $B7?$N>l9g(B :</p> +<section id="rpacetstruct"><title>リクエストパケット構造</title> + <p>サーバからコンテナへ送られるメッセージが + <em>Forward Request</em> 型の場合 :</p> <example><pre> AJP13_FORWARD_REQUEST := prefix_code (byte) 0x02 = JK_AJP13_FORWARD_REQUEST @@ -281,7 +281,7 @@ AJP13_FORWARD_REQUEST := attributes *(attribut_name attribute_value) request_terminator (byte) OxFF </pre></example> - <p><code>request_headers</code> $B$O<!$N$h$&$J9=B$$K$J$C$F$$$^$9(B : + <p><code>request_headers</code> は次のような構造になっています : </p><example><pre> req_header_name := sc_req_header_name | (string) [see below for how this is parsed] @@ -290,24 +290,24 @@ sc_req_header_name := 0xA0xx (integer) req_header_value := (string) </pre></example> - <p><code>$BB0@-(B</code> $B$O%*%W%7%g%s$G!"<!$N$h$&$J9=B$$r$7$F$$$^$9(B :</p> + <p><code>属性</code> はオプションで、次のような構造をしています :</p> <example><pre> attribute_name := sc_a_name | (sc_a_req_attribute string) attribute_value := (string) </pre></example> - <p>$B$b$C$H$b=EMW$J%X%C%@$O(B <code>content-length</code> $B$@$H$$$&$3$H$K(B - $BCm0U$7$F$/$@$5$$!#%3%s%F%J$O<!$N%Q%1%C%H$rC5$9$+$I$&$+$r!"(B - $B$=$l$r8+$F7h$a$k$+$i$G$9!#(B</p> - <section><title>Forward Request $BMWAG$N>\:Y$J@bL@(B + <p>もっとも重要なヘッダは <code>content-length</code> だということに + 注意してください。コンテナは次のパケットを探すかどうかを、 + それを見て決めるからです。</p> + <section><title>Forward Request 要素の詳細な説明 </title></section> <section><title>Request prefix</title> - <p>$B%j%/%(%9%H$K$D$$$F$OA4$F!"$3$NCM$O(B 2 $B$K$J$j$^$9!#B>$N(B Prefix $B%3!<%I$N>\:Y$O(B - $B>e5-$r$4Mw$/$@$5$$!#(B</p> + <p>リクエストについては全て、この値は 2 になります。他の Prefix コードの詳細は + 上記をご覧ください。</p> </section> <section><title>Method</title> - <p>HTTP $B%a%=%C%I$O(B 1 $B%P%$%H$K%(%s%3!<%I$5$l$^$9(B :</p> + <p>HTTP メソッドは 1 バイトにエンコードされます :</p> <table> <tr><td>Command Name</td><td>Code</td></tr> <tr><td>OPTIONS</td><td>1</td></tr> @@ -338,25 +338,25 @@ attribute_value := (string) <tr><td>BASELINE_CONTROL</td><td>26</td></tr> <tr><td>MKACTIVITY</td><td>27</td></tr> </table> - <p>$B:#8e$N(B ajp13 $B%P!<%8%g%s$G$O!"$3$N0lMw$K$J$$!":#8eDI2C$5$l$k%a%=%C%I$r(B - $BAw$k$+$b$7$l$^$;$s!#(B</p> + <p>今後の ajp13 バージョンでは、この一覧にない、今後追加されるメソッドを + 送るかもしれません。</p> </section> <section><title>protocol, req_uri, remote_addr, remote_host, server_name, server_port, is_ssl</title> - <p>$B$3$l$i$O$^$5$KJ8;zDL$j$N$b$N$G$9!#$I$l$bI,MW$G!"%j%/%(%9%H$NKh2s$K$D$-(B - $BAw$i$l$^$9!#(B</p> + <p>これらはまさに文字通りのものです。どれも必要で、リクエストの毎回につき + 送られます。</p> </section> <section><title>Headers</title> - <p><code>request_headers</code> $B$N9=B$$O<!$N$h$&$J$b$N$G$9(B : - $B$^$:%X%C%@$N?t(B <code>num_headers</code> $B$,%(%s%3!<%I$5$l$^$9!#(B - $B<!$K%X%C%@L>(B <code>req_header_name</code> / $BCM(B <code>req_header_value</code> - $B$NAH$,B3$-$^$9!#8zN($N$?$a!"0lHLE*$J%X%C%@$O@0?t$G%(%s%3!<%I$7$FE>Aw$7$^$9!#(B - $B%X%C%@L>$,4pK\%X%C%@$N0lMw$KL5$$>l9g$O!"DL>oDL$j(B ($BJ8;zNs$H$7$F!"D9$5(B - $B%W%l%U%#%C%/%9IU$-$G(B) $BE>Aw$5$l$^$9!#0lHLE*$J%X%C%@(B - <code>sc_req_header_name</code> $B$N0lMw$H$=$N%3!<%I$O<!$NDL$j$G$9(B - ($B$I$l$bBgJ8;z>.J8;z$r6hJL$7$^$9(B) :</p> + <p><code>request_headers</code> の構造は次のようなものです : + まずヘッダの数 <code>num_headers</code> がエンコードされます。 + 次にヘッダ名 <code>req_header_name</code> / 値 <code>req_header_value</code> + の組が続きます。効率のため、一般的なヘッダは整数でエンコードして転送します。 + ヘッダ名が基本ヘッダの一覧に無い場合は、通常通り (文字列として、長さ + プレフィックス付きで) 転送されます。一般的なヘッダ + <code>sc_req_header_name</code> の一覧とそのコードは次の通りです + (どれも大文字小文字を区別します) :</p> <table> - <tr><td>$BL>A0(B</td><td>$B%3!<%I$NCM(B</td><td>$B%3!<%IL>(B</td></tr> + <tr><td>名前</td><td>コードの値</td><td>コード名</td></tr> <tr><td>accept</td><td>0xA001</td><td>SC_REQ_ACCEPT</td></tr> <tr><td>accept-charset</td><td>0xA002</td><td>SC_REQ_ACCEPT_CHARSET </td></tr> @@ -378,32 +378,32 @@ attribute_value := (string) <tr><td>referer</td><td>0xA00D</td><td>SC_REQ_REFERER</td></tr> <tr><td>user-agent</td><td>0xA00E</td><td>SC_REQ_USER_AGENT</td></tr> </table> - <p>$B$3$l$rFI$_9~$`(B Java $B$N%3!<%I$G$O!":G=i$N(B 2 $B%P%$%H@0?t$r<h$j9~$_!"(B - $BL\0u$K$J$k%P%$%H(B <code>'0xA0'</code> $B$G$"$l$P!"%X%C%@L>$NG[Ns$N(B - $B%$%s%G%C%/%9$r;H$$$^$9!#@hF,%P%$%H$,(B <code>0xA0</code> $B$G$J$$>l9g$O!"(B - $B@hF,(B 2 $B%P%$%H$OJ8;zNsD9$rI=$9@0?t$G$"$k$H2r<a$7!"FI$_9~$_$O$8$a$^$9!#(B</p> - <p>$B%X%C%@L>$ND9$5$O(B <code>0x9999 (==0xA000 -1)</code> $B0J>e$K$J$i$J$$$H$$$&(B - $B2>Dj$N2<$KF0$$$F$$$F!">/$7$"$$$^$$$G$9$,9gM}E*$J5sF0$K$J$C$F$$$^$9!#(B</p> - <note><title>$BCm(B:</title> - <code>content-length</code> $B%X%C%@$O$H$F$b=EMW$G$9!#(B - $BB8:_$7$F$$$FHs%<%m$G$"$l$P!"%j%/%(%9%H$K$O%\%G%#$,$"$k(B ($BNc$($P(B POST - $B%j%/%(%9%H(B) $B$H?dB,$7!"$=$N%\%G%#$r<h$j9~$`$?$a$K(B - $BD>8e$N%Q%1%C%H$rF~NO%9%H%j!<%`$+$iFI$_9~$_$O$8$a$^$9!#(B + <p>これを読み込む Java のコードでは、最初の 2 バイト整数を取り込み、 + 目印になるバイト <code>'0xA0'</code> であれば、ヘッダ名の配列の + インデックスを使います。先頭バイトが <code>0xA0</code> でない場合は、 + 先頭 2 バイトは文字列長を表す整数であると解釈し、読み込みはじめます。</p> + <p>ヘッダ名の長さは <code>0x9999 (==0xA000 -1)</code> 以上にならないという + 仮定の下に動いていて、少しあいまいですが合理的な挙動になっています。</p> + <note><title>注:</title> + <code>content-length</code> ヘッダはとても重要です。 + 存在していて非ゼロであれば、リクエストにはボディがある (例えば POST + リクエスト) と推測し、そのボディを取り込むために + 直後のパケットを入力ストリームから読み込みはじめます。 </note> </section> - <section><title>$BB0@-(B</title> - <p><code>?</code> $B%W%l%U%#%C%/%9$G;O$^$kB0@-(B ($BNc(B <code>?context</code>) - $B$O!#>JN,2DG=$G$9!#$=$l$>$lB0@-$N7?$r<($9(B 1 $B%P%$%H$N%3!<%I$H!"(B - $BCM$NJ8;zNs$,B3$-$^$9!#(B - $B$3$l$i$O=gITF1$GAw$k$3$H$,$G$-$^$9(B (C $B$N%3!<%I$O>o$K2<$N0lMw=g$K(B - $BAw$k$h$&$G$9$,(B) $B!#(B - $B%*%W%7%g%s$NB0@-$N%j%9%H$N:G8e$K$O!"FCJL$J=*N;%3!<%I$,Aw$i$l$^$9!#(B - $B%3!<%I$N0lMw$O(B : </p> + <section><title>属性</title> + <p><code>?</code> プレフィックスで始まる属性 (例 <code>?context</code>) + は。省略可能です。それぞれ属性の型を示す 1 バイトのコードと、 + 値の文字列が続きます。 + これらは順不同で送ることができます (C のコードは常に下の一覧順に + 送るようですが) 。 + オプションの属性のリストの最後には、特別な終了コードが送られます。 + コードの一覧は : </p> <table> <tr><td>Information</td><td>Code Value</td><td>Note</td></tr> - <tr><td>?context</td><td>0x01</td><td>$BL$<BAu(B + <tr><td>?context</td><td>0x01</td><td>未実装 </td></tr> - <tr><td>?servlet_path</td><td>0x02</td><td>$BL$<BAu(B + <tr><td>?servlet_path</td><td>0x02</td><td>未実装 </td></tr> <tr><td>?remote_user</td><td>0x03</td><td></td></tr> <tr><td>?auth_type</td><td>0x04</td><td></td></tr> @@ -417,33 +417,33 @@ attribute_value := (string) <tr><td>?ssl_key_size</td><td>0x0B</td><td></td></tr> <tr><td>are_done</td><td>0xFF</td><td>request_terminator</td></tr> </table> - <p><code>context</code> $B$H(B <code>servlet_path</code> $B$O8=:_$N(B C $B$N(B - $B%3!<%I$G$O%;%C%H$5$l$F$$$^$;$s!#$^$?!"$[$H$s$I$N(B Java $B$N%3!<%I$G$b!"(B - $B$3$N%U%#!<%k%I$G2?$,Aw$i$l$F$bL5;k$5$l$^$9(B ($B$3$l$i$N%3!<%I$N8e$KJ8;zNs$,(B - $BAw$i$l$k$H2u$l$k$b$N$b$"$j$^$9(B)$B!#(B - $B$3$l$,%P%0$J$N$+!"C1$KL$<BAu$J$N$+!"Nr;KE*7P0^$G;D$C$F$$$k%3!<%I$J$N$+(B - $BJ,$+$j$^$;$s$,!"%3%M%/%7%g%s$NN>B&$H$b$G8+Ev$?$j$^$;$s!#(B</p> - <p><code>remote_user</code> $B$H(B <code>auth_type</code> $B$O$*$=$i$/(B - HTTP $B%l%Y%k$NG'>Z$r;2>H$7$F$$$F!"%j%b!<%H%f!<%6$N%f!<%6L>$HG'>Z$K;HMQ$7$?(B - $B%?%$%W(B ($BNc(B Basic, Digest) $B$K$D$$$F$d$j<h$j$7$^$9!#(B</p> + <p><code>context</code> と <code>servlet_path</code> は現在の C の + コードではセットされていません。また、ほとんどの Java のコードでも、 + このフィールドで何が送られても無視されます (これらのコードの後に文字列が + 送られると壊れるものもあります)。 + これがバグなのか、単に未実装なのか、歴史的経緯で残っているコードなのか + 分かりませんが、コネクションの両側ともで見当たりません。</p> + <p><code>remote_user</code> と <code>auth_type</code> はおそらく + HTTP レベルの認証を参照していて、リモートユーザのユーザ名と認証に使用した + タイプ (例 Basic, Digest) についてやり取りします。</p> <p><code>query_string</code>, <code>ssl_cert</code>, <code>ssl_cipher</code>, <code>ssl_session</code> - $B$O(B HTTP $B$H(B HTTPS $B$NBP1~$9$kItJ,$r;2>H$7$^$9!#(B</p> - <p><code>jvm_route</code> $B$O%9%F%#%C%-!<%;%C%7%g%s$N%5%]!<%H!=!=(B - $B%m!<%I%P%i%s%9$7$F$$$kJ#?t$N%5!<%PCf$NFCDj$N(B Tomcat $B%$%s%9%?%s%9$H!"(B - $B%f!<%6$N%;%C%7%g%s$H$rI3IU$1$k5!G=!=!=$K;H$o$l$^$9!#(B</p> - <p>$B$3$N4pK\B0@-0lMw$KL5$$$b$N$K$D$$$F$O!"(B<code>req_attribute</code> - $B%3!<%I(B <code>0x0A</code> $B7PM3$GB0@-$r2?8D$G$bAw$k$3$H$,$G$-$^$9!#(B - $BB0@-$NL>A0$HCM$NJ8;zNs$NAH$r!"$=$l$>$l$3$N%3!<%I$ND>8e$KAw$j$^$9!#(B - $B4D6-JQ?t$O$3$NJ}K!$GEA$($i$l$^$9!#(B</p> - <p>$B:G8e$KB0@-$,A4$FAw?.$5$l$?8e$K!"B0@-$N=*C<$r<($9(B <code>0xFF</code> - $B$,Aw=P$5$l$^$9!#$3$N?.9f$OB0@-$N0lMw$N=*$o$j$r<($9$HF1;~$K!"%j%/%(%9%H(B - $B%Q%1%C%H$N=*C<$r$b<($7$F$$$^$9!#(B</p> + は HTTP と HTTPS の対応する部分を参照します。</p> + <p><code>jvm_route</code> はスティッキーセッションのサポート―― + ロードバランスしている複数のサーバ中の特定の Tomcat インスタンスと、 + ユーザのセッションとを紐付ける機能――に使われます。</p> + <p>この基本属性一覧に無いものについては、<code>req_attribute</code> + コード <code>0x0A</code> 経由で属性を何個でも送ることができます。 + 属性の名前と値の文字列の組を、それぞれこのコードの直後に送ります。 + 環境変数はこの方法で伝えられます。</p> + <p>最後に属性が全て送信された後に、属性の終端を示す <code>0xFF</code> + が送出されます。この信号は属性の一覧の終わりを示すと同時に、リクエスト + パケットの終端をも示しています。</p> </section> </section> -<section id="resppacketstruct"><title>$B%l%9%]%s%9%Q%1%C%H9=B$(B</title> - <p>$B%3%s%F%J$,%5!<%P$KAw$jJV$9$3$H$N$G$-$k%a%C%;!<%8(B:</p> +<section id="resppacketstruct"><title>レスポンスパケット構造</title> + <p>コンテナがサーバに送り返すことのできるメッセージ:</p> <example><pre> AJP13_SEND_BODY_CHUNK := prefix_code 3 @@ -474,19 +474,19 @@ AJP13_GET_BODY_CHUNK := prefix_code 6 requested_length (integer) </pre></example> - <section><title>$B>\:Y(B :</title></section> + <section><title>詳細 :</title></section> <section><title>Send Body Chunk</title> - <p>$B%A%c%s%/$O4pK\E*$K$O%P%$%J%j%G!<%?$G!"%V%i%&%6$KD>@\Aw$i$l$^$9!#(B</p> + <p>チャンクは基本的にはバイナリデータで、ブラウザに直接送られます。</p> </section> <section><title>Send Headers</title> - <p>$B%9%F!<%?%9%3!<%I$H%a%C%;!<%8$,DL>o$N(B HTTP $B$NDL?.$K$O$"$j$^$9(B ($BNc(B - <code>200</code> $B$H(B <code>OK</code>)$B!#%l%9%]%s%9%X%C%@L>$O!"(B - $B%j%/%(%9%H%X%C%@L>$HF1MM$NJ}K!$G%(%s%3!<%I$5$l$^$9!#(B - $B%3!<%I$HJ8;zNs$NH=JLJ}K!$N>\:Y$K4X$7$F$O!">e5-$N(B header_encoding - $B$r;2>H$7$F$/$@$5$$!#(B - $B0lHLE*$J%X%C%@$N%3!<%I$O(B :</p> + <p>ステータスコードとメッセージが通常の HTTP の通信にはあります (例 + <code>200</code> と <code>OK</code>)。レスポンスヘッダ名は、 + リクエストヘッダ名と同様の方法でエンコードされます。 + コードと文字列の判別方法の詳細に関しては、上記の header_encoding + を参照してください。 + 一般的なヘッダのコードは :</p> <table> - <tr><td>$BL>A0(B</td><td>$B%3!<%I$NCM(B</td></tr> + <tr><td>名前</td><td>コードの値</td></tr> <tr><td>Content-Type</td><td>0xA001</td></tr> <tr><td>Content-Language</td><td>0xA002</td></tr> <tr><td>Content-Length</td><td>0xA003</td></tr> @@ -499,25 +499,25 @@ AJP13_GET_BODY_CHUNK := <tr><td>Status</td><td>0xA00A</td></tr> <tr><td>WWW-Authenticate</td><td>0xA00B</td></tr> </table> - <p>$B%3!<%I$+%X%C%@J8;zNs$ND>8e$K$O!"%X%C%@$NCM$,%(%s%3!<%I$5$l$^$9!#(B</p> + <p>コードかヘッダ文字列の直後には、ヘッダの値がエンコードされます。</p> </section> <section><title>End Response</title> - <p>$B%j%/%(%9%H=hM}%5%$%/%k$N=*N;$rCN$i$;$^$9!#(B<code>reuse</code> $B%U%i%0$,??(B - <code>(==1)</code> $B$N>l9g!"8=:_;HMQ$7$F$$$k(B TCP $B%3%M%/%7%g%s$O<!$N?7$7$$(B - $B%j%/%(%9%H$K;H$($k$h$&$K$J$j$^$9!#(B<code>reuse</code> $B$,56(B (C $B$N%3!<%I$G$O(B - 1 $B0J30$NA4$F(B) $B$N>l9g$O!"%3%M%/%7%g%s$rJD$8$k$3$H$K$J$j$^$9!#(B</p> + <p>リクエスト処理サイクルの終了を知らせます。<code>reuse</code> フラグが真 + <code>(==1)</code> の場合、現在使用している TCP コネクションは次の新しい + リクエストに使えるようになります。<code>reuse</code> が偽 (C のコードでは + 1 以外の全て) の場合は、コネクションを閉じることになります。</p> </section> <section><title>Get Body Chunk</title> - <p>($B%\%G%#$N%5%$%:$,Bg$-$9$.$F:G=i$N%Q%1%C%H$K<}$^$i$J$$>l9g$d!"(B - $B%j%/%(%9%H$,%A%c%s%/E>Aw$5$l$?>l9g$J$I$K$O!"(B) $B%3%s%F%J$O%j%/%(%9%H$+$i$N(B - $B%G!<%?FI$_9~$_MW5a$r$7$^$9!#%5!<%PB&$O$=$l$KBP$7$F!":G>.(B - <code>request_length</code> $B:GBg(B <code>(8186 (8 Kbytes - 6))</code> - $B$NHO0O$G!"L$E>Aw$G;D$C$F$$$k%j%/%(%9%H%\%G%#$NBg$-$5$N%G!<%?$r(B - $BAw$jJV$7$^$9!#(B<br /> - $B%\%G%#$K$=$l0J>e%G!<%?$,;D$C$F$$$J$$>l9g(B ($B$D$^$j%5!<%V%l%C%H$,(B - $B%\%G%#$N:G8e$rD6$($FFI$_9~$b$&$H$7$?>l9g(B) $B!"%5!<%P$O(B - $B%Z%$%m!<%ID9(B 0 $B$N(B<em>$B6u%Q%1%C%H(B</em><code>(0x12,0x34,0x00,0x00)</code> - $B$rAw$jJV$7$^$9!#(B</p> + <p>(ボディのサイズが大きすぎて最初のパケットに収まらない場合や、 + リクエストがチャンク転送された場合などには、) コンテナはリクエストからの + データ読み込み要求をします。サーバ側はそれに対して、最小 + <code>request_length</code> 最大 <code>(8186 (8 Kbytes - 6))</code> + の範囲で、未転送で残っているリクエストボディの大きさのデータを + 送り返します。<br /> + ボディにそれ以上データが残っていない場合 (つまりサーブレットが + ボディの最後を超えて読み込もうとした場合) 、サーバは + ペイロード長 0 の<em>空パケット</em><code>(0x12,0x34,0x00,0x00)</code> + を送り返します。</p> </section> </section> diff --git a/docs/manual/mod/mod_proxy_balancer.xml.ja b/docs/manual/mod/mod_proxy_balancer.xml.ja index dcaf36a1fd..58d03881e3 100644 --- a/docs/manual/mod/mod_proxy_balancer.xml.ja +++ b/docs/manual/mod/mod_proxy_balancer.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 395228:659902 (outdated) --> @@ -23,66 +23,66 @@ <modulesynopsis metafile="mod_proxy_balancer.xml.meta"> <name>mod_proxy_balancer</name> -<description>$BIi2YJ,;6$N$?$a$N(B <module>mod_proxy</module> $B3HD%(B</description> +<description>負荷分散のための <module>mod_proxy</module> 拡張</description> <status>Extension</status> <sourcefile>proxy_balancer.c</sourcefile> <identifier>proxy_balancer_module</identifier> -<compatibility>2.1 $B0J9_(B</compatibility> +<compatibility>2.1 以降</compatibility> <summary> - <p>$BK\%b%8%e!<%k$K$O(B <module>mod_proxy</module> $B$,(B<em>$BI,MW$G$9(B</em>$B!#(B - <code>HTTP</code>, <code>FTP</code> $B$H(B <code>AJP13</code> - $B%W%m%H%3%k$N%m!<%I%P%i%s%95!G=$r;}$C$F$$$^$9!#(B</p> + <p>本モジュールには <module>mod_proxy</module> が<em>必要です</em>。 + <code>HTTP</code>, <code>FTP</code> と <code>AJP13</code> + プロトコルのロードバランス機能を持っています。</p> - <p>$B$G$9$+$i!"(B $B%m!<%I%P%i%s%9$rM-8z$K$9$k>l9g(B <module>mod_proxy</module> - $B$H(B <module>mod_proxy_balancer</module> $B$,%5!<%P$KAH$_9~$^$l$F(B - $B$$$J$1$l$P$$$1$^$;$s!#(B</p> + <p>ですから、 ロードバランスを有効にする場合 <module>mod_proxy</module> + と <module>mod_proxy_balancer</module> がサーバに組み込まれて + いなければいけません。</p> - <note type="warning"><title>$B7Y9p(B</title> + <note type="warning"><title>警告</title> <p><a href="mod_proxy.html#access" - >$B0BA4$J%5!<%P$K$9$k(B</a>$B$^$G%W%m%/%75!G=$OM-8z$K$7$J$$$G$/$@$5$$!#(B - $B%*!<%W%s%W%m%-%7%5!<%P$O$"$J$?<+?H$N%M%C%H%o!<%/$K$H$C$F$b!"(B - $B%$%s%?!<%M%C%HA4BN$K$H$C$F$b4m81$G$9!#(B</p> + >安全なサーバにする</a>までプロクシ機能は有効にしないでください。 + オープンプロキシサーバはあなた自身のネットワークにとっても、 + インターネット全体にとっても危険です。</p> </note> </summary> <seealso><module>mod_proxy</module></seealso> <section id="scheduler"> - <title>$B%m!<%I%P%i%s%5$N%9%1%8%e!<%i$N%"%k%4%j%:%`(B</title> - <p>$B8=;~E@$G$O(B 2 $B<oN`$N%m!<%I%P%i%s%5%9%1%8%e!<%i%"%k%4%j%:%`$+$iA*$Y$^$9!#(B - $B%j%/%(%9%H2s?t$K$h$k$b$N(B <transnote>Request Counting</transnote> - $B$H!"%H%i%U%#%C%/NL$K$h$k$b$N(B <transnote>Weighted Traffic Counting</transnote> - $B$,$"$j$^$9!#%P%i%s%5$N@_Dj(B <code>lbmethod</code> $BCM$G!"$I$A$i$r;H$&$+;XDj$7$^$9!#(B - $B>\:Y$O(B <directive module="mod_proxy">Proxy</directive> $B%G%#%l%/%F%#%V$r(B - $B;2>H$7$F$/$@$5$$!#(B</p> + <title>ロードバランサのスケジューラのアルゴリズム</title> + <p>現時点では 2 種類のロードバランサスケジューラアルゴリズムから選べます。 + リクエスト回数によるもの <transnote>Request Counting</transnote> + と、トラフィック量によるもの <transnote>Weighted Traffic Counting</transnote> + があります。バランサの設定 <code>lbmethod</code> 値で、どちらを使うか指定します。 + 詳細は <directive module="mod_proxy">Proxy</directive> ディレクティブを + 参照してください。</p> </section> <section id="requests"> - <title>Request Counting $B%"%k%4%j%:%`(B</title> - <p><code>lbmethod=byrequests</code> $B$GM-8z$K$J$j$^$9!#(B - $B$3$N%9%1%8%e!<%i$NGX7J$K$"$k9M$(J}$O!"MM!9$J%o!<%+!<$,$=$l$>$l!"(B - $B@_Dj$5$l$F$$$kJ,C4%j%/%(%9%H?t$r$-$A$s$H<u$1<h$l$k$h$&$K!"(B - $B%j%/%(%9%H$r07$&$H$$$&9M$(J}$G$9!#<!$N$h$&$KF0:n$7$^$9(B:</p> + <title>Request Counting アルゴリズム</title> + <p><code>lbmethod=byrequests</code> で有効になります。 + このスケジューラの背景にある考え方は、様々なワーカーがそれぞれ、 + 設定されている分担リクエスト数をきちんと受け取れるように、 + リクエストを扱うという考え方です。次のように動作します:</p> - <p><dfn>lbfactor</dfn> $B$O!"(B<em>$B$I$NDxEY%o!<%+!<$K;E;v$r?6$k$+(B</em> - $B$D$^$j(B<em>$B%o!<%+!<$N%/%*!<%?(B</em>$B$r;X$7$^$9!#$3$NCM$O(B "$BJ,C4(B" - $BNL$rI=$9@55,2=$5$l$?CM$G$9!#(B</p> + <p><dfn>lbfactor</dfn> は、<em>どの程度ワーカーに仕事を振るか</em> + つまり<em>ワーカーのクオータ</em>を指します。この値は "分担" + 量を表す正規化された値です。</p> - <p><dfn>lbstatus</dfn> $B$O!"(B<em>$B%o!<%+!<$N%/%*!<%?$rK~$?$9$?$a$K(B - $B$I$N$0$i$$5^$.$GF/$+$J$1$l$P$J$i$J$$$+(B</em>$B$r;X$7$^$9!#(B</p> + <p><dfn>lbstatus</dfn> は、<em>ワーカーのクオータを満たすために + どのぐらい急ぎで働かなければならないか</em>を指します。</p> - <p><dfn>$B%o!<%+!<(B</dfn>$B$O%m!<%I%P%i%s%5$N%a%s%P$G!"DL>o$O!"(B - $B%5%]!<%H$5$l$k%W%m%H%3%k$N$&$A$N0l$D$rDs6!$7$F$$$k%j%b!<%H%[%9%H$G$9!#(B + <p><dfn>ワーカー</dfn>はロードバランサのメンバで、通常は、 + サポートされるプロトコルのうちの一つを提供しているリモートホストです。 </p> - <p>$B$^$:8D!9$N%o!<%+!<$K%o!<%+!<%/%*!<%?$r3d$j?6$j!"$I$N%o!<%+!<$,:G$b5^$.$G(B - $BF/$+$J$1$l$P$J$i$J$$$+(B (lbstatus $B$,:GBg$N$b$N(B) $B$rD4$Y$^$9!#(B - $B<!$K;E;v$r$9$k$h$&$K$3$N%o!<%+!<$rA*Br$7!"A*Br$7$?%o!<%+!<$N(B lbstatus - $B$rA4BN$K3d$j?6$C$?$V$s$@$1:9$70z$-$^$9!#$G$9$+$i!"(Blbstatus $B$NAmNL$O(B - $B7k2LE*$KJQ2=$7$^$;$s(B(*)$B$7!"%j%/%(%9%H$O4|BTDL$j$KJ,;6$5$l$^$9!#(B</p> + <p>まず個々のワーカーにワーカークオータを割り振り、どのワーカーが最も急ぎで + 働かなければならないか (lbstatus が最大のもの) を調べます。 + 次に仕事をするようにこのワーカーを選択し、選択したワーカーの lbstatus + を全体に割り振ったぶんだけ差し引きます。ですから、lbstatus の総量は + 結果的に変化しません(*)し、リクエストは期待通りに分散されます。</p> - <p>$B$"$k%o!<%+!<$,L58z$K$J$C$F$b!"B>$N$b$N$O@5>o$K%9%1%8%e!<%k$5$lB3$1$^$9!#(B + <p>あるワーカーが無効になっても、他のものは正常にスケジュールされ続けます。 </p> <example><pre><code>for each worker in workers @@ -94,7 +94,7 @@ candidate lbstatus -= total factor</code></pre> </example> - <p>$B%P%i%s%5$r<!$N$h$&$K@_Dj$7$?>l9g(B:</p> + <p>バランサを次のように設定した場合:</p> <table style="data"> <tr><th>worker</th> @@ -114,8 +114,8 @@ candidate lbstatus -= total factor</code></pre> <td>0</td></tr> </table> - <p>$B$=$7$F(B <var>b</var> $B$,L58z$K$J$C$?>l9g!"<!$N$h$&$J%9%1%8%e!<%k$,(B - $B9T$o$l$^$9!#(B</p> + <p>そして <var>b</var> が無効になった場合、次のようなスケジュールが + 行われます。</p> <table style="data"> <tr><th>worker</th> @@ -141,9 +141,9 @@ candidate lbstatus -= total factor</code></pre> <tr><td colspan="5">(repeat)</td></tr> </table> - <p>$B$D$^$j$3$N$h$&$K%9%1%8%e!<%k$5$l$^$9(B: <var>a</var> <var>c</var> + <p>つまりこのようにスケジュールされます: <var>a</var> <var>c</var> <var>d</var> <var>a</var> <var>c</var> <var>d</var> <var>a</var> - <var>c</var> <var>d</var> ... $B<!$NE@$KCm0U$7$F$/$@$5$$(B:</p> + <var>c</var> <var>d</var> ... 次の点に注意してください:</p> <table style="data"> <tr><th>worker</th> @@ -158,7 +158,7 @@ candidate lbstatus -= total factor</code></pre> <td>25</td></tr> </table> - <p>$B$3$N5sF0$O!"<!$N@_Dj$HA4$/F1$8$K$J$j$^$9(B:</p> + <p>この挙動は、次の設定と全く同じになります:</p> <table style="data"> <tr><th>worker</th> @@ -175,8 +175,8 @@ candidate lbstatus -= total factor</code></pre> <p>This is because all values of <dfn>lbfactor</dfn> are normalized with respect to the others. For:</p> - <p><dfn>lbfactor</dfn> $B$OA4$F@55,2=$5$l$?$b$N$G!"(B - $BB>$H$NAjBPCM$@$+$i$G$9!#<!$N@_Dj$G$O(B:</p> + <p><dfn>lbfactor</dfn> は全て正規化されたもので、 + 他との相対値だからです。次の設定では:</p> <table style="data"> <tr><th>worker</th> @@ -189,10 +189,10 @@ candidate lbstatus -= total factor</code></pre> <td>1</td></tr> </table> - <p>$B%o!<%+!<(B <var>b</var> $B$O!"J?6Q$7$F!"(B<var>a</var> $B$H(B <var>c</var> - $B$N(B 4 $BG\$N?t$N%j%/%(%9%H$r<u$1;}$D$3$H$K$J$j$^$9!#(B</p> + <p>ワーカー <var>b</var> は、平均して、<var>a</var> と <var>c</var> + の 4 倍の数のリクエストを受け持つことになります。</p> - <p>$B<!$N$h$&$JHsBP>N$J@_Dj$G$O!"$3$&$J$k$HM=A[$5$l$k$G$7$g$&(B:</p> + <p>次のような非対称な設定では、こうなると予想されるでしょう:</p> <table style="data"> <tr><th>worker</th> @@ -235,23 +235,23 @@ candidate lbstatus -= total factor</code></pre> <tr><td colspan="3">(repeat)</td></tr> </table> - <p>$B%9%1%8%e!<%k$O(B 10 $B%9%1%8%e!<%k8e$K7+$jJV$5$l!"(B<var>a</var> 7 $B2s$H(B - <var>b</var> 3 $B2s$G$^$P$i$KA*$P$l$^$9!#(B</p> + <p>スケジュールは 10 スケジュール後に繰り返され、<var>a</var> 7 回と + <var>b</var> 3 回でまばらに選ばれます。</p> </section> <section id="traffic"> - <title>Weighted Traffic Counting $B%"%k%4%j%:%`(B</title> - <p><code>lbmethod=bytraffic</code> $B$GM-8z$K$J$j$^$9!#(B - $B$3$N%9%1%8%e!<%i$NGX7J$K$"$k9M$(J}$O!"(BRequest Counting - $B$HHs>o$K;w$F$$$^$9$,!"<!$N0c$$$,$"$j$^$9(B:</p> - - <p><dfn>lbfactor</dfn> $B$O(B <em>$B$I$l$@$1$N%P%$%H?t$N%H%i%U%#%C%/NL$r!"(B - $B$3$N%o!<%+!<$K=hM}$7$F$b$i$$$?$$$+(B</em> $B$rI=$7$^$9!#(B - $B$3$NCM$bF1MM$K@55,2=$5$l$?CM$G!"%o!<%+!<A4BN$N$&$A$G$N(B "$BJ,C4(B" - $BNL$rI=8=$7$F$$$^$9!#%j%/%(%9%H?t$rC1=c$K?t$($kBe$o$j$K!"(B - $B$I$l$@$1$NE>AwNL$r=hM}$7$?$+$r?t$($^$9!#(B</p> - - <p>$B<!$N$h$&$K%P%i%s%5$r@_Dj$7$?>l9g(B:</p> + <title>Weighted Traffic Counting アルゴリズム</title> + <p><code>lbmethod=bytraffic</code> で有効になります。 + このスケジューラの背景にある考え方は、Request Counting + と非常に似ていますが、次の違いがあります:</p> + + <p><dfn>lbfactor</dfn> は <em>どれだけのバイト数のトラフィック量を、 + このワーカーに処理してもらいたいか</em> を表します。 + この値も同様に正規化された値で、ワーカー全体のうちでの "分担" + 量を表現しています。リクエスト数を単純に数える代わりに、 + どれだけの転送量を処理したかを数えます。</p> + + <p>次のようにバランサを設定した場合:</p> <table style="data"> <tr><th>worker</th> @@ -264,31 +264,31 @@ candidate lbstatus -= total factor</code></pre> <td>1</td></tr> </table> - <p><var>b</var> $B$K$O(B <var>a</var> $B$d(B <var>c</var> $B$N(B 2 $BG\(B - $B=hM}$7$F$[$7$$$H$$$&$3$H$K$J$j$^$9!#(B - <var>b</var> $B$O(B 2 $BG\$N(B I/O $B$r=hM}$9$k$H$$$&0UL#$K$J$j!"(B - 2 $BG\$N%j%/%(%9%H?t$r=hM}$9$k$H$$$&$3$H$K$O$J$j$^$;$s!#(B - $B$G$9$+$i%j%/%(%9%H$H%l%9%]%s%9$N%5%$%:$,!"(B - $B=E$_IU$1$H?6$jJ,$1$N%"%k%4%j%:%`$K8z$$$F$$$^$9!#(B</p> + <p><var>b</var> には <var>a</var> や <var>c</var> の 2 倍 + 処理してほしいということになります。 + <var>b</var> は 2 倍の I/O を処理するという意味になり、 + 2 倍のリクエスト数を処理するということにはなりません。 + ですからリクエストとレスポンスのサイズが、 + 重み付けと振り分けのアルゴリズムに効いています。</p> </section> <section id="enable"> - <title>$B%P%i%s%5%^%M!<%8%c$N%5%]!<%H$rM-8z$K$9$k(B</title> - <p>$B$3$N%b%8%e!<%k$O(B <module>mod_status</module> $B$N%5!<%S%9$r(B - <em>$BI,MW$H$7$^$9(B</em>$B!#(B - $B%P%i%s%5%^%M!<%8%c$r;H$&$H!"%P%i%s%5$N%a%s%P!<$NF0E*$J99?7$,(B - $B$G$-$^$9!#%P%i%s%5%^%M!<%8%c$r;H$C$F!"%P%i%s%978?t(B (lbfactor) - $B$rJQ99$7$?$j!"%a%s%P!<$rJQ99$7$?$j!"FCDj$N%a%s%P!<$r(B - $B%*%U%i%$%s%b!<%I$K$7$?$j$G$-$^$9!#(B</p> - - <p>$B$G$9$+$i!"%m!<%I%P%i%s%54IM}5!G=$r;H$$$?$1$l$P!"(B - <module>mod_status</module> $B$H(B <module>mod_proxy_balancer</module> - $B$r%5!<%P$KAH$_9~$^$J$1$l$P$J$j$^$;$s!#(B</p> - - <p>foo.com $B%I%a%$%s$N%V%i%&%6$+$i%m!<%I%P%i%s%54IM}5!G=$r(B - $B;H$($k$h$&$K$9$k$K$O!"<!$N$h$&$J%3!<%I$r(B <code>httpd.conf</code> - $B$KDI2C$7$^$9!#(B</p> + <title>バランサマネージャのサポートを有効にする</title> + <p>このモジュールは <module>mod_status</module> のサービスを + <em>必要とします</em>。 + バランサマネージャを使うと、バランサのメンバーの動的な更新が + できます。バランサマネージャを使って、バランス係数 (lbfactor) + を変更したり、メンバーを変更したり、特定のメンバーを + オフラインモードにしたりできます。</p> + + <p>ですから、ロードバランサ管理機能を使いたければ、 + <module>mod_status</module> と <module>mod_proxy_balancer</module> + をサーバに組み込まなければなりません。</p> + + <p>foo.com ドメインのブラウザからロードバランサ管理機能を + 使えるようにするには、次のようなコードを <code>httpd.conf</code> + に追加します。</p> <example> <Location /balancer-manager><br /> SetHandler balancer-manager<br /> @@ -299,9 +299,9 @@ candidate lbstatus -= total factor</code></pre> </Location> </example> - <p>$B$3$&$9$k$H!"(B<code>http://your.server.name/balancer-manager</code> - $B$N%Z!<%87PM3$G!"%&%'%V%V%i%&%6$+$i%m!<%I%P%i%s%5%^%M!<%8%c$K(B - $B%"%/%;%9$G$-$k$h$&$K$J$j$^$9!#(B</p> + <p>こうすると、<code>http://your.server.name/balancer-manager</code> + のページ経由で、ウェブブラウザからロードバランサマネージャに + アクセスできるようになります。</p> </section> </modulesynopsis> diff --git a/docs/manual/mod/mod_proxy_connect.xml.ja b/docs/manual/mod/mod_proxy_connect.xml.ja index cdc5aa93f1..e171edff2e 100644 --- a/docs/manual/mod/mod_proxy_connect.xml.ja +++ b/docs/manual/mod/mod_proxy_connect.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 420990 --> @@ -23,27 +23,27 @@ <modulesynopsis metafile="mod_proxy_connect.xml.meta"> <name>mod_proxy_connect</name> -<description><code>CONNECT</code> $B%j%/%(%9%H$r07$&(B -<module>mod_proxy</module> $BMQ$N3HD%(B</description> +<description><code>CONNECT</code> リクエストを扱う +<module>mod_proxy</module> 用の拡張</description> <status>Extension</status> <sourcefile>proxy_connect.c</sourcefile> <identifier>proxy_connect_module</identifier> <summary> - <p>$BK\%b%8%e!<%k$K$O(B <module>mod_proxy</module> $B$,(B<em>$BI,MW$G$9(B</em>$B!#(B - <code>CONNECT</code> HTTP $B%a%=%C%I$r%5%]!<%H$7$^$9!#(B - $B$3$N%a%=%C%I$O<g$K%W%m%-%7$K(B SSL $B%j%/%(%9%H$rDL$9(B - <transnote>SSL$B%H%s%M%j%s%0(B</transnote>$B$K;H$o$l$^$9!#(B</p> + <p>本モジュールには <module>mod_proxy</module> が<em>必要です</em>。 + <code>CONNECT</code> HTTP メソッドをサポートします。 + このメソッドは主にプロキシに SSL リクエストを通す + <transnote>SSLトンネリング</transnote>に使われます。</p> - <p><code>CONNECT</code> $B%j%/%(%9%H$r07$($k$h$&$K$9$k$K$O(B - <module>mod_proxy</module> $B$H(B <module>mod_proxy_connect</module> - $B$r%5!<%P$KAH$_9~$`I,MW$,$"$j$^$9!#(B</p> + <p><code>CONNECT</code> リクエストを扱えるようにするには + <module>mod_proxy</module> と <module>mod_proxy_connect</module> + をサーバに組み込む必要があります。</p> - <note type="warning"><title>$B7Y9p(B</title> + <note type="warning"><title>警告</title> <p><a href="mod_proxy.html#access" - >$B0BA4$J%5!<%P$K$9$k(B</a>$B$^$G%W%m%-%75!G=$OM-8z$K$7$J$$$G$/$@$5$$!#(B - $B%*!<%W%s%W%m%-%7%5!<%P$O$"$J$?<+?H$N%M%C%H%o!<%/$K$H$C$F$b!"(B - $B%$%s%?!<%M%C%HA4BN$K$H$C$F$b4m81$G$9!#(B</p> + >安全なサーバにする</a>までプロキシ機能は有効にしないでください。 + オープンプロキシサーバはあなた自身のネットワークにとっても、 + インターネット全体にとっても危険です。</p> </note> </summary> <seealso><directive module="mod_proxy">AllowCONNECT</directive></seealso> diff --git a/docs/manual/mod/mod_setenvif.xml.ja b/docs/manual/mod/mod_setenvif.xml.ja index 4c7902cc2b..af657dc0cc 100644 --- a/docs/manual/mod/mod_setenvif.xml.ja +++ b/docs/manual/mod/mod_setenvif.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 151408:658546 (outdated) --> @@ -23,34 +23,34 @@ <modulesynopsis metafile="mod_setenvif.xml.meta"> <name>mod_setenvif</name> -<description>$B%j%/%(%9%H$NFCD'$K4p$E$$$?4D6-JQ?t$N@_Dj$r2DG=$K$9$k(B</description> +<description>リクエストの特徴に基づいた環境変数の設定を可能にする</description> <status>Base</status> <sourcefile>mod_setenvif.c</sourcefile> <identifier>setenvif_module</identifier> <summary> <p><module>mod_setenvif</module> - $B%b%8%e!<%k$O!"%j%/%(%9%H$N$"$kB&LL$,;XDj$5$l$?@55,I=8=(B - $B$K9g$&$+$I$&$+$K$h$C$F4D6-JQ?t$r@_Dj$9$k5!G=$rDs6!$7$^$9!#(B - $B$3$l$i$N4D6-JQ?t$r;HMQ$7$F!"%5!<%P$NB>$NItJ,$,$I$N$h$&$JF0:n$r$9$k$+$r(B - $B7hDj$9$k$3$H$,$G$-$^$9!#(B</p> - - <p>$B$3$N%b%8%e!<%k$,Ds6!$9$k%G%#%l%/%F%#%V$O!"(B - $B@_Dj%U%!%$%k$K8=$l$k=gHV$KE,MQ$5$l$^$9!#(B - $B$=$l$r;H$C$F!"<!$NNc$N$h$&$K$h$jJ#;($J@_Dj$r$9$k$3$H$,$G$-$^$9!#(B - $B$3$l$O!"%V%i%&%6$,(B mozilla $B$G$O$"$k$1$l$I!"(BMSIE $B$G$O$J$$$H$-$K(B - <code>netscape</code> $B$r@_Dj$7$^$9!#(B</p> + モジュールは、リクエストのある側面が指定された正規表現 + に合うかどうかによって環境変数を設定する機能を提供します。 + これらの環境変数を使用して、サーバの他の部分がどのような動作をするかを + 決定することができます。</p> + + <p>このモジュールが提供するディレクティブは、 + 設定ファイルに現れる順番に適用されます。 + それを使って、次の例のようにより複雑な設定をすることができます。 + これは、ブラウザが mozilla ではあるけれど、MSIE ではないときに + <code>netscape</code> を設定します。</p> <example> BrowserMatch ^Mozilla netscape<br /> BrowserMatch MSIE !netscape<br /> </example> </summary> -<seealso><a href="../env.html">Apache $B$N4D6-JQ?t(B</a></seealso> +<seealso><a href="../env.html">Apache の環境変数</a></seealso> <directivesynopsis> <name>BrowserMatch</name> -<description>HTTP User-Agent $B$K4p$E$$$F4D6-JQ?t$r@_Dj$9$k(B +<description>HTTP User-Agent に基づいて環境変数を設定する </description> <syntax>BrowserMatch <em>regex [!]env-variable</em>[=<em>value</em>] [[!]<em>env-variable</em>[=<em>value</em>]] ...</syntax> @@ -60,17 +60,17 @@ <override>FileInfo</override> <usage> - <p><directive>BrowserMatch</directive> $B$O(B - <directive module="mod_setenvif">SetEnvIf</directive> $B%G%#%l%/%F%#%V$N(B - $BFCNc$G!"(B<code>User-Agent</code> HTTP $B%j%/%(%9%H%X%C%@$K4p$E$$$F(B - $B4D6-JQ?t$r@_Dj$7$^$9!#0J2<$N(B 2 $B9T$N8z2L$OF1$8$K$J$j$^$9(B:</p> + <p><directive>BrowserMatch</directive> は + <directive module="mod_setenvif">SetEnvIf</directive> ディレクティブの + 特例で、<code>User-Agent</code> HTTP リクエストヘッダに基づいて + 環境変数を設定します。以下の 2 行の効果は同じになります:</p> <example> BrowserMatchNoCase Robot is_a_robot<br /> SetEnvIfNoCase User-Agent Robot is_a_robot<br /> </example> - <p>$B$=$NB>$NNc(B:</p> + <p>その他の例:</p> <example> BrowserMatch ^Mozilla forms jpeg=yes browser=netscape<br /> BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript<br /> @@ -81,37 +81,37 @@ <directivesynopsis> <name>BrowserMatchNoCase</name> -<description>HTTP User-Agent $B$K4p$E$$$FBgJ8;z>.J8;z$r6hJL$;$:$K(B -$B4D6-JQ?t$r@_Dj$9$k(B</description> +<description>HTTP User-Agent に基づいて大文字小文字を区別せずに +環境変数を設定する</description> <syntax>BrowserMatchNoCase <em>regex [!]env-variable</em>[=<em>value</em>] [[!]<em>env-variable</em>[=<em>value</em>]] ...</syntax> <contextlist><context>server config</context> <context>virtual host</context><context>directory</context> <context>.htaccess</context></contextlist> <override>FileInfo</override> -<compatibility>Apache 1.2 $B0J9_(B - (Apache 1.2 $B$G$O$3$N%G%#%l%/%F%#%V$O$b$&MQ$$$i$l$F$$$J$$(B - mod_browser $B%b%8%e!<%k$K$"$j$^$7$?(B)</compatibility> +<compatibility>Apache 1.2 以降 + (Apache 1.2 ではこのディレクティブはもう用いられていない + mod_browser モジュールにありました)</compatibility> <usage> - <p><directive>BrowserMatchNoCase</directive> $B%G%#%l%/%F%#%V$O(B - $B0UL#E*$K$O(B <directive - module="mod_setenvif">BrowserMatch</directive> $B%G%#%l%/%F%#%V$H(B - $BF1$8$G$9!#$?$@$7!"$3$N%G%#%l%/%F%#%V$OBgJ8;z>.J8;z$r6hJL$7$J$$(B - $B%^%C%A%s%0$r9T$J$$$^$9!#Nc$($P(B:</p> + <p><directive>BrowserMatchNoCase</directive> ディレクティブは + 意味的には <directive + module="mod_setenvif">BrowserMatch</directive> ディレクティブと + 同じです。ただし、このディレクティブは大文字小文字を区別しない + マッチングを行ないます。例えば:</p> <example> BrowserMatchNoCase mac platform=macintosh<br /> BrowserMatchNoCase win platform=windows<br /> </example> - <p><directive>BrowserMatch</directive> $B%G%#%l%/%F%#%V$H(B - <directive>BrowserMatchNoCase</directive> $B%G%#%l%/%F%#%V$O(B - <directive module="mod_setenvif">SetEnvIf</directive> $B%G%#%l%/%F%#%V$H(B + <p><directive>BrowserMatch</directive> ディレクティブと + <directive>BrowserMatchNoCase</directive> ディレクティブは + <directive module="mod_setenvif">SetEnvIf</directive> ディレクティブと <directive - module="mod_setenvif">SetEnvIfNoCase</directive> $B%G%#%l%/%F%#%V$N(B - $BFCNc$G$9!#0J2<$N(B 2 $B9T$N8z2L$OF1$8$G$9(B:</p> + module="mod_setenvif">SetEnvIfNoCase</directive> ディレクティブの + 特例です。以下の 2 行の効果は同じです:</p> <example> BrowserMatchNoCase Robot is_a_robot<br /> @@ -122,7 +122,7 @@ <directivesynopsis> <name>SetEnvIf</name> -<description>$B%j%/%(%9%H$NB0@-$K4p$E$$$F4D6-JQ?t$r@_Dj$9$k(B +<description>リクエストの属性に基づいて環境変数を設定する </description> <syntax>SetEnvIf <em>attribute regex [!]env-variable</em>[=<em>value</em>] @@ -134,60 +134,60 @@ <usage> <p><directive>SetEnvIf</directive> - $B%G%#%l%/%F%#%V$O!"%j%/%(%9%H$NB0@-$K4p$E$$$F4D6-JQ?t$rDj5A$7$^$9!#(B - $B:G=i$N0z?t$G;XDj$G$-$k(B <em>attribute</em> $B$O0J2<$N;0$D$N$I$l$+$G$9(B:</p> + ディレクティブは、リクエストの属性に基づいて環境変数を定義します。 + 最初の引数で指定できる <em>attribute</em> は以下の三つのどれかです:</p> <ol> -<li>HTTP $B%j%/%(%9%H%X%C%@%U%#!<%k%I(B ($B>\$7$$>pJs$O(B <a - href="http://www.rfc-editor.org/rfc/rfc2616.txt">RFC 2616</a> $B$r(B - $B;2>H$7$F$/$@$5$$(B)$B!#Nc$($P!"(B<code>Host</code>, +<li>HTTP リクエストヘッダフィールド (詳しい情報は <a + href="http://www.rfc-editor.org/rfc/rfc2616.txt">RFC 2616</a> を + 参照してください)。例えば、<code>Host</code>, <code>User-Agent</code>, <code>Referer</code>, - <code>Accept-Language</code> $B$G$9!#%j%/%(%9%H%X%C%@$N=89g$r8=$9$?$a$K(B - $B@55,I=8=$r;H$&$3$H$b$G$-$^$9!#(B</li> + <code>Accept-Language</code> です。リクエストヘッダの集合を現すために + 正規表現を使うこともできます。</li> -<li>$B0J2<$N%j%/%(%9%H$N0lItJ,$N$I$l$+(B: +<li>以下のリクエストの一部分のどれか: <ul> <li><code>Remote_Host</code> - - $B%j%/%(%9%H$r9T$J$C$F$$$k%/%i%$%"%s%H$N%[%9%HL>(B ($B$b$7$"$l$P(B)</li> + リクエストを行なっているクライアントのホスト名 (もしあれば)</li> <li><code>Remote_Addr</code> - - $B%j%/%(%9%H$r9T$J$C$F$$$k%/%i%$%"%s%H$N(B IP $B%"%I%l%9(B</li> + リクエストを行なっているクライアントの IP アドレス</li> <li><code>Server_Addr</code> - - $B%j%/%(%9%H$r<u$1<h$C$?%5!<%P$N(B IP $B%"%I%l%9(B - (2.0.43 $B0J9_$N$_(B)</li> + リクエストを受け取ったサーバの IP アドレス + (2.0.43 以降のみ)</li> <li><code>Request_Method</code> - - $B;HMQ$5$l$F$$$k%a%=%C%IL>(B (<code>GET</code>, <code>POST</code> - <em>$B$J$I(B</em>)</li> + 使用されているメソッド名 (<code>GET</code>, <code>POST</code> + <em>など</em>)</li> <li><code>Request_Protocol</code> - - $B%j%/%(%9%H$,9T$J$o$l$?%W%m%H%3%k$NL>A0$H%P!<%8%g%s(B - (<em>$BNc$($P(B</em>$B!"(B"HTTP/0.9", "HTTP/1.1" <em>$B$J$I!#(B</em>)</li> + リクエストが行なわれたプロトコルの名前とバージョン + (<em>例えば</em>、"HTTP/0.9", "HTTP/1.1" <em>など。</em>)</li> <li><code>Request_URI</code> - - URL $B$N%9%-!<%`$H%[%9%H$N8e$NItJ,(B</li> + URL のスキームとホストの後の部分</li> </ul> </li> -<li>$B%j%/%(%9%H$H4XO"IU$1$i$l$k4D6-JQ?t$N%j%9%H!#$3$l$K$h$j(B -<directive>SetEnvIf</directive> $B%G%#%l%/%F%#%V$,0JA0$N%^%C%A$N7k2L$r(B -$B;H$&$3$H$,$G$-$k$h$&$K$J$j$^$9!#$3$NJ}K!$N%F%9%H$G$OA0$NItJ,$K$"$k(B -<code>SetEnvIf[NoCase]</code> $B$N7k2L$N$_$r;HMQ2DG=$G$9!#!VA0!W$H$O!"(B -$B$h$j9-$$HO0O$KBP$7$FDj5A$5$l$F$$$k(B ($B%5!<%PA4BN$N$h$&$K(B) $B$+!"8=:_$N%G%#%l%/%F%#%V$N(B -$BHO0O$G$h$jA0$NItJ,$GDj5A$5$l$F$$$k$+!"$H$$$&$3$H$G$9!#(B -$B4D6-JQ?t$G$"$k2DG=@-$O!"%j%/%(%9%H$NFC@-$KBP$9$k%^%C%A$,B8:_$;$:!"(B -<em>attribute</em> $B$K@55,I=8=$,;H$o$l$J$+$C$?$H$-$K$N$_9MN8$5$l$^$9!#(B</li> +<li>リクエストと関連付けられる環境変数のリスト。これにより +<directive>SetEnvIf</directive> ディレクティブが以前のマッチの結果を +使うことができるようになります。この方法のテストでは前の部分にある +<code>SetEnvIf[NoCase]</code> の結果のみを使用可能です。「前」とは、 +より広い範囲に対して定義されている (サーバ全体のように) か、現在のディレクティブの +範囲でより前の部分で定義されているか、ということです。 +環境変数である可能性は、リクエストの特性に対するマッチが存在せず、 +<em>attribute</em> に正規表現が使われなかったときにのみ考慮されます。</li> </ol> -<p>$BFs$DL\$N0z?t(B (<em>regex</em>) $B$O(B <a -href="http://www.pcre.org/">Perl $B8_49$N@55,I=8=(B</a>$B$G$9!#(B -$B$3$l$O(B POSIX.2 $B$N(B egrep $B7A<0$N@55,I=8=$H;w$F$$$^$9!#(B<em>regex</em> $B$,(B -<em>attribute</em> $B$K%^%C%A$9$k>l9g$O!";D$j$N0z?t$,I>2A$5$l$^$9!#(B</p> +<p>二つ目の引数 (<em>regex</em>) は <a +href="http://www.pcre.org/">Perl 互換の正規表現</a>です。 +これは POSIX.2 の egrep 形式の正規表現と似ています。<em>regex</em> が +<em>attribute</em> にマッチする場合は、残りの引数が評価されます。</p> -<p>$B;D$j$N0z?t$O@_Dj$9$kJQ?t$NL>A0$G!"@_Dj$5$l$kCM$r;XDj$9$k$3$H$b$G$-$^$9!#(B -$B$3$l$O!"(B</p> +<p>残りの引数は設定する変数の名前で、設定される値を指定することもできます。 +これは、</p> <ol> <li><code><em>varname</em></code></li> @@ -197,17 +197,17 @@ href="http://www.pcre.org/">Perl $B8_49$N@55,I=8=(B</a>$B$G$9!#(B <li><code><em>varname</em>=<em>value</em></code></li> </ol> - <p>$B$N$I$l$+$N7A<0$K$J$j$^$9!#(B</p> + <p>のどれかの形式になります。</p> - <p>$B:G=i$N7A<0$G$O!"CM$O(B "1" $B$K@_Dj$5$l$^$9!#(B - $BFs$DL\$O$b$7CM$,Dj5A$5$l$F$$$l$P$=$l$r<h$j=|$-$^$9!#(B - $B;0$DL\$OJQ?t$r(B <code><em>value</em></code> $B$NM?$($i$l$?CM$K@_Dj$7$^$9!#(B - 2.0.51 $B0J9_$G$O!"(B<var>regex</var> $BFb$K(B <code>$1</code>..<code>$9</code> - $B$,B8:_$9$l$P$=$l$rG'<1$7!"(B<var>regex</var> $B$NBP1~$9$k4]3g8L$G0O$^$l$?ItJ,$G(B - $BCV49$7$^$9!#(B</p> + <p>最初の形式では、値は "1" に設定されます。 + 二つ目はもし値が定義されていればそれを取り除きます。 + 三つ目は変数を <code><em>value</em></code> の与えられた値に設定します。 + 2.0.51 以降では、<var>regex</var> 内に <code>$1</code>..<code>$9</code> + が存在すればそれを認識し、<var>regex</var> の対応する丸括弧で囲まれた部分で + 置換します。</p> <example> -<title>$BNc(B:</title> +<title>例:</title> SetEnvIf Request_URI "\.gif$" object_is_image=gif<br /> SetEnvIf Request_URI "\.jpg$" object_is_image=jpg<br /> SetEnvIf Request_URI "\.xbm$" object_is_image=xbm<br /> @@ -219,22 +219,22 @@ href="http://www.pcre.org/">Perl $B8_49$N@55,I=8=(B</a>$B$G$9!#(B SetEnvIf ^TS* ^[a-z].* HAVE_TS<br /> </example> - <p>$B=i$a$N;0$D$O%j%/%(%9%H$,2hA|$G$"$k$H$-$K4D6-JQ?t(B - <code>object_is_image</code> $B$r@_Dj$7$^$9!#;M$DL\$O(B - $B;2>H85$N%Z!<%8$,%&%'%V%5%$%H(B <code>www.mydomain.com</code> $B$K$"$k$H$-$K(B - <code>intra_site_referral</code> $B$r@_Dj$7$^$9!#(B</p> + <p>初めの三つはリクエストが画像であるときに環境変数 + <code>object_is_image</code> を設定します。四つ目は + 参照元のページがウェブサイト <code>www.mydomain.com</code> にあるときに + <code>intra_site_referral</code> を設定します。</p> - <p>$B:G8e$NNc$O!"%j%/%(%9%H$K(B "TS" $B$G;O$^$j!"CM$,=89g(B [a-z] $B$N$I$l$+$G(B - $B;O$^$k%X%C%@$,$"$k$H$-$K(B <code>HAVE_TS</code> $B$r@_Dj$7$^$9!#(B</p> + <p>最後の例は、リクエストに "TS" で始まり、値が集合 [a-z] のどれかで + 始まるヘッダがあるときに <code>HAVE_TS</code> を設定します。</p> </usage> -<seealso>$BB>$NNc$O!"(B<a href="../env.html">Apache $B$N4D6-JQ?t(B</a> +<seealso>他の例は、<a href="../env.html">Apache の環境変数</a> </seealso> </directivesynopsis> <directivesynopsis> <name>SetEnvIfNoCase</name> -<description>$B%j%/%(%9%H$NB0@-$K4p$E$$$FBgJ8;z>.J8;z$r6hJL$;$:$K4D6-JQ?t$r@_Dj$9$k(B</description> +<description>リクエストの属性に基づいて大文字小文字を区別せずに環境変数を設定する</description> <syntax>SetEnvIfNoCase <em>attribute regex [!]env-variable</em>[=<em>value</em>] [[!]<em>env-variable</em>[=<em>value</em>]] ...</syntax> @@ -242,23 +242,23 @@ href="http://www.pcre.org/">Perl $B8_49$N@55,I=8=(B</a>$B$G$9!#(B <context>virtual host</context><context>directory</context> <context>.htaccess</context></contextlist> <override>FileInfo</override> -<compatibility>Apache 1.3 $B0J9_(B</compatibility> +<compatibility>Apache 1.3 以降</compatibility> <usage> - <p><directive>SetEnvIfNoCase</directive> $B$O0UL#E*$K$O(B - <directive module="mod_setenvif">SetEnvIf</directive> $B%G%#%l%/%F%#%V$H(B - $BF1$8$G$9!#0c$$$O!"@55,I=8=$N%^%C%A%s%0$,BgJ8;z>.J8;z$r6hJL$7$J$$$G(B - $B9T$J$o$l$k$3$H$G$9!#Nc$($P(B:</p> + <p><directive>SetEnvIfNoCase</directive> は意味的には + <directive module="mod_setenvif">SetEnvIf</directive> ディレクティブと + 同じです。違いは、正規表現のマッチングが大文字小文字を区別しないで + 行なわれることです。例えば:</p> <example> SetEnvIfNoCase Host Apache\.Org site=apache </example> - <p>$B$3$l$O(B HTTP $B%j%/%(%9%H%X%C%@$K%U%#!<%k%I(B <code>Host:</code> $B$,(B - $B$"$j!"$=$NCM$,(B <code>Apache.Org</code> $B$d(B <code>apache.org</code>$B!"(B - $B$=$NB>$NBgJ8;z>.J8;z$NAH$_9g$o$;$G$"$C$?$H$-$K(B <code>site</code> - $B4D6-JQ?t$r(B "<code>apache</code>" $B$K@_Dj$7$^$9!#(B</p> + <p>これは HTTP リクエストヘッダにフィールド <code>Host:</code> が + あり、その値が <code>Apache.Org</code> や <code>apache.org</code>、 + その他の大文字小文字の組み合わせであったときに <code>site</code> + 環境変数を "<code>apache</code>" に設定します。</p> </usage> </directivesynopsis> diff --git a/docs/manual/mod/mod_so.xml.ja b/docs/manual/mod/mod_so.xml.ja index 24b8e9c627..7df17bde0b 100644 --- a/docs/manual/mod/mod_so.xml.ja +++ b/docs/manual/mod/mod_so.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 420990 --> @@ -23,107 +23,107 @@ <modulesynopsis metafile="mod_so.xml.meta"> <name>mod_so</name> -<description>$B5/F0;~$d:F5/F0;~$K<B9T%3!<%I$H%b%8%e!<%k$r%5!<%P$K%m!<%I$9$k(B +<description>起動時や再起動時に実行コードとモジュールをサーバにロードする </description> <status>Extension</status> <sourcefile>mod_so.c</sourcefile> <identifier>so_module</identifier> -<compatibility>$B$3$N%b%8%e!<%k$O(B Window $B$G$O(B ($B>o$K4^$^$l$F$$$k(B) Base -$B%b%8%e!<%k$G$9(B</compatibility> +<compatibility>このモジュールは Window では (常に含まれている) Base +モジュールです</compatibility> <summary> - <p>$B$$$/$D$+$N%*%Z%l!<%F%#%s%0%7%9%F%`$G$O!"%5!<%P$N:F%3%s%Q%$%k$r$9$kBe$o$j$K!"(B - $B$3$N%b%8%e!<%k$r;HMQ$7$F(B - <a href="../dso.html">$BF0E*6&M-%*%V%8%'%/%H(B</a> - (DSO) $B5!9=$K$h$j!"<B9T;~$K(B Apache $B$K%b%8%e!<%k$rFI$_9~$^$;$k$3$H$,(B - $B$G$-$^$9!#(B</p> - - <p>Unix $B>e$G$O!"FI$_9~$^$l$k%3!<%I$ODL>o$O6&M-%*%V%8%'%/%H%U%!%$%k(B - ($BIaDL(B <code>.so</code> $B$H$$$&3HD%;R$,IU$$$F$$$^$9(B) $B$+$i$G$9!#(B - Windows $B>e$G$O$3$N%b%8%e!<%k$N3HD%;R$O(B <code>.so</code> $B$+(B <code>.dll</code> - $B$G$9!#(B</p> - - <note type="warning"><title>$B7Y9p(B</title> - <p>Apache 1.3 $B$N%b%8%e!<%k$rD>@\(B Apache 2.0 $B$G;H$&$3$H$O$G$-$^$;$s(B - $B!=(B $B%b%8%e!<%k$O(B Apache 2.0 $BMQ$KF0E*$K%m!<%I$5$l$k$+!"(B - $BD>@\AH$_9~$^$l$k$?$a$K=$@5$5$l$J$1$l$P$J$j$^$;$s!#(B</p> + <p>いくつかのオペレーティングシステムでは、サーバの再コンパイルをする代わりに、 + このモジュールを使用して + <a href="../dso.html">動的共有オブジェクト</a> + (DSO) 機構により、実行時に Apache にモジュールを読み込ませることが + できます。</p> + + <p>Unix 上では、読み込まれるコードは通常は共有オブジェクトファイル + (普通 <code>.so</code> という拡張子が付いています) からです。 + Windows 上ではこのモジュールの拡張子は <code>.so</code> か <code>.dll</code> + です。</p> + + <note type="warning"><title>警告</title> + <p>Apache 1.3 のモジュールを直接 Apache 2.0 で使うことはできません + ― モジュールは Apache 2.0 用に動的にロードされるか、 + 直接組み込まれるために修正されなければなりません。</p> </note> </summary> -<section><title>Windows $BMQ$N%m!<%I2DG=$J%b%8%e!<%k$r:n@.$9$k(B</title> +<section><title>Windows 用のロード可能なモジュールを作成する</title> - <note><title>$BCm(B</title> - <p>Apache 1.3.15 $B$H(B 2.0 $B$H$G(B Windows $B$N%b%8%e!<%kL>$N7A<0$OJQ99$5$l$^$7$?(B - $B!=(B $B%b%8%e!<%k$O(B mod_foo.so $B$H$$$&L>A0$K$J$j$^$7$?!#(B</p> + <note><title>注</title> + <p>Apache 1.3.15 と 2.0 とで Windows のモジュール名の形式は変更されました + ― モジュールは mod_foo.so という名前になりました。</p> - <p>$B$^$@(B mod_so $B$G(B ApacheModuleFoo.dll $B$H$$$&L>A0$N%b%8%e!<%k$b(B - $B%m!<%I$5$l$^$9$,!"?7$7$$L>A0$NIU$1J}$r;H$&J}$,9%$^$l$^$9!#%b%8%e!<%k$r(B - 2.0 $BMQ$K0\?"$7$F$$$k$N$G$"$l$P!"(B2.0 $B$N=,47$K9g$&$h$&$KL>A0$r(B - $B=$@5$7$F$/$@$5$$!#(B</p></note> + <p>まだ mod_so で ApacheModuleFoo.dll という名前のモジュールも + ロードされますが、新しい名前の付け方を使う方が好まれます。モジュールを + 2.0 用に移植しているのであれば、2.0 の習慣に合うように名前を + 修正してください。</p></note> - <p>Apache $B$N%b%8%e!<%k(B API $B$O(B UNIX $B$H(B Windows $B4V$G$OJQ99$5$l$F$$$^$;$s!#(B - $BB?$/$N%b%8%e!<%k$OA4$/JQ99$J$7!"$b$7$/$O4JC1$JJQ99$K$h$j(B Windows - $B$G<B9T$G$-$k$h$&$K$J$j$^$9!#$?$@$7!"$=$l0J30$N(B Windows $B$K$OL5$$(B Unix - $B%"!<%-%F%/%A%c!<$N5!G=$K0MB8$7$?%b%8%e!<%k$OF0:n$7$^$;$s!#(B</p> + <p>Apache のモジュール API は UNIX と Windows 間では変更されていません。 + 多くのモジュールは全く変更なし、もしくは簡単な変更により Windows + で実行できるようになります。ただし、それ以外の Windows には無い Unix + アーキテクチャーの機能に依存したモジュールは動作しません。</p> - <p>$B%b%8%e!<%k$,<B:]$KF0:n$9$k$H$-$O!"(B - $BFs$D$NJ}K!$N$I$A$i$+$G%5!<%P$KDI2C$9$k$3$H$,$G$-$^$9!#$^$:!"(BUnix - $B$HF1MM$K%5!<%P$K%3%s%Q%$%k$7$FAH$_9~$`$3$H$,$G$-$^$9!#(BWindows - $BMQ$N(B Apache $B$O(B Unix $BMQ$N(B Apache $B$K$"$k(B <code>Configure</code> - $B%W%m%0%i%`$,$"$j$^$;$s$N$G!"%b%8%e!<%k$N%=!<%9%U%!%$%k$r(B - ApacheCore $B%W%m%8%'%/%H%U%!%$%k$KDI2C$7!"%7%s%\%k$r(B - <code>os\win32\modules.c</code> $B%U%!%$%k$KDI2C$9$kI,MW$,$"$j$^$9!#(B</p> + <p>モジュールが実際に動作するときは、 + 二つの方法のどちらかでサーバに追加することができます。まず、Unix + と同様にサーバにコンパイルして組み込むことができます。Windows + 用の Apache は Unix 用の Apache にある <code>Configure</code> + プログラムがありませんので、モジュールのソースファイルを + ApacheCore プロジェクトファイルに追加し、シンボルを + <code>os\win32\modules.c</code> ファイルに追加する必要があります。</p> - <p>$BFs$DL\$O%b%8%e!<%k$r(B DLL $B$H$7$F%3%s%Q%$%k$9$kJ}K!$G$9!#(B - DLL $B$O6&M-%i%$%V%i%j$G!"<B9T;~$K(B + <p>二つ目はモジュールを DLL としてコンパイルする方法です。 + DLL は共有ライブラリで、実行時に <code><directive>LoadModule</directive></code> - $B%G%#%l%/%F%#%V$K$h$j%5!<%P$KFI$_9~$`$3$H$,$G$-$^$9!#$3$l$i$N%b%8%e!<%k(B - DLL $B$O$=$N$^$^G[I[$9$k$3$H$,2DG=$G!"%5!<%P$r:F%3%s%Q%$%k$9$k$3$H$J$/!"(BWindows - $BMQ$N(B Apache $B$N$9$Y$F$N%$%s%9%H!<%k$G<B9T$9$k$3$H$,$G$-$^$9!#(B</p> - - <p>$B%b%8%e!<%k(B DLL $B$r:n@.$9$k$?$a$K$O!"(B - $B%b%8%e!<%k$N:n@.$K>.$5$JJQ99$r9T$J$&I,MW$,$"$j$^$9!#(B - $B$D$^$j!"%b%8%e!<%k$N%l%3!<%I(B ($B$3$l$O8e$G:n@.$5$l$^$9!#(B - $B0J2<$r;2>H$7$F$/$@$5$$(B) $B$,(B DLL $B$+$i%(%/%9%]!<%H$5$l$J$1$l$P$J$j$^$;$s!#(B - $B$3$l$r9T$J$&$K$O!"(B<code>AP_MODULE_DECLARE_DATA</code> (Apache - $B$N%X%C%@%U%!%$%k$GDj5A$5$l$F$$$^$9(B) $B$r%b%8%e!<%k$N%b%8%e!<%k%l%3!<%I(B - $BDj5A$NItJ,$KDI2C$7$F$/$@$5$$!#$?$H$($P!"%b%8%e!<%k$K(B</p> + ディレクティブによりサーバに読み込むことができます。これらのモジュール + DLL はそのまま配布することが可能で、サーバを再コンパイルすることなく、Windows + 用の Apache のすべてのインストールで実行することができます。</p> + + <p>モジュール DLL を作成するためには、 + モジュールの作成に小さな変更を行なう必要があります。 + つまり、モジュールのレコード (これは後で作成されます。 + 以下を参照してください) が DLL からエクスポートされなければなりません。 + これを行なうには、<code>AP_MODULE_DECLARE_DATA</code> (Apache + のヘッダファイルで定義されています) をモジュールのモジュールレコード + 定義の部分に追加してください。たとえば、モジュールに</p> <example> module foo_module; </example> - <p>$B$,$"$k$H$9$k$H!"$=$l$r<!$N$b$N$GCV$-49$($F$/$@$5$$!#(B</p> + <p>があるとすると、それを次のもので置き換えてください。</p> <example> module AP_MODULE_DECLARE_DATA foo_module; </example> - <p>Unix $B>e$G$b$3$N%b%8%e!<%k$r(B - $BJQ99L5$7$G;H$$B3$1$i$l$k$h$&$K!"$3$N%^%/%m$O(B Windows - $B>e$G$N$_8zNO$r;}$A$^$9!#(B<code>.DEF</code> - $B%U%!%$%k$NJ}$rNI$/CN$C$F$$$k$H$$$&>l9g$O!"(B - $BBe$o$j$K$=$l$r;H$C$F%b%8%e!<%k%l%3!<%I$r(B - $B%(%/%9%]!<%H$9$k$3$H$b$G$-$^$9!#(B</p> - <p>$B$5$"!"$"$J$?$N%b%8%e!<%k$N(B DLL $B$r:n@.$7$^$7$g$&!#$3$l$r!"(B - libhttpd.lib $B6&M-%i%$%V%i%j$,%3%s%Q%$%k$5$l$?$H$-$K:n@.$5$l$?(B - ibhttpd.lib $B%(%/%9%]!<%H%i%$%V%i%j$H%j%s%/$7$F$/$@$5$$!#$3$N;~$K!"(B - Apache $B$N%X%C%@%U%!%$%k$,@5$7$$0LCV$K$"$k$h$&$K!"(B - $B%3%s%Q%$%i$N@_Dj$rJQ$($kI,MW$,$"$k$+$b$7$l$^$;$s!#(B - $B$3$N%i%$%V%i%j$O%5!<%P%k!<%H$N(B modules $B%G%#%l%/%H%j$K$"$j$^$9!#(B - $B%S%k%I4D6-$,@5$7$/@_Dj$5$l$k$h$&$K!"4{B8$N%b%8%e!<%kMQ$N(B .dsp $B$r(B - $B<h$C$F$/$k$N$,0lHVNI$$$G$7$g$&!#$b$7$/$O!"$"$J$?$N(B .dsp $B$H(B - $B%3%s%Q%$%i$H%j%s%/$N%*%W%7%g%s$rHf3S$9$k!"$H$$$&$b$N$G$bNI$$$G$9!#(B</p> - - <p>$B$3$l$G(B DLL $BHG$N%b%8%e!<%k$,:n@.$5$l$F$$$k$O$:$G$9!#(B - $B%5!<%P%k!<%H$N(B <code>modules</code> - $B%G%#%l%/%H%j$K%b%8%e!<%k$rCV$$$F!"(B + <p>Unix 上でもこのモジュールを + 変更無しで使い続けられるように、このマクロは Windows + 上でのみ効力を持ちます。<code>.DEF</code> + ファイルの方を良く知っているという場合は、 + 代わりにそれを使ってモジュールレコードを + エクスポートすることもできます。</p> + <p>さあ、あなたのモジュールの DLL を作成しましょう。これを、 + libhttpd.lib 共有ライブラリがコンパイルされたときに作成された + ibhttpd.lib エクスポートライブラリとリンクしてください。この時に、 + Apache のヘッダファイルが正しい位置にあるように、 + コンパイラの設定を変える必要があるかもしれません。 + このライブラリはサーバルートの modules ディレクトリにあります。 + ビルド環境が正しく設定されるように、既存のモジュール用の .dsp を + 取ってくるのが一番良いでしょう。もしくは、あなたの .dsp と + コンパイラとリンクのオプションを比較する、というものでも良いです。</p> + + <p>これで DLL 版のモジュールが作成されているはずです。 + サーバルートの <code>modules</code> + ディレクトリにモジュールを置いて、 <code><directive>LoadModule</directive></code> - $B%G%#%l%/%F%#%V$r;H$C$FFI$_9~$s$G$/$@$5$$!#(B</p> + ディレクティブを使って読み込んでください。</p> </section> <directivesynopsis> <name>LoadFile</name> -<description>$B;XDj$5$l$?%*%V%8%'%/%H%U%!%$%k$d%i%$%V%i%j$r%j%s%/$9$k(B</description> +<description>指定されたオブジェクトファイルやライブラリをリンクする</description> <syntax>LoadFile <em>filename</em> [<em>filename</em>] ...</syntax> <contextlist> <context>server config</context> @@ -131,13 +131,13 @@ <usage> - <p>LoadFile $B%G%#%l%/%F%#%V$O!"%5!<%P$,5/F0$5$l$?$H$-$d:F5/F0$5$l$?$H$-$K!"(B - $B;XDj$5$l$?%*%V%8%'%/%H%U%!%$%k$d%i%$%V%i%j$r%j%s%/$7$^$9!#(B - $B$3$l$O%b%8%e!<%k$,F0:n$9$k$?$a$KI,MW$K$J$k$+$b$7$l$J$$DI2C$N(B - $B%3!<%I$rFI$_9~$`$?$a$K;HMQ$5$l$^$9!#(B<em>Filename</em> $B$O@dBP%Q%9$+!"(B<a - href="core.html#serverroot">ServerRoot</a> $B$+$i$NAjBP%Q%9$G$9!#(B</p> + <p>LoadFile ディレクティブは、サーバが起動されたときや再起動されたときに、 + 指定されたオブジェクトファイルやライブラリをリンクします。 + これはモジュールが動作するために必要になるかもしれない追加の + コードを読み込むために使用されます。<em>Filename</em> は絶対パスか、<a + href="core.html#serverroot">ServerRoot</a> からの相対パスです。</p> - <p>$BNc(B:</p> + <p>例:</p> <example>LoadFile libexec/libxmlparse.so</example> @@ -146,8 +146,8 @@ <directivesynopsis> <name>LoadModule</name> -<description>$B%*%V%8%'%/%H%U%!%$%k$d%i%$%V%i%j$r%j%s%/$7!";HMQ%b%8%e!<%k$N(B -$B%j%9%H$KDI2C$9$k(B</description> +<description>オブジェクトファイルやライブラリをリンクし、使用モジュールの +リストに追加する</description> <syntax>LoadModule <em>module filename</em></syntax> <contextlist> <context>server config</context> @@ -155,20 +155,20 @@ <usage> - <p>LoadModule $B%G%#%l%/%F%#%V$O(B <em>filename</em> - $B$H$$$&%*%V%8%'%/%H%U%!%$%k$*$h$S%i%$%V%i%j$r%j%s%/$7!"(B<em>module</em> - $B$H$$$&L>A0$N%b%8%e!<%k$N9=B$$r%"%/%F%#%V$J%b%8%e!<%k$N%j%9%H$KDI2C$7$^$9!#(B - <em>Module</em> $B$O%U%!%$%kCf$N(B <code>module</code> - $B7?$N30ItJQ?t$NL>A0$G!"%b%8%e!<%k$N%I%-%e%a%s%H$K(B + <p>LoadModule ディレクティブは <em>filename</em> + というオブジェクトファイルおよびライブラリをリンクし、<em>module</em> + という名前のモジュールの構造をアクティブなモジュールのリストに追加します。 + <em>Module</em> はファイル中の <code>module</code> + 型の外部変数の名前で、モジュールのドキュメントに <a href="module-dict.html#moduleidentifier" - >$B%b%8%e!<%k<1JL;R(B</a>$B$H$7$F=q$+$l$F$$$k$b$N$G$9!#Nc(B :</p> + >モジュール識別子</a>として書かれているものです。例 :</p> <example> LoadModule status_module modules/mod_status.so </example> - <p>$B$3$l$O(B ServerRoot $B$N(B modules $B%5%V%G%#%l%/%H%j$+$i;XDj$5$l$?L>A0$N(B - $B%b%8%e!<%k$r%m!<%I$7$^$9!#(B</p> + <p>これは ServerRoot の modules サブディレクトリから指定された名前の + モジュールをロードします。</p> </usage> </directivesynopsis> diff --git a/docs/manual/mod/mod_speling.xml.ja b/docs/manual/mod/mod_speling.xml.ja index 4ee0d5eae9..71ff8d6a25 100644 --- a/docs/manual/mod/mod_speling.xml.ja +++ b/docs/manual/mod/mod_speling.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 395228:420990 (outdated) --> @@ -23,9 +23,9 @@ <modulesynopsis metafile="mod_speling.xml.meta"> <name>mod_speling</name> -<description>$B%f!<%6$,F~NO$7$?$G$"$m$&4V0c$C$?(B URL $B$r!"(B -$BBgJ8;z>.J8;z$N6hJL$rL5;k$9$k$3$H$H0l$D0J2<$NDV$j4V0c$$$r5vMF$9$k$3$H$G(B -$B=$@5$r;n$_$k(B</description> +<description>ユーザが入力したであろう間違った URL を、 +大文字小文字の区別を無視することと一つ以下の綴り間違いを許容することで +修正を試みる</description> <status>Extension</status> <sourcefile>mod_speling.c</sourcefile> <identifier>speling_module</identifier> @@ -33,38 +33,38 @@ <summary> - <p>$B%j%/%(%9%H$NDV$j$,4V0c$C$F$$$?$j!"(B - $BBgJ8;z>.J8;z$,0c$C$F$$$?$j$9$k$?$a$K!"(BApache $B$N%3%"%5!<%P$,(B - $B%I%-%e%a%s%H$X$N%j%/%(%9%H$X$N1~Ez$r@5$7$/Ds6!$G$-$J$$$3$H$,$"$j$^$9!#(B - $B$3$N%b%8%e!<%k$O!"B>$N$9$Y$F$N%b%8%e!<%k$,$"$-$i$a$?8e$G$"$C$?$H$7$F$b!"(B - $B%j%/%(%9%H$K9g$&%I%-%e%a%s%H$r8+$D$1$h$&$H$9$k$3$H$K$h$j$3$NLdBj$N(B - $B2r7h$r;n$_$^$9!#$3$N%b%8%e!<%k$O%j%/%(%9%H$5$l$?%G%#%l%/%H%j$K$"$k(B - $B$=$l$>$l$N%I%-%e%a%s%H$NL>A0$H!"%j%/%(%9%H$5$l$?%I%-%e%a%s%H$NL>A0$H$r(B - <strong>$BBgJ8;z>.J8;z$N6hJL$rL5;k$7(B</strong>$B!"(B<strong>$B0lJ8;z$^$G$N(B - $BDV$j$N4V0c$$(B</strong> ($BJ8;z$NA^F~(B/$B>JN,(B/$BNY9g$&J8;z$NCV49!"4V0c$C$?J8;z(B) - $B$r5v2D$7$FHf3S$9$k$3$H$K$h$j!"L\E*$rC#@.$7$h$&$H$7$^$9!#(B - $B$3$NJ}K!$G%j%/%(%9%H$K9g$&%I%-%e%a%s%H$N0lMw$,:n@.$5$l$^$9!#(B</p> + <p>リクエストの綴りが間違っていたり、 + 大文字小文字が違っていたりするために、Apache のコアサーバが + ドキュメントへのリクエストへの応答を正しく提供できないことがあります。 + このモジュールは、他のすべてのモジュールがあきらめた後であったとしても、 + リクエストに合うドキュメントを見つけようとすることによりこの問題の + 解決を試みます。このモジュールはリクエストされたディレクトリにある + それぞれのドキュメントの名前と、リクエストされたドキュメントの名前とを + <strong>大文字小文字の区別を無視し</strong>、<strong>一文字までの + 綴りの間違い</strong> (文字の挿入/省略/隣合う文字の置換、間違った文字) + を許可して比較することにより、目的を達成しようとします。 + この方法でリクエストに合うドキュメントの一覧が作成されます。</p> - <p>$B%G%#%l%/%H%j$r%9%-%c%s$7$?8e$K!"(B</p> + <p>ディレクトリをスキャンした後に、</p> <ul> - <li>$BE,@Z$J%I%-%e%a%s%H$,8+$D$+$i$J$+$C$?>l9g!"(B - Apache $B$O$$$D$b$HF1$8$h$&$K=hM}$r$7!"(B - $B!V%I%-%e%a%s%H$,8+$D$+$i$J$$!W$H$$$&%(%i!<$rJV$7$^$9!#(B</li> + <li>適切なドキュメントが見つからなかった場合、 + Apache はいつもと同じように処理をし、 + 「ドキュメントが見つからない」というエラーを返します。</li> - <li>$B%j%/%(%9%H$K!V$[$H$s$I!W9g$&%I%-%e%a%s%H$,0l$D$@$18+$D$+$C$?>l9g!"(B - $B$=$l$,%j%@%$%l%/%H1~Ez$H$7$FJV$5$l$^$9!#(B</li> + <li>リクエストに「ほとんど」合うドキュメントが一つだけ見つかった場合、 + それがリダイレクト応答として返されます。</li> - <li>$B$h$/;w$?%I%-%e%a%s%H$,J#?t8+$D$+$C$?>l9g!"(B - $B$=$N%j%9%H$,%/%i%$%"%s%H$KJV$5$l!"(B - $B%/%i%$%"%s%H$,@5$7$$8uJd$rA*Br$G$-$k$h$&$K$7$^$9!#(B</li> + <li>よく似たドキュメントが複数見つかった場合、 + そのリストがクライアントに返され、 + クライアントが正しい候補を選択できるようにします。</li> </ul> </summary> <directivesynopsis> <name>CheckSpelling</name> -<description>spelling $B%b%8%e!<%k$r;HMQ$9$k$h$&$K$9$k(B</description> +<description>spelling モジュールを使用するようにする</description> <syntax>CheckSpelling on|off</syntax> <default>CheckSpelling Off</default> <contextlist> @@ -74,43 +74,43 @@ <context>.htaccess</context> </contextlist> <override>Options</override> -<compatibility>CheckSpelling $B$O(B Apache 1.1 $B$G$OJLG[I[$N%b%8%e!<%k$G!"(B -$BBgJ8;z>.J8;z$N4V0c$$$N$_$N5!G=$G$7$?!#(BApache 1.3 $B$G(B Apache $B$NG[I[$K(B -$B4^$^$l$k$h$&$K$J$j$^$7$?!#(BApache 1.3.2 $B$h$jA0$G$O(B <code>CheckSpelling</code> -$B%G%#%l%/%F%#%V$O!V%5!<%P!W$H!V%P!<%A%c%k%[%9%H!W%3%s%F%-%9%H$G$N$_(B -$B;HMQ2DG=$G$7$?(B</compatibility> +<compatibility>CheckSpelling は Apache 1.1 では別配布のモジュールで、 +大文字小文字の間違いのみの機能でした。Apache 1.3 で Apache の配布に +含まれるようになりました。Apache 1.3.2 より前では <code>CheckSpelling</code> +ディレクティブは「サーバ」と「バーチャルホスト」コンテキストでのみ +使用可能でした</compatibility> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$ODV$jMQ$N%b%8%e!<%k$r;HMQ$9$k$+$I$&$+$r(B - $B7h$a$^$9!#;HMQ;~$K$O!"0J2<$N$3$H$r3P$($F$*$$$F$/$@$5$$(B</p> + <p>このディレクティブは綴り用のモジュールを使用するかどうかを + 決めます。使用時には、以下のことを覚えておいてください</p> <ul> - <li>$BF1;~$K$?$/$5$s$NDV$j$ND{@5$r9T$J$o$J$1$l$P$J$i$J$$$H$-$O!"(B - $B$=$N$?$a$K9T$J$o$l$k%G%#%l%/%H%j$N%9%-%c%s$,%5!<%P$N@-G=$K(B - $B1F6A$rM?$($^$9!#(B</li> + <li>同時にたくさんの綴りの訂正を行なわなければならないときは、 + そのために行なわれるディレクトリのスキャンがサーバの性能に + 影響を与えます。</li> - <li>$B%I%-%e%a%s%H$NCf$KDV$j$N!VD{@5!W$K$h$j(B - $B0U?^$;$:9g$C$F$7$^$&$h$&$J=EMW$J%U%!%$%k$,$J$$$h$&$K$7$F$/$@$5$$!#(B + <li>ドキュメントの中に綴りの「訂正」により + 意図せず合ってしまうような重要なファイルがないようにしてください。 </li> - <li>$B%b%8%e!<%k$O%f!<%6L>$NDV$j$N4V0c$$(B - (<code>http://my.host/~apahce/</code> $B$N$h$&$K(B) - $B$rD{@5$9$k$3$H$O$G$-$^$;$s!#(B - $BD{@5$G$-$k$N$O%U%!%$%kL>$H%G%#%l%/%H%jL>$@$1$G$9!#(B</li> + <li>モジュールはユーザ名の綴りの間違い + (<code>http://my.host/~apahce/</code> のように) + を訂正することはできません。 + 訂正できるのはファイル名とディレクトリ名だけです。</li> - <li>$BDV$j$ND{@5$OB8:_$9$k%U%!%$%k$K87L)$KE,MQ$5$l$^$9$N$G!"(B + <li>綴りの訂正は存在するファイルに厳密に適用されますので、 <code><Location /status></code> - $B$O%M%4%7%(!<%7%g%s$N7k2L$N%U%!%$%k(B "<code>/stats.html</code>" - $B$H$7$F4V0c$C$F07$o$l$k$+$b$7$l$^$;$s!#(B</li> + はネゴシエーションの結果のファイル "<code>/stats.html</code>" + として間違って扱われるかもしれません。</li> </ul> <!-- XXX: is that really true?! -nd --> - <p><a href="mod_dav.html">DAV</a> $B$,M-8z$J%G%#%l%/%H%j$G$O(B - <module>mod_speling</module> $B$OM-8z$K$7$J$$$G$/$@$5$$!#(B - $B?7$7$/:n@.$7$?%j%=!<%9L>$r4{$KB8:_$9$k%U%!%$%kL>$K!V=$@5!W$7$h$&$H$9$k!"(B - $BNc$($P!"?75,%I%-%e%a%s%H(B <code>doc43.html</code> $B$,4{$KB8:_$9$k(B - <code>doc34.html</code> $B$K%j%@%$%l%/%H$5$l$F!"(B - $B4|BT$H$O0c$&5sF0$K$J$k$+$i$G$9!#(B</p> + <p><a href="mod_dav.html">DAV</a> が有効なディレクトリでは + <module>mod_speling</module> は有効にしないでください。 + 新しく作成したリソース名を既に存在するファイル名に「修正」しようとする、 + 例えば、新規ドキュメント <code>doc43.html</code> が既に存在する + <code>doc34.html</code> にリダイレクトされて、 + 期待とは違う挙動になるからです。</p> </usage> </directivesynopsis> diff --git a/docs/manual/mod/mod_status.xml.ja b/docs/manual/mod/mod_status.xml.ja index 39abac036e..a197b614a0 100644 --- a/docs/manual/mod/mod_status.xml.ja +++ b/docs/manual/mod/mod_status.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <modulesynopsis metafile="mod_status.xml.meta"> @@ -22,54 +22,54 @@ --> <name>mod_status</name> -<description>$B%5!<%P$N3hF0>u67$H@-G=$K4X$9$k>pJs$rDs6!$9$k(B</description> +<description>サーバの活動状況と性能に関する情報を提供する</description> <status>Base</status> <sourcefile>mod_status.c</sourcefile> <identifier>status_module</identifier> <summary> - <p>$B$3$N(B Status $B%b%8%e!<%k$K$h$j%5!<%P4IM}<T$O%5!<%P$,$I$N$/$i$$(B - $B$N@-G=$GF0:n$7$F$$$k$+$rCN$k$3$H$,$G$-$k$h$&$K$J$j$^$9!#(B - $B8=;~E@$G$N%5!<%P$NE}7W>pJs$rFI$_$d$9$$7A<0$G8=$7$?(B HTML $B%Z!<%8$,(B - $BI=<($5$l$^$9!#I,MW$G$"$l$P!"$3$N%Z!<%8$O<+F0E*$K%j%U%l%C%7%e$5$;$k(B - $B$3$H$b$G$-$^$9(B ($B8_49@-$N$"$k%V%i%&%6$r;HMQ$7$F$$$k>l9g(B)$B!#(B - $BJL$K!"8=;~E@$G$N%5!<%P$N>uBV$rC1=c$J5!3#FI$_<h$j2DG=$J%j%9%H$G(B - $B8=$9%Z!<%8$b$"$j$^$9!#(B</p> + <p>この Status モジュールによりサーバ管理者はサーバがどのくらい + の性能で動作しているかを知ることができるようになります。 + 現時点でのサーバの統計情報を読みやすい形式で現した HTML ページが + 表示されます。必要であれば、このページは自動的にリフレッシュさせる + こともできます (互換性のあるブラウザを使用している場合)。 + 別に、現時点でのサーバの状態を単純な機械読み取り可能なリストで + 現すページもあります。</p> - <p>$BI=<($5$l$k>pJs$O(B:</p> + <p>表示される情報は:</p> <ul> - <li>$B%j%/%(%9%H$r07$C$F$$$k%o!<%+!<$N?t(B</li> + <li>リクエストを扱っているワーカーの数</li> - <li>$B%"%$%I%k(B ($BLuCm(B: $B%j%/%(%9%H$r07$C$F$$$J$$(B) $B%o!<%+!<$N?t(B</li> + <li>アイドル (訳注: リクエストを扱っていない) ワーカーの数</li> - <li>$B3F%o!<%+!<$N>uBV!"%o!<%+!<$,07$C$?%j%/%(%9%H$N?t!"(B - $B%o!<%+!<$,Aw$C$?Am%P%$%H?t(B (*)</li> + <li>各ワーカーの状態、ワーカーが扱ったリクエストの数、 + ワーカーが送った総バイト数 (*)</li> - <li>$BAm%"%/%;%9?t$HAm%P%$%H?t(B (*)</li> + <li>総アクセス数と総バイト数 (*)</li> - <li>$B%5!<%P$,5/F0$b$7$/$O:F5/F0$5$l$?;~9o$HF0:n$7$F$$$k;~4V(B</li> + <li>サーバが起動もしくは再起動された時刻と動作している時間</li> - <li>$BJ?6Q$N(B 1 $BIC$"$?$j$N%j%/%(%9%H?t!"(B1 $BIC$"$?$j$NAw$i$l$?%P%$%H?t!"(B - $B%j%/%(%9%H$"$?$j$N%P%$%H?t(B (*)</li> + <li>平均の 1 秒あたりのリクエスト数、1 秒あたりの送られたバイト数、 + リクエストあたりのバイト数 (*)</li> - <li>$B3F%o!<%+!<$H(B Apache $BA4BN$G;HMQ$5$l$F$$$k(B CPU $B$N3d9g(B (*)</li> + <li>各ワーカーと Apache 全体で使用されている CPU の割合 (*)</li> - <li>$B8=;~E@$N%[%9%H$H=hM}$5$l$F$$$k%j%/%(%9%H(B (*)</li> + <li>現時点のホストと処理されているリクエスト (*)</li> </ul> - <p>"(*)" $B$NIU$$$F$$$k>pJs$rI=<($9$k$?$a$K$O%3%s%Q%$%k;~$N%*%W%7%g%s(B - $B$r;HMQ$9$kI,MW$,$"$j$^$9!#$3$l$i$NE}7W>pJs$rF@$k$?$a$KI,MW$J(B - $B%3!<%I$OI8=`$N(B Apache $B$K$O4^$^$l$F$$$^$;$s!#(B</p> + <p>"(*)" の付いている情報を表示するためにはコンパイル時のオプション + を使用する必要があります。これらの統計情報を得るために必要な + コードは標準の Apache には含まれていません。</p> </summary> <section id="enable"> - <title>Status $B$r;HMQ2DG=$K$9$k(B</title> + <title>Status を使用可能にする</title> - <p>foo.com $B%I%a%$%s$+$i$N%V%i%&%6$N$_$KBP$7$F(B - $B%9%F!<%?%9$NJs9p$r;HMQ2DG=$K$9$k$K$O(B - $B0J2<$N%3!<%I$r(B <code>httpd.conf</code> $B@_Dj%U%!%$%k$KDI2C$7$^$9(B</p> + <p>foo.com ドメインからのブラウザのみに対して + ステータスの報告を使用可能にするには + 以下のコードを <code>httpd.conf</code> 設定ファイルに追加します</p> <example> <Location /server-status><br /> SetHandler server-status<br /> @@ -80,37 +80,37 @@ </Location> </example> - <p>$B$3$l$G!"%5!<%P$NE}7W>pJs$r%&%'%V%V%i%&%6$r;H$C$F(B - <code>http://your.server.name/server-status</code> $B$r%"%/%;%9$9$k$3$H$K$h$j(B - $BCN$k$3$H$,$G$-$k$h$&$K$J$j$^$9!#(B</p> + <p>これで、サーバの統計情報をウェブブラウザを使って + <code>http://your.server.name/server-status</code> をアクセスすることにより + 知ることができるようになります。</p> </section> <section id="autoupdate"> - <title>$B<+F099?7(B</title> - <p>$B%V%i%&%6$,!V%j%U%l%7%e!W5!G=$r%5%]!<%H$7$F$$$l$P!"%9%F!<%?%9%Z!<%8$r(B - $B<+F0E*$K99?7$9$k$h$&$K$G$-$^$9!#(BN $BICKh$K99?7$5$;$k$?$a$K$O(B + <title>自動更新</title> + <p>ブラウザが「リフレシュ」機能をサポートしていれば、ステータスページを + 自動的に更新するようにできます。N 秒毎に更新させるためには <code>http://your.server.name/server-status?refresh=N</code> - $B$H$$$&%Z!<%8$r%"%/%;%9$7$F$/$@$5$$!#(B</p> + というページをアクセスしてください。</p> </section> <section id="machinereadable"> - <title>$B5!3#FI$_<h$j2DG=$J%9%F!<%?%9%U%!%$%k(B</title> - <p><code>http://your.server.name/server-status?auto</code> $B$r(B - $B%"%/%;%9$9$k$3$H$K$h$j!"%9%F!<%?%9%U%!%$%k$N5!3#FI$_<h$j2DG=$J%P!<%8%g%s$r(B - $BF@$k$3$H$,$G$-$^$9!#$3$l$O<+F0E*$K<B9T$5$l$k$H$-$KJXMx$G$9!#(B - Apache $B$N(B <code>/support</code> $B%G%#%l%/%H%j$K$"$k(B - Perl $B%W%m%0%i%`(B <code>log_server_status</code> $B$r8+$F$/$@$5$$!#(B</p> + <title>機械読み取り可能なステータスファイル</title> + <p><code>http://your.server.name/server-status?auto</code> を + アクセスすることにより、ステータスファイルの機械読み取り可能なバージョンを + 得ることができます。これは自動的に実行されるときに便利です。 + Apache の <code>/support</code> ディレクトリにある + Perl プログラム <code>log_server_status</code> を見てください。</p> <note> - <strong><module>mod_status</module> $B$,%5!<%P$KAH$_9~$^$l$F$$$k(B - $B>l9g!"%O%s%I%i$N5!G=$O%G%#%l%/%H%j(B<em>$BKh(B</em>$B$N%U%!%$%k(B - (<em>$B$9$J$o$A(B</em>$B!"(B<code>.htaccess</code>) $B$b4^$`(B<em>$B$9$Y$F(B</em>$B$N(B - $B@_Dj%U%!%$%k$G;HMQ2DG=$K$J$k$3$H$K$OCm0U$r$7$F$*$/I,MW$,$"$j$^$9!#(B - $B$3$l$O!"%5%$%H$K$h$C$F$O%;%-%e%j%F%#$K4X$9$kK>$^$7$/$J$$7k2L$r(B - $B$b$?$i$9$3$H$,$"$k$+$b$7$l$^$;$s!#(B</strong> + <strong><module>mod_status</module> がサーバに組み込まれている + 場合、ハンドラの機能はディレクトリ<em>毎</em>のファイル + (<em>すなわち</em>、<code>.htaccess</code>) も含む<em>すべて</em>の + 設定ファイルで使用可能になることには注意をしておく必要があります。 + これは、サイトによってはセキュリティに関する望ましくない結果を + もたらすことがあるかもしれません。</strong> </note> </section> @@ -118,16 +118,16 @@ <directivesynopsis> <name>ExtendedStatus</name> -<description>$B3F%j%/%(%9%H$KBP$7$F3HD%%9%F!<%?%9>pJs$rJ]B8$9$k(B</description> +<description>各リクエストに対して拡張ステータス情報を保存する</description> <syntax>ExtendedStatus On|Off</syntax> <default>ExtendedStatus Off</default> <contextlist><context>server config</context></contextlist> -<compatibility>ExtendedStatus $B$O(B Apache 1.3.2 $B0J9_$G$N$_;HMQ2DG=(B</compatibility> +<compatibility>ExtendedStatus は Apache 1.3.2 以降でのみ使用可能</compatibility> <usage> - <p>$B$3$N@_Dj$O%5!<%PA4BN$KBP$7$FE,MQ$5$l!"%P!<%A%c%k%[%9%HKh$K(B - $BJQ99$9$k$3$H$O$G$-$^$;$s!#3HD%%9%F!<%?%9>pJs$N<}=8$O%5!<%P$N(B - $BF0:n$rCY$/$9$k$3$H$,$"$j$^$9!#(B</p> + <p>この設定はサーバ全体に対して適用され、バーチャルホスト毎に + 変更することはできません。拡張ステータス情報の収集はサーバの + 動作を遅くすることがあります。</p> </usage> </directivesynopsis> diff --git a/docs/manual/mod/mod_suexec.xml.ja b/docs/manual/mod/mod_suexec.xml.ja index ab4d11a45b..6be14662e3 100644 --- a/docs/manual/mod/mod_suexec.xml.ja +++ b/docs/manual/mod/mod_suexec.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 420990 --> @@ -23,39 +23,39 @@ <modulesynopsis metafile="mod_suexec.xml.meta"> <name>mod_suexec</name> -<description>$B;XDj$5$l$?%f!<%6$H%0%k!<%W$G(B CGI $B%9%/%j%W%H$r<B9T$9$k(B</description> +<description>指定されたユーザとグループで CGI スクリプトを実行する</description> <status>Extension</status> <sourcefile>mod_suexec.c</sourcefile> <identifier>suexec_module</identifier> -<compatibility>Apache 2.0 $B0J9_$G;HMQ2DG=(B</compatibility> +<compatibility>Apache 2.0 以降で使用可能</compatibility> <summary> - <p>$B$3$N%b%8%e!<%k$H(B <program>suexec</program> $B%5%]!<%H%W%m%0%i%`(B - $B$K$h$j!"(BCGI $B%9%/%j%W%H$,;XDj$5$l$?%f!<%6$H%0%k!<%W$G(B - $B<B9T$5$l$k$h$&$K$G$-$^$9!#(B</p> + <p>このモジュールと <program>suexec</program> サポートプログラム + により、CGI スクリプトが指定されたユーザとグループで + 実行されるようにできます。</p> </summary> -<seealso><a href="../suexec.html">SuEXEC $B%5%]!<%H(B</a></seealso> +<seealso><a href="../suexec.html">SuEXEC サポート</a></seealso> <directivesynopsis> <name>SuexecUserGroup</name> -<description>CGI $B%W%m%0%i%`$N%f!<%6%Q!<%_%C%7%g%s!"%0%k!<%W%Q!<%_%C%7%g%s(B</description> +<description>CGI プログラムのユーザパーミッション、グループパーミッション</description> <syntax>SuexecUserGroup <em>User Group</em></syntax> <contextlist><context>server config</context> <context>virtual host</context></contextlist> -<compatibility>SuexecUserGroup $B$O(B 2.0 $B0J9_$G$N$_;HMQ2DG=!#(B</compatibility> +<compatibility>SuexecUserGroup は 2.0 以降でのみ使用可能。</compatibility> <usage> - <p><directive>SuexecUserGroup</directive> $B%G%#%l%/%F%#%V$O(B CGI $B%W%m%0%i%`(B - $B$,<B9T$5$l$k%f!<%6$H%0%k!<%W$r;XDj$G$-$k$h$&$K$7$^$9!#(BCGI $B0J30$N(B - $B%j%/%(%9%H$O(B User $B%G%#%l%/%F%#%V$G;XDj$5$l$?%f!<%6$N$^$^$G=hM}$5$l$^$9!#(B - $B$3$N%G%#%l%/%F%#%V$O(B Apache 1.3 $B$K$*$1$k(B VirtualHosts $B$NCf$G(B - User $B%G%#%l%/%F%#%V$H(B Group $B%G%#%l%/%F%#%V$r;H$&MQK!$NBe$o$j$K$J$j$^$9!#(B</p> + <p><directive>SuexecUserGroup</directive> ディレクティブは CGI プログラム + が実行されるユーザとグループを指定できるようにします。CGI 以外の + リクエストは User ディレクティブで指定されたユーザのままで処理されます。 + このディレクティブは Apache 1.3 における VirtualHosts の中で + User ディレクティブと Group ディレクティブを使う用法の代わりになります。</p> <example> - <title>$BNc(B</title> + <title>例</title> SuexecUserGroup nobody nogroup </example> diff --git a/docs/manual/mod/mod_unique_id.xml.ja b/docs/manual/mod/mod_unique_id.xml.ja index 1704d0ff60..9fee392749 100644 --- a/docs/manual/mod/mod_unique_id.xml.ja +++ b/docs/manual/mod/mod_unique_id.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 420990 --> @@ -23,176 +23,176 @@ <modulesynopsis metafile="mod_unique_id.xml.meta"> <name>mod_unique_id</name> -<description>$B$=$l$>$l$N%j%/%(%9%H$KBP$9$k0l0U$J<1JL;R$NF~$C$?4D6-JQ?t$r(B -$BDs6!$9$k(B</description> +<description>それぞれのリクエストに対する一意な識別子の入った環境変数を +提供する</description> <status>Extension</status> <sourcefile>mod_unique_id.c</sourcefile> <identifier>unique_id_module</identifier> <summary> - <p>$B$3$N%b%8%e!<%k$OHs>o$K@)8B$5$l$?>r7o2<$G!"(B - $B$=$l$>$l$N%j%/%(%9%H$K!V$9$Y$F!W$N%j%/%(%9%H$KBP$7$F(B - $B0l0U$K7h$^$k$3$H$,J]>Z$5$l$F$$$kKbK!$N%H!<%/%s$rDs6!$7$^$9!#(B - $B$3$N0l0U$J<1JL;R$O!"E,@Z$K@_Dj$5$l$?%/%i%9%?$G$OJ#?t$N(B - $B%^%7%s$N4V$G$5$($b0l0U$K$J$j$^$9!#$=$l$>$l$N%j%/%(%9%H$KBP$7$F4D6-JQ?t(B - <code>UNIQUE_ID</code> $B$K<1JL;R$,@_Dj$5$l$^$9!#(B - $B0l0U$J<1JL;R$,JXMx$JM}M3$O$$$m$$$m$"$j$^$9$,!"(B - $B$3$N%I%-%e%a%s%H$NL\E*$+$i$O30$l$k$?$a!"$3$3$G$O@bL@$7$^$;$s!#(B</p> + <p>このモジュールは非常に制限された条件下で、 + それぞれのリクエストに「すべて」のリクエストに対して + 一意に決まることが保証されている魔法のトークンを提供します。 + この一意な識別子は、適切に設定されたクラスタでは複数の + マシンの間でさえも一意になります。それぞれのリクエストに対して環境変数 + <code>UNIQUE_ID</code> に識別子が設定されます。 + 一意な識別子が便利な理由はいろいろありますが、 + このドキュメントの目的からは外れるため、ここでは説明しません。</p> </summary> <section id="theory"> - <title>$BM}O@(B</title> - - <p>$B$^$:$O$8$a$K!"(BApache $B%5!<%P$,(B Unix - $B%^%7%s$G$I$N$h$&$KF0:n$r$9$k$+$r4JC1$K@bL@$7$^$9!#(B - $B$3$N5!G=$O8=;~E@$G$O(B Windows NT $B$G$O%5%]!<%H$5$l$F$$$^$;$s!#(B - Unix $B%^%7%s$G$O(B Apache $B$O$$$/$D$+$N;R%W%m%;%9$r:n@.$7!"(B - $B$=$N;R%W%m%;%9$,0l$D$:$D%j%/%(%9%H$r=hM}$7$^$9!#$=$l$>$l$N;R%W%m%;%9$O!"(B - $B@8B84|4VCf$KJ#?t$N%j%/%(%9%H$r07$&$3$H$,$G$-$^$9!#(B - $B$3$N5DO@$G$O;R%W%m%;%94V$G$O0l@Z%G!<%?$r6&M-$7$J$$$3$H$K$7$^$9!#(B - $B0J8e!"$3$N;R%W%m%;%9$N$3$H$r(B <dfn>httpd $B%W%m%;%9(B</dfn> $B$H8F$S$^$9!#(B</p> - - <p>$B$"$J$?$N%&%'%V%5%$%H$K$O$"$J$?$,4IM}$9$k$$$/$D$+$N%^%7%s$,$"$k$H$7$^$9!#(B - $B$=$l$i$r$^$H$a$F%/%i%9%?$H8F$V$3$H$K$7$^$9!#$=$l$>$l$N%^%7%s$OJ#?t$N(B - Apache $B$r<B9T$9$k$3$H$b$G$-$^$9!#(B - $B$3$l$i$9$Y$F$r$^$H$a$?$b$N$,!V1'Ch!W$G$"$k$H9M$($i$l$^$9!#(B - $B$$$/$D$+$N2>Dj$N2<$G!"%/%i%9%?$N%^%7%s4V$,$?$/$5$sDL?.$r$9$k$3$H$J$/!"(B - $B$3$N1'Ch$NCf$G$=$l$>$l$N%j%/%(%9%H$K0l0U$J<1JL;R$r@8@.$G$-$k$3$H$r<($7$^$9!#(B + <title>理論</title> + + <p>まずはじめに、Apache サーバが Unix + マシンでどのように動作をするかを簡単に説明します。 + この機能は現時点では Windows NT ではサポートされていません。 + Unix マシンでは Apache はいくつかの子プロセスを作成し、 + その子プロセスが一つずつリクエストを処理します。それぞれの子プロセスは、 + 生存期間中に複数のリクエストを扱うことができます。 + この議論では子プロセス間では一切データを共有しないことにします。 + 以後、この子プロセスのことを <dfn>httpd プロセス</dfn> と呼びます。</p> + + <p>あなたのウェブサイトにはあなたが管理するいくつかのマシンがあるとします。 + それらをまとめてクラスタと呼ぶことにします。それぞれのマシンは複数の + Apache を実行することもできます。 + これらすべてをまとめたものが「宇宙」であると考えられます。 + いくつかの仮定の下で、クラスタのマシン間がたくさん通信をすることなく、 + この宇宙の中でそれぞれのリクエストに一意な識別子を生成できることを示します。 </p> - <p>$B%/%i%9%?$K$"$k%^%7%s$O0J2<$NMW5a$r8+$?$5$J$1$l$P$J$j$^$;$s!#(B - ($B%^%7%s$,0l$D$@$1$@$H$7$F$b!"(BNTP $B$G;~7W$r9g$o$;$kJ}$,NI$$$G$9!#(B)</p> + <p>クラスタにあるマシンは以下の要求を見たさなければなりません。 + (マシンが一つだけだとしても、NTP で時計を合わせる方が良いです。)</p> <ul> - <li>NTP $B$dB>$N%M%C%H%o!<%/>e$G;~4V$r9g$o$;$k%W%m%H%3%k$K$h$C$F(B - $B3F%^%7%s$N;~4V$NF14|$,<h$i$l$F$$$k$3$H!#(B</li> + <li>NTP や他のネットワーク上で時間を合わせるプロトコルによって + 各マシンの時間の同期が取られていること。</li> - <li>$B%b%8%e!<%k$,%[%9%HL>$r0z$$$F0c$&(B IP - $B%"%I%l%9$r<u$1<h$k$3$H$,$G$-$k$h$&$K!"(B - $B%/%i%9%?$N$=$l$>$l$N%^%7%s$N%[%9%HL>$,0c$&$3$H!#(B</li> + <li>モジュールがホスト名を引いて違う IP + アドレスを受け取ることができるように、 + クラスタのそれぞれのマシンのホスト名が違うこと。</li> </ul> - <p>$B%*%Z%l!<%F%#%s%0%7%9%F%`$K$*$$$F$O!"(Bpid ($B%W%m%;%9(B ID) $B$,(B - 32 $B%S%C%H$NHO0OFb$G$"$k$3$H$r2>Dj$7$^$9!#%*%Z%l!<%F%#%s%0%7%9%F%`$N(B - pid $B$,(B 32 $B%S%C%H$rD6$($k>l9g$O!"4JC1$J=$@5$G$O$"$j$^$9$,!"(B - $B%3!<%I$rJQ99$9$kI,MW$,$"$j$^$9!#(B</p> - - <p>$B$3$l$i$N2>Dj$,K~$?$5$l$F$$$k$H!"$"$k;~E@$K$*$$$F!"(B - $B%/%i%9%?Fb$N$I$N%^%7%s$N$I$N(B httpd - $B%W%m%;%9$G$b!"0l0U$KF1Dj$9$k$3$H$,$G$-$^$9!#$3$l$O%^%7%s$N(B IP - $B%"%I%l%9$H(B httpd $B%W%m%;%9$N(B pid $B$G==J,$K9T$J$&$3$H$,$G$-$^$9!#(B - $B$G$9$+$i!"%j%/%(%9%H$K0l0U$J<1JL;R$r@8@.$9$k$?$a$K$O!"(B - $B;~9o$r6hJL$9$kI,MW$,$"$k$@$1$G$9!#(B</p> - - <p>$B;~9o$r6hJL$9$k$?$a$K!"(BUnix $B$N%?%$%`%9%?%s%W(B (UTC $B$N(B 1970 $BG/(B - 1 $B7n(B 1 $BF|$+$i$NIC?t(B) $B$H!"(B16 $B%S%C%H$N%+%&%s%?$r;H$$$^$9!#(B - $B%?%$%`%9%?%s%W$NN3EY$O0lIC$G$9$N$G!"0lIC4V$N(B 65536 - $B$^$G$NCM$rI=8=$9$k$?$a$K%+%&%s%?$r;HMQ$7$^$9!#;M$D$NCM(B - <em>( ip_addr, pid, time_stamp, counter )</em> $B$G3F(B httpd - $B%W%m%;%9$G0lIC$N4V$K(B 65536 $B%j%/%(%9%H$r?t$($"$2$k$3$H$,$G$-$^$9!#(B - $B;~4V$,7P$D$H(B pid $B$,:FMxMQ$5$l$k$H$$$&LdBj$,$"$j$^$9$,!"(B - $B$3$NLdBj$r2r7h$9$k$?$a$K%+%&%s%?$,;HMQ$5$l$^$9!#(B</p> - - <p>httpd $B$N;R%W%m%;%9$,:n@.$5$l$k$H!"%+%&%s%?$O(B - ($B$=$N;~E@$N%^%$%/%mIC(B $B!`(B 10) modulo 65536 $B$G=i4|2=$5$l$^$9(B - ($B$3$N<0$O$$$/$D$+$N%7%9%F%`$K$"$k!"%^%$%/%mIC$N(B - $B%?%$%^$N2<0L%S%C%H$,0[$J$k$H$$$&LdBj$r2r7h$9$k$?$a$KA*$P$l$^$7$?(B)$B!#(B - $B0l0U$J<1JL;R$,@8@.$5$l$?$H$-!";HMQ$5$l$k%?%$%`%9%?%s%W$O(B - $B%&%'%V%5!<%P$K%j%/%(%9%H$,E~Ce$7$?;~9o$K$J$j$^$9!#(B - $B%+%&%s%?$O<1JL;R$,@8@.$5$l$k$?$S$KA}2C$7$^$9(B - ($B$"$U$l$?>l9g$O(B 0 $B$KLa$j$^$9(B)$B!#(B</p> - - <p>$B%+!<%M%k$O%W%m%;%9$r%U%)!<%/$9$k$H!"$=$l$>$l$N%W%m%;%9$N$?$a$K(B - pid $B$r@8@.$7$^$9!#(Bpid $B$O7+$jJV$5$l$k$3$H$,5v2D$5$l$F$$$^$9(B - (pid $B$NCM$OB?$/$N(B Unix $B$G$O(B 16 $B%S%C%H$G$9$,!"?7$7$$%7%9%F%`$G$O(B - 32 $B%S%C%H$K3HD%$5$l$F$$$^$9(B)$B!#(B - $B$G$9$+$i!"$"$kDxEY$N;~4V$,7P2a$9$k$HF1$8(B pid $B$,:F$S;HMQ$5$l$^$9!#(B - $B$7$+$7!"0lICFb$K:F;HMQ$5$l$J$1$l$P!"(B - $B;M$D$NCM$N0l0U@-$OJ]$?$l$^$9!#$D$^$j!"2f!9$O%7%9%F%`$,0lIC4V(B - $B$K(B 65536 $B8D$N%W%m%;%9$r5/F0$7$J$$$H2>Dj$7$F$$$^$9(B ($B$$$/$D$+$N(B Unix - $B$G$O(B 32768 $B%W%m%;%9$G$9$,!"$=$l$G$9$i$[$H$s$I$"$jF@$J$$$G$7$g$&(B)$B!#(B</p> - - <p>$B2?$i$+$NM}M3$G!"F1$8;~9o$,7+$jJV$5$l$?$H$7$^$7$g$&!#(B - $B$D$^$j!"%7%9%F%`$N;~7W$,68$C$F$$$F!"$b$&0lEY2a5n$N;~9o$K$J$C$F$7$^$C$?(B - ($B$b$7$/$O?J$_$9$.$F$$$?$H$-$K!"(B - $B@5$7$$;~9o$KLa$7$?$?$a$K:F$S>-Mh$N;~9o$K$J$C$F$7$^$C$?(B) $B$H$7$^$9!#(B - $B$3$N>l9g!"(Bpid $B$H%?%$%`%9%?%s%W$,:F;HMQ$5$l$k$3$H$,4JC1$K<($5$l$^$9!#(B - $B%+%&%s%?=i4|2=MQ$N4X?t$O!"$3$NLdBj$N2sHr$r<j=u$1$7$h$&$HA*Br$5$l$F$$$^$9!#(B - $BK\Ev$O%+%&%s%?$N=i4|2=$r$9$k$?$a$K%i%s%@%`$J?t;z$r;H$$$?$$$N$G$9$,!"(B - $B$[$H$s$I$N%7%9%F%`$G$O4JC1$K;HMQ$G$-$k?t$OL5$$$3$H$KCm0U$7$F$/$@$5$$(B - (<em>$B$9$J$o$A(B</em>$B!"(Brand ()$B$O;H$($^$;$s!#(Brand () $B$K$O(B seed - $B$rM?$($kI,MW$,$"$j!"(Bseed $B$K$O;~9o$r;H$($^$;$s!#0lICC10L$G$O!"(B - $B$=$N;~9o$O$9$G$K7+$jJV$5$l$F$$$k$+$i$G$9(B)$B!#(B - $B$3$l$O!"40`z$JBP:v$G$O$"$j$^$;$s!#(B</p> - - <p>$B$3$NBP:v$O$I$N$/$i$$8z2L$,$"$k$G$7$g$&$+(B? - $B$3$3$G$O!"%^%7%s72$NCf$N0l$D$O:GBg$G0lIC$K(B 500 - $B%j%/%(%9%H$r07$&$H2>Dj$7$^$9(B ($B$3$l$r=q$$$F$$$k;~E@$G$OBEEv$J>e8B$G$9!#(B - $BDL>o%7%9%F%`$,$9$k$3$H$O@EE*$J%U%!%$%k$r<h$j$@$9$@$1$G$O$"$j$^$;$s$+$i(B)$B!#(B - $B$=$l$r9T$J$&$?$a$K!"$=$N%^%7%s$OJB9T$7$FMh$k%/%i%$%"%s%H$N?t$K(B - $B1~$8$??t$N;R%W%m%;%9$rMW5a$7$^$9!#(B - $B$7$+$7$J$,$i!"Ha4QE*$K9M$($F!"0l$D$N;R%W%m%;%9$,0lIC$K(B 500 - $B%j%/%(%9%H$r07$($k$H$7$^$9!#$=$&$9$k$H!"(B($B0lIC$N@:EY$K$*$$$F(B) - $B;~9o$,F1$8;~$r7+$jJV$9$H!"$3$N;R%W%m%;%9$,%+%&%s%?$NCM$r:F$S;H$$!"(B - $B0l0U@-$,2u$l$k2DG=@-$,(B 1.5% $B$"$j$^$9!#(B - $B$3$l$OHs>o$KHa4QE*$JNc$G!"<B@$3&$NCM$G$O!"$[$H$s$I5/$3$j$=$&$K$"$j$^$;$s!#(B - $B$=$l$G$b$3$l$,5/$3$k2DG=@-$N$"$k$h$&$J%7%9%F%`$J$i!"(B - ($B%W%m%0%i%`%3!<%I$rJT=8$7$F(B) - $B%+%&%s%?$r(B 32 $B%S%C%H$K$9$k$N$,NI$$$G$7$g$&!#(B + <p>オペレーティングシステムにおいては、pid (プロセス ID) が + 32 ビットの範囲内であることを仮定します。オペレーティングシステムの + pid が 32 ビットを超える場合は、簡単な修正ではありますが、 + コードを変更する必要があります。</p> + + <p>これらの仮定が満たされていると、ある時点において、 + クラスタ内のどのマシンのどの httpd + プロセスでも、一意に同定することができます。これはマシンの IP + アドレスと httpd プロセスの pid で十分に行なうことができます。 + ですから、リクエストに一意な識別子を生成するためには、 + 時刻を区別する必要があるだけです。</p> + + <p>時刻を区別するために、Unix のタイムスタンプ (UTC の 1970 年 + 1 月 1 日からの秒数) と、16 ビットのカウンタを使います。 + タイムスタンプの粒度は一秒ですので、一秒間の 65536 + までの値を表現するためにカウンタを使用します。四つの値 + <em>( ip_addr, pid, time_stamp, counter )</em> で各 httpd + プロセスで一秒の間に 65536 リクエストを数えあげることができます。 + 時間が経つと pid が再利用されるという問題がありますが、 + この問題を解決するためにカウンタが使用されます。</p> + + <p>httpd の子プロセスが作成されると、カウンタは + (その時点のマイクロ秒 ÷ 10) modulo 65536 で初期化されます + (この式はいくつかのシステムにある、マイクロ秒の + タイマの下位ビットが異なるという問題を解決するために選ばれました)。 + 一意な識別子が生成されたとき、使用されるタイムスタンプは + ウェブサーバにリクエストが到着した時刻になります。 + カウンタは識別子が生成されるたびに増加します + (あふれた場合は 0 に戻ります)。</p> + + <p>カーネルはプロセスをフォークすると、それぞれのプロセスのために + pid を生成します。pid は繰り返されることが許可されています + (pid の値は多くの Unix では 16 ビットですが、新しいシステムでは + 32 ビットに拡張されています)。 + ですから、ある程度の時間が経過すると同じ pid が再び使用されます。 + しかし、一秒内に再使用されなければ、 + 四つの値の一意性は保たれます。つまり、我々はシステムが一秒間 + に 65536 個のプロセスを起動しないと仮定しています (いくつかの Unix + では 32768 プロセスですが、それですらほとんどあり得ないでしょう)。</p> + + <p>何らかの理由で、同じ時刻が繰り返されたとしましょう。 + つまり、システムの時計が狂っていて、もう一度過去の時刻になってしまった + (もしくは進みすぎていたときに、 + 正しい時刻に戻したために再び将来の時刻になってしまった) とします。 + この場合、pid とタイムスタンプが再使用されることが簡単に示されます。 + カウンタ初期化用の関数は、この問題の回避を手助けしようと選択されています。 + 本当はカウンタの初期化をするためにランダムな数字を使いたいのですが、 + ほとんどのシステムでは簡単に使用できる数は無いことに注意してください + (<em>すなわち</em>、rand ()は使えません。rand () には seed + を与える必要があり、seed には時刻を使えません。一秒単位では、 + その時刻はすでに繰り返されているからです)。 + これは、完璧な対策ではありません。</p> + + <p>この対策はどのくらい効果があるでしょうか? + ここでは、マシン群の中の一つは最大で一秒に 500 + リクエストを扱うと仮定します (これを書いている時点では妥当な上限です。 + 通常システムがすることは静的なファイルを取りだすだけではありませんから)。 + それを行なうために、そのマシンは並行して来るクライアントの数に + 応じた数の子プロセスを要求します。 + しかしながら、悲観的に考えて、一つの子プロセスが一秒に 500 + リクエストを扱えるとします。そうすると、(一秒の精度において) + 時刻が同じ時を繰り返すと、この子プロセスがカウンタの値を再び使い、 + 一意性が壊れる可能性が 1.5% あります。 + これは非常に悲観的な例で、実世界の値では、ほとんど起こりそうにありません。 + それでもこれが起こる可能性のあるようなシステムなら、 + (プログラムコードを編集して) + カウンタを 32 ビットにするのが良いでしょう。 </p> - <p>$B%5%^!<%?%$%`$K$h$j;~7W$,!VLa$5$l$k!W$3$H$r5$$K$7$F$$$k?M$,(B - $B$$$k$+$b$7$l$^$;$s!#$3$3$G;HMQ$5$l$k;~4V$O(B UTC $B$G$"$j!"(B - $B$=$l$O!V>o$K!W?J$`$N$G$3$3$G$OLdBj$K$J$j$^$;$s!#(Bx86 $B>e$N(B Unix - $B$O$3$N>r7o$rK~$?$9$?$a$KE,@Z$J@_Dj$,I,MW$+$b$7$l$J$$$3$H$K(B - $BCm0U$7$F$/$@$5$$!#%^%6!<%\!<%I$N;~7W$O(B UTC $B$K$J$C$F$$$F!"(B - $BB>$N;~4V$O$=$3$+$iE,@Z$KJd@5$5$l$k$3$H$r2>Dj$G$-$k$h$&$K(B - $B@_Dj$5$l$J$1$l$P$J$j$^$;$s!#$=$N$h$&$J>l9g$G$5$(!"(BNTP - $B$r;H$C$F$$$k$J$i$P%j%V!<%H8e$K$9$0@5$7$$(B UTC $B$N;~4V$K$J$k$G$7$g$&!#(B</p> - - <p><code>UNIQUE_ID</code> $B4D6-JQ?t$O(B 112 $B%S%C%H(B (32 $B%S%C%H(B IP - $B%"%I%l%9!"(B32 $B%S%C%H(B pid, 32 $B%S%C%H%?%$%`%9%?%s%W!"(B16 - $B%S%C%H%+%&%s%?$N;M$D$NAH(B) $B$r%"%k%U%!%Y%C%H(B <code>[A-Za-z0-9@-]</code> - $B$rMQ$$$F(B MIME $B$N(B base64 $BId9f2=$HF1MM$NJ}K!$K$h$jId9f2=$7!"(B19 - $B$NJ8;z$r@8@.$9$k$3$H$K$h$j:n@.$5$l$^$9!#(BMIME $B$N(B base64 - $B$N%"%k%U%!%Y%C%H$O<B:]$O(B <code>[A-Za-z0-9+/]</code> $B$G$9$,!"(B - <code>+</code> $B$H(B <code>/</code> $B$H$O(B URL - $B$G$OFCJL$JId9f2=$,I,MW$J$N$G!"$"$^$jK>$^$7$/$"$j$^$;$s!#(B - $BA4$F$NCM$O%M%C%H%o!<%/%P%$%H%*!<%@$GId9f2=$5$l$^$9$N$G!"(B - $BId9f$O0c$C$?%P%$%H%*!<%@$N%"!<%-%F%/%A%c4V$GHf3S2DG=$G$9!#(B - $B<B:]$NId9f2=$N=gHV$O(B: $B%?%$%`%9%?%s%W!"(BIP $B%"%I%l%9!"(Bpid, - $B%+%&%s%?$G$9!#$3$N=g$K$OL\E*$,$"$j$^$9$,!"(B - $B%"%W%j%1!<%7%g%s$OId9f$r2r@O$9$k$Y$-$G$O$J$$$3$H$r6/D4$7$F$*$-$^$9!#(B - $B%"%W%j%1!<%7%g%s$OId9f2=$5$l$?(B <code>UNIQUE_ID</code> - $BA4BN$rF)2aE*$J%H!<%/%s$H$7$F07$&$Y$-$G$9!#(B - <code>UNIQUE_ID</code> $B$OB>$N(B <code>UNIQUE_ID</code> - $B$H$NEy2A@-$rD4$Y$k$?$a$@$1$K$N$_;HMQ$G$-$^$9!#(B</p> - - <p>$B$3$N=gHV$O>-Mh!"4{B8$N(B <code>UNIQUE_ID</code> - $B$N%G!<%?%Y!<%9$H$N>WFM$r?4G[$9$k$3$H$J$/Id9f$rJQ99$9$k$3$H$,(B - $B2DG=$K$J$k$h$&$KA*Br$7$F$$$^$9!#(B - $B?7$7$$Id9f$O%?%$%`%9%?%s%W$r:G=i$NMWAG$H$7$F;D$9$N$,K>$^$7$/!"(B - $B$=$l0J30$OF1$8%"%k%U%!%Y%C%H$H%S%C%HD9$r;H$&$3$H$,$G$-$^$9!#(B - $B%?%$%`%9%?%s%W$OK\<AE*$KA}2C7ONs$G$9$N$G!"(B - $B%/%i%9%?$NA4$F$N%^%7%s$,%j%/%(%9%H$H%5!<%P5!G=$rDd;_$7$F!"(B - $B8E$$Id9f2=J}<0$r;HMQ$9$k$N$r$d$a$k(B<em>$B%U%i%0IC(B</em>$B$,$"$l$P==J,$G$9!#(B - $B$=$N8e$O!"%j%/%(%9%H$r:F3+$7!"(B - $B?7$7$$Id9f$rH/9T$9$k$3$H$,$G$-$k$h$&$K$J$j$^$9!#(B</p> - - <p>$B2f!9$O$3$l$,!"(B - $B$3$NLdBj$KBP$9$kHf3SE*0\?"@-$N9b$$2r7hK!$@$H9M$($F$$$^$9!#(B - Windows NT $B$N$h$&$J%^%k%A%9%l%C%I$N%7%9%F%`$K3HD%$9$k$3$H$,$G$-$^$9$7!"(B - $B>-MhI,MW$K$J$l$P$5$i$KA}$d$9$3$H$b$G$-$^$9!#(B - ID $B$OI,MW$K1~$8$FD9$/$9$k$3$H$,$G$-$^$9$N$G!"@8@.$5$l$?(B ID - $B$O<B<A>e!"L58B$KM-8z$G$9!#$^$?!"%/%i%9%?$N%^%7%s4V$NDL?.$b;v<B>eI,MW$J$/(B - (NTP $B$K$h$kF14|$N$_$,I,MW$G!"$3$l$O%*!<%P%X%C%I$O$"$^$j$"$j$^$;$s(B)$B!"(Bhttpd - $B%W%m%;%94V$NDL?.$bI,MW$"$j$^$;$s(B ($BDL?.$O%+!<%M%k$K$h$j3d$jEv$F$i$l$?(B - pid $B$NCM$K$h$j0EL[$NFb$K9T$J$o$F$$$^$9(B)$B!#(B - $B$5$i$K8B$i$l$?>u672<$G$O!"(BID $B$O$5$i$KC;$/$9$k$3$H$,$G$-$^$9$,!"(B - $B$h$jB?$/$N>pJs$r2>Dj$9$kI,MW$,$G$F$-$^$9(B ($BNc$($P!"(B32 $B%S%C%H(B - IP $B%"%I%l%9$O$I$N%5%$%H$K$*$$$F$b2a>j$J>pJs$G$9$,!"(B - $B$=$l$NBe$o$j$K$J$k0\?"@-$N$"$k$b$N$O$"$j$^$;$s(B)$B!#(B</p> + <p>サマータイムにより時計が「戻される」ことを気にしている人が + いるかもしれません。ここで使用される時間は UTC であり、 + それは「常に」進むのでここでは問題になりません。x86 上の Unix + はこの条件を満たすために適切な設定が必要かもしれないことに + 注意してください。マザーボードの時計は UTC になっていて、 + 他の時間はそこから適切に補正されることを仮定できるように + 設定されなければなりません。そのような場合でさえ、NTP + を使っているならばリブート後にすぐ正しい UTC の時間になるでしょう。</p> + + <p><code>UNIQUE_ID</code> 環境変数は 112 ビット (32 ビット IP + アドレス、32 ビット pid, 32 ビットタイムスタンプ、16 + ビットカウンタの四つの組) をアルファベット <code>[A-Za-z0-9@-]</code> + を用いて MIME の base64 符号化と同様の方法により符号化し、19 + の文字を生成することにより作成されます。MIME の base64 + のアルファベットは実際は <code>[A-Za-z0-9+/]</code> ですが、 + <code>+</code> と <code>/</code> とは URL + では特別な符号化が必要なので、あまり望ましくありません。 + 全ての値はネットワークバイトオーダで符号化されますので、 + 符号は違ったバイトオーダのアーキテクチャ間で比較可能です。 + 実際の符号化の順番は: タイムスタンプ、IP アドレス、pid, + カウンタです。この順には目的がありますが、 + アプリケーションは符号を解析するべきではないことを強調しておきます。 + アプリケーションは符号化された <code>UNIQUE_ID</code> + 全体を透過的なトークンとして扱うべきです。 + <code>UNIQUE_ID</code> は他の <code>UNIQUE_ID</code> + との等価性を調べるためだけにのみ使用できます。</p> + + <p>この順番は将来、既存の <code>UNIQUE_ID</code> + のデータベースとの衝突を心配することなく符号を変更することが + 可能になるように選択しています。 + 新しい符号はタイムスタンプを最初の要素として残すのが望ましく、 + それ以外は同じアルファベットとビット長を使うことができます。 + タイムスタンプは本質的に増加系列ですので、 + クラスタの全てのマシンがリクエストとサーバ機能を停止して、 + 古い符号化方式を使用するのをやめる<em>フラグ秒</em>があれば十分です。 + その後は、リクエストを再開し、 + 新しい符号を発行することができるようになります。</p> + + <p>我々はこれが、 + この問題に対する比較的移植性の高い解決法だと考えています。 + Windows NT のようなマルチスレッドのシステムに拡張することができますし、 + 将来必要になればさらに増やすこともできます。 + ID は必要に応じて長くすることができますので、生成された ID + は実質上、無限に有効です。また、クラスタのマシン間の通信も事実上必要なく + (NTP による同期のみが必要で、これはオーバヘッドはあまりありません)、httpd + プロセス間の通信も必要ありません (通信はカーネルにより割り当てられた + pid の値により暗黙の内に行なわています)。 + さらに限られた状況下では、ID はさらに短くすることができますが、 + より多くの情報を仮定する必要がでてきます (例えば、32 ビット + IP アドレスはどのサイトにおいても過剰な情報ですが、 + それの代わりになる移植性のあるものはありません)。</p> </section> diff --git a/docs/manual/mod/mod_userdir.xml.ja b/docs/manual/mod/mod_userdir.xml.ja index b7a725bcb3..03b8add7b4 100644 --- a/docs/manual/mod/mod_userdir.xml.ja +++ b/docs/manual/mod/mod_userdir.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 420990:657842 (outdated) --> @@ -23,81 +23,81 @@ <modulesynopsis metafile="mod_userdir.xml.meta"> <name>mod_userdir</name> -<description>$B%f!<%6@lMQ$N%G%#%l%/%H%j$rDs6!(B +<description>ユーザ専用のディレクトリを提供 </description> <status>Base</status> <sourcefile>mod_userdir.c</sourcefile> <identifier>userdir_module</identifier> <summary> -<p>$B$3$N%b%8%e!<%k$O!"(B +<p>このモジュールは、 <code>http://example.com/~user/</code> -$B9=J8$r;H$C$F%f!<%6@lMQ%G%#%l%/%H%j$K%"%/%;%9$G$-$k$h$&$K$7$^$9!#(B</p> +構文を使ってユーザ専用ディレクトリにアクセスできるようにします。</p> </summary> -<seealso><a href="../urlmapping.html">URL $B$+$i(B -$B%U%!%$%k%7%9%F%`$X$N%^%C%T%s%0(B</a></seealso> +<seealso><a href="../urlmapping.html">URL から +ファイルシステムへのマッピング</a></seealso> <seealso><a href="../howto/public_html.html">public_html -$B%A%e!<%H%j%"%k(B</a></seealso> +チュートリアル</a></seealso> <directivesynopsis> <name>UserDir</name> -<description>$B%f!<%6@lMQ%G%#%l%/%H%j$N0LCV(B</description> +<description>ユーザ専用ディレクトリの位置</description> <syntax>UserDir <em>directory-filename</em></syntax> <contextlist><context>server config</context> <context>virtual host</context></contextlist> <usage> - <p><directive>UserDir</directive> $B%G%#%l%/%F%#%V$O!"(B - $B%f!<%6$N%I%-%e%a%s%H$X$N%j%/%(%9%H$r<u$1$?;~$K;H$&(B - $B%f!<%6$N%[!<%`%G%#%l%/%H%jCf$N!"<B:]$N%G%#%l%/%H%j$r(B - $B@_Dj$7$^$9!#(B - <em>directory-filename</em> $B$K$O<!$N$I$l$+$r;XDj$7$^$9(B:</p> + <p><directive>UserDir</directive> ディレクティブは、 + ユーザのドキュメントへのリクエストを受けた時に使う + ユーザのホームディレクトリ中の、実際のディレクトリを + 設定します。 + <em>directory-filename</em> には次のどれかを指定します:</p> <ul> - <li>$B%G%#%l%/%H%jL>$+2<$K<($9$h$&$J%Q%?!<%s!#(B</li> - - <li><code>disabled</code> $B%-!<%o!<%I!#(B - <code>enabled</code> $B%-!<%o!<%I(B ($B2<5-;2>H(B) $B$GL@<(E*$K(B - $B;XDj$5$l$?%f!<%60J30$N(B - <em>$BA4$F$N(B</em>$B%f!<%6L>(B-$B%G%#%l%/%H%jJQ49$r(B - $B$7$J$$$h$&$K$7$^$9!#(B</li> - - <li><code>disabled</code> $B%-!<%o!<%I$H!"%9%Z!<%96h@Z$j$N%f!<%6L>%j%9%H!#(B - $B$3$N%j%9%HCf$K4^$^$l$k%f!<%6L>$KBP$7$F$O!"$?$H$((B - <code>enabled</code> $B@a$K$"$C$?$H$7$F$b!"(B - <em>$B7h$7$F(B</em>$B%G%#%l%/%H%jJQ49$O9T$o$l$^$;$s!#(B</li> - - <li><code>enebled</code> $B%-!<%o!<%I$H%9%Z!<%96h@Z$j$N%f!<%6L>%j%9%H!#(B - $BA4BN$G$OJQ49$,L58z$K$J$C$F$$$?$H$$$?$H$7$F$b!"(B - $B$3$l$i$N%f!<%6L>$K$O%G%#%l%/%H%jJQ49$,9T$o$l$^$9!#(B - $B$?$@$7!"(B<code>disabled</code> $B@a$K$b$"$l$PJQ49$O$5$l$^$;$s!#(B + <li>ディレクトリ名か下に示すようなパターン。</li> + + <li><code>disabled</code> キーワード。 + <code>enabled</code> キーワード (下記参照) で明示的に + 指定されたユーザ以外の + <em>全ての</em>ユーザ名-ディレクトリ変換を + しないようにします。</li> + + <li><code>disabled</code> キーワードと、スペース区切りのユーザ名リスト。 + このリスト中に含まれるユーザ名に対しては、たとえ + <code>enabled</code> 節にあったとしても、 + <em>決して</em>ディレクトリ変換は行われません。</li> + + <li><code>enebled</code> キーワードとスペース区切りのユーザ名リスト。 + 全体では変換が無効になっていたといたとしても、 + これらのユーザ名にはディレクトリ変換が行われます。 + ただし、<code>disabled</code> 節にもあれば変換はされません。 </li> </ul> - <p>$B$b$7(B <code>enabled</code> $B$b(B <code>disabled</code> - $B%-!<%o!<%I$b(B <code>UserDir</code> $B$K8=$o$l$F$$$J$1$l$P!"(B - $B0z?t$O%U%!%$%kL>%Q%?!<%s$H$7$F07$o$l!"(B - $BL>A0$+$i%G%#%l%/%H%j$X$NJQ49$N;XDj$r9T$J$&;~$K;H$o$l$^$9!#(B + <p>もし <code>enabled</code> も <code>disabled</code> + キーワードも <code>UserDir</code> に現われていなければ、 + 引数はファイル名パターンとして扱われ、 + 名前からディレクトリへの変換の指定を行なう時に使われます。 <code>http://www.foo.com/~bob/one/two.html</code> - $B$X$N%j%/%(%9%H$O<!$N$h$&$KJQ49$5$l$^$9(B:</p> + へのリクエストは次のように変換されます:</p> <table> -<tr><th>UserDir $B%G%#%l%/%F%#%V(B</th> -<th>$BJQ498e$N%Q%9(B</th></tr> +<tr><th>UserDir ディレクティブ</th> +<th>変換後のパス</th></tr> <tr><td>UserDir public_html</td><td>~bob/public_html/one/two.html</td></tr> <tr><td>UserDir /usr/web</td><td>/usr/web/bob/one/two.html</td></tr> <tr><td>UserDir /home/*/www</td><td>/home/bob/www/one/two.html</td></tr> </table> - <p>$B<!$N%G%#%l%/%F%#%V$O%/%i%$%"%s%H$KBP$7$F%j%@%$%l%/%H$r(B - $BAw?.$7$^$9(B:</p> + <p>次のディレクティブはクライアントに対してリダイレクトを + 送信します:</p> <table> -<tr><th>UserDir $B%G%#%l%/%F%#%V(B</th> -<th>$BJQ498e$N%Q%9(B</th></tr> +<tr><th>UserDir ディレクティブ</th> +<th>変換後のパス</th></tr> <tr><td>UserDir http://www.foo.com/users</td><td>http://www.foo.com/users/bob/one/two.html</td></tr> <tr><td>UserDir http://www.foo.com/*/usr</td><td>http://www.foo.com/bob/usr/one/two.html</td></tr> @@ -106,63 +106,63 @@ http://www.foo.com/~*/</td><td>http://www.foo.com/~bob/one/two.html</td></tr> </table> <note> - <strong>$B$3$N%G%#%l%/%F%#%V$r;H$&$H$-$OCm0U$7$F$/$@$5$$(B; - "<code>UserDir ./</code>" $B$O(B - "<code>/~root</code>" $B$+$i(B "<code>/</code>" $B$X%^%C%W$7$^$9$,!"(B - $B$3$l$OK>$^$7$$F0:n$G$O$J$$$G$7$g$&!#(B - "<code>UserDir disabled root</code>" $B@k8@$r(B - $B@_Dj$NCf$K4^$a$F$*$/$3$H$r6/$/$*A&$a$7$^$9!#(B - $BDI2C>pJs$K(B <directive module="core">Directory</directive> - $B%G%#%l%/%F%#%V$d(B - <a href="../misc/security_tips.html">$B%;%-%e%j%F%#(B - Tips</a> $B$N%Z!<%8$b$4Mw2<$5$$!#(B</strong> + <strong>このディレクティブを使うときは注意してください; + "<code>UserDir ./</code>" は + "<code>/~root</code>" から "<code>/</code>" へマップしますが、 + これは望ましい動作ではないでしょう。 + "<code>UserDir disabled root</code>" 宣言を + 設定の中に含めておくことを強くお薦めします。 + 追加情報に <directive module="core">Directory</directive> + ディレクティブや + <a href="../misc/security_tips.html">セキュリティ + Tips</a> のページもご覧下さい。</strong> </note> -<p>$BDI2C$NNc(B:</p> +<p>追加の例:</p> -<p>$B>/?t$N%f!<%6$N$_$,(B <code>UserDir</code> -$B%G%#%l%/%H%j$rMxMQ$7!"$=$l0J30$K$OMxMQ$5$;$?$/$J$$>l9g$O(B -$B<!$r;H$$$^$7$g$&(B:</p> +<p>少数のユーザのみが <code>UserDir</code> +ディレクトリを利用し、それ以外には利用させたくない場合は +次を使いましょう:</p> <example> UserDir disabled<br /> UserDir enabled user1 user2 user3 </example> -<p>$BBgItJ,$N%f!<%6$O(B <code>UserDir</code> $B%G%#%l%/%H%j$rMxMQ$9$k$1$l$I!"(B -$B>/?t$N?M$OIT5v2D$K$7$?$$>l9g$O!"<!$r;H$$$^$7$g$&(B:</p> +<p>大部分のユーザは <code>UserDir</code> ディレクトリを利用するけれど、 +少数の人は不許可にしたい場合は、次を使いましょう:</p> <example> UserDir enabled<br /> UserDir disabled user4 user5 user6 </example> -<p>$BB>$N%f!<%6%G%#%l%/%H%j$r;XDj$9$k$3$H$b$G$-$^$9!#(B -$B<!$N$h$&$J%3%^%s%I$r;H$&$H(B:</p> +<p>他のユーザディレクトリを指定することもできます。 +次のようなコマンドを使うと:</p> <example> Userdir public_html /usr/web http://www.foo.com/ </example> -<p>http://www.foo.com/~bob/one/two.html $B$X$N%j%/%(%9%H$O$^$:(B -~bob/public_html/one/two.html $B$N%Z!<%8$rD4$Y!"$=$N<!$K(B -/usr/web/bob/one/two.html $B$rD4$Y!":G8e$K(B http://www.foo.com/bob/one/two.html -$B$X$N%j%@%$%l%/%H$rAw$j$^$9!#(B</p> +<p>http://www.foo.com/~bob/one/two.html へのリクエストはまず +~bob/public_html/one/two.html のページを調べ、その次に +/usr/web/bob/one/two.html を調べ、最後に http://www.foo.com/bob/one/two.html +へのリダイレクトを送ります。</p> -<p>$B%j%@%$%l%/%H$r2C$($k>l9g$O!"%j%9%H$N:G8e$NA*Br;h$G$J$1$l$P$J$j$^$;$s!#(B -Apache $B$O%j%@%$%l%/%H$,@.8y$9$k$+$I$&$+$r7h$a$k$3$H$O$G$-$^$;$s$N$G!"(B -$B%j%9%H$NA0$NJ}$K%j%@%$%l%/%H$r=q$/$H!"$=$l$,I,$:;HMQ$5$l$kA*Br;h$K(B -$B$J$C$F$7$^$$$^$9!#(B</p> +<p>リダイレクトを加える場合は、リストの最後の選択肢でなければなりません。 +Apache はリダイレクトが成功するかどうかを決めることはできませんので、 +リストの前の方にリダイレクトを書くと、それが必ず使用される選択肢に +なってしまいます。</p> -<p>2.1.4 $B0J9_$G$O!"%f!<%6%G%#%l%/%H%jCV495!G=$O%G%U%)%k%H$G$O5/F0$7$^$;$s!#(B -$B$=$l0JA0$N%P!<%8%g%s$G$O!"(B<directive module="mod_userdir">UserDir</directive> -$B%G%#%l%/%F%#%V$,B8:_$7$J$1$l$P!"(B<code>UserDir public_html</code> -$B$G$"$k$H2>Dj$5$l$F$$$^$7$?!#(B</p> +<p>2.1.4 以降では、ユーザディレクトリ置換機能はデフォルトでは起動しません。 +それ以前のバージョンでは、<directive module="mod_userdir">UserDir</directive> +ディレクティブが存在しなければ、<code>UserDir public_html</code> +であると仮定されていました。</p> </usage> <seealso><a href="../howto/public_html.html">public_html -$B%A%e!<%H%j%"%k(B</a></seealso> +チュートリアル</a></seealso> </directivesynopsis> </modulesynopsis> diff --git a/docs/manual/mod/mod_version.xml.ja b/docs/manual/mod/mod_version.xml.ja index a3de876511..d54861cb0f 100644 --- a/docs/manual/mod/mod_version.xml.ja +++ b/docs/manual/mod/mod_version.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 151408:420993 (outdated) --> @@ -22,21 +22,21 @@ <modulesynopsis metafile="mod_version.xml.meta"> <name>mod_version</name> -<description>$B%P!<%8%g%s0MB8$N@_Dj(B</description> +<description>バージョン依存の設定</description> <status>Extension</status> <sourcefile>mod_version.c</sourcefile> <identifier>version_module</identifier> -<compatibility>$B%P!<%8%g%s(B 2.1 $B0J9_(B</compatibility> +<compatibility>バージョン 2.1 以降</compatibility> <summary> - <p>$BMM!9$J%P!<%8%g%s$N(B httpd $B$N0[$J$k@_Dj$r07$&$3$H$K$J$k!"(B - $B%F%9%H%9%$!<%H$dBg5,LO%M%C%H%o!<%/$G$N;HMQ$N$?$a$K@_7W$5$l$F$$$^$9!#(B - $B$3$N%b%8%e!<%k$O?7$7$$%3%s%F%J(B $B!=(B <directive - type="section" module="mod_version">IfVersion</directive> $B$r(B - $BDs6!$7$^$9!#$3$l$r;H$&$H!"?t;z$NHf3S$d@55,I=8=$K$h$k=@Fp$J(B - $B%P!<%8%g%s%A%'%C%/$,$G$-$k$h$&$K$J$j$^$9!#(B</p> - - <example><title>$BNc(B</title> + <p>様々なバージョンの httpd の異なる設定を扱うことになる、 + テストスイートや大規模ネットワークでの使用のために設計されています。 + このモジュールは新しいコンテナ ― <directive + type="section" module="mod_version">IfVersion</directive> を + 提供します。これを使うと、数字の比較や正規表現による柔軟な + バージョンチェックができるようになります。</p> + + <example><title>例</title> <IfVersion 2.1.0><br /> <indent> # current httpd version is exactly 2.1.0<br /> @@ -50,12 +50,12 @@ </IfVersion> </example> - <p>$B>\:Y$O0J2<$rFI$s$G$/$@$5$$!#(B</p> + <p>詳細は以下を読んでください。</p> </summary> <directivesynopsis type="section"> <name>IfVersion</name> -<description>$B%P!<%8%g%s0MB8$N@_Dj$rF~$l$k(B</description> +<description>バージョン依存の設定を入れる</description> <syntax><IfVersion [[!]<var>operator</var>] <var>version</var>> ... </IfVersion></syntax> <contextlist><context>server config</context><context>virtual host</context> @@ -63,30 +63,30 @@ <override>All</override> <usage> - <p><directive type="section">IfVersion</directive> $B$O(B <program>httpd</program> $B$N%P!<%8%g%s(B - $B$,4p=`$rK~$?$7$?$H$-$K$N$_<B9T$5$;$?$$%G%#%l%/%F%#%V$r0O$_$^$9!#(B - $BDL>o$N(B ($B?tCM(B) $BHf3S$N$H$-$O(B <var>version</var> $B0z?t$O(B - <code><var>major</var>[.<var>minor</var>[.<var>patch</var>]]</code> $B$H$$$&(B - $B7A<0!"Nc$($P!"(B<code>2.1.0</code> $B$d(B <code>2.2</code> $B$H$J$j$^$9!#(B - <var>minor</var> $B$H(B <var>patch</var> $B$O>JN,2DG=$G$9!#>JN,$5$l$?>l9g$O!"(B - 0 $B$r;XDj$7$?$b$N$H$_$J$5$l$^$9!#Hf3S$K$O<!$N?tCM(B <var>operator</var> $B$r(B - $B;XDj$G$-$^$9(B:</p> + <p><directive type="section">IfVersion</directive> は <program>httpd</program> のバージョン + が基準を満たしたときにのみ実行させたいディレクティブを囲みます。 + 通常の (数値) 比較のときは <var>version</var> 引数は + <code><var>major</var>[.<var>minor</var>[.<var>patch</var>]]</code> という + 形式、例えば、<code>2.1.0</code> や <code>2.2</code> となります。 + <var>minor</var> と <var>patch</var> は省略可能です。省略された場合は、 + 0 を指定したものとみなされます。比較には次の数値 <var>operator</var> を + 指定できます:</p> <table style="zebra" border="1"> - <tr><th><var>operator</var></th><th>$B@bL@(B</th></tr> - <tr><td><code>=</code> $B$H(B <code>==</code></td> - <td>$BF1$8(B httpd $B%P!<%8%g%s(B</td></tr> + <tr><th><var>operator</var></th><th>説明</th></tr> + <tr><td><code>=</code> と <code>==</code></td> + <td>同じ httpd バージョン</td></tr> <tr><td><code>></code></td> - <td>$B$h$jBg$-$$(B httpd $B%P!<%8%g%s(B</td></tr> + <td>より大きい httpd バージョン</td></tr> <tr><td><code>>=</code></td> - <td>$B;XDj0J>e$N(B httpd $B%P!<%8%g%s(B</td></tr> + <td>指定以上の httpd バージョン</td></tr> <tr><td><code><</code></td> - <td>$B;XDjL$K~$N(B httpd $B%P!<%8%g%s(B</td></tr> + <td>指定未満の httpd バージョン</td></tr> <tr><td><code><=</code></td> - <td>$B;XDj0J2<$N(B httpd $B%P!<%8%g%s(B</td></tr> + <td>指定以下の httpd バージョン</td></tr> </table> - <example><title>$BNc(B</title> + <example><title>例</title> <IfVersion >= 2.1><br /> <indent> # this happens only in versions greater or<br /> @@ -95,20 +95,20 @@ </IfVersion> </example> - <p>$B?tCMHf3S$K2C$($F!"(Bhttp $B$N%P!<%8%g%sHV9f$KBP$7$F@55,I=8=$K$h$k(B - $B%^%C%A%s%0$,$G$-$^$9!#Fs<oN`$N=q$-J}$,$"$j$^$9(B:</p> + <p>数値比較に加えて、http のバージョン番号に対して正規表現による + マッチングができます。二種類の書き方があります:</p> <table style="zebra" border="1"> - <tr><th><var>operator</var></th><th>$B@bL@(B</th></tr> + <tr><th><var>operator</var></th><th>説明</th></tr> <tr><td><code>=</code> or <code>==</code></td> - <td><var>version</var> $B$O(B - <code>/<var>regex</var>/</code> $B7A<0(B</td></tr> + <td><var>version</var> は + <code>/<var>regex</var>/</code> 形式</td></tr> <tr><td><code>~</code></td> - <td><var>version</var> $B$O(B - <code><var>regex</var></code> $B7A<0(B</td></tr> + <td><var>version</var> は + <code><var>regex</var></code> 形式</td></tr> </table> - <example><title>$BNc(B</title> + <example><title>例</title> <IfVersion = /^2.1.[01234]$/><br /> <indent> # e.g. workaround for buggy versions @@ -116,8 +116,8 @@ </IfVersion> </example> - <p>$B%^%C%A%s%0$NH]Dj$rI=8=$9$k$?$a$K!"$9$Y$F$N%*%Z%l!<%?$OA0$K(B - $B46C2Id(B (<code>!</code>)$B$rIU$1$k$3$H$,$G$-$^$9(B:</p> + <p>マッチングの否定を表現するために、すべてのオペレータは前に + 感嘆符 (<code>!</code>)を付けることができます:</p> <example> <IfVersion !~ ^2.1.[01234]$><br /> @@ -127,8 +127,8 @@ </IfVersion> </example> - <p><var>operator</var> $B$,>JN,$5$l$?$H$-$O(B <code>=</code> $B$H(B - $B$_$J$5$l$^$9!#(B</p> + <p><var>operator</var> が省略されたときは <code>=</code> と + みなされます。</p> </usage> </directivesynopsis> diff --git a/docs/manual/mod/module-dict.xml.ja b/docs/manual/mod/module-dict.xml.ja index 7a7b65fe48..fe19260e40 100644 --- a/docs/manual/mod/module-dict.xml.ja +++ b/docs/manual/mod/module-dict.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 420990 --> @@ -22,88 +22,88 @@ <manualpage metafile="module-dict.xml.meta"> - <title>Apache $B%b%8%e!<%k$N2r@b$G;HMQ$9$kMQ8l(B</title> + <title>Apache モジュールの解説で使用する用語</title> <summary> - <p>$B$3$NJ8=q$O(B Apache $B$N3F(B <a href="./">$B%b%8%e!<%k(B</a> $B$r@bL@$9$k$?$a$K(B - $B;H$o$l$F$$$kMQ8l$r@bL@$7$^$9!#(B</p> + <p>この文書は Apache の各 <a href="./">モジュール</a> を説明するために + 使われている用語を説明します。</p> </summary> -<section id="Description"><title>$B@bL@(B</title> +<section id="Description"><title>説明</title> -<p>$B%b%8%e!<%k$NL\E*$NC;$$@bL@!#(B</p> +<p>モジュールの目的の短い説明。</p> </section> -<section id="Status"><title>$B%9%F!<%?%9(B</title> +<section id="Status"><title>ステータス</title> - <p>$B$3$l$O!"$=$N%b%8%e!<%k$,(B Apache - $B%&%'%V%5!<%P$K$I$l$/$i$$L)@\$KAH$_9~$^$l$F$$$k$+$r<($7$^$9!#(B - $B8@$$49$($l$P!"%b%8%e!<%k$rAH$_9~$_!"$=$N5!G=$rMxMQ$9$k$?$a$K!"(B - $B%5!<%P$r:F%3%s%Q%$%k$9$kI,MW$,$"$k$+$b$7$l$J$$$H$$$&$3$H$r<($7$^$9!#(B - $B$3$NB0@-$,<h$jF@$kCM$O0J2<$N$b$N$G$9(B:</p> + <p>これは、そのモジュールが Apache + ウェブサーバにどれくらい密接に組み込まれているかを示します。 + 言い換えれば、モジュールを組み込み、その機能を利用するために、 + サーバを再コンパイルする必要があるかもしれないということを示します。 + この属性が取り得る値は以下のものです:</p> <dl> <dt>MPM</dt> - <dd>$B%9%F!<%?%9$,(B "MPM" $B$N%b%8%e!<%k$O(B<a - href="../mpm.html">$B%^%k%A%W%m%;%C%7%s%0%b%8%e!<%k(B</a>$B$G$9!#(B - $BB>$N<oN`$N%b%8%e!<%k$H$O0c$C$F!"(BApache $B$O>o$K(B MPM $B$r0l$D$@$1(B - $B;HMQ$7B3$1$^$9!#$3$N<oN`$N%b%8%e!<%k$O4pK\E*$J%j%/%(%9%H$N07$$$H(B - $B%G%#%9%Q%C%A$r9T$J$$$^$9!#(B</dd> + <dd>ステータスが "MPM" のモジュールは<a + href="../mpm.html">マルチプロセッシングモジュール</a>です。 + 他の種類のモジュールとは違って、Apache は常に MPM を一つだけ + 使用し続けます。この種類のモジュールは基本的なリクエストの扱いと + ディスパッチを行ないます。</dd> <dt>Base</dt> - <dd>$B%9%F!<%?%9$,(B "Base" - $B$N%b%8%e!<%k$O!"%G%U%)%k%H$G%3%s%Q%$%k$5$l$F$o$6$o$6@_Dj$+$i(B - $B%b%8%e!<%k$r:o=|$7$F$$$J$$8B$j!"DL>o$OMxMQ2DG=$G$9!#(B + <dd>ステータスが "Base" + のモジュールは、デフォルトでコンパイルされてわざわざ設定から + モジュールを削除していない限り、通常は利用可能です。 </dd> <dt>Extension</dt> - <dd>$B%9%F!<%?%9$,(B "Extension" $B$N%b%8%e!<%k$O!"(B - $B%G%U%)%k%H$G$O%3%s%Q%$%k$5$l$:!"%5!<%P$K$bFI$_9~$^$l$^$;$s!#(B - $B$=$N%b%8%e!<%k$H$=$N5!G=$rM-8z$K$9$k$K$O!"(B - $B%5!<%P$r%S%k%I$9$k$?$a$N@_Dj$rJQ99$7$F!"(BApache - $B$r:F%3%s%Q%$%k$9$kI,MW$,$"$j$^$9!#(B</dd> + <dd>ステータスが "Extension" のモジュールは、 + デフォルトではコンパイルされず、サーバにも読み込まれません。 + そのモジュールとその機能を有効にするには、 + サーバをビルドするための設定を変更して、Apache + を再コンパイルする必要があります。</dd> <dt>Experimental</dt> - <dd>$B%9%F!<%?%9$,(B "Experimental" $B$N%b%8%e!<%k$O!"(B - Apache $BG[I[J*$KF1:-$5$l$F$$$^$9$,!"(B - $B;HMQ$9$k>l9g$O<+8J@UG$$G9T$J$&I,MW$,$"$j$^$9!#(B - $B$=$N%b%8%e!<%k$O!"%I%-%e%a%s%H$b40@.$K8~$1$F:n@.Cf$G$9$7!"(B - $B%5%]!<%H$5$l$k$F$$$k$H$O8B$j$^$;$s!#(B</dd> + <dd>ステータスが "Experimental" のモジュールは、 + Apache 配布物に同梱されていますが、 + 使用する場合は自己責任で行なう必要があります。 + そのモジュールは、ドキュメントも完成に向けて作成中ですし、 + サポートされるているとは限りません。</dd> <dt>External</dt> - <dd>$B%9%F!<%?%9$,(B "External" $B$N%b%8%e!<%k$O!"4pK\(B Apache - $BG[I[$KF1:-$5$l$^$;$s(B ("$B%5!<%I%Q!<%F%#!<%b%8%e!<%k(B")$B!#(B - $B$=$N$?$a!"2f!9$K@UG$$O$"$j$^$;$s$7!"(B - $B$=$N%b%8%e!<%k$N%5%]!<%H$b$7$F$$$^$;$s!#(B</dd> + <dd>ステータスが "External" のモジュールは、基本 Apache + 配布に同梱されません ("サードパーティーモジュール")。 + そのため、我々に責任はありませんし、 + そのモジュールのサポートもしていません。</dd> </dl> </section> -<section id="SourceFile"><title>$B%=!<%9%U%!%$%k(B</title> +<section id="SourceFile"><title>ソースファイル</title> - <p>$B$3$l$OC1=c$K!"(B - $B$=$N%b%8%e!<%k$KI,MW$J%3!<%I$r4^$`%=!<%9%U%!%$%k$NL>A0$rNs5s$7$?$b$N$G$9!#(B - $B$3$l$O!"(B<directive module="core" type="section">IfModule</directive> - $B%G%#%l%/%F%#%V$G;HMQ$5$l$kL>A0$G$b$"$j$^$9!#(B + <p>これは単純に、 + そのモジュールに必要なコードを含むソースファイルの名前を列挙したものです。 + これは、<directive module="core" type="section">IfModule</directive> + ディレクティブで使用される名前でもあります。 </p> </section> -<section id="ModuleIdentifier"><title>$B%b%8%e!<%k<1JL;R(B</title> +<section id="ModuleIdentifier"><title>モジュール識別子</title> - <p>$B$3$NJ8;zNs$O!"%b%8%e!<%k$NF0E*FI$_9~$_$r9T$J$&$H$-$K;HMQ$9$k(B <directive + <p>この文字列は、モジュールの動的読み込みを行なうときに使用する <directive module="mod_so">LoadModule</directive> - $B%G%#%l%/%F%#%V$K$*$$$F;HMQ$5$l$k%b%8%e!<%k$N<1JL;R$G$9!#(B - $B>\$7$/=q$/$H!"%=!<%9%U%!%$%kFb$N(B module $B%?%$%W$N30ItJQ?t$NL>A0$G$9!#(B + ディレクティブにおいて使用されるモジュールの識別子です。 + 詳しく書くと、ソースファイル内の module タイプの外部変数の名前です。 </p> </section> -<section id="Compatibility"><title>$B8_49@-(B</title> +<section id="Compatibility"><title>互換性</title> - <p>$B$"$k%b%8%e!<%k$,(B Apache $B%P!<%8%g%s(B 2 - $B$NG[I[$K4^$^$l$F$$$J$+$C$?>l9g!"(B - $B$=$N%b%8%e!<%k$,F3F~$5$l$?%P!<%8%g%s$,$3$3$K=q$+$l$F$$$^$9!#(B - $B$^$?!"%b%8%e!<%k$,FCDj$N%W%i%C%H%U%)!<%`$K$N$_B8:_$9$k$H$-$b(B - $B>\:Y$O$3$3$K=q$+$l$F$$$^$9!#(B</p> + <p>あるモジュールが Apache バージョン 2 + の配布に含まれていなかった場合、 + そのモジュールが導入されたバージョンがここに書かれています。 + また、モジュールが特定のプラットフォームにのみ存在するときも + 詳細はここに書かれています。</p> </section> </manualpage> diff --git a/docs/manual/mod/mpm_common.xml.ja b/docs/manual/mod/mpm_common.xml.ja index 0d29a0a005..552fe1031d 100644 --- a/docs/manual/mod/mpm_common.xml.ja +++ b/docs/manual/mod/mpm_common.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 478131:658305 (outdated) --> @@ -23,15 +23,15 @@ <modulesynopsis metafile="mpm_common.xml.meta"> <name>mpm_common</name> -<description>$BFs$D0J>e$N%^%k%A%W%m%;%C%7%s%0%b%8%e!<%k(B (MPM) -$B$G<BAu$5$l$F$$$k%G%#%l%/%F%#%V$N%3%l%/%7%g%s(B</description> +<description>二つ以上のマルチプロセッシングモジュール (MPM) +で実装されているディレクティブのコレクション</description> <status>MPM</status> <directivesynopsis> <name>AcceptMutex</name> -<description>$BJ#?t$N;R%W%m%;%9$,%M%C%H%o!<%/%=%1%C%H$G%j%/%(%9%H$r(B -accept $B$7$h$&$H$7$F$$$k$H$-$K!"(BApache $B$,$=$l$i$N;R%W%m%;%9$rD>Ns2=$9$k$?$a$K(B -$B;H$&J}K!(B</description> +<description>複数の子プロセスがネットワークソケットでリクエストを +accept しようとしているときに、Apache がそれらの子プロセスを直列化するために +使う方法</description> <syntax>AcceptMutex Default|<var>method</var></syntax> <default>AcceptMutex Default</default> <contextlist><context>server config</context></contextlist> @@ -40,223 +40,223 @@ accept $B$7$h$&$H$7$F$$$k$H$-$K!"(BApache $B$,$=$l$i$N;R%W%m%;%9$rD>Ns2=$9$k$ </modulelist> <usage> - <p><directive>AcceptMutex</directive> $B%G%#%l%/%F%#%V$O!"(B - $B%M%C%H%o!<%/%=%1%C%H$N%j%/%(%9%H$r(B accept $B$7$h$&$H$7$F$$$kJ#?t$N;R%W%m%;%9$r(B - Apache $B$,D>Ns2=$9$k$?$a$K;H$&J}K!(B($B$HI,MW$J$i%m%C%/%U%!%$%k$N>l=j(B)$B$r@_Dj$7$^$9!#(B - Apache 2.0 $B0JA0$O!"$3$N%a%=%C%I$O%3%s%Q%$%k;~$K$N$_A*Br$G$-$^$7$?!#(B - $B:GE,$JJ}K!$O!"%"!<%-%F%/%A%c$d%W%i%C%H%[!<%`$KBg$-$/0MB8$7$^$9!#(B - $B>\:Y$K4X$7$F$O!"(B<a - href="../misc/perf-tuning.html">$B@-G=$N%A%e!<%K%s%0(B</a> - $B%I%-%e%a%s%H$r$4Mw2<$5$$!#(B</p> - - <p>$B$3$N%G%#%l%/%F%#%V$,(B <code>Default</code> - $B$K@_Dj$5$l$F$$$l$P!"%3%s%Q%$%k;~$KA*Br$5$l$?%G%U%)%k%HCM$,;H$o$l$^$9!#(B - $BB>$N;HMQ2DG=$J%a%=%C%I$N0lMw$O2<$K$"$j$^$9!#(B - $BA4$F$N%a%=%C%I$,A4$F$N%W%i%C%H%[!<%`$G;HMQ2DG=$G$"$k$o$1$G$O$J$$!"(B - $B$H$$$&$3$H$KCm0U$7$F$/$@$5$$!#(B - $B;HMQ2DG=$G$J$$%a%=%C%I$,;XDj$5$l$?>l9g$O!"(B - $B;HMQ2DG=$J%a%=%C%I$N0lMw$r4^$s$@%a%C%;!<%8$,(B - $B%(%i!<%m%0$K=PNO$5$l$^$9!#(B</p> + <p><directive>AcceptMutex</directive> ディレクティブは、 + ネットワークソケットのリクエストを accept しようとしている複数の子プロセスを + Apache が直列化するために使う方法(と必要ならロックファイルの場所)を設定します。 + Apache 2.0 以前は、このメソッドはコンパイル時にのみ選択できました。 + 最適な方法は、アーキテクチャやプラットホームに大きく依存します。 + 詳細に関しては、<a + href="../misc/perf-tuning.html">性能のチューニング</a> + ドキュメントをご覧下さい。</p> + + <p>このディレクティブが <code>Default</code> + に設定されていれば、コンパイル時に選択されたデフォルト値が使われます。 + 他の使用可能なメソッドの一覧は下にあります。 + 全てのメソッドが全てのプラットホームで使用可能であるわけではない、 + ということに注意してください。 + 使用可能でないメソッドが指定された場合は、 + 使用可能なメソッドの一覧を含んだメッセージが + エラーログに出力されます。</p> <dl> <dt><code>flock<<var>:/path/to/lockfile</var>></code></dt> - <dd>$B%*%W%7%g%s$N(B <var>/path/to/lockfile</var> - $B%Q%i%a!<%?$GDj5A$7$?%U%!%$%k$N%m%C%/$K!"(B - <code>flock(2)</code> $B%7%9%F%`%3!<%k$r;H$$$^$9!#(B - $B%m%C%/%U%!%$%k$N;XDj$K$O(B <directive module="mpm_common">LockFile</directive> - $B%G%#%l%/%F%#%V$r;H$&$3$H$b=PMh$^$9(B($BHs?d>)$G$9(B)$B!#(B</dd> + <dd>オプションの <var>/path/to/lockfile</var> + パラメータで定義したファイルのロックに、 + <code>flock(2)</code> システムコールを使います。 + ロックファイルの指定には <directive module="mpm_common">LockFile</directive> + ディレクティブを使うことも出来ます(非推奨です)。</dd> <dt><code>fcntl<<var>:/path/to/lockfile</var>></code></dt> - <dd>$B%*%W%7%g%s$N(B <var>/path/to/lockfile</var> - $B%Q%i%a!<%?$GDj5A$7$?%U%!%$%k$N%m%C%/$K!"(B - <code>fcntl(2)</code> $B%7%9%F%`%3!<%k$r;H$$$^$9!#(B - $B%m%C%/%U%!%$%k$N;XDj$K$O(B <directive module="mpm_common">LockFile</directive> - $B%G%#%l%/%F%#%V$r;H$&$3$H$b=PMh$^$9(B($BHs?d>)$G$9(B)$B!#(B</dd> + <dd>オプションの <var>/path/to/lockfile</var> + パラメータで定義したファイルのロックに、 + <code>fcntl(2)</code> システムコールを使います。 + ロックファイルの指定には <directive module="mpm_common">LockFile</directive> + ディレクティブを使うことも出来ます(非推奨です)。</dd> <dt><code>file<<var>:/path/to/lockfile</var>></code></dt> - <dd>$B;HMQ$G$-$k%U%!%$%k%m%C%/%k!<%A%s$NCf$G:GE,$J$b$N$r;H$$$^$9!#(B - $B6qBNE*$K$O!"(B<code>fcntl</code> $B$,;HMQ2DG=$J>l9g$O$=$l$r;H$$!"$=$&$G$J$$>l9g$O(B - <code>flock</code> $B$r;n$7$^$9!#(B - $B$3$N@_Dj$O%W%i%C%H%[!<%`$H(B <glossary>APR</glossary> $B$,Fs$D$N$&$A>/$J$/$H$b(B - $B0l$D$r%5%]!<%H$7$F$$$k>l9g$N$_;HMQ2DG=$G$9!#(B</dd> + <dd>使用できるファイルロックルーチンの中で最適なものを使います。 + 具体的には、<code>fcntl</code> が使用可能な場合はそれを使い、そうでない場合は + <code>flock</code> を試します。 + この設定はプラットホームと <glossary>APR</glossary> が二つのうち少なくとも + 一つをサポートしている場合のみ使用可能です。</dd> <dt><code>posixsem</code></dt> - <dd>$BGSB>=hM}$N<BAu$K(B POSIX $B8_49%;%^%U%)$r;HMQ$7$^$9(B</dd> + <dd>排他処理の実装に POSIX 互換セマフォを使用します</dd> <dt><code>sysvsem</code></dt> - <dd>$BGSB>=hM}$N<BAu$K(B SySV $B7A<0$N%;%^%U%)$r;H$$$^$9!#(B</dd> + <dd>排他処理の実装に SySV 形式のセマフォを使います。</dd> <dt><code>sem</code></dt> - <dd>$B;HMQ$G$-$k%;%^%U%)%k!<%A%s$NCf$G:GE,$J$b$N$r;H$$$^$9!#(B - $B6qBNE*$K$O!"(BPosix $B8_49%;%^%U%)$,;HMQ2DG=$J>l9g$O$=$l$r;H$$!"$=$&$G$J$$>l9g$O(B - SystemV IPC $B7A<0$N%;%^%U%)$r;n$7$^$9!#(B - $B$3$N@_Dj$O%W%i%C%H%[!<%`$H(B <glossary>APR</glossary> $B$,Fs$D$N$&$A>/$J$/$H$b(B - $B0l$D$r%5%]!<%H$7$F$$$k>l9g$N$_;HMQ2DG=$G$9!#(B</dd> + <dd>使用できるセマフォルーチンの中で最適なものを使います。 + 具体的には、Posix 互換セマフォが使用可能な場合はそれを使い、そうでない場合は + SystemV IPC 形式のセマフォを試します。 + この設定はプラットホームと <glossary>APR</glossary> が二つのうち少なくとも + 一つをサポートしている場合のみ使用可能です。</dd> <dt><code>pthread</code></dt> - <dd>POSIX Threads (PThreads) $B5,3J$G<BAu$5$l$F$$$k(B - POSIX $BGSB>=hM}$r;H$$$^$9!#(B</dd> + <dd>POSIX Threads (PThreads) 規格で実装されている + POSIX 排他処理を使います。</dd> </dl> - <p>$B%3%s%Q%$%k;~$K%7%9%F%`$N%G%U%)%k%H$KA*$P$l$?$b$N$,2?$+$r8+$?$$>l9g$O!"(B - <directive module="core">LogLevel</directive> $B$r(B <code>debug</code> - $B$K@_Dj$9$k$H$h$$$G$7$g$&!#%G%U%)%k%H$N(B <directive>AcceptMutex</directive> - $B$,(B <directive module="core">ErrorLog</directive> $B$K=q$-9~$^$l$^$9!#(B</p> - - <note type="warning"><title>$B7Y9p(B</title> - <p>$B$[$H$s$I$N%7%9%F%`$K$*$$$F$O!"(B<code>pthread</code> $B%*%W%7%g%s$,(B - $BA*$P$l$F$$$k$H!";R%W%m%;%9$,(B <code>AcceptCntl</code> mutex $B$r(B - $BJ];}$7$F$$$k$H$-$K0[>o=*N;$7$?>l9g!"%5!<%P$O%j%/%(%9%H$X$N1~Ez$r(B - $BDd;_$7$F$7$^$$$^$9!#$3$l$,H/@8$7$?>l9g$O!"%5!<%P$rI|5l$5$;$k$?$a$K$O(B - $B<jF0$G:F5/F0$5$;$kI,MW$,$"$j$^$9!#(B</p> - - <p>Solaris $B$ONc30$G!"(BApache $B$b;HMQ$7$F$$$k!";R%W%m%;%9$,(B mutex $B$r(B - $BJ];}$7$F0[>o=*N;$7$?8e$K(B mutex $B$rI|5l$5$;$k$?$a$N5!9=$rDs6!$r$7$F$$$^$9!#(B</p> - <p>$B8f;HMQ$N%7%9%F%`$,(B <code>pthread_mutexattr_setrobust_np()</code> $B4X?t$r(B - $B<BAu$7$F$$$k>l9g$O!"(B<code>pthread</code> $B%*%W%7%g%s$r0BA4$K;HMQ$G$-$k(B - $B2DG=@-$,$"$j$^$9!#(B</p> + <p>コンパイル時にシステムのデフォルトに選ばれたものが何かを見たい場合は、 + <directive module="core">LogLevel</directive> を <code>debug</code> + に設定するとよいでしょう。デフォルトの <directive>AcceptMutex</directive> + が <directive module="core">ErrorLog</directive> に書き込まれます。</p> + + <note type="warning"><title>警告</title> + <p>ほとんどのシステムにおいては、<code>pthread</code> オプションが + 選ばれていると、子プロセスが <code>AcceptCntl</code> mutex を + 保持しているときに異常終了した場合、サーバはリクエストへの応答を + 停止してしまいます。これが発生した場合は、サーバを復旧させるためには + 手動で再起動させる必要があります。</p> + + <p>Solaris は例外で、Apache も使用している、子プロセスが mutex を + 保持して異常終了した後に mutex を復旧させるための機構を提供をしています。</p> + <p>御使用のシステムが <code>pthread_mutexattr_setrobust_np()</code> 関数を + 実装している場合は、<code>pthread</code> オプションを安全に使用できる + 可能性があります。</p> </note> </usage> </directivesynopsis> <directivesynopsis> <name>CoreDumpDirectory</name> -<description>Apache $B$,%3%"%@%s%W$9$kA0$K0\F0$r;n$_$k%G%#%l%/%H%j(B +<description>Apache がコアダンプする前に移動を試みるディレクトリ </description> <syntax>CoreDumpDirectory <var>directory</var></syntax> -<default>$B%G%U%)%k%H$N@_Dj$O@bL@J8$rFI$s$G$/$@$5$$(B</default> +<default>デフォルトの設定は説明文を読んでください</default> <contextlist><context>server config</context></contextlist> <modulelist><module>beos</module><module>leader</module> <module>mpm_winnt</module><module>perchild</module><module>prefork</module> <module>threadpool</module><module>worker</module></modulelist> <usage> - <p>Apache $B$,%3%"%@%s%W$9$kA0$K0\F0$r;n$_$k%G%#%l%/%H%j$r@)8f$7$^$9!#(B - $B%G%U%)%k%HCM$O(B <directive module="core">ServerRoot</directive> - $B%G%#%l%/%H%j$G$9$,!"$3$N%G%#%l%/%H%j$O%5!<%P$N<B9T$5$l$F$$$k%f!<%68"8B$G(B - $B=q$-9~$_2DG=$G$"$k$Y$-$G$O$J$$$N$G!"DL>o$O%3%"%@%s%W$O=q$-9~$^$l$^$;$s!#(B - $B%G%P%C%0$N$?$a$K%3%"%@%s%W$,I,MW$G$"$l$P!"(B - $B$3$N%G%#%l%/%F%#%V$r;H$C$FB>$N0LCV$K%3%"%@%s%W$r=q$-=P$9$h$&$K$G$-$^$9!#(B</p> - - <note><title>Linux $B$G$N%3%"%@%s%W(B</title> - <p>Apache $B$,(B root $B$H$7$F5/F0$5$l$F!"JL$N%f!<%6$N8"8B$K0J9_$7$?>l9g$O(B - Linux $B$N%+!<%M%k$O%G%#%l%/%H%j$,%W%m%;%9$N8"8B$G=q$-9~$_2DG=$J>l9g$G$5$($b(B - $B%3%"%@%s%W$r(B<em>$BL58z(B</em>$B$K$7$^$9!#(BApache (2.0.46 $B0J9_(B) $B$O(B - Linux 2.4 $B0J9_$G$O%3%"%@%s%W$r9T$J$&$h$&$K:F;XDj$7$^$9$,!"$=$l$O(B - <directive>CoreDumpDirectory</directive> $B$rL@<(E*$K@_Dj$7$?$H$-$K(B - $B8B$j$^$9!#(B</p> + <p>Apache がコアダンプする前に移動を試みるディレクトリを制御します。 + デフォルト値は <directive module="core">ServerRoot</directive> + ディレクトリですが、このディレクトリはサーバの実行されているユーザ権限で + 書き込み可能であるべきではないので、通常はコアダンプは書き込まれません。 + デバッグのためにコアダンプが必要であれば、 + このディレクティブを使って他の位置にコアダンプを書き出すようにできます。</p> + + <note><title>Linux でのコアダンプ</title> + <p>Apache が root として起動されて、別のユーザの権限に以降した場合は + Linux のカーネルはディレクトリがプロセスの権限で書き込み可能な場合でさえも + コアダンプを<em>無効</em>にします。Apache (2.0.46 以降) は + Linux 2.4 以降ではコアダンプを行なうように再指定しますが、それは + <directive>CoreDumpDirectory</directive> を明示的に設定したときに + 限ります。</p> </note> </usage> </directivesynopsis> <directivesynopsis> <name>EnableExceptionHook</name> -<description>$B%/%i%C%7%e$N8e$KNc30%O%s%I%i$r<B9T$9$k%U%C%/$rM-8z$K$9$k(B</description> +<description>クラッシュの後に例外ハンドラを実行するフックを有効にする</description> <syntax>EnableExceptionHook On|Off</syntax> <default>EnableExceptionHook Off</default> <contextlist><context>server config</context></contextlist> <modulelist><module>leader</module><module>perchild</module> <module>prefork</module><module>threadpool</module> <module>worker</module></modulelist> -<compatibility>2.0.49 $B0J9_(B</compatibility> +<compatibility>2.0.49 以降</compatibility> <usage> - <p>$B0BA4>e$NM}M3$+$i!"(B<code>--enable-exception-hook</code> configure - $B%*%W%7%g%s$rM-8z$K$7$?>l9g$K$N$_!"$3$N%G%#%l%/%F%#%V$rMxMQ$G$-$^$9!#(B - $B30It%b%8%e!<%k$r%W%i%0%$%s$7$F!";R$,%/%i%C%7%e$7$?8e$K2?$+<B9T$G$-$k$h$&$J(B - $B%U%C%/$rM-8z$K$7$^$9!#(B</p> + <p>安全上の理由から、<code>--enable-exception-hook</code> configure + オプションを有効にした場合にのみ、このディレクティブを利用できます。 + 外部モジュールをプラグインして、子がクラッシュした後に何か実行できるような + フックを有効にします。</p> - <p>$B$3$N$h$&$J30It%b%8%e!<%k$O!"4{$KFs$DB8:_$7$F$$$F!"(B - <code>mod_whatkilledus</code> $B$H(B <code>mod_backtrace</code> - $B$,$3$N%U%C%/$r3hMQ$7$^$9!#$3$l$i$N>\:Y$K$D$$$F$O(B Jeff Trawick - $B$5$s$N(B <a href="http://www.apache.org/~trawick/exception_hook.html" - >EnableExceptionHook site</a> $B$r;2>H$7$F$/$@$5$$!#(B</p> + <p>このような外部モジュールは、既に二つ存在していて、 + <code>mod_whatkilledus</code> と <code>mod_backtrace</code> + がこのフックを活用します。これらの詳細については Jeff Trawick + さんの <a href="http://www.apache.org/~trawick/exception_hook.html" + >EnableExceptionHook site</a> を参照してください。</p> </usage> </directivesynopsis> <directivesynopsis> <name>GracefulShutdownTimeout</name> -<description>$B2:$d$+$JDd;_$r$+$1$?8e!"=*N;$9$k$^$GBT$D;~4V(B</description> +<description>穏やかな停止をかけた後、終了するまで待つ時間</description> <syntax>GracefulShutDownTimeout <var>seconds</var></syntax> <default>GracefulShutDownTimeout 0</default> <contextlist><context>server config</context></contextlist> <modulelist><module>prefork</module><module>worker</module> <module>event</module></modulelist> -<compatibility>2.2 $B0J9_(B</compatibility> +<compatibility>2.2 以降</compatibility> <usage> - <p><directive>GracefulShutdownTimeout</directive> $B$K$O(B - $B%5!<%P!<$,(B "graceful-stop" $B%7%0%J%k$r<u$1<h$C$F$+$i8=:_$N(B - $B%j%/%(%9%H$N=hM}$r:GBg$G2?IC4VB3$1$k$+$r;XDj$7$^$9!#(B</p> + <p><directive>GracefulShutdownTimeout</directive> には + サーバーが "graceful-stop" シグナルを受け取ってから現在の + リクエストの処理を最大で何秒間続けるかを指定します。</p> - <p>$B$3$NCM$r%<%m$K@_Dj$9$k$H!"=hM}Cf$H$7$F;D$C$F$$$k%j%/%(%9%H$,(B - $BA4$F40N;$9$k$^$G%5!<%P!<$O=*N;$7$^$;$s!#(B</p> + <p>この値をゼロに設定すると、処理中として残っているリクエストが + 全て完了するまでサーバーは終了しません。</p> </usage> </directivesynopsis> <directivesynopsis> <name>Group</name> -<description>$B%j%/%(%9%H$K1~Ez$9$k:]$K=jB0$9$k%0%k!<%W(B</description> +<description>リクエストに応答する際に所属するグループ</description> <syntax>Group <var>unix-group</var></syntax> <default>Group #-1</default> <contextlist><context>server config</context></contextlist> <modulelist><module>beos</module><module>leader</module> <module>mpmt_os2</module><module>perchild</module><module>prefork</module> <module>threadpool</module><module>worker</module></modulelist> -<compatibility>Apache 2.0 $B0J9_$G!"%0%m!<%P%k@_Dj$G$N$_M-8z$G$9!#(B</compatibility> +<compatibility>Apache 2.0 以降で、グローバル設定でのみ有効です。</compatibility> <usage> - <p><directive>Group</directive> $B%G%#%l%/%F%#%V$G!"(B - $B%j%/%(%9%H$K1~Ez$9$k:]$K=jB0$7$F$*$/%0%k!<%W$r@_Dj$7$^$9!#(B - $B$3$N%G%#%l%/%F%#%V$r;HMQ$9$k$?$a$K$O!"(B - $B%5!<%P$O:G=i$K(B <code>root</code> $B8"8B$G5/F0$5$l$F$$$kI,MW$,$"$j$^$9!#(B - $BHs(B root $B%f!<%6$G%5!<%P$r5/F0$7$?>l9g$O!";XDj$7$?%0%k!<%W$KJQ2=$G$-$:$K!"(B - $B7k2LE*$K5/F0$7$?%f!<%6$NB0$9$k%0%k!<%W$G<B9T$5$l$k$3$H$K$J$j$^$9!#(B - <var>unix-group</var> $B$O<!$N$&$A$N$$$:$l$+$G$9(B:</p> + <p><directive>Group</directive> ディレクティブで、 + リクエストに応答する際に所属しておくグループを設定します。 + このディレクティブを使用するためには、 + サーバは最初に <code>root</code> 権限で起動されている必要があります。 + 非 root ユーザでサーバを起動した場合は、指定したグループに変化できずに、 + 結果的に起動したユーザの属するグループで実行されることになります。 + <var>unix-group</var> は次のうちのいずれかです:</p> <dl> - <dt>$B%0%k!<%WL>(B</dt> - <dd>$B%0%k!<%W$rL>A0$G;2>H$7$^$9(B</dd> + <dt>グループ名</dt> + <dd>グループを名前で参照します</dd> - <dt><code>#</code> $B$KB3$$$F%0%k!<%WHV9f(B</dt> - <dd>$B%0%k!<%W$rHV9f$G;2>H$7$^$9!#(B</dd> + <dt><code>#</code> に続いてグループ番号</dt> + <dd>グループを番号で参照します。</dd> </dl> - <example><title>$BNc(B</title> + <example><title>例</title> Group www-group </example> - <p>$B%5!<%P$r<B9T$9$k$?$a$KFCDj$N?7$7$$%0%k!<%W$r@_Dj$9$k$3$H$r(B - $B$*A&$a$7$^$9!#(B<code>nobody</code> $B$r;HMQ$9$k4IM}<T$b$$$^$9$,!"(B - $B2DG=$G$"$C$?$jK>$^$7$$Lu$G$OI,$:$7$b$"$j$^$;$s!#(B</p> + <p>サーバを実行するために特定の新しいグループを設定することを + お薦めします。<code>nobody</code> を使用する管理者もいますが、 + 可能であったり望ましい訳では必ずしもありません。</p> - <note type="warning"><title>$B%;%-%e%j%F%#(B</title> - <p>$B@53N$K$I$s$J$3$H$r$d$C$F$$$k$N$+!"$=$N4m81@-$rCN$i$J$$$G!"(B - <directive>Group</directive> ($B$d(B <directive - module="mpm_common">User</directive>) $B$r(B - <code>root</code> $B$K(B $B@_Dj$7$J$$$G$/$@$5$$!#(B</p> + <note type="warning"><title>セキュリティ</title> + <p>正確にどんなことをやっているのか、その危険性を知らないで、 + <directive>Group</directive> (や <directive + module="mpm_common">User</directive>) を + <code>root</code> に 設定しないでください。</p> </note> - <p>$BFC5-;v9`(B: $B$3$N%G%#%l%/%F%#%V$r(B + <p>特記事項: このディレクティブを <directive module="core" type="section">VirtualHost</directive> - $B$G;HMQ$9$k$3$H$O%5%]!<%H$5$l$J$/$J$j$^$7$?!#(BApache 2.0 $B$G(B - <program>suexec</program> $B$r@_Dj$7$?$$>l9g$O!"(B + で使用することはサポートされなくなりました。Apache 2.0 で + <program>suexec</program> を設定したい場合は、 <directive module="mod_suexec">SuexecUserGroup</directive> - $B$r;HMQ$7$F$/$@$5$$!#(B</p> + を使用してください。</p> - <note><title>$BCm0U(B</title> - <p><directive>Group</directive> $B%G%#%l%/%F%#%V$O(B - <module>beos</module> $B$H(B <module>mpmt_os2</module> MPM - $B$K$bB8:_$7$^$9$,!"<B<AE*$KL58z$G!"8_49@-$N$?$a$@$1$KB8:_$7$^$9!#(B</p> + <note><title>注意</title> + <p><directive>Group</directive> ディレクティブは + <module>beos</module> と <module>mpmt_os2</module> MPM + にも存在しますが、実質的に無効で、互換性のためだけに存在します。</p> </note> </usage> </directivesynopsis> <directivesynopsis> <name>PidFile</name> -<description>$B%G!<%b%s$N%W%m%;%9(B ID -$B$r%5!<%P$,5-O?$9$k$?$a$N%U%!%$%k(B</description> +<description>デーモンのプロセス ID +をサーバが記録するためのファイル</description> <syntax>PidFile <var>filename</var></syntax> <default>PidFile logs/httpd.pid</default> <contextlist><context>server config</context></contextlist> @@ -266,40 +266,40 @@ accept $B$7$h$&$H$7$F$$$k$H$-$K!"(BApache $B$,$=$l$i$N;R%W%m%;%9$rD>Ns2=$9$k$ <module>threadpool</module><module>worker</module></modulelist> <usage> - <p><directive>PidFile</directive> $B%G%#%l%/%F%#%V$G!"(B - $B%G!<%b%s$N%W%m%;%9(B ID $B$r%5!<%P$,5-O?$9$k%U%!%$%k$r@_Dj$7$^$9!#(B - $B%U%!%$%kL>$,@dBP%Q%9$G$J$$>l9g$O!"(B + <p><directive>PidFile</directive> ディレクティブで、 + デーモンのプロセス ID をサーバが記録するファイルを設定します。 + ファイル名が絶対パスでない場合は、 <directive module="core">ServerRoot</directive> - $B$+$i$NAjBPE*$J$b$N$H$7$F07$o$l$^$9!#(B</p> + からの相対的なものとして扱われます。</p> - <example><title>$BNc(B</title> + <example><title>例</title> PidFile /var/run/apache.pid </example> - <p>$B%5!<%P$,(B <directive module="core">ErrorLog</directive> - $B$d(B <directive module="mod_log_config">TransferLog</directive> - $B$rJD$8$F3+$-D>$7$?$j!"@_Dj%U%!%$%k$r(B - $B:FFI9~$7$?$j$5$;$k$?$a$K!"%5!<%P$K%7%0%J%k$rAw$k$3$H$,$G$-$k$H(B - $BJXMx$J$3$H$,$"$j$^$9!#(B - $B$3$l$O(B SIGHUP (kill -1) $B%7%0%J%k$r(B <directive>PidFile</directive> - $B$K=q$+$l$F$$$k%W%m%;%9(B ID $B$KAw$k$3$H$G$G$-$^$9!#(B</p> + <p>サーバが <directive module="core">ErrorLog</directive> + や <directive module="mod_log_config">TransferLog</directive> + を閉じて開き直したり、設定ファイルを + 再読込したりさせるために、サーバにシグナルを送ることができると + 便利なことがあります。 + これは SIGHUP (kill -1) シグナルを <directive>PidFile</directive> + に書かれているプロセス ID に送ることでできます。</p> - <p><directive>PidFile</directive> $B$K$O!"%m%0%U%!%$%k$N@_CV0LCV$d(B - <a href="../misc/security_tips.html#serverroot">$B%;%-%e%j%F%#(B</a> - $B$HA4$/F1$8Cm0UE@$,$"$j$^$9!#(B</p> + <p><directive>PidFile</directive> には、ログファイルの設置位置や + <a href="../misc/security_tips.html#serverroot">セキュリティ</a> + と全く同じ注意点があります。</p> - <note><title>$BCm0U(B</title> - <p>Apache 2 $B$G$O!"(B + <note><title>注意</title> + <p>Apache 2 では、 <program>apachectl</program> - $B%9%/%j%W%H$N$_$r;HMQ$7$F%5!<%P$N(B ($B:F(B) $B5/F0$dDd;_$r(B - $B9T$J$&$3$H$r?d>)$7$F$$$^$9!#(B</p> + スクリプトのみを使用してサーバの (再) 起動や停止を + 行なうことを推奨しています。</p> </note> </usage> </directivesynopsis> <directivesynopsis> <name>Listen</name> -<description>$B%5!<%P$,(B listen $B$9$k(BIP $B%"%I%l%9$H%]!<%HHV9f(B</description> +<description>サーバが listen するIP アドレスとポート番号</description> <syntax>Listen [<var>IP-address</var>:]<var>portnumber</var> [<var>protocol</var>]</syntax> <contextlist><context>server config</context></contextlist> <modulelist><module>beos</module><module>leader</module> @@ -308,85 +308,85 @@ accept $B$7$h$&$H$7$F$$$k$H$-$K!"(BApache $B$,$=$l$i$N;R%W%m%;%9$rD>Ns2=$9$k$ <module>prefork</module><module>threadpool</module><module>worker</module> <module>event</module> </modulelist> -<compatibility>Apache 2.0 $B$+$iI,?\%G%#%l%/%F%#%V!#(B<var>protocol</var> -$B0z?t$O(B 2.1.5 $B$GDI2C!#(B</compatibility> +<compatibility>Apache 2.0 から必須ディレクティブ。<var>protocol</var> +引数は 2.1.5 で追加。</compatibility> <usage> - <p><directive>Listen</directive> $B%G%#%l%/%F%#%V$O(B Apache - $B$,FCDj$N(B IP $B%"%I%l%9$d%]!<%HHV9f$@$1$r(B listen $B$9$k$h$&$K;XDj$7$^$9!#(B - $B%G%U%)%k%H$G$OA4$F$N(B IP $B%$%s%?!<%U%'!<%9$N%j%/%(%9%H$K1~Ez$7$^$9!#(B - <directive>Listen</directive> $B%G%#%l%/%F%#%V$O(B - $B8=:_$OI,?\$N%G%#%l%/%F%#%V$H$J$j$^$7$?!#(B - $B$b$7@_Dj%U%!%$%k$K$J$1$l$P!"%5!<%P$O5/F0$K<:GT$7$^$9!#(B - $B$3$l$O0JA0$N%P!<%8%g%s$N(B Apache $B$+$iJQ99$N$"$C$?ItJ,$G$9!#(B</p> - - <p><directive>Listen</directive> $B%G%#%l%/%F%#%V$G$O!"FCDj$N%]!<%H$"$k$$$O(B - $B%"%I%l%9$H%]!<%H$NAH$_9g$o$;$+$iF~$C$F$/$k%j%/%(%9%H$KBP$7$F(B - $B1~Ez$9$k$h$&$K;XDj$7$^$9!#(B - $B$b$7%]!<%HHV9f$@$1$,;XDj$5$l$?>l9g$O!"%5!<%P$OA4%$%s%?!<%U%'!<%9$N(B - $B;XDj$5$l$?%]!<%HHV9f$KBP$7$F(B listen $B$7$^$9!#(B - IP $B%"%I%l%9$,%]!<%H$H$H$b$K;XDj$5$l$?>l9g$O!"(B - $B%5!<%P$O;XDj$5$l$?%]!<%H$H%$%s%?!<%U%'!<%9$KBP$7$F(B listen - $B$7$^$9!#(B</p> - - <p>$BJ#?t$N%"%I%l%9$H%]!<%H$KBP$7$F(B listen $B$9$k$h$&$K!"(B - $BJ#?t$N(B <directive>Listen</directive> $B%G%#%l%/%F%#%V$r;H$&$3$H$b$G$-$^$9!#(B - $B%5!<%P$ONs5s$5$l$?%"%I%l%9$H%]!<%HA4$F$+$i$N%j%/%(%9%H$KBP$7$F(B - $B1~Ez$7$^$9!#(B</p> - - <p>$BNc$($P!"%5!<%P$,(B 80 $BHV%]!<%H$H(B 8000 $BHV%]!<%H$NN>J}$N(B - $B%3%M%/%7%g%s$r<u$1F~$l$k>l9g$O!"<!$N$h$&$K$7$^$9!#(B</p> + <p><directive>Listen</directive> ディレクティブは Apache + が特定の IP アドレスやポート番号だけを listen するように指定します。 + デフォルトでは全ての IP インターフェースのリクエストに応答します。 + <directive>Listen</directive> ディレクティブは + 現在は必須のディレクティブとなりました。 + もし設定ファイルになければ、サーバは起動に失敗します。 + これは以前のバージョンの Apache から変更のあった部分です。</p> + + <p><directive>Listen</directive> ディレクティブでは、特定のポートあるいは + アドレスとポートの組み合わせから入ってくるリクエストに対して + 応答するように指定します。 + もしポート番号だけが指定された場合は、サーバは全インターフェースの + 指定されたポート番号に対して listen します。 + IP アドレスがポートとともに指定された場合は、 + サーバは指定されたポートとインターフェースに対して listen + します。</p> + + <p>複数のアドレスとポートに対して listen するように、 + 複数の <directive>Listen</directive> ディレクティブを使うこともできます。 + サーバは列挙されたアドレスとポート全てからのリクエストに対して + 応答します。</p> + + <p>例えば、サーバが 80 番ポートと 8000 番ポートの両方の + コネクションを受け入れる場合は、次のようにします。</p> <example> Listen 80<br /> Listen 8000 </example> - <p>$BFs$D$NFCDj$N%$%s%?!<%U%'!<%9$H%]!<%HHV9f$+$i$N%3%M%/%7%g%s$r(B - $B<u$1F~$l$k$h$&$K$9$k$K$O!"<!$N$h$&$K$7$^$9!#(B</p> + <p>二つの特定のインターフェースとポート番号からのコネクションを + 受け入れるようにするには、次のようにします。</p> <example> Listen 192.170.2.1:80<br /> Listen 192.170.2.5:8000 </example> - <p>IPv6 $B%"%I%l%9$O3Q3g8L$G0O$^$J$1$l$P$J$j$^$;$s!#(B - $BNc$($P<!$NNc$N$h$&$K$G$9!#(B</p> + <p>IPv6 アドレスは角括弧で囲まなければなりません。 + 例えば次の例のようにです。</p> <example> Listen [2001:db8::a00:20ff:fea7:ccea]:80 </example> - <p><var>protocol</var> $B%*%W%7%g%s0z?t$ODL>o$N@_Dj$G$OI,MW$"$j$^$;$s!#(B - $BL5;XDj$N>l9g!"(B443 $BHV%]!<%H$K$O(B <code>https</code> $B$,!"B>$N%]!<%H$K$O(B - <code>http</code> $B$,%G%U%)%k%HCM$H$7$F;HMQ$5$l$^$9!#(B - protocol $B;XDj$O!"$I$N%b%8%e!<%k$,%j%/%(%9%H$r=hM}$9$k$+$r7hDj$7!"(B + <p><var>protocol</var> オプション引数は通常の設定では必要ありません。 + 無指定の場合、443 番ポートには <code>https</code> が、他のポートには + <code>http</code> がデフォルト値として使用されます。 + protocol 指定は、どのモジュールがリクエストを処理するかを決定し、 <directive module="core">AcceptFilter</directive> - $B$K$h$k%W%m%H%3%kFCM-$N:GE,2=$r9T$&$h$&$K$7$^$9!#(B</p> + によるプロトコル特有の最適化を行うようにします。</p> - <p>$BHsI8=`$J%]!<%H$G1?MQ$7$F$$$k:]$K$N$_(B protocol $B;XDj$,I,MW$K$J$j$^$9!#(B - $B$?$H$($P(B <code>https</code> $B$J%5%$%H$r(B 8443 $BHV%]!<%H$G1?MQ$7$F$$$k>l9g(B :</p> + <p>非標準なポートで運用している際にのみ protocol 指定が必要になります。 + たとえば <code>https</code> なサイトを 8443 番ポートで運用している場合 :</p> <example> Listen 192.170.2.1:8443 https </example> - <note><title>$B%(%i!<>r7o(B</title> - $BF10l(B IP $B%"%I%l%9$H%]!<%H$NAH$K!"J#?t$N(B <directive>Listen</directive> - $B%G%#%l%/%F%#%V$r;XDj$7$F$7$^$&$H!"(B<code>Address already in use</code> - $B$H$$$&%(%i!<%a%C%;!<%8$r<u$1$k$3$H$K$J$j$^$9!#(B + <note><title>エラー条件</title> + 同一 IP アドレスとポートの組に、複数の <directive>Listen</directive> + ディレクティブを指定してしまうと、<code>Address already in use</code> + というエラーメッセージを受けることになります。 </note> </usage> -<seealso><a href="../dns-caveats.html">DNS $B$NLdBj(B</a></seealso> +<seealso><a href="../dns-caveats.html">DNS の問題</a></seealso> <seealso><a href="../bind.html">Apache -$B$,;HMQ$9$k%"%I%l%9$H%]!<%H$N@_Dj(B</a></seealso> +が使用するアドレスとポートの設定</a></seealso> </directivesynopsis> <directivesynopsis> <name>ListenBackLog</name> -<description>$BJ]N1>uBV$N%3%M%/%7%g%s$N%-%e!<$N:GBgD9(B</description> +<description>保留状態のコネクションのキューの最大長</description> <syntax>ListenBacklog <var>backlog</var></syntax> <default>ListenBacklog 511</default> <contextlist><context>server config</context></contextlist> @@ -396,24 +396,24 @@ accept $B$7$h$&$H$7$F$$$k$H$-$K!"(BApache $B$,$=$l$i$N;R%W%m%;%9$rD>Ns2=$9$k$ <module>threadpool</module><module>worker</module></modulelist> <usage> - <p>$BJ]N1>uBV$N%3%M%/%7%g%s$N%-%e!<$N:GBgD9$G$9!#(B - $B0lHLE*$K$OD4@0$9$kI,MW$O$"$j$^$;$s$7!"D4@0$OK>$^$7$/$"$j$^$;$s!#(B - $B$7$+$7!"(BTCP SYN $B%U%i%C%I%"%?%C%/$N>u672<$K$*$+$l$k>l9g$K!"(B - $BA}$d$7$?J}$,K>$^$7$$%7%9%F%`$b$"$j$^$9!#(B - <code>listen(2)</code> $B%7%9%F%`%3!<%k$N%P%C%/%m%0%Q%i%a!<%?$r(B - $B$4Mw2<$5$$!#(B</p> - - <p>$B$3$NCM$O(B OS $B$K$h$j!">.$5$J?t$KM^$($i$l$^$9!#(B - $BCM$O(B OS $BKh$K0[$J$C$F$$$^$9!#$^$?B?$/$N(B OS $B$G$O!"(B - $B%P%C%/%m%0$H$7$F;XDj$5$l$F$$$kCM$A$g$&$I$^$G;H$C$F$$$k$o$1$G$O$J$/!"(B - $B@_Dj$5$l$F$$$kCM$K4p$E$$$F(B ($BDL>o$O@_DjCM$h$j$bBg$-$JCM$r(B) - $B;H$C$F$$$k$3$H$KCm0U$7$F$/$@$5$$!#(B</p> + <p>保留状態のコネクションのキューの最大長です。 + 一般的には調整する必要はありませんし、調整は望ましくありません。 + しかし、TCP SYN フラッドアタックの状況下におかれる場合に、 + 増やした方が望ましいシステムもあります。 + <code>listen(2)</code> システムコールのバックログパラメータを + ご覧下さい。</p> + + <p>この値は OS により、小さな数に抑えられます。 + 値は OS 毎に異なっています。また多くの OS では、 + バックログとして指定されている値ちょうどまで使っているわけではなく、 + 設定されている値に基づいて (通常は設定値よりも大きな値を) + 使っていることに注意してください。</p> </usage> </directivesynopsis> <directivesynopsis> <name>LockFile</name> -<description>$B<uIU$rD>Ns2=$9$k$?$a$N%m%C%/%U%!%$%k$N0LCV(B<em>($BHs?d>)(B)</em></description> +<description>受付を直列化するためのロックファイルの位置<em>(非推奨)</em></description> <syntax>LockFile <var>filename</var></syntax> <default>LockFile logs/accept.lock</default> <contextlist><context>server config</context></contextlist> @@ -423,27 +423,27 @@ accept $B$7$h$&$H$7$F$$$k$H$-$K!"(BApache $B$,$=$l$i$N;R%W%m%;%9$rD>Ns2=$9$k$ <usage> <p><directive module="mpm_common">AcceptMutex</directive> - $B$,(B <code>fcntl</code> $B$d(B <code>flock</code> - $B$K@_Dj$5$l$F;HMQ$5$l$F$$$k>l9g$K!";HMQ$5$l$k%m%C%/%U%!%$%k$X$N%Q%9$r(B - <directive>LockFile</directive> $B%G%#%l%/%F%#%V$G@_Dj$7$^$9!#(B - $B$3$N%G%#%l%/%F%#%V$ODL>o$O$=$N$^$^$K$7$F$*$-$^$9!#(B - $B<g$K(B <code>logs</code> $B%G%#%l%/%H%j$,(B NFS - $B$G%^%&%s%H$5$l$F$$$k>l9g$J$I$KCM$rJQ$($^$9!#(B - $B$J$<$J$i(B<strong>$B%m%C%/%U%!%$%k$O%m!<%+%k%G%#%9%/$K(B - $BJ]B8$5$l$J$1$l$P$J$i$J$$(B</strong>$B$+$i$G$9!#(B - $B%a%$%s%5!<%P%W%m%;%9$N(B PID $B$,%U%!%$%kL>$K<+F0E*$KIU2C$5$l$^$9!#(B</p> - - <note type="warning"><title>$B%;%-%e%j%F%#(B</title> + が <code>fcntl</code> や <code>flock</code> + に設定されて使用されている場合に、使用されるロックファイルへのパスを + <directive>LockFile</directive> ディレクティブで設定します。 + このディレクティブは通常はそのままにしておきます。 + 主に <code>logs</code> ディレクトリが NFS + でマウントされている場合などに値を変えます。 + なぜなら<strong>ロックファイルはローカルディスクに + 保存されなければならない</strong>からです。 + メインサーバプロセスの PID がファイル名に自動的に付加されます。</p> + + <note type="warning"><title>セキュリティ</title> <p><code>/var/tmp</code> - $B$H$$$C$?!"C/$G$b=q$-9~$a$k%G%#%l%/%H%j$K%U%!%$%k$r(B - <em>$BCV$+$J$$(B</em>$BJ}$,$h$$$G$9!#$J$<$J$i!"%5!<%P$,5/F0;~$K:n@.$9$k(B - $B%m%C%/%U%!%$%k$N:n@.<+BN$rK832$9$k$3$H$K$h$C$F!"(B - $BC/$G$b%5!<%S%95qH]%"%?%C%/$r0z$-5/$3$9$3$H$,$G$-$k$+$i$G$9!#(B</p> + といった、誰でも書き込めるディレクトリにファイルを + <em>置かない</em>方がよいです。なぜなら、サーバが起動時に作成する + ロックファイルの作成自体を妨害することによって、 + 誰でもサービス拒否アタックを引き起こすことができるからです。</p> </note> - <note type="warning"><title>$BHs?d>)(B</title> - <p>$B$3$N%G%#%l%/%F%#%V$OHs?d>)$G$9!#(B <directive + <note type="warning"><title>非推奨</title> + <p>このディレクティブは非推奨です。 <directive module="mpm_common">AcceptMutex</directive> - $B%G%#%l%/%F%#%V$GGSB>=hM}$NJ}K!$N;XDj$H$H$b$K%m%C%/%U%!%$%k$N>l=j$b;XDj$7$F$/$@$5$$!#(B</p> + ディレクティブで排他処理の方法の指定とともにロックファイルの場所も指定してください。</p> </note> </usage> @@ -452,52 +452,52 @@ accept $B$7$h$&$H$7$F$$$k$H$-$K!"(BApache $B$,$=$l$i$N;R%W%m%;%9$rD>Ns2=$9$k$ <directivesynopsis> <name>MaxClients</name> -<description>$B%j%/%(%9%H$K1~Ez$9$k$?$a$K:n@.$5$l$k(B -$B;R%W%m%;%9$N:GBg8D?t(B</description> +<description>リクエストに応答するために作成される +子プロセスの最大個数</description> <syntax>MaxClients <var>number</var></syntax> -<default>$B>\:Y$O;HMQK!$r$4Mw2<$5$$!#(B</default> +<default>詳細は使用法をご覧下さい。</default> <contextlist><context>server config</context></contextlist> <modulelist><module>beos</module><module>leader</module> <module>prefork</module><module>threadpool</module><module>worker</module> </modulelist> <usage> - <p><directive>MaxClients</directive> $B%G%#%l%/%F%#%V$O!"(B - $B1~Ez$9$k$3$H$N$G$-$kF1;~%j%/%(%9%H?t$r@_Dj$7$^$9!#(B - <directive>MaxClients</directive> $B@)8B?t$r1[$($k%3%M%/%7%g%s$ODL>o!"(B + <p><directive>MaxClients</directive> ディレクティブは、 + 応答することのできる同時リクエスト数を設定します。 + <directive>MaxClients</directive> 制限数を越えるコネクションは通常、 <directive module="mpm_common">ListenBacklog</directive> - $B%G%#%l%/%F%#%V$G@_Dj$7$??t$^$G%-%e!<$KF~$j$^$9!#(B - $BB>$N%j%/%(%9%H$N:G8e$^$GC#$7$F;R%W%m%;%9$,6u$/$H!"(B - $B<!$N%3%M%/%7%g%s$K1~Ez$7$^$9!#(B</p> - - <p>$B%9%l%C%I$rMQ$$$J$$%5!<%P(B (<em>$B$9$J$o$A(B</em> <module>prefork</module>) - $B$G$O!"(B<directive>MaxClients</directive> - $B$O!"%j%/%(%9%H$K1~Ez$9$k$?$a$K5/F0$5$l$k(B - $B;R%W%m%;%9$N:GBg?t$H$J$j$^$9!#(B - $B%G%U%)%k%HCM$O(B <code>256</code> $B$G!"$3$l$rA}2C$5$;$?$$>l9g$O!"(B + ディレクティブで設定した数までキューに入ります。 + 他のリクエストの最後まで達して子プロセスが空くと、 + 次のコネクションに応答します。</p> + + <p>スレッドを用いないサーバ (<em>すなわち</em> <module>prefork</module>) + では、<directive>MaxClients</directive> + は、リクエストに応答するために起動される + 子プロセスの最大数となります。 + デフォルト値は <code>256</code> で、これを増加させたい場合は、 <directive module="mpm_common">ServerLimit</directive> - $B$NCM$bA}2C$5$;$kI,MW$,$"$j$^$9!#(B</p> + の値も増加させる必要があります。</p> - <p>$B%9%l%C%I$rMQ$$$k%5!<%P$d!"%O%$%V%j%C%I%5!<%P(B (<em>$B$9$J$o$A(B</em> + <p>スレッドを用いるサーバや、ハイブリッドサーバ (<em>すなわち</em> <module>beos</module> <module>worker</module>) - $B$G$O!"(B<directive>MaxClients</directive> - $B$O!"%/%i%$%"%s%H$K1~Ez$G$-$k%9%l%C%I$NAm?t$r@)8B$7$^$9!#(B - <module>beos</module> $B$G$N%G%U%)%k%HCM$O(B <code>50</code> $B$G$9!#(B - $B%O%$%V%j%C%I(B MPM $B$G$N%G%U%)%k%HCM$O(B <code>16</code> + では、<directive>MaxClients</directive> + は、クライアントに応答できるスレッドの総数を制限します。 + <module>beos</module> でのデフォルト値は <code>50</code> です。 + ハイブリッド MPM でのデフォルト値は <code>16</code> <directive module="mpm_common">ServerLimit</directive> - $B$N(B <code>25</code> $BG\(B (<directive - module="mpm_common">ThreadsPerChild</directive>) $B$G$9!#(B + の <code>25</code> 倍 (<directive + module="mpm_common">ThreadsPerChild</directive>) です。 <directive>MaxClients</directive> - $B$r(B 16 $B%W%m%;%90J>eI,MW$JCM$^$GA}2C$5$;$?$$>l9g$O!"(B + を 16 プロセス以上必要な値まで増加させたい場合は、 <directive module="mpm_common">ServerLimit</directive> - $B$bA}2C$5$;$kI,MW$,$"$j$^$9!#(B</p> + も増加させる必要があります。</p> </usage> </directivesynopsis> <directivesynopsis> <name>MaxMemFree</name> -<description><code>free()</code> $B$,8F$P$l$J$$8B$j!"(B -$B<g%a%b%j%"%m%1!<%?$,J];}$7B3$1$i$l$k%a%b%j$N:GBgNL(B</description> +<description><code>free()</code> が呼ばれない限り、 +主メモリアロケータが保持し続けられるメモリの最大量</description> <syntax>MaxMemFree <var>KBytes</var></syntax> <default>MaxMemFree 0</default> <contextlist><context>server config</context></contextlist> @@ -506,16 +506,16 @@ accept $B$7$h$&$H$7$F$$$k$H$-$K!"(BApache $B$,$=$l$i$N;R%W%m%;%9$rD>Ns2=$9$k$ <module>threadpool</module><module>worker</module><module>mpm_winnt</module></modulelist> <usage> - <p><directive>MaxMemFree</directive> $B%G%#%l%/%F%#%V$O(B - <code>free()</code> $B$,8F$P$l$J$$8B$j!"(B - $B<g%"%m%1!<%?$,J];}$G$-$k6u$N%a%b%j$N:GBgCM$r%-%m%P%$%HC10L$G@_Dj$7$^$9!#(B - $B@_Dj$5$l$F$$$J$$$+!"Nm$K@_Dj$5$l$F$$$k$H$-$O!"L5@)8B$K$J$j$^$9!#(B</p> + <p><directive>MaxMemFree</directive> ディレクティブは + <code>free()</code> が呼ばれない限り、 + 主アロケータが保持できる空のメモリの最大値をキロバイト単位で設定します。 + 設定されていないか、零に設定されているときは、無制限になります。</p> </usage> </directivesynopsis> <directivesynopsis> <name>MaxRequestsPerChild</name> -<description>$B8D!9$N;R%5!<%P$,2TF/Cf$K07$&%j%/%(%9%H?t$N>e8B(B</description> +<description>個々の子サーバが稼働中に扱うリクエスト数の上限</description> <syntax>MaxRequestsPerChild <var>number</var></syntax> <default>MaxRequestsPerChild 10000</default> <contextlist><context>server config</context></contextlist> @@ -525,43 +525,43 @@ accept $B$7$h$&$H$7$F$$$k$H$-$K!"(BApache $B$,$=$l$i$N;R%W%m%;%9$rD>Ns2=$9$k$ <module>threadpool</module><module>worker</module></modulelist> <usage> - <p><directive>MaxRequestsPerChild</directive> $B%G%#%l%/%F%#%V$O!"(B - $B8D!9$N;R%5!<%P%W%m%;%9$,07$&$3$H$N$G$-$k%j%/%(%9%H$N@)8B?t$r(B - $B@_Dj$7$^$9!#(B<directive>MaxRequestsPerChild</directive> - $B8D$N%j%/%(%9%H$N8e$K!";R%W%m%;%9$O=*N;$7$^$9!#(B - <directive>MaxRequestsPerChild</directive> $B$,(B <code>0</code> - $B$K@_Dj$5$l$F$$$k>l9g$O!"%W%m%;%9$O4|8B@Z$l$K$h$j=*N;$9$k$3$H$O$"$j$^$;$s!#(B</p> - - <note><title>$B$=$NB>$N%G%U%)%k%HCM(B</title> - <p><module>mpm_netware</module> $B$H(B <module>mpm_winnt</module> - $B$G$N%G%U%)%k%HCM$O(B <code>0</code> $B$G$9!#(B</p> + <p><directive>MaxRequestsPerChild</directive> ディレクティブは、 + 個々の子サーバプロセスが扱うことのできるリクエストの制限数を + 設定します。<directive>MaxRequestsPerChild</directive> + 個のリクエストの後に、子プロセスは終了します。 + <directive>MaxRequestsPerChild</directive> が <code>0</code> + に設定されている場合は、プロセスは期限切れにより終了することはありません。</p> + + <note><title>その他のデフォルト値</title> + <p><module>mpm_netware</module> と <module>mpm_winnt</module> + でのデフォルト値は <code>0</code> です。</p> </note> <p><directive>MaxRequestsPerChild</directive> - $B$rHs%<%m$K@)8B$9$k$3$H$K$O!"Fs$D$NMxE@$,$"$j$^$9(B:</p> + を非ゼロに制限することには、二つの利点があります:</p> <ul> - <li>($B6vH/E*$J(B) $B%a%b%j!<%j!<%/$,5/$3$C$?>l9g$K(B - $B%W%m%;%9$,>CHq$9$k%a%b%j$NAmNL$r@)8B$G$-$k(B</li> + <li>(偶発的な) メモリーリークが起こった場合に + プロセスが消費するメモリの総量を制限できる</li> - <li>$B%W%m%;%9$KM-8B$N%i%$%U%?%$%`$r@_Dj$9$k$3$H$G!"(B - $B%5!<%PIi2Y$,2<$,$C$?;~$K%W%m%;%9?t$r>/$J$/$9$k$3$H$,$G$-$k(B</li> + <li>プロセスに有限のライフタイムを設定することで、 + サーバ負荷が下がった時にプロセス数を少なくすることができる</li> </ul> - <note><title>$BCm(B</title> - <p><directive module="core">KeepAlive</directive> $B%j%/%(%9%H$N>l9g$O!"(B - $B0l$DL\$N%j%/%(%9%H$@$1$,$3$N@)8B$K3:Ev$7$^$9!#(B - $B<B8zE*$K$O!"0l$D$N;R%W%m%;%9$"$?$j$N(B<em>$B%3%M%/%7%g%s(B</em>$B?t$r(B - $B@)8B$9$k$h$&$K5sF0$,JQ2=$7$^$9!#(B</p> + <note><title>注</title> + <p><directive module="core">KeepAlive</directive> リクエストの場合は、 + 一つ目のリクエストだけがこの制限に該当します。 + 実効的には、一つの子プロセスあたりの<em>コネクション</em>数を + 制限するように挙動が変化します。</p> </note> </usage> </directivesynopsis> <directivesynopsis> <name>MaxSpareThreads</name> -<description>$B%"%$%I%k%9%l%C%I$N:GBg?t(B</description> +<description>アイドルスレッドの最大数</description> <syntax>MaxSpareThreads <var>number</var></syntax> -<default>$B>\:Y$O;HMQK!$r$4Mw2<$5$$!#(B</default> +<default>詳細は使用法をご覧下さい。</default> <contextlist><context>server config</context></contextlist> <modulelist><module>beos</module><module>leader</module> <module>mpm_netware</module><module>mpmt_os2</module> @@ -569,51 +569,51 @@ accept $B$7$h$&$H$7$F$$$k$H$-$K!"(BApache $B$,$=$l$i$N;R%W%m%;%9$rD>Ns2=$9$k$ </modulelist> <usage> - <p>$B%"%$%I%k$J%9%l%C%I$N:GBg?t$G$9!#0[$J$k(B MPM $B$G$O$=$l$>$l!"(B - $B$3$N%G%#%l%/%F%#%V$O0[$J$k<h$j07$o$lJ}$r$5$l$^$9!#(B</p> + <p>アイドルなスレッドの最大数です。異なる MPM ではそれぞれ、 + このディレクティブは異なる取り扱われ方をされます。</p> - <p><module>perchild</module> $B$G$O!"(B - $B%G%U%)%k%H$O(B <code>MaxSpareThreads 10</code> $B$G$9!#(B - $B$3$N(B MPM $B$O%"%$%I%k%9%l%C%I?t$r!"$=$l$>$l$N;R%W%m%;%9$4$H$K4F;k$7$^$9!#(B - $B;R%W%m%;%9$K%"%$%I%k%9%l%C%I$,B?$9$.$k>l9g$O!"(B - $B%5!<%P$O$=$N;R%W%m%;%9$K4^$^$l$k%9%l%C%I$r=*N;$7;O$a$^$9!#(B</p> + <p><module>perchild</module> では、 + デフォルトは <code>MaxSpareThreads 10</code> です。 + この MPM はアイドルスレッド数を、それぞれの子プロセスごとに監視します。 + 子プロセスにアイドルスレッドが多すぎる場合は、 + サーバはその子プロセスに含まれるスレッドを終了し始めます。</p> <p><module>worker</module>, <module>leader</module>, - <module>threadpool</module> $B$G$O!"(B - $B%G%U%)%k%H$O(B <code>MaxSpareThreads 250</code> $B$G$9!#(B - $B$3$N(B MPM $B$O%"%$%I%k%9%l%C%I?t$r%5!<%PA4BN$G4F;k$7$^$9!#(B - $B%5!<%P$G%"%$%I%k%9%l%C%I?t$,B?$9$.$k>l9g$O!"(B - $B$3$N?t;z$h$j$b>/$J$$?t$K$J$k$^$G;R%W%m%;%9$r=*N;$7$^$9!#(B</p> - - <p><module>mpm_netware</module> $B$G$O!"(B - $B%G%U%)%k%H$O(B <code>MaxSpareThreads 100</code> $B$G$9!#(B - $B$3$N(B MPM $B$O%7%s%0%k%W%m%;%9$G<B9T$5$l$^$9$N$G!"(B - $B%9%Z%"%9%l%C%I?t$b%5!<%PA4BN$G4*Dj$7$^$9!#(B</p> - - <p><module>beos</module> $B$H(B <module>mpmt_os2</module> $B$O(B - <module>mpm_netware</module> $B$H;w$?5sF0$r$7$^$9!#(B - <module>beos</module> $B$G$N%G%U%)%k%HCM$O(B <code>MaxSpareThreads 50</code> - $B$G$9!#(B<module>mpmt_os2</module> $B$G$N%G%U%)%k%HCM$O(B <code>10</code> - $B$G$9!#(B</p> - - <note><title>$B@)8B;v9`(B</title> - <p><directive>MaxSpareThreads</directive> $B$N<h$kCM$K$O@)8B$,$"$j$^$9!#(B - Apache $B$O<!$N5,B'$K=>$C$F<+F0E*$KJd@5$7$^$9!#(B</p> + <module>threadpool</module> では、 + デフォルトは <code>MaxSpareThreads 250</code> です。 + この MPM はアイドルスレッド数をサーバ全体で監視します。 + サーバでアイドルスレッド数が多すぎる場合は、 + この数字よりも少ない数になるまで子プロセスを終了します。</p> + + <p><module>mpm_netware</module> では、 + デフォルトは <code>MaxSpareThreads 100</code> です。 + この MPM はシングルプロセスで実行されますので、 + スペアスレッド数もサーバ全体で勘定します。</p> + + <p><module>beos</module> と <module>mpmt_os2</module> は + <module>mpm_netware</module> と似た挙動をします。 + <module>beos</module> でのデフォルト値は <code>MaxSpareThreads 50</code> + です。<module>mpmt_os2</module> でのデフォルト値は <code>10</code> + です。</p> + + <note><title>制限事項</title> + <p><directive>MaxSpareThreads</directive> の取る値には制限があります。 + Apache は次の規則に従って自動的に補正します。</p> <ul> - <li><module>perchild</module> $B$G$O!"(B - <directive>MaxSpareThreads</directive> $B$,(B + <li><module>perchild</module> では、 + <directive>MaxSpareThreads</directive> が <directive module="mpm_common">ThreadLimit</directive> - $B$HEy$7$$$+$=$l0J2<$G$"$kI,MW$,$"$j$^$9!#(B</li> + と等しいかそれ以下である必要があります。</li> - <li><module>mpm_netware</module> $B$O(B + <li><module>mpm_netware</module> は <directive module="mpm_common">MinSpareThreads</directive> - $B$h$j$bBg$-$$I,MW$,$"$j$^$9!#(B</li> + よりも大きい必要があります。</li> <li><module>leader</module>, <module>threadpool</module>, - <module>worker</module> $B$G$O!"(B - <directive module="mpm_common">MinSpareThreads</directive> $B$H(B + <module>worker</module> では、 + <directive module="mpm_common">MinSpareThreads</directive> と <directive module="mpm_common">ThreadsPerChild</directive> - $B$G7h$^$kAmOB$HEy$7$$$+Bg$-$$I,MW$,$"$j$^$9!#(B</li> + で決まる総和と等しいか大きい必要があります。</li> </ul> </note> </usage> @@ -623,10 +623,10 @@ accept $B$7$h$&$H$7$F$$$k$H$-$K!"(BApache $B$,$=$l$i$N;R%W%m%;%9$rD>Ns2=$9$k$ <directivesynopsis> <name>MinSpareThreads</name> -<description>$B%j%/%(%9%H$K1~Ez$9$k$3$H$N$G$-$k(B -$B%"%$%I%k%9%l%C%I?t$N:G>.?t(B</description> +<description>リクエストに応答することのできる +アイドルスレッド数の最小数</description> <syntax>MinSpareThreads <var>number</var></syntax> -<default>$B>\:Y$O;HMQJ}K!$r$4Mw2<$5$$!#(B</default> +<default>詳細は使用方法をご覧下さい。</default> <contextlist><context>server config</context></contextlist> <modulelist><module>beos</module><module>leader</module> <module>mpm_netware</module><module>mpmt_os2</module> @@ -634,37 +634,37 @@ accept $B$7$h$&$H$7$F$$$k$H$-$K!"(BApache $B$,$=$l$i$N;R%W%m%;%9$rD>Ns2=$9$k$ </modulelist> <usage> - <p>$B%j%/%(%9%H$K1~Ez$9$k%9%l%C%I?t$N:G>.CM$G$9!#(B - $B0[$J$k(B MPM $B$G$O$=$l$>$l!"(B - $B$3$N%G%#%l%/%F%#%V$O0[$J$k<h$j07$o$lJ}$r$7$^$9!#(B</p> - - <p><module>perchild</module> $B$G$O!"(B - $B%G%U%)%k%H$O(B <code>MinSpareThreads 5</code> $B$G!"(B - $B%"%$%I%k%9%l%C%I?t$r;R%W%m%;%9Kh$K4F;k$7$^$9!#(B - $B$b$7;R%W%m%;%9$K==J,$J?t$N%9%l%C%I$,$J$1$l$P!"(B - $B%5!<%P$O$=$N;R%W%m%;%9$K?7$7$$%9%l%C%I$r:n$j;O$a$^$9!#(B - $B$G$9$+$i!"(B<directive module="perchild">NumServers</directive> - $B$r(B <code>10</code> $B$K!"(B<directive>MinSpareThreads</directive> $B$r(B - <code>5</code> $B$K$7$?>l9g$O!":G>.$G$b(B 50 $B$N%"%$%I%k%9%l%C%I$,(B - $B%7%9%F%`>e$K$"$k$3$H$K$J$j$^$9!#(B</p> + <p>リクエストに応答するスレッド数の最小値です。 + 異なる MPM ではそれぞれ、 + このディレクティブは異なる取り扱われ方をします。</p> + + <p><module>perchild</module> では、 + デフォルトは <code>MinSpareThreads 5</code> で、 + アイドルスレッド数を子プロセス毎に監視します。 + もし子プロセスに十分な数のスレッドがなければ、 + サーバはその子プロセスに新しいスレッドを作り始めます。 + ですから、<directive module="perchild">NumServers</directive> + を <code>10</code> に、<directive>MinSpareThreads</directive> を + <code>5</code> にした場合は、最小でも 50 のアイドルスレッドが + システム上にあることになります。</p> <p><module>worker</module>, <module>leader</module>, - <module>threadpool</module> $B$G$O!"(B - $B%G%U%)%k%H$O(B <code>MinSpareThreads 75</code> $B$G!"(B - $B%"%$%I%k%9%l%C%I?t$r%5!<%PA4BN$G4F;k$7$^$9!#(B - $B$b$7%5!<%P$K==J,$J?t$N%"%$%I%k%9%l%C%I$,$J$1$l$P!"(B - $B%"%$%I%k%9%l%C%I?t$,$3$N?t$h$j$bBg$-$/$J$k$^$G(B - $B?7$7$$;R%W%m%;%9$,@8@.$5$l$^$9!#(B</p> - - <p><module>mpm_netware</module> $B$G$O!"(B - $B%G%U%)%k%H$O(B <code>MinSpareThreads 10</code> $B$G!"(B - $B%7%s%0%k%W%m%;%9(B MPM $B$G$9$N$G!"%5!<%PA4BN$G4IM}$5$l$^$9!#(B</p> - - <p><module>beos</module> $B$H(B <module>mpmt_os2</module> $B$O!"(B - <module>mpm_netware</module>$B$K$h$/;w$F$$$^$9!#(B - <module>beos</module> $B$G$N%G%U%)%k%H$O(B <code>MinSpareThreads 1</code> - $B$G$9!#(B<module>mpmt_os2</module> $B$G$N%G%U%)%k%H$O(B - <code>5</code> $B$G$9!#(B</p> + <module>threadpool</module> では、 + デフォルトは <code>MinSpareThreads 75</code> で、 + アイドルスレッド数をサーバ全体で監視します。 + もしサーバに十分な数のアイドルスレッドがなければ、 + アイドルスレッド数がこの数よりも大きくなるまで + 新しい子プロセスが生成されます。</p> + + <p><module>mpm_netware</module> では、 + デフォルトは <code>MinSpareThreads 10</code> で、 + シングルプロセス MPM ですので、サーバ全体で管理されます。</p> + + <p><module>beos</module> と <module>mpmt_os2</module> は、 + <module>mpm_netware</module>によく似ています。 + <module>beos</module> でのデフォルトは <code>MinSpareThreads 1</code> + です。<module>mpmt_os2</module> でのデフォルトは + <code>5</code> です。</p> </usage> <seealso><directive module="mpm_common">MaxSpareThreads</directive></seealso> <seealso><directive module="mpm_common">StartServers</directive></seealso> @@ -672,8 +672,8 @@ accept $B$7$h$&$H$7$F$$$k$H$-$K!"(BApache $B$,$=$l$i$N;R%W%m%;%9$rD>Ns2=$9$k$ <directivesynopsis> <name>ScoreBoardFile</name> -<description>$B;R%W%m%;%9$HO"7H$9$k$?$a$N%G!<%?$rJ]B8$9$k(B -$B%U%!%$%k$N0LCV(B</description> +<description>子プロセスと連携するためのデータを保存する +ファイルの位置</description> <syntax>ScoreBoardFile <var>file-path</var></syntax> <default>ScoreBoardFile logs/apache_status</default> <contextlist><context>server config</context></contextlist> @@ -682,33 +682,33 @@ accept $B$7$h$&$H$7$F$$$k$H$-$K!"(BApache $B$,$=$l$i$N;R%W%m%;%9$rD>Ns2=$9$k$ <module>threadpool</module><module>worker</module></modulelist> <usage> - <p>Apache $B$O?F%W%m%;%9$H;R%W%m%;%94V$NDL?.$K%9%3%"%\!<%I$rMQ$$$^$9!#(B - $B$3$NDL?.5!G=$K%U%!%$%k$rI,MW$H$9$k%"!<%-%F%/%A%c$b$"$j$^$9!#(B - $B%U%!%$%k$,;XDj$5$l$F$$$J$1$l$P!"(BApache $B$O$^$:%a%b%j>e(B - ($BF?L>6&M-%a%b%j(B) $B$K%9%3%"%\!<%I$r:n$m$&$H$7!"$=$l$,<:GT$9$k$H(B - $B%G%#%9%/>e$K%U%!%$%k(B ($B%U%!%$%k%Y!<%9$N6&M-%a%b%j(B) $B$r:n$m$&$H$7$^$9!#(B - $B$3$N%G%#%l%/%F%#%V$r;XDj$9$k$H!"(BApache - $B$OI,$:%G%#%9%/$K%U%!%$%k$r@8@.$7$^$9!#(B</p> - - <example><title>$BNc(B</title> + <p>Apache は親プロセスと子プロセス間の通信にスコアボードを用います。 + この通信機能にファイルを必要とするアーキテクチャもあります。 + ファイルが指定されていなければ、Apache はまずメモリ上 + (匿名共有メモリ) にスコアボードを作ろうとし、それが失敗すると + ディスク上にファイル (ファイルベースの共有メモリ) を作ろうとします。 + このディレクティブを指定すると、Apache + は必ずディスクにファイルを生成します。</p> + + <example><title>例</title> ScoreBoardFile /var/run/apache_status </example> - <p>$B%U%!%$%k%Y!<%9$N6&M-%a%b%j$O!"%5!<%I%Q!<%F%#!<@=$N%"%W%j%1!<%7%g%s$G(B - $B%9%3%"%\!<%I$KD>@\%"%/%;%9$9$kI,MW$,$"$k>l9g$KLr$KN)$A$^$9!#(B</p> + <p>ファイルベースの共有メモリは、サードパーティー製のアプリケーションで + スコアボードに直接アクセスする必要がある場合に役に立ちます。</p> - <p><directive>ScoreBoardFile</directive> $B$r;H$&>l9g!"(B - RAM $B%G%#%9%/>e$KCV$/$H%9%T!<%I$,8~>e$9$k$G$7$g$&!#(B - $B$7$+$7!"%m%0%U%!%$%k$N@_CV0LCV$d(B - <a href="../misc/security_tips.html">$B%;%-%e%j%F%#(B</a> - $B$HF1MM$NCm0UE@$,$"$k$N$G!"Cm0U$7$F$/$@$5$$!#(B</p> + <p><directive>ScoreBoardFile</directive> を使う場合、 + RAM ディスク上に置くとスピードが向上するでしょう。 + しかし、ログファイルの設置位置や + <a href="../misc/security_tips.html">セキュリティ</a> + と同様の注意点があるので、注意してください。</p> </usage> -<seealso><a href="../stopping.html">Apache $B$NDd;_$H:F5/F0(B</a></seealso> +<seealso><a href="../stopping.html">Apache の停止と再起動</a></seealso> </directivesynopsis> <directivesynopsis> <name>ReceiveBufferSize</name> -<description>TCP $B<u?.%P%C%U%!%5%$%:(B</description> +<description>TCP 受信バッファサイズ</description> <syntax>ReceiveBufferSize <var>bytes</var></syntax> <default>ReceiveBufferSize 0</default> <contextlist><context>server config</context></contextlist> @@ -718,15 +718,15 @@ accept $B$7$h$&$H$7$F$$$k$H$-$K!"(BApache $B$,$=$l$i$N;R%W%m%;%9$rD>Ns2=$9$k$ <module>worker</module></modulelist> <usage> - <p>$B%5!<%P$O(B TCP $B<u?.%P%C%U%!%5%$%:$r;XDj$5$l$?%P%$%H?t$K@_Dj$7$^$9!#(B</p> + <p>サーバは TCP 受信バッファサイズを指定されたバイト数に設定します。</p> - <p><code>0</code>$B$K$7$?>l9g!"(BOS $B$N%G%U%)%k%HCM$,;HMQ$5$l$^$9!#(B</p> + <p><code>0</code>にした場合、OS のデフォルト値が使用されます。</p> </usage> </directivesynopsis> <directivesynopsis> <name>SendBufferSize</name> -<description>TCP $B%P%C%U%!%5%$%:(B</description> +<description>TCP バッファサイズ</description> <syntax>SendBufferSize <var>bytes</var></syntax> <default>SendBufferSize 0</default> <contextlist><context>server config</context></contextlist> @@ -736,326 +736,326 @@ accept $B$7$h$&$H$7$F$$$k$H$-$K!"(BApache $B$,$=$l$i$N;R%W%m%;%9$rD>Ns2=$9$k$ <module>threadpool</module><module>worker</module></modulelist> <usage> - <p>$B%5!<%P$O(B TCP $BAw?.%P%C%U%!%5%$%:$r;XDj$5$l$?%P%$%H?t$K@_Dj$7$^$9!#(B - $B9bB.$G9b%l%$%F%s%7$J4D6-$G(B - (<em>$BNc(B</em> 100ms $BDxEY!"BgN&2#CG9bB.DL?.O)$J$I(B) - $B8E$$0lHLE*$J(B OS $B$N%G%U%)%k%HCM$rA}$d$9$N$KHs>o$KJXMx$G$9!#(B</p> + <p>サーバは TCP 送信バッファサイズを指定されたバイト数に設定します。 + 高速で高レイテンシな環境で + (<em>例</em> 100ms 程度、大陸横断高速通信路など) + 古い一般的な OS のデフォルト値を増やすのに非常に便利です。</p> - <p><code>0</code>$B$K$7$?>l9g!"(BOS $B$N%G%U%)%k%HCM$,;HMQ$5$l$^$9!#(B</p> + <p><code>0</code>にした場合、OS のデフォルト値が使用されます。</p> </usage> </directivesynopsis> <directivesynopsis> <name>ServerLimit</name> -<description>$B@_Dj2DG=$J%5!<%P%W%m%;%9?t$N>e8B(B</description> +<description>設定可能なサーバプロセス数の上限</description> <syntax>ServerLimit <var>number</var></syntax> -<default>$B>\:Y$O;HMQK!$r;2>H(B</default> +<default>詳細は使用法を参照</default> <contextlist><context>server config</context></contextlist> <modulelist><module>leader</module><module>perchild</module> <module>prefork</module><module>threadpool</module><module>worker</module> </modulelist> <usage> - <p><module>prefork</module> MPM $B$N>l9g$O!"$3$N%G%#%l%/%F%#%V$O(B - Apache $B%W%m%;%92TF/Cf$K$*$1$k(B + <p><module>prefork</module> MPM の場合は、このディレクティブは + Apache プロセス稼働中における <directive module="mpm_common">MaxClients</directive> - $B$K@_Dj2DG=$J>e8BCM$r@_Dj$9$k$3$H$K$J$j$^$9(B - ($BLuCm(B: prefork $B$N>l9g$OF1;~%/%i%$%"%s%H?t(B = $B%5!<%P%W%m%;%9?t$J$N$G(B) $B!#(B - <module>worker</module> MPM $B$N>l9g$K$O!"$3$N%G%#%l%/%F%#%V$O(B + に設定可能な上限値を設定することになります + (訳注: prefork の場合は同時クライアント数 = サーバプロセス数なので) 。 + <module>worker</module> MPM の場合には、このディレクティブは <directive module="mpm_common">ThreadLimit</directive> - $B%G%#%l%/%F%#%V$HAH$_9g$o$;$F!"(B - Apache $B%W%m%;%92TF/Cf$K$*$1$k(B + ディレクティブと組み合わせて、 + Apache プロセス稼働中における <directive module="mpm_common">MaxClients</directive> - $B$K@_Dj2DG=$J>e8BCM$r@_Dj$9$k$3$H$K$J$j$^$9!#(B - $B:F5/F0Cf$K$3$N%G%#%l%/%F%#%V$rJQ99$7$F$bL5;k$5$l$^$9$,!"(B + に設定可能な上限値を設定することになります。 + 再起動中にこのディレクティブを変更しても無視されますが、 <directive module="mpm_common">MaxClients</directive> - $B$O:F5/F0Cf$K=$@5$9$k$3$H$,$G$-$^$9!#(B</p> + は再起動中に修正することができます。</p> - <p>$B$3$N%G%#%l%/%F%#%V$r;HMQ$9$k:]$OFC$KCm0U$7$F$/$@$5$$!#(B - <directive>ServerLimit</directive> $B$,I,MW0J>e$KBg$-$JCM$K(B - $B@_Dj$5$l$?>l9g$O!"M>7W$JL$;HMQ6&M-%a%b%j$,3d$jEv$F$i$l$^$9!#(B - <directive>ServerLimit</directive> $B$H(B + <p>このディレクティブを使用する際は特に注意してください。 + <directive>ServerLimit</directive> が必要以上に大きな値に + 設定された場合は、余計な未使用共有メモリが割り当てられます。 + <directive>ServerLimit</directive> と <directive module="mpm_common">MaxClients</directive> - $B$,%7%9%F%`$N07$($kHO0O$r1[$($?@_DjCM$K$J$C$F$$$k$H!"(B - Apache $B$O5/F0$7$J$$$+!"5/F0$7$F$bIT0BDj$K$J$k$G$7$g$&!#(B</p> + がシステムの扱える範囲を越えた設定値になっていると、 + Apache は起動しないか、起動しても不安定になるでしょう。</p> - <p><module>prefork</module> MPM $B$G$O!"(B + <p><module>prefork</module> MPM では、 <directive module="mpm_common">MaxClients</directive> - $B$r(B 256 ($B%G%U%)%k%H(B) $B$h$j$bBg$-$JCM$K@_Dj$9$kI,MW$,$"$k;~$K$@$1;HMQ$7$F$/$@$5$$!#(B - $B4uK>$N(B <directive module="mpm_common">MaxClients</directive> - $B?t$H$/$i$Y$F!"I,MW0J>e$KBg$-$JCM$r;XDj$9$k$3$H$OHr$1$F$/$@$5$$!#(B</p> + を 256 (デフォルト) よりも大きな値に設定する必要がある時にだけ使用してください。 + 希望の <directive module="mpm_common">MaxClients</directive> + 数とくらべて、必要以上に大きな値を指定することは避けてください。</p> <p><module>worker</module>, <module>leader</module>, - <module>threadpool</module> MPM $B$G$O!"(B - <directive module="mpm_common">MaxClients</directive> $B$H(B + <module>threadpool</module> MPM では、 + <directive module="mpm_common">MaxClients</directive> と <directive module="mpm_common">ThreadsPerChild</directive> - $B$N@_Dj$G(B 16 $B%5!<%P%W%m%;%9(B ($B%G%U%)%k%H(B) - $B0J>eI,MW$K$J$k>l9g$K$N$_;HMQ$7$F$/$@$5$$!#4uK>$N(B - <directive module="mpm_common">MaxClients </directive> $B$H(B + の設定で 16 サーバプロセス (デフォルト) + 以上必要になる場合にのみ使用してください。希望の + <directive module="mpm_common">MaxClients </directive> と <directive module="mpm_common">ThreadsPerChild</directive> - $B$H$/$i$Y$F!"I,MW$H$J$k%5!<%P%W%m%;%9?t0J>e$KBg$-$JCM$r(B - $B@_Dj$9$k$3$H$OHr$1$F$/$@$5$$!#(B</p> - - <p><module>perchild</module> MPM $B$G$O!"(B - <directive module="perchild">NumServers</directive> $B$r(B 8 ($B%G%U%)%k%H(B) - $B$h$m$$$bBg$-$JCM$K@_Dj$9$kI,MW$,$"$k$H$-$K$N$_;HMQ$7$F$/$@$5$$!#(B</p> - - <note><title>$BCm0U(B</title> - <p><code>ServerLimit 20000</code> $B$H$$$&@)8BIU$-$G%3%s%Q%$%k$5$l$F$$$^$9(B - (<module>prefork</module> MPM $B$G$O(B <code>200000</code>) $B!#(B - $B$3$l$O%9%Z%k%_%9$K$h$C$F8m$C$F9s$$>u67$K$J$k$N$r!"(B - $B2sHr$9$k$?$a$N=hCV$G$9!#(B</p> + とくらべて、必要となるサーバプロセス数以上に大きな値を + 設定することは避けてください。</p> + + <p><module>perchild</module> MPM では、 + <directive module="perchild">NumServers</directive> を 8 (デフォルト) + よろいも大きな値に設定する必要があるときにのみ使用してください。</p> + + <note><title>注意</title> + <p><code>ServerLimit 20000</code> という制限付きでコンパイルされています + (<module>prefork</module> MPM では <code>200000</code>) 。 + これはスペルミスによって誤って酷い状況になるのを、 + 回避するための処置です。</p> </note> </usage> -<seealso><a href="../stopping.html">Apache $B$NDd;_$H:F5/F0(B</a></seealso> +<seealso><a href="../stopping.html">Apache の停止と再起動</a></seealso> </directivesynopsis> <directivesynopsis> <name>StartServers</name> -<description>$B5/F0;~$K@8@.$5$l$k;R%5!<%P%W%m%;%9$N?t(B</description> +<description>起動時に生成される子サーバプロセスの数</description> <syntax>StartServers <var>number</var></syntax> -<default>$B>\:Y$O;HMQJ}K!$r;2>H(B</default> +<default>詳細は使用方法を参照</default> <contextlist><context>server config</context></contextlist> <modulelist><module>leader</module><module>mpmt_os2</module> <module>prefork</module><module>threadpool</module><module>worker</module> </modulelist> <usage> - <p><directive>StartServers</directive> $B%G%#%l%/%F%#%V$O!"(B - $B5/F0;~$K@8@.$5$l$k;R%5!<%P%W%m%;%9$N?t$r@_Dj$7$^$9!#(B - $B%W%m%;%9?t$OIi2Y$K1~$8$FF0E*$K@)8f$5$l$^$9$N$G!"(B - $BDL>o$O$3$NCM$rD4@0$9$kM}M3$O$"$^$j$J$$$G$7$g$&!#(B</p> + <p><directive>StartServers</directive> ディレクティブは、 + 起動時に生成される子サーバプロセスの数を設定します。 + プロセス数は負荷に応じて動的に制御されますので、 + 通常はこの値を調整する理由はあまりないでしょう。</p> - <p>$B%G%U%)%k%HCM$O(B MPM $B$4$H$K0[$J$j$^$9!#(B + <p>デフォルト値は MPM ごとに異なります。 <module>leader</module>, <module>threadpool</module>, - <module>worker</module> $B$O(B <code>StartServers 3</code> $B$G$9!#(B - <module>prefork</module> $B$O(B <code>5</code> $B$G!"(B - <module>mpmt_os2</module> $B$O(B <code>2</code> $B$G$9!#(B</p> + <module>worker</module> は <code>StartServers 3</code> です。 + <module>prefork</module> は <code>5</code> で、 + <module>mpmt_os2</module> は <code>2</code> です。</p> </usage> </directivesynopsis> <directivesynopsis> <name>StartThreads</name> -<description>$B5/F0;~$K@8@.$5$l$k%9%l%C%I$N?t(B</description> +<description>起動時に生成されるスレッドの数</description> <syntax>StartThreads <var>number</var></syntax> -<default>$B>\:Y$O;HMQJ}K!$r;2>H(B</default> +<default>詳細は使用方法を参照</default> <contextlist><context>server config</context></contextlist> <modulelist><module>beos</module><module>mpm_netware</module> <module>perchild</module></modulelist> <usage> - <p>$B5/F0;~$K@8@.$5$l$k%9%l%C%I$N?t$G$9!#(B - $B%9%l%C%I?t$OIi2Y$K1~$8$FF0E*$K@)8f$5$l$^$9$N$G!"(B - $BDL>o$O$3$NCM$rD4@0$9$kM}M3$O$"$^$j$J$$$G$7$g$&!#(B</p> - - <p><module>perchild</module> $B$G$N%G%U%)%k%H$O(B - <code>StartThreads 5</code> $B$G!"$3$N%G%#%l%/%F%#%V$O5/F0;~$K(B - $B%W%m%;%9Kh$N%9%l%C%I?t$rDI@W$7$^$9!#(B</p> - - <p><module>mpm_netware</module> $B$G$N%G%U%)%k%H$O(B - <code>StartThreads 50</code> $B$G!"(B - $B$3$N>l9g%W%m%;%9$O0l$D$7$+$J$$$N$G!"(B - $B5/F0;~$K%j%/%(%9%H$K1~Ez$9$k%9%l%C%I$NAm?t$H$J$j$^$9!#(B</p> - - <p><module>beos</module> $B$G$N%G%U%)%k%H$O(B <code>StartThreads - 10</code> $B$G$9!#(B - $B$^$?!"5/F0;~$K@8@.$5$l$k%9%l%C%I$NAm?t$K$bH?1G$5$l$^$9!#(B</p> + <p>起動時に生成されるスレッドの数です。 + スレッド数は負荷に応じて動的に制御されますので、 + 通常はこの値を調整する理由はあまりないでしょう。</p> + + <p><module>perchild</module> でのデフォルトは + <code>StartThreads 5</code> で、このディレクティブは起動時に + プロセス毎のスレッド数を追跡します。</p> + + <p><module>mpm_netware</module> でのデフォルトは + <code>StartThreads 50</code> で、 + この場合プロセスは一つしかないので、 + 起動時にリクエストに応答するスレッドの総数となります。</p> + + <p><module>beos</module> でのデフォルトは <code>StartThreads + 10</code> です。 + また、起動時に生成されるスレッドの総数にも反映されます。</p> </usage> </directivesynopsis> <directivesynopsis> <name>ThreadLimit</name> -<description>$B@_Dj2DG=$J;R%W%m%;%9Kh$N%9%l%C%I?t$N>e8B$r(B -$B@_Dj$7$^$9(B</description> +<description>設定可能な子プロセス毎のスレッド数の上限を +設定します</description> <syntax>ThreadLimit <var>number</var></syntax> -<default>$B>\:Y$O;HMQJ}K!$r;2>H(B</default> +<default>詳細は使用方法を参照</default> <contextlist><context>server config</context></contextlist> <modulelist><module>leader</module><module>mpm_winnt</module> <module>perchild</module><module>threadpool</module><module>worker</module> </modulelist> -<compatibility>Apache 2.0.41 $B$H$=$l0J9_$N(B <module>mpm_winnt</module> -$B$GMxMQ2DG=(B</compatibility> +<compatibility>Apache 2.0.41 とそれ以降の <module>mpm_winnt</module> +で利用可能</compatibility> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O(B - Apache $B%W%m%;%92TF/Cf$K$*$1$k(B + <p>このディレクティブは + Apache プロセス稼働中における <directive module="mpm_common">ThreadsPerChild</directive> - $B$K@_Dj2DG=$J>e8BCM$r@_Dj$7$^$9!#:F5/F0;~$K$3$N%G%#%l%/%F%#%V$NCM$r(B - $BJQ99$7$F$bL5;k$5$l$^$9$,!"(B + に設定可能な上限値を設定します。再起動時にこのディレクティブの値を + 変更しても無視されますが、 <directive module="mpm_common">ThreadsPerChild</directive> - $B$O:F5/F0Cf$K!"$3$N%G%#%l%/%F%#%V$G;XDj$5$l$?>e8BCM$^$G(B - $BJQ99$9$k$3$H$,$G$-$^$9!#(B</p> + は再起動中に、このディレクティブで指定された上限値まで + 変更することができます。</p> - <p>$B$3$N%G%#%l%/%F%#%V$r;HMQ$9$k:]$OFC$KCm0U$7$F$/$@$5$$!#(B - <directive>ThreadLimit</directive> $B$,(B + <p>このディレクティブを使用する際は特に注意してください。 + <directive>ThreadLimit</directive> が <directive module="mpm_common">ThreadsPerChild</directive> - $B$h$j$b$:$C$HBg$-$JCM$K@_Dj$5$l$?>l9g$O!"(B - $BM>7W$JL$;HMQ6&M-%a%b%j$,3d$jEv$F$i$l$F$7$^$$$^$9!#(B - <directive>ThreadLimit</directive> $B$,(B + よりもずっと大きな値に設定された場合は、 + 余計な未使用共有メモリが割り当てられてしまいます。 + <directive>ThreadLimit</directive> が <directive module="mpm_common">ThreadsPerChild</directive> - $B$NN>J}$,%7%9%F%`$N07$($kHO0O$rD6$($F$$$k>l9g$O!"(B - Apache $B$O5/F0$7$J$$$+!"5/F0$7$?$H$7$F$bIT0BDj$K$J$k$G$7$g$&!#(B - $B$3$N%G%#%l%/%F%#%V$NCM$O:#;HMQ$7$F$$$k(B Apache $B$N(B <directive - module="mpm_common">ThreadsPerChild</directive> $B$NM=A[>e8BCM$r(B - $BD6$($?CM$K$O@_Dj$7$J$$$G$/$@$5$$!#(B + の両方がシステムの扱える範囲を超えている場合は、 + Apache は起動しないか、起動したとしても不安定になるでしょう。 + このディレクティブの値は今使用している Apache の <directive + module="mpm_common">ThreadsPerChild</directive> の予想上限値を + 超えた値には設定しないでください。 </p> - <p><directive>ThreadLimit</directive> $B$N%G%U%)%k%HCM$O(B - <module>mpm_winnt</module> $B$N$H$-$O(B <code>1920</code> $B$G!"(B - $BB>$N>l9g$O(B <code>64</code> $B$G$9!#(B</p> + <p><directive>ThreadLimit</directive> のデフォルト値は + <module>mpm_winnt</module> のときは <code>1920</code> で、 + 他の場合は <code>64</code> です。</p> - <note><title>$BCm0U(B</title> + <note><title>注意</title> <p><code>ThreadLimit 20000</code> (<module>mpm_winnt</module> - $B$N>l9g$O(B <code>ThreadLimit 15000</code> ) - $B$H$$$&@)8BIU$-$G%3%s%Q%$%k$5$l$F$$$^$9!#(B - $B$3$l$O%9%Z%k%_%9$K$h$C$F8m$C$F9s$$>u67$K$J$k$N$r!"(B - $B2sHr$9$k$?$a$N=hCV$G$9!#(B</p> + の場合は <code>ThreadLimit 15000</code> ) + という制限付きでコンパイルされています。 + これはスペルミスによって誤って酷い状況になるのを、 + 回避するための処置です。</p> </note> </usage> </directivesynopsis> <directivesynopsis> <name>ThreadsPerChild</name> -<description>$B;R%W%m%;%9$=$l$>$l$K@8@.$5$l$k%9%l%C%I?t(B</description> +<description>子プロセスそれぞれに生成されるスレッド数</description> <syntax>ThreadsPerChild <var>number</var></syntax> -<default>$B>\:Y$O;HMQJ}K!$r;2>H(B</default> +<default>詳細は使用方法を参照</default> <contextlist><context>server config</context></contextlist> <modulelist><module>leader</module><module>mpm_winnt</module> <module>threadpool</module><module>worker</module></modulelist> <usage> - <p>$B$3$N%G%#%l%/%F%#%V$O!"$=$l$>$l$N;R%W%m%;%9$G@8@.$5$l$k(B - $B%9%l%C%I?t$r@_Dj$7$^$9!#(B - $B;R%W%m%;%9$O3+;O;~$K$3$l$i$N%9%l%C%I$r@8@.$7$F!"(B - $B$=$N8e$O@8@.$7$^$;$s!#(B<module>mpm_winnt</module> $B$N$h$&$J!"(B - $B;R%W%m%;%9$,0l$D$7$+$J$$$h$&$J(B MPM $B$rMxMQ$7$F$$$k$N$G$"$l$P!"(B - $B$3$NCM$O%5!<%P$NIi2YA4BN$r==J,<h$j07$($kDxEY$K!"(B - $BBg$-$/$J$1$l$P$J$j$^$;$s!#(B<module>worker</module> $B$N$h$&$J!"(B - $B;R%W%m%;%9$,J#?t$"$k$h$&$J(B MPM $B$rMxMQ$7$F$$$k$N$G$"$l$P!"(B - $B%5!<%P$NDL>oIi2Y$r==J,07$($kDxEY$K!"(B - <em>$B%9%l%C%IAm?t(B</em>$B$,B?$/$J$1$l$P$J$j$^$;$s!#(B</p> - - <p><module>mpm_winnt</module>$B$G$N(B <directive>ThreadsPerChild</directive> - $B$N%G%U%)%k%HCM$O(B <code>64</code> $B$G!"B>$N>l9g$O(B - <code>25</code> $B$G$9!#(B</p> + <p>このディレクティブは、それぞれの子プロセスで生成される + スレッド数を設定します。 + 子プロセスは開始時にこれらのスレッドを生成して、 + その後は生成しません。<module>mpm_winnt</module> のような、 + 子プロセスが一つしかないような MPM を利用しているのであれば、 + この値はサーバの負荷全体を十分取り扱える程度に、 + 大きくなければなりません。<module>worker</module> のような、 + 子プロセスが複数あるような MPM を利用しているのであれば、 + サーバの通常負荷を十分扱える程度に、 + <em>スレッド総数</em>が多くなければなりません。</p> + + <p><module>mpm_winnt</module>での <directive>ThreadsPerChild</directive> + のデフォルト値は <code>64</code> で、他の場合は + <code>25</code> です。</p> </usage> </directivesynopsis> <directivesynopsis> <name>ThreadStackSize</name> -<description>$B%/%i%$%"%s%H$N%3%M%/%7%g%s$r<u$1;}$D%9%l%C%I$,;HMQ$9$k(B -$B%9%?%C%/$N%P%$%H?t(B</description> +<description>クライアントのコネクションを受け持つスレッドが使用する +スタックのバイト数</description> <syntax>ThreadStackSize <var>size</var></syntax> -<default>NetWare $B$G$O(B 65536$B!#B>$N(B OS $B$G$O0c$C$?CM(B</default> +<default>NetWare では 65536。他の OS では違った値</default> <contextlist><context>server config</context></contextlist> <modulelist><module>leader</module><module>mpm_netware</module> <module>mpm_winnt</module><module>perchild</module> <module>threadpool</module><module>worker</module> </modulelist> -<compatibility>2.1 $B0J9_(B</compatibility> +<compatibility>2.1 以降</compatibility> <usage> - <p>$B%/%i%$%"%s%H%3%M%/%7%g%s$r<u$1;}$A!"%3%M%/%7%g%s=hM}$KI,MW$J%b%8%e!<%k$N(B - $B8F$S=P$7$r9T$J$C$F$$$k%9%l%C%I$N!"(B($B<+F0JQ?tMQ$N(B) $B%9%?%C%/%5%$%:$O(B - <directive>ThreadStackSize</directive> $B%G%#%l%/%F%#%V$G;XDj$7$^$9!#(B - $BBgDq$N>l9g(B OS $B$N;XDj$7$F$$$k%9%?%C%/%5%$%:$N%G%U%)%k%HCM$O(B - $BE,@Z$J$b$N$G$9$,!"D4@0$,I,MW$K$J$k>l9g$b$"$j$^$9(B:</p> + <p>クライアントコネクションを受け持ち、コネクション処理に必要なモジュールの + 呼び出しを行なっているスレッドの、(自動変数用の) スタックサイズは + <directive>ThreadStackSize</directive> ディレクティブで指定します。 + 大抵の場合 OS の指定しているスタックサイズのデフォルト値は + 適切なものですが、調整が必要になる場合もあります:</p> <ul> - <li>$B%9%l%C%I%9%?%C%/%5%$%:$N%G%U%)%k%HCM$,Hf3SE*>.$5$/@_Dj$5$l$F$$$k(B - $B%W%i%C%H%[!<%`(B ($BNc$($P(B HP-UX) $B$G$O!"<+F0JQ?tMQ$NNN0h$GBg$-$JMFNL$r(B - $B;HMQ$9$k%5!<%I%Q!<%F%#@=%b%8%e!<%k$N$?$a$K(B Apache $B$,%/%i%C%7%e$9$k(B - $B>l9g$b$"$j$^$9!#$=$N%b%8%e!<%k$OB>$N%W%i%C%H%[!<%`$G$O(B - $B%9%?%C%/%5%$%:$,Bg$-$$$?$a$K!"2wD4$KF0:n$9$k$+$b$7$l$^$;$s!#(B - $B$3$N%?%$%W$N%/%i%C%7%e$O!"(B<directive>ThreadStackSize</directive> - $B$G(B OS $B$N%G%U%)%k%HCM$h$jBg$-$JCM$r;XDj$9$k$3$H$G2r7h$7$^$9!#(B - $B%5!<%I%Q!<%F%#@=%b%8%e!<%k$G$3$N=hCV$,I,MW$G$"$k$H5-:\$5$l$F$$$k(B - $B>l9g$+!"(BApache $B$N=PNO$9$k%a%C%;!<%8$G%9%l%C%I%9%?%C%/%5%$%:$,(B - $B>.$5$9$.$k$H;XE&$5$l$F$$$k>l9g$K$N$_!"$3$ND4@0$r$7$F$/$@$5$$!#(B</li> - - <li>$B%G%U%)%k%H%9%l%C%I%9%?%C%/%5%$%:$,!"(BWeb $B%5!<%PMQES$KI,MW$JNL$h$j$b(B - $BL@$i$+$KBg$-$9$.$k>l9g!"(B<directive>ThreadStackSize</directive> - $B$r(B OS $B$N%G%U%)%k%HCM$h$j$b>.$5$JCM$K$9$k$3$H$G!";R%W%m%;%9$"$?$j$N(B - $B%9%l%C%I?t$r$h$jB?$/;}$?$;$i$l$k$h$&$K$J$j$^$9!#(B - $B$3$N%?%$%W$ND4@0$O!"%F%9%H4D6-$G%&%'%V%5!<%P$r40A4$K(B - $B%F%9%H$G$-$k>l9g$K8B$C$F9T$J$&$Y$-$G$9!#(B - $B$^$l$KB??t$N%9%?%C%/$,MW5a$5$l$k%j%/%(%9%H$r<u$1$k$3$H$,$"$k$+$b(B - $B$7$l$J$$$+$i$G$9!#(B - Web $B%5!<%P$N@_Dj$rJQ99$9$k$H!"8=:_$N(B <directive>ThreadStackSize</directive> - $B$N@_Dj$,<h$j>C$5$l$k>l9g$,$"$j$^$9!#(B</li> + <li>スレッドスタックサイズのデフォルト値が比較的小さく設定されている + プラットホーム (例えば HP-UX) では、自動変数用の領域で大きな容量を + 使用するサードパーティ製モジュールのために Apache がクラッシュする + 場合もあります。そのモジュールは他のプラットホームでは + スタックサイズが大きいために、快調に動作するかもしれません。 + このタイプのクラッシュは、<directive>ThreadStackSize</directive> + で OS のデフォルト値より大きな値を指定することで解決します。 + サードパーティ製モジュールでこの処置が必要であると記載されている + 場合か、Apache の出力するメッセージでスレッドスタックサイズが + 小さすぎると指摘されている場合にのみ、この調整をしてください。</li> + + <li>デフォルトスレッドスタックサイズが、Web サーバ用途に必要な量よりも + 明らかに大きすぎる場合、<directive>ThreadStackSize</directive> + を OS のデフォルト値よりも小さな値にすることで、子プロセスあたりの + スレッド数をより多く持たせられるようになります。 + このタイプの調整は、テスト環境でウェブサーバを完全に + テストできる場合に限って行なうべきです。 + まれに多数のスタックが要求されるリクエストを受けることがあるかも + しれないからです。 + Web サーバの設定を変更すると、現在の <directive>ThreadStackSize</directive> + の設定が取り消される場合があります。</li> </ul> </usage> </directivesynopsis> <directivesynopsis> <name>User</name> -<description>$B%j%/%(%9%H$K1~Ez$9$k:]$KMQ$$$k%f!<%6(B ID</description> +<description>リクエストに応答する際に用いるユーザ ID</description> <syntax>User <var>unix-userid</var></syntax> <default>User #-1</default> <contextlist><context>server config</context></contextlist> <modulelist><module>leader</module><module>perchild</module> <module>prefork</module><module>threadpool</module><module>worker</module> </modulelist> -<compatibility>Apache 2.0 $B0J9_$G!"%0%m!<%P%k@_Dj$G$N$_M-8z$G$9!#(B +<compatibility>Apache 2.0 以降で、グローバル設定でのみ有効です。 </compatibility> <usage> - <p><directive>User</directive> $B%G%#%l%/%F%#%V$O(B - $B%5!<%P$,%j%/%(%9%H$K1~Ez$9$k:]$KMQ$$$k%f!<%6(B ID $B$r@_Dj$7$^$9!#(B - $B$3$N%G%#%l%/%F%#%V$r;HMQ$9$k$?$a$K$O!"%9%?%s%I%"%m%s7?$N(B - $B%5!<%P$O:G=i$K(B <code>root</code> $B8"8B$G5/F0$5$l$F$$$kI,MW$,$"$j$^$9!#(B - $BHs(B root $B%f!<%6$G%5!<%P$r5/F0$7$?>l9g$O!"(B - $B8"8B$NDc$$%f!<%6$X$HJQ$o$k$3$H$,$G$-$:!"(B - $B7k6I85$N%f!<%6$N%W%m%;%9$H$7$F<B9T$5$lB3$1$^$9!#(B - <code>root</code> $B$G5/F0$7$?>l9g$K?F%W%m%;%9$,(B root - $B$H$7$F<B9T$5$l$F$$$k$N$O@5>o$JF0:n$G$9!#(B - <var>Unix-userid</var> $B$O<!$N$I$l$+$G$9!#(B</p> + <p><directive>User</directive> ディレクティブは + サーバがリクエストに応答する際に用いるユーザ ID を設定します。 + このディレクティブを使用するためには、スタンドアロン型の + サーバは最初に <code>root</code> 権限で起動されている必要があります。 + 非 root ユーザでサーバを起動した場合は、 + 権限の低いユーザへと変わることができず、 + 結局元のユーザのプロセスとして実行され続けます。 + <code>root</code> で起動した場合に親プロセスが root + として実行されているのは正常な動作です。 + <var>Unix-userid</var> は次のどれかです。</p> <dl> - <dt>$B%f!<%6L>(B</dt> - <dd>$B%f!<%6$rL>A0$G;2>H$7$^$9!#(B</dd> + <dt>ユーザ名</dt> + <dd>ユーザを名前で参照します。</dd> - <dt># $B$KB3$$$F%f!<%6HV9f(B</dt> - <dd>$B%f!<%6$rHV9f$G;2>H$7$^$9!#(B</dd> + <dt># に続いてユーザ番号</dt> + <dd>ユーザを番号で参照します。</dd> </dl> - <p>$B$3$N%f!<%6$O!"30It$K8+$;$k$h$&$K0U?^$7$F$$$J$$%U%!%$%k$K!"(B - $B%"%/%;%92DG=$K$J$C$F$7$^$&$h$&$J8"8B$r;}$D$Y$-$G$O$J$$$G$9$7!"(B - $BF1MM$K(B HTTP $B%j%/%(%9%H$KBP$7$F1~Ez$9$k$h$&$K0U?^$7$F$$$J$$(B - $B<B9T%3!<%I$r!"<B9T$G$-$k$h$&$J8"8B$r;}$D$Y$-$G$O$J$$$G$9!#(B - $B%5!<%P$r<B9T$9$k$?$a$KFCDj$N?7$7$$%f!<%6$H%0%k!<%W$r(B - $B@_Dj$9$k$3$H$r$*A&$a$$$?$7$^$9!#(B - <code>nobody</code> $B%f!<%6$r;HMQ$9$k4IM}<T$b$$$^$9$,!"(B - $B$3$l$,>o$KK>$^$7$$$o$1$G$O$"$j$^$;$s!#(B - $B$J$<$J$i(B <code>nobody</code> $B%f!<%6$O!"%7%9%F%`$G(B - $BB>$NLr3d$rC4$C$F$$$k$+$bCN$l$J$$$+$i$G$9!#(B</p> - - <note type="warning"><title>$B%;%-%e%j%F%#(B</title> - <p>$B@53N$K$I$s$J$3$H$r$d$C$F$$$k$N$+!"$=$N4m81@-$rCN$i$J$$$G!"(B - <directive>User</directive> ($B$d(B <directive - module="mpm_common">Group</directive>) $B$r(B <code>root</code> $B$K(B - $B@_Dj$7$J$$$G$/$@$5$$!#(B</p> + <p>このユーザは、外部に見せるように意図していないファイルに、 + アクセス可能になってしまうような権限を持つべきではないですし、 + 同様に HTTP リクエストに対して応答するように意図していない + 実行コードを、実行できるような権限を持つべきではないです。 + サーバを実行するために特定の新しいユーザとグループを + 設定することをお薦めいたします。 + <code>nobody</code> ユーザを使用する管理者もいますが、 + これが常に望ましいわけではありません。 + なぜなら <code>nobody</code> ユーザは、システムで + 他の役割を担っているかも知れないからです。</p> + + <note type="warning"><title>セキュリティ</title> + <p>正確にどんなことをやっているのか、その危険性を知らないで、 + <directive>User</directive> (や <directive + module="mpm_common">Group</directive>) を <code>root</code> に + 設定しないでください。</p> </note> - <p><module>perchild</module> MPM $B$G$O!"0[$J$k%f!<%6(B ID - $B$GJ#?t$N%P!<%A%c%k%[%9%H$rF0$+$9$3$H$rL\E*$H$7$F$$$^$9$,!"(B - <directive>User</directive> $B$O!"<g%5!<%P$N%f!<%6(B ID - $B$H!"(B<directive module="perchild">AssignUserID</directive> - $B%G%#%l%/%F%#%V$r;}$?$J$$(B <directive type="section" - module="core">VirtualHost</directive> $B%;%/%7%g%s$X$N(B - $B%U%)!<%k%P%C%/$H$rDj5A$9$k$3$H$K$J$j$^$9!#(B</p> + <p><module>perchild</module> MPM では、異なるユーザ ID + で複数のバーチャルホストを動かすことを目的としていますが、 + <directive>User</directive> は、主サーバのユーザ ID + と、<directive module="perchild">AssignUserID</directive> + ディレクティブを持たない <directive type="section" + module="core">VirtualHost</directive> セクションへの + フォールバックとを定義することになります。</p> - <p>$BFC5-;v9`(B: $B$3$N%G%#%l%/%F%#%V$r(B + <p>特記事項: このディレクティブを <directive module="core" type="section">VirtualHost</directive> - $B$G;HMQ$9$k$3$H$O%5%]!<%H$5$l$J$/$J$j$^$7$?!#(B - <program>suexec</program> $B8~$1$K%5!<%P$r@_Dj$9$k$N$G$"$l$P!"(B + で使用することはサポートされなくなりました。 + <program>suexec</program> 向けにサーバを設定するのであれば、 <directive module="mod_suexec">SuexecUserGroup</directive> - $B$r;HMQ$7$F$/$@$5$$!#(B</p> + を使用してください。</p> - <note><title>$BCm0U(B</title> - <p><directive>User</directive> $B%G%#%l%/%F%#%V$O(B - <module>beos</module> $B$H(B <module>mpmt_os2</module> MPM - $B$K$bB8:_$7$^$9$,!"<B<AE*$KL58z$G!"8_49@-$N$?$a$@$1$KB8:_$7$^$9!#(B</p> + <note><title>注意</title> + <p><directive>User</directive> ディレクティブは + <module>beos</module> と <module>mpmt_os2</module> MPM + にも存在しますが、実質的に無効で、互換性のためだけに存在します。</p> </note> </usage> </directivesynopsis> diff --git a/docs/manual/mod/mpm_winnt.xml.ja b/docs/manual/mod/mpm_winnt.xml.ja index 11f45b4e91..73a8b5257e 100644 --- a/docs/manual/mod/mpm_winnt.xml.ja +++ b/docs/manual/mod/mpm_winnt.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 151408:420990 (outdated) --> @@ -24,17 +24,17 @@ <name>mpm_winnt</name> <description>Windows NT -$B8~$1$K:GE,2=$5$l$?%^%k%A%W%m%;%C%7%s%0%b%8%e!<%k(B</description> +向けに最適化されたマルチプロセッシングモジュール</description> <status>MPM</status> <sourcefile>mpm_winnt.c</sourcefile> <identifier>mpm_winnt_module</identifier> <summary> - <p>$B$3$N%^%k%A%W%m%;%C%7%s%0%b%8%e!<%k(B (MPM) - $B$O(B Windows NT $B$G$N%G%U%)%k%H$K$J$j$^$9!#(B - $B0l$D$N@)8fMQ%W%m%;%9$rMQ$$!"$3$l$,0l$D$N;R%W%m%;%9$r5/F0$7!"(B - $B$=$7$F;R%W%m%;%9$,%j%/%(%9%H$r<h$j07$&$?$a$K%9%l%C%I$r(B - $B5/F0$7$^$9!#(B</p> + <p>このマルチプロセッシングモジュール (MPM) + は Windows NT でのデフォルトになります。 + 一つの制御用プロセスを用い、これが一つの子プロセスを起動し、 + そして子プロセスがリクエストを取り扱うためにスレッドを + 起動します。</p> </summary> <directivesynopsis location="mpm_common"><name>CoreDumpDirectory</name> @@ -62,20 +62,20 @@ <directivesynopsis> <name>Win32DisableAcceptEx</name> -<description>$B%M%C%H%o!<%/@\B3$N<u$1IU$1$K(B accept() $B$r(BAcceptEx $B$NBe$o$j$K;H$&(B</description> +<description>ネットワーク接続の受け付けに accept() をAcceptEx の代わりに使う</description> <syntax>Win32DisableAcceptEx</syntax> -<default>AcceptEx() $B$O%G%U%)%k%H$GM-8z$K$J$C$F$$$^$9!#(BAcceptEx() $B$rL58z$K$9$k(B -$B$?$a$K$3$N%G%#%l%/%F%#%V$r;H$$$^$9!#(B</default> +<default>AcceptEx() はデフォルトで有効になっています。AcceptEx() を無効にする +ためにこのディレクティブを使います。</default> <contextlist><context>server config</context></contextlist> -<compatibility>2.0.49 $B%P!<%8%g%s0J9_$G;HMQ2DG=(B</compatibility> +<compatibility>2.0.49 バージョン以降で使用可能</compatibility> <usage> - <p>AcceptEx() $B$O(B Microsoft WinSock v2 API $B$G!">l9g$K$h$C$F$O(B - BSD $B7A<0$N(B <code>accept()</code> API $B$h$j$b$h$$@-G=$rH/4x$7$^$9!#(B - $B$h$/;H$o$l$F$$$k(B Windows $B@=IJ$NCf$G!"FC$K%&%#%k%9%9%-%c%J$d(B VPN $B%Q%C%1!<%8(B - $B$NCf$K$O!"%P%0$,860x$G(B <code>AcceptEx()</code> $B$NE,@Z$JF0:n$rK8$2$k$b$N$,$"$j$^$9!#(B - $B0J2<$N$h$&$J%(%i!<$KAx6x$7$?>l9g$O!"$3$N%G%#%l%/%F%#%V$r;HMQ$7$F(B - <code>AcceptEx()</code> $B$r;HMQ$7$J$$$h$&$K$7$F$/$@$5$$!#(B</p> + <p>AcceptEx() は Microsoft WinSock v2 API で、場合によっては + BSD 形式の <code>accept()</code> API よりもよい性能を発揮します。 + よく使われている Windows 製品の中で、特にウィルススキャナや VPN パッケージ + の中には、バグが原因で <code>AcceptEx()</code> の適切な動作を妨げるものがあります。 + 以下のようなエラーに遭遇した場合は、このディレクティブを使用して + <code>AcceptEx()</code> を使用しないようにしてください。</p> <example> [error] (730038)An operation was attempted on something that is diff --git a/docs/manual/mod/prefork.xml.ja b/docs/manual/mod/prefork.xml.ja index 0cc9ede5c0..d6bcf00342 100644 --- a/docs/manual/mod/prefork.xml.ja +++ b/docs/manual/mod/prefork.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 151408:420990 (outdated) --> @@ -23,76 +23,76 @@ <modulesynopsis metafile="prefork.xml.meta"> <name>prefork</name> -<description>$B%9%l%C%I$r;H$o$:!"@h9T$7$F(B fork $B$r9T$J$&%&%'%V%5!<%P$r<BAu(B +<description>スレッドを使わず、先行して fork を行なうウェブサーバを実装 </description> <status>MPM</status> <sourcefile>prefork.c</sourcefile> <identifier>mpm_prefork_module</identifier> <summary> - <p>$B$3$N%^%k%A%W%m%;%C%7%s%0%b%8%e!<%k(B (MPM) $B$O!"(B - Unix $B>e$G$N(B Apache 1.3 $B$N%G%U%)%k%H$N5sF0$HHs>o$K$h$/;w$?J}K!$G(B - $B%j%/%(%9%H$r=hM}$9$k!"%9%l%C%I$r;H$o$:!"@h9T$7$F(B fork $B$r9T$J$&(B - $B%&%'%V%5!<%P$r<BAu$7$F$$$^$9!#(B - $B%9%l%C%I%;!<%U$G$J$$%i%$%V%i%j$H$N8_49@-$r$H$k$?$a$K!"(B - $B%9%l%C%I$rHr$1$kI,MW$N$"$k%5%$%H$G$O!"$3$N%b%8%e!<%k$N;HMQ$,E,@Z$G$7$g$&!#(B - $B$"$k%j%/%(%9%H$GH/@8$7$?LdBj$,B>$N%j%/%(%9%H$K1F6A$7$J$$$h$&$K!"(B - $B8D!9$N%j%/%(%9%H$rC1N%$9$k$N$K$b!":GE,$J(B MPM $B$G$9!#(B</p> - - <p>$B$3$N(B MPM $B$OHs>o$K<+N'E*$J$N$G!"$3$N(B MPM $B$N@_Dj%G%#%l%/%F%#%V$r(B - $BD4@0$9$kI,MW$O$[$H$s$I$J$$$G$7$g$&!#$b$C$H$b=EMW$J$3$H$O!"(B + <p>このマルチプロセッシングモジュール (MPM) は、 + Unix 上での Apache 1.3 のデフォルトの挙動と非常によく似た方法で + リクエストを処理する、スレッドを使わず、先行して fork を行なう + ウェブサーバを実装しています。 + スレッドセーフでないライブラリとの互換性をとるために、 + スレッドを避ける必要のあるサイトでは、このモジュールの使用が適切でしょう。 + あるリクエストで発生した問題が他のリクエストに影響しないように、 + 個々のリクエストを単離するのにも、最適な MPM です。</p> + + <p>この MPM は非常に自律的なので、この MPM の設定ディレクティブを + 調整する必要はほとんどないでしょう。もっとも重要なことは、 <directive module="mpm_common">MaxClients</directive> - $B$,!"M=A[$5$l$kF1;~%j%/%(%9%H?t$r==J,07$($k$0$i$$$OBg$-$$$1$l$I$b!"(B - $BA4%W%m%;%9$K==J,$JJ*M}%a%b%j$,3N<B$K9T$-EO$kDxEY$K$O>.$5$$CM$K$9$k!"(B - $B$H$$$&$3$H$G$9!#(B</p> + が、予想される同時リクエスト数を十分扱えるぐらいは大きいけれども、 + 全プロセスに十分な物理メモリが確実に行き渡る程度には小さい値にする、 + ということです。</p> </summary> <seealso><a href="../bind.html">Apache -$B$,;HMQ$9$k%"%I%l%9$H%]!<%H$N@_Dj(B</a></seealso> - -<section id="how-it-works"><title>$BF0:nJ}K!(B</title> - <p>$B0l$D$N%3%s%H%m!<%k%W%m%;%9$,!"(B - $B%3%M%/%7%g%s$KBP$7$F(B listen $B$7$F!"$7$+$k$Y$-;~$K1~Ez$9$k(B - $B;R%W%m%;%9$r5/F0$7$^$9!#(BApache $B$O>o$K4v$D$+$N(B<dfn>$B%9%Z%"(B</dfn> - $B$+%"%$%I%k$J%5!<%P%W%m%;%9$r0];}$7$F$$$F!"$=$l$i$OF~$C$F$-$?(B - $B%j%/%(%9%H$K1~Ez$G$-$k$h$&$KBT5!$7$F$$$^$9!#(B - $B$3$N$h$&$K$7$F%/%i%$%"%s%H$O!"%j%/%(%9%H$,1~Ez$5$l$kA0$K!"(B - $B?7$7$$;R%W%m%;%9$,(B fork $B$5$l$k$N$rBT$?$J$/$F$b$h$$$h$&$K(B - $B$J$C$F$$$^$9!#(B</p> - - <p>$B?F%W%m%;%9$,%j%/%(%9%H$K1~Ez$9$k$N;R%W%m%;%9$r(B - $B$I$N$h$&$K@8@.$9$k$+$O!"(B +が使用するアドレスとポートの設定</a></seealso> + +<section id="how-it-works"><title>動作方法</title> + <p>一つのコントロールプロセスが、 + コネクションに対して listen して、しかるべき時に応答する + 子プロセスを起動します。Apache は常に幾つかの<dfn>スペア</dfn> + かアイドルなサーバプロセスを維持していて、それらは入ってきた + リクエストに応答できるように待機しています。 + このようにしてクライアントは、リクエストが応答される前に、 + 新しい子プロセスが fork されるのを待たなくてもよいように + なっています。</p> + + <p>親プロセスがリクエストに応答するの子プロセスを + どのように生成するかは、 <directive module="mpm_common">StartServers</directive>, <directive module="prefork">MinSpareServers</directive>, <directive module="prefork">MaxSpareServers</directive>, <directive module="mpm_common">MaxClients</directive> - $B$GD4@0$7$^$9!#0lHLE*$K!"(BApache $B$OHs>o$K<+N'E*$J$N$G!"(B - $BBgDq$N%5%$%H$G$O$3$l$i$N%G%#%l%/%F%#%V$r%G%U%)%k%HCM$+$iD4@0$9$k(B - $BI,MW$O$J$$$G$7$g$&!#(B - $BF1;~$K(B 256 $B$rD6$($k%j%/%(%9%H$K1~Ez$7$J$$$H$$$1$J$$%5%$%H$G$O!"(B + で調整します。一般的に、Apache は非常に自律的なので、 + 大抵のサイトではこれらのディレクティブをデフォルト値から調整する + 必要はないでしょう。 + 同時に 256 を超えるリクエストに応答しないといけないサイトでは、 <directive module="mpm_common">MaxClients</directive> - $B$rA}$d$9I,MW$,$"$k$G$7$g$&!#(B - $B0lJ}!"%a%b%j$N8B$i$l$F$$$k%5%$%H$G$O!"%9%i%C%7%s%0(B - ($B%a%b%j$H%G%#%9%/4V$G2?EY$b%9%o%C%W(B) $B$,5/$3$k$N$rKI$0$?$a$K(B + を増やす必要があるでしょう。 + 一方、メモリの限られているサイトでは、スラッシング + (メモリとディスク間で何度もスワップ) が起こるのを防ぐために <directive module="mpm_common">MaxClients</directive> - $B$r8:$i$9I,MW$,$"$k$G$7$g$&!#%W%m%;%9@8@.$N%A%e!<%K%s%0$K4X$9$k(B - $B>\$7$$>pJs$O!"(B<a - href="../misc/perf-tuning.html">$B@-G=$K4X$9$k%R%s%H(B</a> - $B$K$"$j$^$9!#(B</p> - - <p>$BDL>o(B Unix $B$G$O?F%W%m%;%9$O(B 80 $BHV%]!<%H$K%P%$%s%I$9$k$?$a$K(B - <code>root</code> $B$G5/F0$5$l$^$9$,!";R%W%m%;%9$d%9%l%C%I$O(B - $B$b$C$HDc$$8"8B$N%f!<%6$G(B Apache $B$K$h$C$F5/F0$5$l$^$9!#(B - <directive module="mpm_common">User</directive> $B$H(B + を減らす必要があるでしょう。プロセス生成のチューニングに関する + 詳しい情報は、<a + href="../misc/perf-tuning.html">性能に関するヒント</a> + にあります。</p> + + <p>通常 Unix では親プロセスは 80 番ポートにバインドするために + <code>root</code> で起動されますが、子プロセスやスレッドは + もっと低い権限のユーザで Apache によって起動されます。 + <directive module="mpm_common">User</directive> と <directive module="mpm_common">Group</directive> - $B%G%#%l%/%F%#%V$O(B - Apache $B$N;R%W%m%;%9$N8"8B$r@_Dj$9$k$N$KMQ$$$i$l$^$9!#(B - $B;R%W%m%;%9$O%/%i%$%"%s%H$KAw$k%3%s%F%s%DA4$F$rFI$a$J$$$H$$$1$^$;$s$,!"(B - $B2DG=$J8B$jI,MW:G>.8B$N8"8B$N$_$r;}$C$F$$$k$h$&$K$9$k$Y$-$G$9!#(B</p> + ディレクティブは + Apache の子プロセスの権限を設定するのに用いられます。 + 子プロセスはクライアントに送るコンテンツ全てを読めないといけませんが、 + 可能な限り必要最小限の権限のみを持っているようにするべきです。</p> <p><directive module="mpm_common">MaxRequestsPerChild</directive> - $B$O!"8E$$%W%m%;%9$rDd;_$7$F?7$7$$%W%m%;%9$r5/F0$9$k$3$H$K$h$C$F!"(B - $B$I$NDxEY$NIQEY$G%5!<%P$,%W%m%;%9$r%j%5%$%/%k$9$k$+$r@)8f$7$^$9!#(B</p> + は、古いプロセスを停止して新しいプロセスを起動することによって、 + どの程度の頻度でサーバがプロセスをリサイクルするかを制御します。</p> </section> <directivesynopsis location="mpm_common"><name>CoreDumpDirectory</name> @@ -130,23 +130,23 @@ <directivesynopsis> <name>MaxSpareServers</name> -<description>$B%"%$%I%k$J;R%5!<%P%W%m%;%9$N:GBg8D?t(B</description> +<description>アイドルな子サーバプロセスの最大個数</description> <syntax>MaxSpareServers <var>number</var></syntax> <default>MaxSpareServers 10</default> <contextlist><context>server config</context></contextlist> <usage> - <p><directive>MaxSpareServers</directive> $B%G%#%l%/%F%#%V$O!"(B - <em>$B%"%$%I%k$J(B</em>$B;R%5!<%P%W%m%;%9$N4uK>:GBg8D?t$r@_Dj$7$^$9!#(B - $B%"%$%I%k%W%m%;%9$H$O!"%j%/%(%9%H$r07$C$F$$$J$$%W%m%;%9$G$9!#(B - <directive>MaxSpareServers</directive> $B$h$j$bB?$$?t$,%"%$%I%k$G$"$l$P!"(B - $B?F%W%m%;%9$OD62a%W%m%;%9$r(B kill $B$7$^$9!#(B</p> - - <p>$BHs>o$K:.$s$G$$$k%5%$%H$G$N$_!"$3$N%Q%i%a!<%?$r%A%e!<%K%s%0$9$k$Y$-$G$9!#(B - $B$3$N%Q%i%a!<%?$rBg$-$/$9$k$H$$$&$3$H$O!"BgDq$N>l9g$O0-$$H/A[$G$9!#(B + <p><directive>MaxSpareServers</directive> ディレクティブは、 + <em>アイドルな</em>子サーバプロセスの希望最大個数を設定します。 + アイドルプロセスとは、リクエストを扱っていないプロセスです。 + <directive>MaxSpareServers</directive> よりも多い数がアイドルであれば、 + 親プロセスは超過プロセスを kill します。</p> + + <p>非常に混んでいるサイトでのみ、このパラメータをチューニングするべきです。 + このパラメータを大きくするということは、大抵の場合は悪い発想です。 <directive module="prefork">MinSpareServers</directive> - $B0J2<$K@_Dj$7$?>l9g!"(B<directive>MinSpareServers</directive> - <code>+1</code> $B$K<+F0D4@0$5$l$^$9!#(B</p> + 以下に設定した場合、<directive>MinSpareServers</directive> + <code>+1</code> に自動調整されます。</p> </usage> <seealso><directive module="prefork">MinSpareServers</directive></seealso> <seealso><directive module="mpm_common">StartServers</directive></seealso> @@ -154,20 +154,20 @@ <directivesynopsis> <name>MinSpareServers</name> -<description>$B%"%$%I%k$J;R%5!<%P%W%m%;%9$N:G>.8D?t(B</description> +<description>アイドルな子サーバプロセスの最小個数</description> <syntax>MinSpareServers <var>number</var></syntax> <default>MinSpareServers 5</default> <contextlist><context>server config</context></contextlist> <usage> - <p><directive>MaxSpareServers</directive> $B%G%#%l%/%F%#%V$O!"(B - <em>$B%"%$%I%k$J(B</em>$B;R%5!<%P%W%m%;%9$N4uK>:G>.8D?t$r@_Dj$7$^$9!#(B - $B%"%$%I%k%W%m%;%9$H$O!"%j%/%(%9%H$r07$C$F$$$J$$%W%m%;%9$G$9!#(B - <directive>MinSpareServers</directive> $B$h$j$b>/$J$$?t$,%"%$%I%k$G$"$l$P!"(B - $B?F%W%m%;%9$O:G9b$G(B 1 $BIC$K$D$-(B 1 $B8D$N3d9g$G?7$7$$;R%W%m%;%9$r@8@.$7$^$9!#(B</p> - - <p>$BHs>o$K:.$s$G$$$k%5%$%H$G$N$_!"$3$N%Q%i%a!<%?$r%A%e!<%K%s%0$9$k$Y$-$G$9!#(B - $B$3$N%Q%i%a!<%?$rBg$-$/$9$k$H$$$&$3$H$O!"BgDq$N>l9g$O0-$$H/A[$G$9!#(B</p> + <p><directive>MaxSpareServers</directive> ディレクティブは、 + <em>アイドルな</em>子サーバプロセスの希望最小個数を設定します。 + アイドルプロセスとは、リクエストを扱っていないプロセスです。 + <directive>MinSpareServers</directive> よりも少ない数がアイドルであれば、 + 親プロセスは最高で 1 秒につき 1 個の割合で新しい子プロセスを生成します。</p> + + <p>非常に混んでいるサイトでのみ、このパラメータをチューニングするべきです。 + このパラメータを大きくするということは、大抵の場合は悪い発想です。</p> </usage> <seealso><directive module="prefork">MaxSpareServers</directive></seealso> <seealso><directive module="mpm_common">StartServers</directive></seealso> diff --git a/docs/manual/mod/quickreference.xml.ja b/docs/manual/mod/quickreference.xml.ja index f4c1d0be7f..0529017781 100644 --- a/docs/manual/mod/quickreference.xml.ja +++ b/docs/manual/mod/quickreference.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE quickreference SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 395228:636495 (outdated) --> @@ -21,21 +21,21 @@ --> <quickreference metafile="quickreference.xml.meta"> - <title>$B%G%#%l%/%F%#%V(B $B%/%$%C%/%j%U%!%l%s%9(B</title> + <title>ディレクティブ クイックリファレンス</title> <summary> - <p>$B%G%#%l%/%F%#%V(B $B%/%$%C%/%j%U%!%l%s%9$G$O!"3F(B Apache $B@_Dj%G%#%l%/%F%#%V$N(B - $B;HMQJ}K!!"%G%U%)%k%HCM!"%9%F!<%?%9$H%3%s%F%-%9%H$r<($7$F$$$^$9!#(B - $B3F%G%#%l%/%F%#%V$N!"$h$j>\$7$$>pJs$K4X$7$F$O(B - <a href="directive-dict.html">$B%G%#%l%/%F%#%V<-=q(B</a>$B$r(B - $B$4Mw2<$5$$!#(B</p> + <p>ディレクティブ クイックリファレンスでは、各 Apache 設定ディレクティブの + 使用方法、デフォルト値、ステータスとコンテキストを示しています。 + 各ディレクティブの、より詳しい情報に関しては + <a href="directive-dict.html">ディレクティブ辞書</a>を + ご覧下さい。</p> - <p>$BBh(B 1 $BNsL\$O%G%#%l%/%F%#%V$NL>A0$H;HMQJ}K!$G$9!#(B - $BBh(B 2 $BNsL\$O(B ($B$b$7$"$l$P(B) $B%G%U%)%k%HCM$H$J$C$F$$$^$9!#(B - $B%G%U%)%k%HCM$,D9$9$.$FI=<($7$-$l$J$$>l9g$O!":G=i$NJ8;zNs$N8e$m$K(B - $B!V(B + $B!W$,B3$-$^$9!#(B</p> + <p>第 1 列目はディレクティブの名前と使用方法です。 + 第 2 列目は (もしあれば) デフォルト値となっています。 + デフォルト値が長すぎて表示しきれない場合は、最初の文字列の後ろに + 「 + 」が続きます。</p> - <p>$BBh(B 3, 4 $BNs$O!"2<$NI=$NCm<a$K=>$C$F!"(B - $B%G%#%l%/%F%#%V$N;HMQ$G$-$k%3%s%F%-%9%H$H!"(B - $B%G%#%l%/%F%#%V$N%9%F!<%?%9$,<($5$l$F$$$^$9!#(B</p> + <p>第 3, 4 列は、下の表の注釈に従って、 + ディレクティブの使用できるコンテキストと、 + ディレクティブのステータスが示されています。</p> </summary> </quickreference> diff --git a/docs/manual/mod/worker.xml.ja b/docs/manual/mod/worker.xml.ja index dc82001ac4..45adfa9998 100644 --- a/docs/manual/mod/worker.xml.ja +++ b/docs/manual/mod/worker.xml.ja @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="iso-2022-jp"?> +<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?> <!-- English Revision: 151408:431460 (outdated) --> @@ -23,100 +23,100 @@ <modulesynopsis metafile="worker.xml.meta"> <name>worker</name> -<description>$B%^%k%A%9%l%C%I$H%^%k%A%W%m%;%9$N%O%$%V%j%C%I7?(B -$B%&%'%V%5!<%P$r<BAu$7$?%^%k%A%W%m%;%C%7%s%0%b%8%e!<%k(B</description> +<description>マルチスレッドとマルチプロセスのハイブリッド型 +ウェブサーバを実装したマルチプロセッシングモジュール</description> <status>MPM</status> <sourcefile>worker.c</sourcefile> <identifier>mpm_worker_module</identifier> <summary> - <p>$B$3$N%^%k%A%W%m%;%C%7%s%0%b%8%e!<%k(B (MPM) - $B$O!"%^%k%A%9%l%C%I$H%^%k%A%W%m%;%9$N%O%$%V%j%C%I7?%5!<%P$r(B - $B<BAu$7$F$$$^$9!#%j%/%(%9%H$N1~Ez$K%9%l%C%I$r;H$&$H!"(B - $B%W%m%;%9%Y!<%9$N%5!<%P$h$j$b>/$J$$%7%9%F%`;q8;$G!"(B - $BB?$/$N%j%/%(%9%H$K1~Ez$9$k$3$H$,$G$-$^$9!#(B - $B$5$i$K!"B?$/$N%9%l%C%I$r;}$C$?J#?t$N%W%m%;%9$r0];}$9$k$3$H$G!"(B - $B%W%m%;%9%Y!<%9$N%5!<%P$N;}$D0BDj@-$rJ];}$7$F$$$^$9!#(B</p> - - <p>$B$3$N(B MPM $B$r@)8f$9$k$N$K;H$o$l$k:G$b=EMW$J%G%#%l%/%F%#%V$O!"(B - <directive module="mpm_common">ThreadsPerChild</directive> $B$H(B - <directive module="mpm_common">MaxClients</directive> $B$G$9!#(B - <directive module="mpm_common">ThreadsPerChild</directive> $B$O(B - $B3F;R%W%m%;%9$GMQ0U$5$l$k%9%l%C%I?t$r@)8f$7$F!"(B - <directive module="mpm_common">MaxClients</directive> $B$O(B - $B5/F0$5$l$k%9%l%C%I$NAm?t$N:GBgCM$r@)8B$7$^$9!#(B</p> + <p>このマルチプロセッシングモジュール (MPM) + は、マルチスレッドとマルチプロセスのハイブリッド型サーバを + 実装しています。リクエストの応答にスレッドを使うと、 + プロセスベースのサーバよりも少ないシステム資源で、 + 多くのリクエストに応答することができます。 + さらに、多くのスレッドを持った複数のプロセスを維持することで、 + プロセスベースのサーバの持つ安定性を保持しています。</p> + + <p>この MPM を制御するのに使われる最も重要なディレクティブは、 + <directive module="mpm_common">ThreadsPerChild</directive> と + <directive module="mpm_common">MaxClients</directive> です。 + <directive module="mpm_common">ThreadsPerChild</directive> は + 各子プロセスで用意されるスレッド数を制御して、 + <directive module="mpm_common">MaxClients</directive> は + 起動されるスレッドの総数の最大値を制限します。</p> </summary> <seealso><a href="../bind.html">Apache -$B$N;HMQ$9$k%"%I%l%9$H%]!<%H$N@_Dj(B</a></seealso> +の使用するアドレスとポートの設定</a></seealso> -<section id="how-it-works"><title>$BF0:nJ}K!(B</title> - <p>$B0l$D$N@)8fMQ%W%m%;%9(B ($B?F(B) $B$,;R%W%m%;%9$r5/F0$7$^$9!#(B - $B;R%W%m%;%9$O(B +<section id="how-it-works"><title>動作方法</title> + <p>一つの制御用プロセス (親) が子プロセスを起動します。 + 子プロセスは <directive module="mpm_common">ThreadsPerChild</directive> - $B%G%#%l%/%F%#%V$G;XDj$5$l$?0lDj?t$N%5!<%P%9%l%C%I$H@\B3$r(B - listen $B$9$k%9%l%C%I$r0l$D:n$j$^$9!#(B - Listener $B%9%l%C%I$O@\B3$,Mh$?$H$-$K%5!<%P%W%m%;%9$KEO$7$^$9!#(B</p> - - <p>Apache $B$O(B<dfn>$B%9%Z%"$N(B</dfn>$B!"$D$^$j%"%$%I%k$J%5!<%P%9%l%C%I$N(B - $B%W!<%k$r>o$K0];}$7$F$$$F!"$=$l$i$OF~$C$F$/$k%j%/%(%9%H$K(B - $BEz$($i$l$k$h$&$KBT5!$7$F$$$^$9!#(B - $B$3$N$h$&$K$7$F!"%/%i%$%"%s%H$O%j%/%(%9%H$N1~Ez$,F@$i$l$k$h$&$K$J$k$?$a$K(B - $B?7$7$$%9%l%C%I$d%W%m%;%9$,@8@.$5$l$k$N$r(B - $BBT$?$J$/$F$b$h$$$h$&$K$J$C$F$$$^$9!#(B - $B5/F0=i4|;~$N%W%m%;%9Am?t$O!"(B + ディレクティブで指定された一定数のサーバスレッドと接続を + listen するスレッドを一つ作ります。 + Listener スレッドは接続が来たときにサーバプロセスに渡します。</p> + + <p>Apache は<dfn>スペアの</dfn>、つまりアイドルなサーバスレッドの + プールを常に維持していて、それらは入ってくるリクエストに + 答えられるように待機しています。 + このようにして、クライアントはリクエストの応答が得られるようになるために + 新しいスレッドやプロセスが生成されるのを + 待たなくてもよいようになっています。 + 起動初期時のプロセス総数は、 <directive module="mpm_common">StartServers</directive> - $B%G%#%l%/%F%#%V$G@_Dj$5$l$^$9!#$=$N8e$N2TF/Cf$K!"(B - Apache $B$OA4%W%m%;%9$N%"%$%I%k%9%l%C%I$N9g7W?t$r8+@Q$b$C$F!"(B - <directive module="mpm_common">MinSpareThreads</directive> $B$H(B + ディレクティブで設定されます。その後の稼働中に、 + Apache は全プロセスのアイドルスレッドの合計数を見積もって、 + <directive module="mpm_common">MinSpareThreads</directive> と <directive module="mpm_common">MaxSpareThreads</directive> - $B$G;XDj$5$l$?HO0O$NCf$K$3$N?t$,<}$^$k$h$&$K(B fork $B$7$?$j(B - kill $B$7$?$j$7$^$9!#$3$NA`:n$OHs>o$K<+N'E*$J$N$G!"(B - $B$3$l$i$N%G%#%l%/%F%#%V$r%G%U%)%k%HCM$+$iJQ99$9$kI,MW$O(B - $B$a$C$?$K$J$$$G$7$g$&!#(B - $BF1;~$K1~Ez$9$k$3$H$N$G$-$k%/%i%$%"%s%H?t$N:GBg?t(B - ($B$D$^$jA4%W%m%;%9Cf$NAm%9%l%C%I?t$N:GBgCM(B) $B$O(B + で指定された範囲の中にこの数が収まるように fork したり + kill したりします。この操作は非常に自律的なので、 + これらのディレクティブをデフォルト値から変更する必要は + めったにないでしょう。 + 同時に応答することのできるクライアント数の最大数 + (つまり全プロセス中の総スレッド数の最大値) は <directive module="mpm_common">MaxClients</directive> - $B%G%#%l%/%F%#%V$G7hDj$5$l$^$9!#(B - $B3hF0Cf$N;R%W%m%;%9?t$N:GBgCM$O(B - <directive module="mpm_common">MaxClients</directive> $B$r(B - <directive module="mpm_common">ThreadsPerChild</directive> $B$G3d$C$?(B - $B$b$N$K$J$j$^$9!#(B</p> + ディレクティブで決定されます。 + 活動中の子プロセス数の最大値は + <directive module="mpm_common">MaxClients</directive> を + <directive module="mpm_common">ThreadsPerChild</directive> で割った + ものになります。</p> - <p>$B3hF0Cf$N;R%W%m%;%9$N?t$H;R%W%m%;%9Cf$N%5!<%P%9%l%C%I$N?t$N1[$($i$l$J$$(B - $B>e8B$r@_Dj$9$k%G%#%l%/%F%#%V$,Fs$D$"$j$^$9!#$3$l$i$O%5!<%P$r(B - $B40A4$KDd;_$7$F!":F5/F0$9$k$3$H$G$7$+JQ99$9$k$3$H$O$G$-$^$;$s!#(B + <p>活動中の子プロセスの数と子プロセス中のサーバスレッドの数の越えられない + 上限を設定するディレクティブが二つあります。これらはサーバを + 完全に停止して、再起動することでしか変更することはできません。 <directive module="mpm_common">ServerLimit - </directive> $B$O3hF0Cf$N;R%W%m%;%9$N1[$($i$l$J$$>e8B$r@_Dj$7!"(B - <directive module="mpm_common">MaxClients</directive> $B%G%#%l%/%F%#%V(B - $B$NCM$r(B <directive module="mpm_common"> - ThreadsPerChild</directive> $B$NCM$G3d$C$?CM0J>e$G$"$k(B - $BI,MW$,$"$j$^$9!#(B<directive module="mpm_common">ThreadLimit</directive> $B$O(B - $B%5!<%P%9%l%C%I$N1[$($i$l$J$$>e8B$G!"(B<directive - module="mpm_common">ThreadsPerChild</directive> $B%G%#%l%/%F%#%V$N(B - $BCM0J>e$G$"$kI,MW$,$"$j$^$9!#%G%U%)%k%H0J30$NCM$r;XDj$9$k>l9g$O(B - $BB>$N(B <module>worker</module> $B%G%#%l%/%F%#%V$h$j$bA0$K=q$+$l$F$$$k(B - $BI,MW$,$"$j$^$9!#(B</p> - - <p>$B3hF0Cf$N;R%W%m%;%972$K2C$($F!">/$J$/$H$b0l$D$N%5!<%P%9%l%C%I$,(B - $B4{B8$N%/%i%$%"%s%H$+$i$N@\B3$r07$C$F$$$k=*N;$7$h$&$H$7$F$$$k(B - $B;R%W%m%;%9$,$"$k2DG=@-$,$"$j$^$9!#=*N;Cf$N%W%m%;%9$O(B <directive - module="mpm_common">MaxClients</directive> $B$G;XDj$5$l$??t$^$G(B - $BB8:_$G$-$^$9$,!"<B:]$K4|BT$5$l$k?t$O$:$C$H>/$J$/$J$j$^$9!#$3$N(B - $B?6Iq$$$O3F;R%W%m%;%9$r=*N;$5$;$J$$$h$&$K$9$k$3$H$G2sHr$G$-$^$9!#(B - $B$3$l$O0J2<$NMM$K$7$F<B8=$G$-$^$9!#(B</p> + </directive> は活動中の子プロセスの越えられない上限を設定し、 + <directive module="mpm_common">MaxClients</directive> ディレクティブ + の値を <directive module="mpm_common"> + ThreadsPerChild</directive> の値で割った値以上である + 必要があります。<directive module="mpm_common">ThreadLimit</directive> は + サーバスレッドの越えられない上限で、<directive + module="mpm_common">ThreadsPerChild</directive> ディレクティブの + 値以上である必要があります。デフォルト以外の値を指定する場合は + 他の <module>worker</module> ディレクティブよりも前に書かれている + 必要があります。</p> + + <p>活動中の子プロセス群に加えて、少なくとも一つのサーバスレッドが + 既存のクライアントからの接続を扱っている終了しようとしている + 子プロセスがある可能性があります。終了中のプロセスは <directive + module="mpm_common">MaxClients</directive> で指定された数まで + 存在できますが、実際に期待される数はずっと少なくなります。この + 振舞いは各子プロセスを終了させないようにすることで回避できます。 + これは以下の様にして実現できます。</p> <ul> <li><directive module="mpm_common"> - MaxRequestsPerChild</directive> $B$NCM$r(B 0 $B$K@_Dj$9$k(B</li> + MaxRequestsPerChild</directive> の値を 0 に設定する</li> <li><directive module="mpm_common"> - MaxSpareThreads</directive> $B$NCM$r(B + MaxSpareThreads</directive> の値を <directive module="mpm_common">MaxClients</directive> - $B$HF1$8CM$K$9$k(B</li> + と同じ値にする</li> </ul> - <p><module>worker</module> MPM $B$NE57?E*$J%W%m%;%9!&%9%l%C%I@)8f$N(B - $B@_Dj$G$O!"<!$N$h$&$K$J$j$^$9!#(B</p> + <p><module>worker</module> MPM の典型的なプロセス・スレッド制御の + 設定では、次のようになります。</p> <example> ServerLimit 16<br /> @@ -127,21 +127,21 @@ ThreadsPerChild 25 </example> - <p>$BDL>o(B Unix $B$G$O?F%W%m%;%9$O(B 80 $BHV%]!<%H$K%P%$%s%I$9$k$?$a$K(B - <code>root</code> $B$G5/F0$5$l$^$9$,!";R%W%m%;%9$d%9%l%C%I$O(B - $B$b$C$HDc$$8"8B$N%f!<%6$G(B Apache $B$K$h$C$F5/F0$5$l$^$9!#(B - <directive module="mpm_common">User</directive> $B$H(B - <directive module="mpm_common">Group</directive> $B%G%#%l%/%F%#%V$O(B - Apache $B$N;R%W%m%;%9$N8"8B$r@_Dj$9$k$N$KMQ$$$i$l$^$9!#(B - $B;R%W%m%;%9$O%/%i%$%"%s%H$KAw$k%3%s%F%s%DA4$F$rFI$a$J$$$H$$$1$^$;$s$,!"(B - $B2DG=$J8B$jI,MW:G>.8B$N8"8B$N$_$r;}$C$F$$$k$h$&$K$9$k$Y$-$G$9!#(B - $B$5$i$K!"(B<program>suexec</program> - $B$,;HMQ$5$l$F$$$J$$8B$j!"$3$l$i$N%G%#%l%/%F%#%V$O(B - CGI $B%9%/%j%W%H$G7Q>5$5$l$k8"8B$b@_Dj$7$^$9!#(B</p> + <p>通常 Unix では親プロセスは 80 番ポートにバインドするために + <code>root</code> で起動されますが、子プロセスやスレッドは + もっと低い権限のユーザで Apache によって起動されます。 + <directive module="mpm_common">User</directive> と + <directive module="mpm_common">Group</directive> ディレクティブは + Apache の子プロセスの権限を設定するのに用いられます。 + 子プロセスはクライアントに送るコンテンツ全てを読めないといけませんが、 + 可能な限り必要最小限の権限のみを持っているようにするべきです。 + さらに、<program>suexec</program> + が使用されていない限り、これらのディレクティブは + CGI スクリプトで継承される権限も設定します。</p> <p><directive module="mpm_common">MaxRequestsPerChild</directive> - $B$O!"8E$$%W%m%;%9$rDd;_$7$F?7$7$$%W%m%;%9$r5/F0$9$k$3$H$K$h$C$F!"(B - $B$I$NDxEY$NIQEY$G%5!<%P$,%W%m%;%9$r%j%5%$%/%k$9$k$+$r@)8f$7$^$9!#(B</p> + は、古いプロセスを停止して新しいプロセスを起動することによって、 + どの程度の頻度でサーバがプロセスをリサイクルするかを制御します。</p> </section> <directivesynopsis location="mpm_common"><name>AcceptMutex</name> |