ディレクティブ

Apache の設定ファイルは 1 行に 1 つのディレクティブからなります。

ref. https://httpd.apache.org/docs/2.4/configuring.html

ディレクティブの例)

.....
Timeout 300
.....
KeepAlive On
.....
# These need to be set in /etc/apache2/envvars
# 著者注 ディレクティブの値は環境変数を使用できる
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
.....

/etc/apache2/envvars で環境変数 APACHE_RUN_USER APACHE_RUN_GROUP が定義されている

...
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
...

セクションで限定されていないディレクティブはグローバルに影響する。

セクション

メイン設定ファイルにあるディレクティブはサーバ全体に適用されます。 サーバの一部分の設定だけを変更したい場合は , , , , , セクションの中に置くことで適用範囲を決められます。

ref. https://httpd.apache.org/docs/2.4/configuring.html#page-header

# ----- (1)
<Directory />
    AllowOverride None
    Require all denied
</Directory>
...
# ----- (2)
<Directory "/var/www/html/foo">
    AllowOverride All
    Options -Indexes +FollowSymLinks
    Require all granted
</Directory>
  • (1)
    • (サブディレクトリを含めて) / 以下は AllowOverride None により .htaccess を使用できない
    • 同様に Require all denied により アクセスが拒否される
  • (2)
    • Directory セクションにより /var/www/html/foo ディレクトリ以下は AllowOverride All により .htaccess で オーバーライドできる
    • 同様に Require all granted により 制限なくアクセスができる

※ (1) を記載することで デフォルトでの不要なディレクトリアクセスを制限し、セキュリティを向上できる。