【Linux】Ubuntu 24.04のApache2の設定ファイルについて
今回はUbuntu 24.04のApache2の設定ファイルについて説明していきます。
RedHat系列のApacheとは仕様が大きく違い、設定変更用のコマンドもあるのでそちらも紹介していきます。
環境
- さくらのVPS
- Ubuntu 24.04.1 LTS
ファイル構成・コマンド
基本設定ファイル
ファイル | 説明 |
---|---|
/etc/apache2/apache2.conf | 基本設定ファイル |
/etc/apache2/port.conf | ポート設定ファイル |
Apache2の設定ファイルは/etc/apache2/内に保存されています。
apache2.confは基本設定ファイルとなっており基本的な設定が記入されている他、各種設定ファイルのディレクトリが記入されています。
Debian用のApache2では、基本的にapache2.confにはあまり追記せず、後述する3種の設定ファイル保存用のディレクトリに入れ、それからコマンドで設定ファイルを有効化することで機能の追加を行う構造となっています。
port.confにはApache2が使用するポートが記入されています。設定を変更する場合は仮想ホストの設定も変更する必要があります。
ディレクトリ
ディレクトリ | 内容 |
---|---|
/etc/apache2/conf-available/ | グローバル設定ファイルの保存用ディレクトリ |
/etc/apache2/conf-enabled/ | グローバル設定ファイルの有効化用ディレクトリ |
/etc/apache2/mods-available/ | モジュールの設定ファイル保存用ディレクトリ |
/etc/apache2/mods-enabled/ | モジュールの設定ファイル有効化用ディレクトリ |
/etc/apache2/sites-available/ | 仮想ホストの設定ファイル保存用ディレクトリ |
/etc/apache2/sites-enabled/ | 仮想ホストの設定ファイル有効化用ディレクトリ |
Apache2は、設定ファイルのディレクトリがグローバル設定用(conf)、モジュール用(mods)、仮想ホスト用(sites)の3種類に分かれており、それぞれがさらに設定ファイルの保存用ディレクトリ(available)と有効化用ディレクトリ(enabled)の2種に分かれています。
〇〇-availableディレクトリは設定ファイルを保存するためのディレクトリとなっており、このディレクトリ内の設定ファイルがApache2により勝手に読み込まれる事はありません。
〇〇-enabledディレクトリはApache2が設定ファイルを読み込むためのディレクトリで、このディレクトリ内に設定ファイルが入れられる事で設定ファイルが有効化されます。
Apache2は後述するコマンドにより、availableディレクトリからenabledディレクトリに設定ファイルのシンボリックリンクが置かれることで、設定ファイルが読み込まれるようになっています。
コマンド
コマンド | 説明 |
---|---|
a2enconf <conf> | グローバル設定ファイルを有効化する |
a2disconf <conf> | グローバル設定ファイルを無効化する |
a2ensite <conf> | モジュールの設定ファイルを有効化する |
a2dissite <conf> | モジュールの設定ファイルを無効化する |
a2enconf <conf> | 仮想ホストの設定ファイルを有効化する |
a2disconf <conf> | 仮想ホストの設定ファイルを無効化する |
<conf>には各種availableディレクトリ内の設定ファイルを指定します。
例えば、a2ensite 000-default.confとコマンドを入力すると/etc/apache2/sites-available/000-default.confが指定され、シンボリックリンクが/etc/apache2/sites-enabled/内に作成されます。
同様にa2dissite 000-default.confとコマンドを入力すると/etc/apache2/sites-enabled/内に作成されたシンボリックリンクが削除されます。
シンボリックリンクの追加や削除を行った後は、systemctl reload apache2でApache2の設定を再読込すると、設定を反映させることができます。
設定の追加手順例
例として仮想ホストの設定を追加してみます。
設定ファイルの追加
vi /etc/apache2/sites-available/001-test.conf
/etc/apache2/sites-available内に新しく設定ファイルを作成します。
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
001-test.confにVirtualHostの設定を記入します。
今回は最初から/etc/apache2/sites-availableディレクトリに入っている000-default.confと同じ設定を使用します。
設定の有効化
a2ensite 001-test.conf
a2dissite 000-default.conf
ll /etc/apache2/sites-enabled
drwxr-xr-x 2 root root 4096 Mar 01 13:00 ./
drwxr-xr-x 8 root root 4096 Mar 01 13:00 ../
lrwxrwxrwx 1 root root 58 Mar 01 13:00 001-test.conf -> ../sites-available/001-test.conf
a2ensite 001-test.confで設定を有効化し、a2dissite 000-default.confで既に有効化されている初期設定を無効化します。
この状態でll /etc/apache2/sites-enabledと入力すると/etc/apache2/sites-availableから/etc/apache2/sites-enabledにシンボリックリンクが作成されているのが確認できます。
設定の反映
apache2ctl -t
Syntax OK
systemctl reload apache2
apache2ctl -t -D DUMP_VHOSTS
VirtualHost configuration:
*:80 127.0.1.1 (/etc/apache2/sites-enabled/001-test.conf:1)
apache2ctl -tコマンドを使用すると構文チェックを行えます。Syntax OKと表示されれば問題ありません。
構文に問題がなければsystemctl reload apache2で設定を反映させます。
apache2ctl -t -D DUMP_VHOSTSコマンドを使用するとVirtualHostの設定を一覧表示することができます。この一覧から/etc/apache2/sites-enabled/001-test.confの設定が読み込まれている事と、000-default.confが読み込まれなくなっている事が確認できます。
おわりに
RedHat系列のApacheと比べるとディレクトリが多く、直感的には使用方法が分かり辛いので纏めてみました。一応apache2.conf内にもディレクトリやコマンドの説明が英語で記入されているので、そちらも合わせて読んで活用してみて下さい。
このカテゴリの最新記事
2024.09.19
2023.09.11
2024.11.29
2023.10.02