Apache 設定ファイル 書式

 

2019年11月09日

 

 

目次

  1. 設定ファイルの記述例
  2. 設定ファイルの書式
  3. 設定ファイル内容のチェック

設定ファイルの記述例

設定ファイルの記述例(Windows)
# This is the main Apache HTTP server configuration file.
Define SRVROOT "c:/apache"
ServerRoot "${SRVROOT}"
Listen 80
ServerAdmin admin@example.com
ServerName localhost:80

<Directory />
  AllowOverride none
  Require all denied
</Directory>

DocumentRoot "${SRVROOT}/htdocs"
<Directory "${SRVROOT}/htdocs">
  Options Indexes FollowSymLinks
  AllowOverride None
  Require all granted
</Directory>
設定ファイルの記述例(CentOS)
# This is the main Apache HTTP server configuration file.
ServerRoot "/etc/httpd"
Listen 80
ServerAdmin root@localhost
ServerName localhost:80

<Directory />
  AllowOverride none
  Require all denied
</Directory>

DocumentRoot "/var/www/html"
<Directory "/var/www/html">
  AllowOverride None
  # Allow open access:
  Require all granted
</Directory>

設定ファイルの書式

ディレクティブ(Directive)

ディレクティブ書式
ディレクティブ 引数
ディレクティブ実例
Listen 80
上記の実例は「サーバで待ち受けるポートを80番にする」という設定です。
  • ディレクティブとは、Apache設定項目を表す識別子です。
  • ディレクティブには、引数を指定することができます。
    • ディレクティブと引数の間は、1つ以上の空白文字かタブ文字を挿入しなければなりません。
    • 引数は、大文字・小文字は区別します。
    • 引数を複数指定する場合は、1つ1つの引数を空白文字で区切ります。
    • 引数に空白文字が含まれる場合は「”(ダブルコーテーション)」で囲う必要があります。
    • 引数に空白文字がない場合は「”(ダブルコーテーション)」で囲う必要はありません(囲っても問題ありません)。
  • ディレクティブは、Apacheのバージョンによって使用可能なものが異なります。
  • ディレクティブは、大文字・小文字は区別しません。
  • ディレクティブが、設定ファイルのどこに記述できるかは「コンテキスト」によって決められています。

 

長くなった行を複数行に分割する
Include conf/extra/\
httpd-ssl.conf
  • ディレクティブは、1行が長くなった場合は上記のように「\(バックスラッシュ)」で行を分割することができます。

 

 

コンテナ(Container)

コンテナ書式
<コンテナ (引数)>
  設定内容
</コンテナ>
コンテナ実例
<Directory "/var/www/html">
  AllowOverride None
  # Allow open access:
  Require all granted
</Directory>
  • コンテナは、ディレクティブの一種で、特定のディレクトリ・URLなどに設定を限定したいときに使用します。
  • コンテナは、「<Directory>~</Directory>」のようなブロック形式で記述します。
  • コンテナは、引数を指定することができます(引数が不要な場合もあります)。
  • コンテナの引数で指定された範囲や条件に合致したときのみ、ブロック内のディレクティブが有効になります。
  • コンテナのブロック内には、任意の設定(ディレクティブ、コンテナ)を記述することができます。

 

コンテナの入れ子の例
<IfModule proxy_module>
  <IfModule proxy_ajp_module>
    AllowEncodedSlashes NoDecode
    ProxyPreserveHost On
    ProxyPass        /example ajp://localhost:8009/example
    ProxyPassReverse /example ajp://localhost:8009/example
  </IfModule>
</IfModule>
  • コンテナの中には、さらに別のコンテナを入れ子にすることができます。

 

 

コンテキスト(Context)

  • コンテキストは、ディレクティブと組み合わせ可能なコンテナや記述可能な設定ファイル(httpd.conf、.httaccess)を表します。
  • コンテキストには、以下のような種類があります。

 

コンテキスト一覧
コンテキスト名 コンテキストの説明
設定ファイル 「httpd.conf」を指します。バーチャルホスト、ディレクトリ、以外の部分を指します。
バーチャルホスト 「httpd.conf」内の、「<VirtualHost>~」を指します。
ディレクトリ 「httpd.conf」内の、以下を指します。
  • <Directory> ~ </Directory>
  • <Location> ~ </Location>
  • <Files> ~ </Files>
  • <Proxy> ~ </Proxy>
  • <DirectoryMatch> ~ </DirectoryMatch>
  • <FilesMatch> ~ </FilesMatch>
  • <LocationMatch> ~ </LocationMatch>
  • <ProxyMatch> ~ </ProxyMatch>
.htaccess 「.htaccessファイル」を指します。

 

 

コメント

コメント書式
# コメント
コンテナ実例
# This is the main Apache HTTP server configuration file.
  • コメントは、ファイル内に注釈や覚え書きを記述したりするものです。
  • コメントは、設定に影響を与えません。
    • この性質を利用して、コメントは設定を無効化する場合によく利用されます(設定の行頭に「#(シャープ)」をつけ無効化するイメージ)。
    • 設定自体の記述を削除する場合と比べ、設定の復元が容易というメリットがあります。

 

 

設定ファイル内容のチェック

設定ファイル内容チェックコマンド(Windows/CentOS)
httpd -t
設定ファイル内容チェックコマンド(Ubuntu)
apache2 -t
出力結果
Syntax OK
  • 上記の「設定ファイル内容チェックコマンド」で設定ファイル内容のチェックができます。
  • 内容に問題がなければ、出力結果に「Syntax OK」と表示されます。
    • Syntax OK」以外の場合は設定ファイルの記述内容に問題があるということです。

 

 

 

 

Programming Style