セクションコンテナ
Apache の設定は、全体と範囲を指定した設定の2種類あります。範囲のことをセクションコンテナといいます。
セクションコンテナの外にある設定が全体の設定になります。
セクションコンテナには、ディレクトリを示す<Directory>、ファイルを示す<Files>、URLを示す<Location>などがあります。
Apache の設定ファイルには、ディレクティブと呼ばれる設定内容を記述します。
また、ほかの設定ファイルを読み込みには、Includeを使います。
Include conf/ssl.conf
初期設定の項目
ポート番号の設定
Listen 80
管理者のメールアドレスを指定する
ServerAdmin tanaka@example.com
サーバーの名前の情報を指定
ServerName www.example.com:80
ServerName を有効にする
UseCanonicalName On
ドキュメントルート
ウェブサーバーのルートディレクトリをドキュメントルートと呼びます。AlmaLinux の場合、ドキュメントルートは/var/www/htmlです。
インデックスファイルの設定
インデックスファイルの優先順位はDirectoryindexディレクティブで指定された左側にあるものが優先されます。
インデックスを設定するには、/etc/httpd/confを以下のように変更します。
Directoryindex index.htm index.html
ファイル一覧を表示しないようにするには、以下のように変更します。
/etc/httpd/conf
<Directory "/var/www/html">
Options +FollowSymLinks -Indexes
</Directory>
以下のような書き方は、Apache2.4以降では構文エラーになります。
Options FollowSymLinks -Indexes
アクセス制限
IPアドレスを指定して、アクセスを許可・拒否を設定することができます。
Apache2.2 以前
<Directory "/var/www/html">
Order allow, deny
Allow from All
Deny from 192.168.1.28
</Directory>
Order は Apache 2.2 以前のアクセス制御ディレクティブで、アクセス許可 (Allow) や拒否 (Deny) の評価順序を指定するためのものです。Apache 2.4 以降では廃止されており、代わりに Require を使います。
Apache2.4 以降
<Directory "/var/www/html">
Require all granted
Require not ip 192.168.1.28
</Directory>
RequireApache 2.4以降で導入されたアクセス制御のための認可ディレクティブです。誰がリソースにアクセスできるか(IPアドレス、ホスト、ユーザー、グループなど)を細かく指定できます。
Require オプションの主なオプション(条件)の一覧と意味は以下の表のようになります。
Require オプション | 説明・使用例 |
---|---|
Require all granted | 全てのユーザー/IPにアクセスを許可(完全公開) |
Require all denied | 全て拒否(403を返す) |
Require ip 192.168.1.10 | 指定したIPアドレスからのアクセスのみ許可。指定IP以外は403 |
Require not ip 192.168.1.10 | 指定したIP以外を許可(<RequireAll> 内で使用) |
Require host example.com | ホスト名にマッチするアクセスのみ許可 |
Require user alice | HTTP認証されたユーザー名 alice のみ許可 |
Require group admins | HTTP認証で admins グループに属するユーザーを許可 |
Require valid-user | Basic認証後のみアクセス可 |
<RequireAll> ... </RequireAll> | 全条件を満たす必要あり |
<RequireAny> ... </RequireAny> | いずれかを満たせばOK |