From: Yoshiki Hayashi Date: Sat, 29 Nov 2003 18:24:14 +0000 (+0000) Subject: Back port Japanese translation from 2.1. X-Git-Tag: 2.0.49~334 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1b5c260d7cb2eb36fe0f9d261f1abac91956e537;p=thirdparty%2Fapache%2Fhttpd.git Back port Japanese translation from 2.1. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/APACHE_2_0_BRANCH@101927 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/docs/manual/bind.xml.ja b/docs/manual/bind.xml.ja index 3431a895fe1..99a61cb2410 100644 --- a/docs/manual/bind.xml.ja +++ b/docs/manual/bind.xml.ja @@ -1,7 +1,7 @@ - + @@ -10,13 +10,13 @@

Apache が使用するアドレスとポートの設定をします。

- + バーチャルホスト DNS の問題
概要 - + core @@ -27,8 +27,8 @@ Listen - - + +

Apache は起動時に、ローカルマシンのあるポートあよびアドレス に対して接続し、リクエストが来るのを待ちます。 デフォルトではマシンのすべてのアドレスに対して listen します。 diff --git a/docs/manual/cgi_path.xml.ja b/docs/manual/cgi_path.xml.ja index cea183e1b04..b982eefe191 100644 --- a/docs/manual/cgi_path.xml.ja +++ b/docs/manual/cgi_path.xml.ja @@ -1,7 +1,7 @@ - + @@ -29,7 +29,7 @@ Alias /cgi-ralph /usr/local/httpd/cgi-bin/user.cgi/ralph - +

この場合、user.cgi は CGI スクリプトであり、 "/ralph" は、CGI に渡される情報です。もし上の設定がなされていて、 diff --git a/docs/manual/content-negotiation.xml.ja b/docs/manual/content-negotiation.xml.ja index 3fec243598f..13fdf04c5cf 100644 --- a/docs/manual/content-negotiation.xml.ja +++ b/docs/manual/content-negotiation.xml.ja @@ -2,7 +2,7 @@ - + コンテントネゴシエーション @@ -18,8 +18,7 @@

コンテントネゴシエーションは mod_negotiation - モジュールによって - 提供されていて、デフォルトで組み込まれています。

+ モジュールによって提供されていて、デフォルトで組み込まれています。

コンテントネゴシエーションについて @@ -30,8 +29,8 @@ もっとも適した選択をする方法の一つには、インデックスページを ユーザに見せて、ユーザに選んでもらう方法があります。 しかし、サーバが自動的に選ぶことができる場合が多くあります。 - これは、ブラウザがリクエスト情報毎の情報の一部に、 - どの表現を嗜好するかを送ることで動作しています。 + これは、ブラウザがリクエスト毎に、 + どの表現を嗜好するかという情報を送ることで動作しています。 例えばブラウザは、可能ならフランス語で情報を見たい、 不可能ならその代わりに英語でもよいと、 自分の嗜好を知らせることができます。 @@ -58,7 +57,8 @@

Apache は HTTP/1.1 規格で定義されている 'server driven' コンテントネゴシエーションをサポートしています。 - Accept, Accept-Language, Accept-Charset, Accept-Encoding + Accept, Accept-Language, + Accept-Charset, Accept-Encoding リクエストヘッダを完全にサポートしています。Apache は 'transparent' コンテントネゴシエーションもサポートしていますが、 これは RFC 2295 と RFC 2296 で定義されている試験的な @@ -103,7 +103,7 @@

タイプマップは type-map ハンドラ (もしくは、古い Apache - の設定と下位互換である mime タイプ + の設定と下位互換である MIME タイプ application/x-type-map) に関連付けられたドキュメントです。 この機能を使うためには、あるファイルの拡張子を @@ -111,7 +111,9 @@ として定義するようなハンドラを、 設定ファイル中に置く必要があることに注意してください。 これは

+ AddHandler type-map .var +

をサーバ設定ファイル中に書くことが一番良い方法です。

タイプマップファイルは記述するリソースと同じ名前を持っていて、 @@ -262,6 +264,7 @@

ネゴシエーションの次元 + @@ -271,7 +274,7 @@ - - - @@ -299,7 +302,7 @@ -
次元
メディアタイプブラウザは Accept + ブラウザは Accept ヘッダフィールドで優先傾向を指定します。 アイテムそれぞれは、関連した品質数値を持つことができます。 variant の説明も品質数値を持つことができます @@ -281,7 +284,7 @@
言語ブラウザは Accept-Language + ブラウザは Accept-Language ヘッダフィールドで優先傾向を指定します。 要素それぞれに品質数値を持たせることができます。 variants は 0 か 1 つかそれ以上の言語と @@ -291,7 +294,7 @@
エンコーディングブラウザは Accept-Encoding + ブラウザは Accept-Encoding ヘッダフィールドで優先傾向を指定します。 要素それぞれに品質数値を持たせることができます。
文字セットブラウザは Accept-Charset + ブラウザは Accept-Charset ヘッダフィールドで優先傾向を指定します。 要素それぞれに品質数値を持たせることができます。 variant はメディアタイプのパラメータとして文字セットを @@ -332,13 +335,13 @@ 複数 variant が残っていれば、次のテストに進みます。
    -
  1. variant のメディアタイプの品質数値と Accept +
  2. variant のメディアタイプの品質数値と Accept ヘッダの品質数値との積を計算して、最高値の variant を選びます。
  3. 言語品質数値が最高の variant を選びます。
  4. -
  5. (もしあれば) Accept-Language ヘッダの言語順か、 +
  6. (もしあれば) Accept-Language ヘッダの言語順か、 (もしあれば) LanguagePriority ディレクティブの言語順で最適な言語の variant を選びます。
  7. @@ -347,7 +350,7 @@ (text/html メディアタイプのバージョンを与えるために使われます) を持つ variant を選びます。 -
  8. Accept-Charset ヘッダ行で与えられている最高の文字セット +
  9. Accept-Charset ヘッダ行で与えられている最高の文字セット メディアパラメータを持つ variant を選びます。 明示的に除外されていない限り、ISO-8859-1 が許容されるようになっています。 @@ -381,7 +384,7 @@
  10. アルゴリズムを使って一つの「最適な」variant を選びましたので、 それを応答として返します。ネゴシエーションの次元を指定するために - HTTP レスポンスヘッダ Vary が設定されます + HTTP レスポンスヘッダ Vary が設定されます (リソースのキャッシュをする時に、 ブラウザやキャッシュはこの情報を使うことができます)。 以上で終わり。
  11. @@ -391,26 +394,26 @@ 406 ステータス ("No Acceptable representation" を意味する) が、利用可能な variant のリストのついた HTML ドキュメントとともに返されます。 - 相違の次元を示す HTTP Vary ヘッダも設定されます。 + 相違の次元を示す HTTP Vary ヘッダも設定されます。
