Apache HTTP サーバ バージョン 2.4

Apache > HTTP サーバ > ドキュメンテーション > バージョン 2.4

# 設定ファイル

この日本語訳はすでに古くなっている 可能性があります。 最近更新された内容を見るには英語版をご覧下さい。

この文書では、Apache HTTP サーバを設定するのに使用するファイルについて 記述しています。

## メインの設定ファイル

関連モジュール | 関連ディレクティブ
--- | ---
`mod_mime` | `<IfDefine>` `Include` `TypesConfig`

Apache は ディレクティブ を設定ファイルに平文で書くことにより設定します。 メインの設定ファイルは普通は `httpd.conf` という名前です。 このファイルの位置はコンパイル時に設定されますが、コマンドラインの `-f` フラグにより上書きできます。 また、他の設定ファイルを `Include` ディレクティブによって追加でき、ワイルドカードを使用して多数の 設定ファイルを追加することができます。 どんなディレクティブも、これらの設定ファイルどれにでも入れることができます。 Apache は起動時か再起動時のみメイン設定ファイルの変更を認識します。

サーバは MIME ドキュメントタイプを含んでいるファイルも読み込みます。ファイル名は `TypesConfig` で設定され、デフォルトでは `mime.types` になっています。

## 設定ファイルの構文

Apache の設定ファイルは 1 行に 1 つのディレクティブからなります。 バックスラッシュ "\" はディレクティブが次の行に継続していることを 示すために行の最後の文字として使われているかもしれません。 行の最後とバックスラッシュの間に他の文字や空白があってはいけません。

設定ファイルのディレクティブは大文字小文字を区別しませんが、 引数にはしばしば区別するものがあります。ハッシュ文字 "#" で始まる行はコメントと見なされて無視されます。 設定ディレクティブと同一行の末尾にコメントが含まれていてはいけません。ディレクティブの前の空行と空白は無視されますので、 わかりやすくするためにディレクティブをインデントしても構いません。

設定ファイルの構文エラーは、 `apachectl configtest` かコマンドラインオプション `-t` を使って調べられます。

## モジュール

関連モジュール | 関連ディレクティブ
--- | ---
`mod_so` | `<IfModule>` `LoadModule`

Apache はモジュール化されたサーバです。 コアサーバには最も基本的な機能だけが含まれています。拡張機能は Apache にロードされるモジュールとして利用可能です。デフォルトでは、コンパイル時にモジュールの Base セット (基本セット) が サーバに含まれます。サーバが動的ロードモジュールを使うようにコンパイルされている場合は、 モジュールを別にコンパイルして、いつでも `LoadModule` ディレクティブを使って追加できます。 そうでない場合は、モジュールの追加や削除をするためには Apache を再コンパイルする必要があります。設定ディレクティブは `<IfModule>` ブロックに入れることで特定のモジュールが存在するときだけ 設定ファイルに含まれるようにすることができます。

コマンドラインオプション `-l` を使って現時点で どのモジュールがサーバにコンパイルされているかを知ることができます。

## ディレクティブの適用範囲

関連モジュール | 関連ディレクティブ
--- | ---
| `<Directory>` `<DirectoryMatch>` `<Files>` `<FilesMatch>` `<Location>` `<LocationMatch>` `<VirtualHost>`

メイン設定ファイルにあるディレクティブはサーバ全体に適用されます。 サーバの一部分の設定だけを変更したい場合は `<Directory>`, `<DirectoryMatch>`, `<Files>`, `<FilesMatch>`, `<Location>`, `<LocationMatch>` セクションの中に置くことで適用範囲を決められます。 これらのセクションはその中にあるディレクティブの適用範囲を 特定のファイルシステムの位置や URL に限定します。 非常に細粒度の設定を可能にするために、 セクションを入れ子にすることもできます。

Apache は同時に多くの違うウェブサイトを扱う能力があります。 これは バーチャルホスト と呼ばれています。 特定のウェブサイトにのみ適用されるようにするために、 ディレクティブは `<VirtualHost>` セクションの中に置くことでも適用範囲を変えることができます。

ほとんどのディレクティブはどのセクションにでも書けますが、 中にはコンテキストによっては意味をなさないものもあります。 例えば、プロセスの作成を制御しているディレクティブはメインサーバの コンテキストにのみ書くことができます。 どのディレクティブをどのセクションに書くことができるかを知るためには ディレクティブの コンテキスト を調べてください。詳しい情報は、 Directory, Location, Files セクションの動作法にあります。

## .htaccess ファイル

関連モジュール | 関連ディレクティブ
--- | ---
| `AccessFileName` `AllowOverride`

Apache ではウェブツリーの中に置かれた特別なファイルを使って 非中央集権的な設定管理をできます。その特別なファイルは普通は `.htaccess` という名前で、 `AccessFileName` ディレクティブでどんな名前にでも指定できます。 `.htaccess` ファイルに書かれたディレクティブはファイルを置いた ディレクトリとその全てのサブディレクトリに適用されます。 `.htaccess` ファイルは、メインの設定ファイルと同じ 構文を使います。 `.htaccess` ファイルはすべてのリクエストで読み込まれるため、 変更はすぐに反映されます。

どのディレクティブが `.htaccess` ファイルに書けるかを調べるには、ディレクティブのコンテキスト を調べてください。サーバ管理者はさらにメイン設定ファイルの `AllowOverride` を設定することでどのディレクティブを `.htaccess` ファイルに書けるようにするかを制御することができます。

`.htaccess` ファイルに関する詳しい情報は .htaccess チュートリアル を参照してください。