品質の値を変える -

上記の Apaceh ネゴシエーションアルゴリズムの厳格な解釈で +

上記の Apache ネゴシエーションアルゴリズムの厳格な解釈で 得られるであろう値から、Apache は品質数値を時々変えます。 これは、このアルゴリズムで完全ではない、あるいは正確でない情報を送る ブラウザ向けによりよい結果を得るために行われます。 かなりポピュラーなブラウザで、もしないと間違った variant - を選択する結果になってしまうような Accept + を選択する結果になってしまうような Accept ヘッダ情報を送るものもあります。 ブラウザが完全で正しい情報を送っていれば、 この数値変化は適用されません。

メディアタイプとワイルドカード -

Accept: リクエストヘッダはメディアタイプの優先傾向を指定します。 +

Accept: リクエストヘッダはメディアタイプの優先傾向を指定します。 これはまた、"image/*" や "*/*" といった「ワイルドカード」メディアタイプを含むことができます。 ここで * は任意の文字列にマッチします。 @@ -443,12 +446,12 @@ 明示的にリストされているタイプに合致する variant がない場合にのみ、 他のタイプが返されます。

-

もし Accept: ヘッダが q 値を全く含んでいなければ、 +

もし Accept: ヘッダが q 値を全く含んでいなければ、 望みの挙動をするために、 Apache は "*/*" があれば 0.01 の q 値を設定します。 また、"type/*" の形のワイルドカードには 0.02 の q 値を設定します (ですからこれらは "*/*" のマッチよりも優先されます)。 - もし Accept: ヘッダ中のメディアタイプのどれかが q + もし Accept: ヘッダ中のメディアタイプのどれかが q 値を含んでいれば、これらの特殊な値は適応されず、 正しい情報を送るブラウザからのリクエストは期待通りに 動作するようになります。

@@ -461,11 +464,11 @@ ネゴシエーションアルゴリズムが幾つか追加されました。

サーバのページをクライアントがリクエストしたけれども、 - ブラウザの送ってきた Accept-Language に合致するページが一つも + ブラウザの送ってきた Accept-Language に合致するページが一つも 見つからなかった場合に、サーバは "No Acceptable Variant" か "Multiple Choices" レスポンスをクライアントに返します。 これらのエラーメッセージを返さないように、 - このような場合には Apache が Accept-Language を無視して、 + このような場合には Apache が Accept-Language を無視して、 クライアントのリクエストに明示的には合致しないドキュメントを 提供するように設定できます。 ForceLanguagePriority @@ -500,6 +503,21 @@ このような処理は、HTTP 1.1 規格との整合性を維持して、 適切に設定されたクライアントともきちんと動作するために 必要です。

+ +

より高度なテクニック (Cookie や特殊な URL パス等) + においてもユーザの言語選択をサポートするため、 + Apache 2.0.47 からは、mod_negotiation + が環境変数 prefer-language + を認識するようになりました。 + この変数が存在して、適切な言語タグが代入されているのであれば、 + mod_negotiation は合致する variant + を選択しようとします。合致するものが無ければ、 + 通常のネゴシエーション手順が適用されます。

+ + Example + SetEnvIf Cookie "language=en" prefer-language=en
+ SetEnvIf Cookie "language=fr" prefer-language=fr +
@@ -512,7 +530,7 @@ に印を付けるために、新たに {encoding ..} 要素を variant リスト中に使っています。 リスト中のエンコードされた variant を認識し、 -Accept-Encoding リクエストヘッダに従って許容される +Accept-Encoding リクエストヘッダに従って許容される エンコードをもった variant は、どれでも候補 variant として使用するように、 RVSA/1.0 アルゴリズム (RFC 2296) の実装が拡張されました。 @@ -549,6 +567,8 @@ RVSA/1.0 の実装では、最適な variant が見つかるまで、

ファイル名と、それに対して使えるリンクと使えないリンクの例です:

+ + diff --git a/docs/manual/custom-error.xml.ja b/docs/manual/custom-error.xml.ja index 89bd3dfc657..e0ce4f6a9b2 100644 --- a/docs/manual/custom-error.xml.ja +++ b/docs/manual/custom-error.xml.ja @@ -1,12 +1,12 @@ - + - + カスタムエラーレスポンス - +

ウェブマスターが何らかのエラーや問題に対する Apache の反応を設定できるようにする追加機能を提供します。

diff --git a/docs/manual/dns-caveats.xml.ja b/docs/manual/dns-caveats.xml.ja index 5c62f2cdae9..35d4de6b77b 100644 --- a/docs/manual/dns-caveats.xml.ja +++ b/docs/manual/dns-caveats.xml.ja @@ -1,12 +1,12 @@ - + - + DNS と Apache にまつわる注意事項 - +

本文書の内容は次の一言に尽きます。「Apache が設定ファイルを読み込むときに DNS を使用する必要がないようにして下さい」。Apache が設定ファイルを @@ -15,39 +15,39 @@ (他のユーザからヒットを盗むことを含みます) の問題に直面するかもしれません。

- +
簡単な例 - + <VirtualHost www.abc.dom>
ServerAdmin webgirl@abc.dom
DocumentRoot /www/abc
</VirtualHost>
- +

Apache が正常に機能するには、バーチャルホスト毎に必ず二つの 情報が必要になります。それは、 ServerName と、そのサーバが応答するための IP (最低一つ) です。 - この例では IP アドレスを含んでいませんので、Apache は DNS + 上記例では IP アドレスを含んでいませんので、Apache は DNS を使用して www.abc.dom を見つけなければなりません。 何らかの理由で設定ファイルを読み込んでいるときに DNS が利用できなかった場合、 バーチャルホストは設定されません。 そして、そのバーチャルホストに対するヒットには応答がなされません (Apache 1.2 以前では起動すらしません)。

- +

www.abc.dom のアドレスが 10.0.0.1 だとします。では、次の設定について考えてみましょう。

- + <VirtualHost 10.0.0.1>
ServerAdmin webgirl@abc.dom
DocumentRoot /www/abc
</VirtualHost>
- +

現在のリリースでは Apache は DNS 逆引きを使用して このバーチャルホストの ServerName を見つけます。 @@ -57,9 +57,9 @@ IP ベースであれば概ね動作します。しかしながら、サーバ名を 含む完全な URL を生成しなければならない場合は、正しい URL の生成ができません。

- +

次の例は上記の問題を解決しています。

- + <VirtualHost 10.0.0.1>
ServerName www.abc.dom
@@ -68,10 +68,10 @@ </VirtualHost>
- +
サービス拒否 - +

サービス拒否が起こる場合、(少なくとも) 二つのケースがあります。 Apache 1.2 より前を実行している場合、バーチャルホストのための 上記の二つの DNS 検索のうち一つ失敗すれば起動すらしません。 @@ -80,10 +80,10 @@ DNS は顧客自身で管理している場合、単に www.abc.dom レコードを削除するだけで、 (1.2 より前の) サーバを起動不能にすることができます。

- +

もう一つのケースは、より気付きにくいものです。 次の設定について考えてみましょう。

- + <VirtualHost www.abc.dom>
  ServerAdmin webgirl@abc.dom
@@ -95,7 +95,7 @@   DocumentRoot /www/def
</VirtualHost>
- +

10.0.0.1 を www.abc.dom に、 10.0.0.2 を www.def.dom に割り当てているとします。 また、def.dom は顧客自身の DNS @@ -106,7 +106,7 @@ 設定するだけです。DNS は顧客側の DNS でコントロールされているので、 www.def.dom レコードが好きな場所を指すように 設定できてしまうのを止めさせることができません。

- +

10.0.0.1 に対するリクエスト (http://www.abc.dom/whatever 形式の URL を入力したユーザからのもの全てを含みます) @@ -117,10 +117,10 @@ 深い議論が必要になります。おおざっぱな説明はこちらに記述されています。

- +
「主サーバ」アドレス - +

Apache 1.1 での 名前ベースのバーチャルホストのサポート 追加の際に、 Apache は httpd の実行されているホストの IP @@ -132,7 +132,7 @@ を呼び出すかをします。 その後、得られたアドレスで DNS 検索を行ないます。 現在のところ、この DNS 検索を回避する方法はありません。

- +

DNS サーバがダウンして、この検索ができない事態が起こることを 恐れているのであれば、/etc/hosts にホスト名を記述しておくことができます @@ -142,7 +142,7 @@ その方法は、どの OS を使用しているかに依存しますが、 /etc/resolv.conf/etc/nsswitch.conf を編集することで設定できます。

- +

もし他の理由で DNS を利用する必要がない場合は、 HOSTRESORDER 環境変数を「 local 」に設定することでそのようにできます。以上これらの事柄は、どんな @@ -151,43 +151,43 @@ CGI にも影響を与えます。man ページや使用している OS の FAQ で調べると良いでしょう。

- +
以上の問題を解決する方法 - +
  • VirtualHost で IP アドレスを使用する。
  • - +
  • Listen で IP アドレスを使用する。
  • - +
  • 全てのバーチャルホストが明示的に ServerName を持つようにする。
  • - +
  • 何も応答しない <VirtualHost _default_:*> サーバを作る。
- +
付録: 将来的な方向性 - +

DNS に関して、現状は全く宜しくありません。Apache 1.2 で、 DNS のイベントが失敗しても少なくとも起動プロセスが続くようにしましたが、 これが最高の解決方法ではないでしょう。アドレスの再割り当てが必要不可避 となっている今日のインターネットにおいては、 設定ファイルの中で明示的な IP アドレスを要求する仕様は、 全く宜しくありません。

- +

盗用のサービスアタックに関して行なうべき事は、 DNS 順引きを行なって得られたアドレスに対する DNS 逆引きを行なって、二つの名前を比較することです。 @@ -195,14 +195,14 @@ こうするためには逆引き DNS が適切に設定されている必要があります (FTP サーバや TCP ラッパーのおかげで「二重逆引き」DNS は一般的に なっていますので、管理者にはお馴染みものでしょう)。

- +

IP アドレスが使用されていなくて DNS が失敗した場合は、 どうしてもバーチャルホストウェブサーバを信頼性を確保して 起動させることは不可能のようです。 設定の一部を無効にするというような部分的な解決では、 サーバが何をするようにするかにもよりますが、 そのサーバが起動しないより確実に悪い状況になるでしょう。

- +

HTTP/1.1 が開発され、ブラウザやプロキシが Host ヘッダを発行するようになったので、IP ベースのバーチャルホストを 全く使用しなくても済むようになるかもしれません。 diff --git a/docs/manual/env.xml.ja b/docs/manual/env.xml.ja index f0624655706..eeeb9b192cd 100644 --- a/docs/manual/env.xml.ja +++ b/docs/manual/env.xml.ja @@ -1,7 +1,7 @@ - + @@ -55,11 +55,11 @@ PassEnv ディレクティブにより、Apache が起動されたシェルの 環境変数を渡すこともできます。

- +
リクエスト毎に条件に基づいて設定する - +

より柔軟性を高めるために、mod_setenvif で提供されているディレクティブを使用することで、リクエストの 特性に基づいて環境変数を設定することができます。例えば、特定のブラウザ @@ -70,38 +70,38 @@ ディレクティブにおいて環境変数を設定する [E=...] オプションを使用することで、 より柔軟な設定を行なうことができます。

- +
一意な識別子 - +

mod_unique_id は、非常に限られた条件の下で 「すべて」のリクエストについて、一意であることが保証されている値を環境変数 UNIQUE_ID に設定します。

- +
標準 CGI 変数 - +

Apache の設定ファイルで設定された環境変数とシェルから渡される 環境変数に加えて、CGI スクリプトと SSI ページには CGI の仕様で要求されている、 リクエストのメタ情報を持った環境変数の組が提供されます。

- +
いくつかの注意 - +
  • 環境を操作するディレクティブを使って標準 CGI 変数を上書きしたり変更したりすることはできません。
  • - +
  • CGI スクリプトを起動するために suexec が使用されている場合、CGI スクリプトが起動するために、環境変数は安全な環境変数の組に整理されます。 この安全な環境変数の集合は、コンパイル時に suexec.c で定義されます。
  • - +
  • 移植性のために、環境変数の名前はアルファベット、 数字とアンダースコア (訳注: '_') だけから成ります。 さらに、最初の文字は数字であってはいけません。 @@ -112,7 +112,7 @@
環境変数の使用 - + mod_access @@ -137,28 +137,28 @@
CGI スクリプト - +

環境変数の主な利用法の一つは、CGI スクリプトに情報を伝えることです。 上で説明されているように、CGI スクリプトに渡される環境変数は Apache の設定により設定される変数に加えて、リクエストの標準のメタ情報を含んでいます。 詳細は CGI チュートリアル を参照してください。

- +
SSI ページ - +

mod_include の INCLUDES フィルタで処理される server-parsed (SSI) ドキュメントでは、echo 要素を使用すると環境変数が出力されます。 また、ページのある部分がリクエストの性質に応じて変更されるように、 環境変数をフロー制御要素で使うことができます。詳細は SSI チュートリアル を参照してください。

- +
アクセス制御 - +

allow from env= ディレクティブと deny from env= ディレクティブを使用して、サーバへのアクセスを環境変数の値で制御することができます。 SetEnvIf @@ -166,11 +166,11 @@ サーバへのアクセス制御を柔軟に行なうことができるようになります。 たとえば、これらのディレクティブを使用して、特定のブラウザ (User-Agent) からのアクセスを拒否することができます。

- +
条件付きログ記録 - +

LogFormat ディレクティブのオプション %e を使用することで、環境変数をアクセスログに記録することができます。さらに、 @@ -183,18 +183,18 @@ gif で終わるファイル名へのリクエストはログに記録しない、 違うサブネットのクライアントからのリクエストだけをログに記録する、 という選択が可能です。

- +
条件付き応答ヘッダ - +

Header ディレクティブは環境変数の存在や不在によってクライアントへの応答に特定の HTTP ヘッダを付けるかどうかを決めることができます。 これにより、たとえば、クライアントからのリクエスト にあるヘッダがある場合にのみ特定の応答ヘッダを送る、というようなことが できます。

- +
@@ -209,7 +209,7 @@
URL の書き換え - +

RewriteCond ディレクティブで評価文字列として %{ENV:...} 式を指定することで、mod_rewrite @@ -220,10 +220,10 @@

- +
特別な目的の環境変数 - +

互換性の問題を解決するために、特定のクライアントと通信しているときは Apache の動作を変更できる機構が導入されました。できるだけ柔軟にするために、 これらの機構は環境変数を定義することで呼び出されます。普通は、 @@ -231,17 +231,17 @@ ディレクティブを使いますが、たとえば SetEnv ディレクティブや PassEnv ディレクティブも使用することができます。

- +
downgrade-1.0 - +

これを指定することで、リクエストが HTTP/1.0 より新しいプロトコルの場合でも、HTTP/1.0 として扱われます。

- +
force-no-vary - +

応答ヘッダがクライアントに送られる前に Vary フィールドを取り除きます。 クライアントの中にはこのフィールドを正しく解釈しないものがあります @@ -249,11 +249,11 @@ のページを参照してください)。この変数を設定することでその問題を回避 することができます。この変数を設定すると、force-response-1.0 が設定されたことになります。

- +
force-response-1.0 - +

これが設定されていると、HTTP/1.0 リクエストを発行するクライアントに対しては 常に HTTP/1.0 で応答するようになります。この機能は、 元々は AOL のプロキシの問題のために実装されました。HTTP/1.0 クライアントの中には、 @@ -276,14 +276,25 @@

nokeepalive - +

これが設定されている場合は、KeepAlive を使用しないようにします。

- + +
prefer-language + +

mod_negotiation の挙動に影響を与えます。 + (en, ja, x-klingonといった) + 言語タグが格納されていれば、その言語の variant を送信しようとします。 + そのような variant がない場合は、 + 通常のネゴシエーション処理が + 適用されます。

+ +
+
redirect-carefully - +

これはクライアントへのリダイレクトの送信をサーバがより注意深く 行なうようにします。 これは通常、リダイレクトに際してクライアントに @@ -291,7 +302,7 @@ マイクロソフトのウェブフォルダのソフトが DAV メソッドによるディレクトリのリソースへのリダイレクトの扱いに 問題がり、それを回避するために実装されました。

- +
@@ -304,14 +315,14 @@ 場合に表示するテキストが含まれます。 通常、このテキストに合致したキャラクタセット、ISO-8859-1 でラベル付けをします。

-

しかしながら、リダイレクト先のページがそれとは異なるキャラクタセットを - 使用していた際、ある問題のあるブラウザのバージョンでは、実際の - (訳注:リダイレクト先のページの) キャラクタセットではなく、 - リダイレクトのテキストのキャラクタセットを使用します。 - その結果、例えば変な描画が行なわれたりして、読めなくなります。

+

しかし、リダイレクト先が別の文字セットを使っている場合、 + ある問題のあるブラウザのバージョンでは、 + リダイレクト先の実際の文字セットの代わりに、 + リダイレクト元の文字セットを使ってしまうことがあります。 + その結果、例えば変な描画が行なわれたりして、読めなくなったりします。

この環境変数を設定することで、リダイレクションテキストに対する - キャラクタセットの指定を除去して、それら問題のあるブラウザでも - 目的のページがきちんと表示されるようにできます。

+ キャラクタセットの指定を除去しますので、それら問題のあるブラウザでも + リダイレクト先の文字セットを正しく使うようにできます。

@@ -319,10 +330,10 @@
- +
おかしな挙動をするクライアントに対してプロトコルの動作を変更する - +

クライアントに関する既知の問題に対処するために、以下の行を httpd.conf に入れることを推奨しています。

@@ -349,7 +360,7 @@ BrowserMatch "JDK/1\.0" force-response-1.0
画像へのリクエストをアクセスログに記録しない - +

この例では、画像へのリクエストがアクセスログに現れないようにします。 これを変更することで、特定のディレクトリのログ収集をやめたり、 特定のホストからのリクエストのログ収集をやめたりすることが簡単にできます。 @@ -359,11 +370,11 @@ SetEnvIf Request_URI \.gif image-request SetEnvIf Request_URI \.jpg image-request SetEnvIf Request_URI \.png image-request CustomLog logs/access_log common env=!image-request - +

「画像の盗用」を防ぐ - +

この例は、別のサーバにいる人が、あなたのサーバにある画像を inline 画像として使用することを防ぎます。 これは推奨されている設定ではありませんが、ある限定された状況では有効です。 @@ -378,7 +389,7 @@ SetEnvIf Referer "^$" local_referal Deny from all Allow from env=local_referal </Directory> - +

この手法に関する詳しい情報は ApacheToday のチュートリアル「Keeping Your Images from Adorning Other Sites diff --git a/docs/manual/filter.xml.ja b/docs/manual/filter.xml.ja index e97bae74fdd..43fcf910ee4 100644 --- a/docs/manual/filter.xml.ja +++ b/docs/manual/filter.xml.ja @@ -1,7 +1,7 @@ - + @@ -30,7 +30,7 @@ SetOutputFilter - +

フィルタ とは、サーバが送受信したデータに 適用される処理プロセスのことをいいます。クライアントからサーバに 送られたデータは 入力フィルタ によって、サーバから diff --git a/docs/manual/handler.xml.ja b/docs/manual/handler.xml.ja index dff11d1f5a6..4f6aadb0cc2 100644 --- a/docs/manual/handler.xml.ja +++ b/docs/manual/handler.xml.ja @@ -1,7 +1,7 @@ - + @@ -31,7 +31,7 @@ SetHandler - +

「ハンドラ」とは、ファイルが呼ばれたときに実行される動作の Apache における内部表現です。 @@ -92,7 +92,7 @@

以下のディレクティブによって、拡張子が html であるファイルは footer.pl CGI スクリプトを起動するようになります。

- + Action add-footer /cgi-bin/footer.pl
AddHandler add-footer .html @@ -118,7 +118,7 @@ SetHandler send-as-is
</Directory>
- +
diff --git a/docs/manual/install.xml.ja b/docs/manual/install.xml.ja index 03eb8274c44..5746e4b7e30 100644 --- a/docs/manual/install.xml.ja +++ b/docs/manual/install.xml.ja @@ -2,7 +2,7 @@ - + コンパイルとインストール @@ -23,6 +23,10 @@ するために libtoolautoconf を使うようになっています。

+

マイナーバージョンからその次のバージョンにアップグレードする + (2.0.50 から 2.0.51 へ等) 場合は、まず + アップグレードをご覧下さい。

+
Apacheの起動 @@ -31,11 +35,11 @@
概要 (せっかちな人向け)
ファイル名
+ - @@ -140,8 +144,8 @@
ダウンロード

Apache は Apache Software - Foundation ダウンロードサイトからダウンロードできますし、 + href="http://httpd.apache.org/download.cgi">Apache HTTP + サーバダウンロードサイトからダウンロードできますし、 同じ場所に幾つかのミラーサイトもリストしています。 ここから最新の安定版が手に入ります。

@@ -205,7 +209,7 @@ $ gzip -d httpd-2_0_NN.tar.gz
- $ tar xvf httpd-2_0_NN.tar + $ tar xvf httpd-2_0_NN.tar

配布用のソースコードがある現在いるディレクトリの下に、 @@ -298,7 +302,7 @@

ヘッダファイルの探索ディレクトリ ("-Idir") 。
-
TARGET=... [デフォルト値: apache]
+
TARGET=... [デフォルト値: httpd]
ビルドする実行ファイルの名前。
@@ -579,7 +583,7 @@

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

@@ -601,4 +605,50 @@ $ PREFIX/bin/apachectl stop +
アップグレード + +

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

+ +

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

+ +

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

+ + + $ ./config.nice
+ $ make
+ $ make install
+ $ PREFIX/bin/apachectl stop
+ $ PREFIX/bin/apachectl start
+
+ + 新しいバージョンを使用する場合は、 + 実際に運用を始める前に、必ず自分用の環境でテストすべきです。 + 最終的にアップグレードする前に、非互換性がないかをテストするために、 + 例えば、異なる --prefix と異なるポート (Listen ディレクティブで設定します) + を使用することで、古いバージョンに影響を与えずに新しいバージョンを + インストールし、実行できます。 +
diff --git a/docs/manual/invoking.xml.ja b/docs/manual/invoking.xml.ja index c14e6ccce9a..e6186bcc9b8 100644 --- a/docs/manual/invoking.xml.ja +++ b/docs/manual/invoking.xml.ja @@ -2,7 +2,7 @@ - + Apache の起動 diff --git a/docs/manual/logs.xml.ja b/docs/manual/logs.xml.ja index 3d079778495..b7dfa5de81d 100644 --- a/docs/manual/logs.xml.ja +++ b/docs/manual/logs.xml.ja @@ -1,7 +1,7 @@ - + diff --git a/docs/manual/mpm.xml.ja b/docs/manual/mpm.xml.ja index 3a290d85e62..9f20b774195 100644 --- a/docs/manual/mpm.xml.ja +++ b/docs/manual/mpm.xml.ja @@ -2,7 +2,7 @@ - + マルチプロセッシングモジュール (MPM) @@ -94,6 +94,7 @@ Apache HTTP サーバでどのように使用されるかについて解説しています。

が選択されます。

ダウンロード$ lynx - http://www.apache.org/dist/httpd/httpd-2_0_NN.tar.gz + $ lynx http://httpd.apache.org/download.cgi
+ diff --git a/docs/manual/sections.xml.ja b/docs/manual/sections.xml.ja index a4cf1400cb9..46587a98939 100644 --- a/docs/manual/sections.xml.ja +++ b/docs/manual/sections.xml.ja @@ -1,7 +1,7 @@ - + @@ -200,7 +200,7 @@ shell スタイルのワイルドカードキャラクタが使用できます。 "/" 文字はどのワイルドカードでもマッチされません。 明示的に指定する必要があります。

-

これより柔軟なマッチングが必要な場合は、これらのコンテナの正規表現 +

これより柔軟なマッチングが必要な場合は、これらのコンテナに正規表現 (regex) 版である DirectoryMatch, FilesMatch, @@ -280,8 +280,7 @@ Deny from all
ですからできる限りファイルシステムコンテナを使用してください。 しかしながら一つだけ例外があります。 <Location /> セクションはどんな URL -にも関わらず適用されるので、そこにアクセスを制限するディレクティブを -居れることは完全に安全です。

+にも関わらず適用されるので、完全に安全です。

@@ -299,11 +298,11 @@ Deny from all

ProxyProxyMatch -コンテナは、mod_proxy -プロクシサーバを経由してアクセスされる特定の URL にマッチするサイトに -対してのみ適用される -設定ディレクティブを格納します。例えば次の設定は、プロキシサーバが -cnn.com ウェブサイトをアクセスするためには使えないようにします。

+コンテナは、特定の URL にマッチする mod_proxy +プロクシサーバを経由してアクセスしたサイトに対してのみ適用される +設定ディレクティブを格納します。例えば次の設定は、cnn.com +ウェブサイトにアクセスするために用いられるプロクシサーバを +制限します。

<Proxy http://cnn.com/*>
@@ -353,7 +352,7 @@ Deny from all
  1. Directory (正規表現無し) と - .htaccess を同時に (.htaccess が許可されていれば、それが + .htaccess を同時に (.htaccess が許可されていれば、それが Directory を上書きします)
  2. @@ -435,7 +434,7 @@ A
    セクションに設置されたアクセス制限に関わらず、 Location セクションが最後に評価されて、サーバへのアクセスは制限されません。 -つまり、マージの順番は重要ですので、注意して使用してください!

    +言い換えれば、マージの順番は重要で、注意して使用してください!

    <Location />
    diff --git a/docs/manual/sitemap.xml.ja b/docs/manual/sitemap.xml.ja index 183e6727b39..2e613ff5e06 100644 --- a/docs/manual/sitemap.xml.ja +++ b/docs/manual/sitemap.xml.ja @@ -1,9 +1,9 @@ + ] > - @@ -61,8 +61,8 @@ Apache サーバのよくある質問 概略 -1 ページ版 サポート +エラーメッセージ @@ -82,7 +82,7 @@ Server Side Includes 入門 .htaccess ファイル ユーザ毎のウェブディレクトリ -いろいろな Apache のチュートリアル +Apache チュートリアル @@ -121,13 +121,13 @@ クライアントの既知の問題 記述子と Apache CGI 環境の PATH_INFO の変更 +関連する標準規格 Apache モジュール -モジュール索引 -ディレクティブ索引 -ディレクティブクイックリファレンス +Apache ディレクティブの説明に使われる用語 +Apache ディレクティブを説明に使われる用語 &allmodules; @@ -145,12 +145,12 @@ Apache 2.0 のフィルタの動作の仕方 - -説明用の情報 -Apache モジュールを説明するために使われている用語 -Apache ディレクティブを説明するために使われている用語 + +用語集と索引 用語集 -サイトマップ (この文書) +モジュール索引 +ディレクティブ索引 +ディレクティブ クイックリファレンス diff --git a/docs/manual/suexec.xml.ja b/docs/manual/suexec.xml.ja index e9007a23bd5..aa20a66d0b0 100644 --- a/docs/manual/suexec.xml.ja +++ b/docs/manual/suexec.xml.ja @@ -1,7 +1,7 @@ - + @@ -19,7 +19,7 @@ や SSI プログラムを開発し実行することで生じるセキュリティ上の危険を、 かなり減らすことができます。しかし、suEXEC の設定が不適切だと、 多くの問題が生じ、あなたのコンピュータに新しいセキュリティホールを - 作ってしまう可能性があります。あなたが root に setuid + 作ってしまう可能性があります。あなたが setuid root されたプログラムと、それらから生じるセキュリティ上の問題の管理に 詳しくないようなら、suEXEC の使用を検討しないように強く推奨します。

    @@ -97,6 +97,17 @@
    1. + wrapper + を実行しているユーザはこのシステムの正当なユーザか? + +

      + これは、wrapper を実行しているユーザが + 本当にシステムの利用者であることを保証するためです。 +

      +
    2. + + +
    3. wrapper が適切な数の引数で呼び出されたか? @@ -109,17 +120,6 @@

    4. - -
    5. - wrapper - を実行しているユーザはこのシステムの正当なユーザか? - -

      - これは、wrapper を実行しているユーザが - 本当にシステムの利用者であることを保証するためです。 -

      -
    6. -
    7. この正当なユーザは wrapper の実行を許可されているか? @@ -132,13 +132,15 @@
    8. - 対象のプログラムが安全でない階層の参照をしているか? + 対象の CGI, SSI プログラムが安全でない階層の参照をしているか?

      - 対象のプログラムが '/' から始まる、または + 対象の CGI, SSI プログラムが '/' から始まる、または '..' による参照を行なっていますか? これらは許可されません。 - 対象のプログラムは Apache の web 空間内になければなりません。 + 対象のプログラムは suEXEC のドキュメントルート + (下記の --with-suexec-docroot=DIR を参照) + 内に存在しなければなりません。

    9. @@ -163,7 +165,7 @@

      - 今のところ、suEXEC は 'root' による CGI/SSI + 今のところ、suEXEC は root による CGI/SSI プログラムの実行を許可していません。

      @@ -215,11 +217,12 @@
    10. - プログラムが置かれるディレクトリは存在しているか? - + CGI/SSI プログラムが置かれているディレクトリに移動 + (change directory) できるか?

      ディレクトリが存在しないなら、そのファイルも存在しないかもしれません。 + ディレクトリに移動できないのであれば、おそらく存在もしないでしょう。

    11. @@ -229,9 +232,10 @@

      リクエストがサーバ内のものであれば、 - 要求されたディレクトリがサーバのドキュメントルート配下にありますか? - リクエストが UserDir のものであれば、 - 要求されたディレクトリがユーザのドキュメントルート配下にありますか? + 要求されたディレクトリが suEXEC のドキュメントルート配下にありますか? + リクエストが UserDir のものであれば、要求されたディレクトリが suEXEC + のユーザのドキュメントルート配下にありますか? + (suEXEC 設定オプション 参照)

      @@ -247,7 +251,7 @@
    12. - 対象となるプログラムは存在するか? + 対象となる CGI/SSI プログラムは存在するか?

      存在しなければ実行できません。 @@ -255,17 +259,17 @@

    13. - 対象となるプログラムファイルが他アカウントから + 対象となる CGI/SSI プログラムファイルが他アカウントから 書き込めるようになっていないか?

      - 所有者以外にはプログラムを変更する権限は与えられません。 + 所有者以外には CGI/SSI プログラムを変更する権限は与えられません。

    14. - 対象となるプログラムが setuid または setgid + 対象となる CGI/SSI プログラムが setuid または setgid されていないか?

      @@ -297,7 +301,7 @@

    15. - 対象となるプログラムを exec して実行できるか? + 対象となる CGI/SSI プログラムを exec して実行できるか?

      @@ -334,13 +338,13 @@

      このオプションは、デフォルトではインストールされず、 有効にはならない suEXEC 機能を有効にします。 - suEXEC を使うように APACI に要求するには、--enable-suexec - オプションにあわせて少なくとも一つは --with-suexec-xxxxx + suEXEC を使うように APACI に要求するには、--enable-suexec + オプションにあわせて少なくとも一つは --with-suexec-xxxxx オプションが指定されなければなりません。
      --with-suexec-bin=PATH
      -
      セキュリティ上の理由により、suexec バイナリのパスはサーバに +
      セキュリティ上の理由により、suexec バイナリのパスはサーバに ハードコードされている必要があります。デフォルトのパスを 変えたいときはこのオプションを使ってください。例えば--with-suexec-bin=/usr/sbin/suexec のように。
      @@ -373,7 +377,7 @@
      Apache のドキュメントルートを設定します。これが suEXEC の動作で使用する唯一のディレクトリ階層になります (UserDir - の指定は別)。デフォルトでは --datedir に "/htdocs" + の指定は別)。デフォルトでは --datedir に "/htdocs" というサフィックスをつけたものです。 "--datadir=/home/apache" として設定すると、 suEXEC wrapper にとって "/home/apache/htdocs" @@ -396,7 +400,7 @@
      suEXEC の処理とエラーが記録されるファイル名を指定します。 (監査やデバッグ目的に有用) デフォルトではログファイルは "suexec_log" という名前で、 - 標準のログファイルディレクトリ (--logfiledir) に置かれます。 + 標準のログファイルディレクトリ (--logfiledir) に置かれます。
      --with-suexec-safepath=PATH
      @@ -409,14 +413,14 @@

      suEXEC 設定の確認
      suEXEC wrapper をコンパイルしてインストールする前に、設定内容を - --layout オプションで確認できます。
      + --layout オプションで確認できます。
      出力例:

      suEXEC setup:
      - suexec binary: /usr/local/apache/sbin/suexec
      - document root: /usr/local/apache/share/htdocs
      + suexec binary: /usr/local/apache2/sbin/suexec
      + document root: /usr/local/apache2/share/htdocs
      userdir suffix: public_html
      - logfile: /usr/local/apache/var/log/suexec_log
      + logfile: /usr/local/apache2/var/log/suexec_log
      safe path: /usr/local/bin:/usr/bin:/bin
      caller ID: www
      minimum user ID: 100
      @@ -425,13 +429,13 @@

      suEXEC wrapper のコンパイルとインストール
      - --enable-suexec オプションで suEXEC 機能を有効にすると、 - "make" コマンドを実行した時に suEXEC のバイナリ (Apache 自体も) + --enable-suexec オプションで suEXEC 機能を有効にすると、 + "make" コマンドを実行した時に suexec のバイナリ (Apache 自体も) が自動的に作成されます。
      すべての構成要素が作成されると、それらのインストールには - "make install" コマンドが実行できます。バイナリイメージの "suexec" - は --sbindir オプションで指定されたディレクトリにインストールされます。 + make install コマンドが実行できます。バイナリイメージの suexec + は --sbindir オプションで指定されたディレクトリにインストールされます。 デフォルトの場所は "/usr/local/apache/sbin/suexec" です。
      インストール時には root 権限が必要なので注意してください。wrapper がユーザ ID @@ -439,16 +443,47 @@ でのセットユーザ ID ビットをそのファイルのモードに設定しなければなりません。

      + +

      安全なパーミッションを設定する
      + suEXEC ラッパーは、--with-suexec-caller configure + オプションで指定した正しいユーザで起動されていることを確認しますが、 + システム上でこのチェックが行なわれる前に、 + suEXEC が呼ぶシステムやライブラリが脆弱である可能性は残ります。対抗策として、 + 一般に良い習慣ともされいますが、 + ファイルシステムパーミッションを使って + Apache の実行時のグループのみが suEXEC を実行できるように + するのが良いでしょう。

      + +

      たとえば、次のようにサーバが設定されていたとします。

      + + + User www
      + Group webgroup
      +
      + +

      suexec が "/usr/local/apache2/sbin/suexec" + にインストールされていた場合、次のように設定する必要があります。

      + + + chgrp webgroup /usr/local/apache2/bin/suexec
      + chmod 4750 /usr/local/apache2/bin/suexec
      +
      + +

      これで Apache が実行されるグループのみが + suEXEC ラッパーを実行できるということを + 確証します。

      suEXEC の有効化と無効化 -

      起動時に、Apache は "sbin" ディレクトリで - "suexec" を探します +

      起動時に、Apache は --sbindir + オプションで設定されたディレクトリで + suexec を探します (デフォルトは "/usr/local/apache/sbin/suexec") 。 適切に設定された suEXEC がみつかると、 エラーログに以下のメッセージが出力されます。

      + [notice] suEXEC mechanism enabled (wrapper: /path/to/suexec) @@ -460,7 +495,7 @@

      suEXEC の仕組みを使用するのが初めてで、Apache が既に動作中であれば、 Apache を kill して、再起動しなければなりません。HUP シグナルや USR1 シグナルによる単純な再起動では不十分です。

      -

      suEXEC を無効にする場合は、"suexec" ファイルを削除してから +

      suEXEC を無効にする場合は、suexec ファイルを削除してから Apache を kill して再起動します。

      @@ -494,7 +529,7 @@
      suEXEC のデバッグ -

      suEXEC wrapper は、上記で述べた --with-suexec-logfile +

      suEXEC wrapper は、上記で述べた --with-suexec-logfile オプションで指定されたファイルにログ情報を記録します。 wrapper を適切に設定、インストールできていると思う場合、 どこで迷っているか見ようとするならこのログとサーバの @@ -520,7 +555,7 @@

      - セキュリティと効率の理由から、suEXEC の全てのリクエストは + セキュリティと効率の理由から、suEXEC の全てのリクエストは 仮想ホストへのリクエストにおける最上位のドキュメントルート内か、 ユーザディレクトリへのリクエストにおける個々のユーザの最上位の ドキュメントルート内に残らなければなりません。 @@ -533,7 +568,7 @@

    16. suEXEC の PATH 環境変数 - +

      これを変更するのは危険です。この指定に含まれる各パスが 信頼できる diff --git a/docs/manual/urlmapping.xml.ja b/docs/manual/urlmapping.xml.ja index 53f2ffc9b8c..7cbd580747c 100644 --- a/docs/manual/urlmapping.xml.ja +++ b/docs/manual/urlmapping.xml.ja @@ -1,7 +1,7 @@ - + @@ -97,7 +97,7 @@ を使って強力な正規表現に基づいたマッチと置換を行なうことができます。 たとえば、

      -ScriptAliasMatch ^/~([a-zA-Z0-9]*)/cgi-bin/(.*) +ScriptAliasMatch ^/~([a-zA-Z0-9]+)/cgi-bin/(.+) /home/$1/cgi-bin/$2

      http://example.com/~user/cgi-bin/script.cgi への @@ -140,7 +140,7 @@ /home/user/public_html/file.html にマップされるようにするには、 以下のように AliasMatch ディレクティブを使います:

      -AliasMatch ^/upages/([a-zA-Z0-9]*)/?(.*) +AliasMatch ^/upages/([a-zA-Z0-9]+)/?(.*) /home/$1/public_html/$2
BeOSbeos
Netwarempm_netware
OS/2mpmt_os2