UbuntuのApache設定ファイルで戸惑ったら。
Ubuntu 16.04
しばらく使ってないと、えーと、どうなってたっけ・・・とすぐ忘れるのでメモかねて。
ぱっと見わかりづらいですが面白い仕組みになってます。
まず/etc/apache2のディレクトリには***-availableと***-enabledという命名規則のディレクトリが対になってます。
そして、apache2.confはこのうち***-enabled内の.confや.loadファイルをすべて読み込むようになってます。
見ての通り、***-enabledの中身はすべて***-available内のファイルへのシンボリックリンクです。
***-availableに実際の設定ファイルがあります。
ここで重要なのは、シンボリックリンクと設定ファイルは必ず同じ数だけ対になっているわけではないということです。
そしてこのシンボリックの有無がapache2.confから***-available内のファイルが読み込みに関係してきます。
つまり、設定を無効にしたければシンボリックを消せばいいわけで、逆に有効にしたければシンボリックを作成すればいいわけです。
そして、そのためのコマンドがそれぞれ用意してあります。
ディレクトリ | シンボリックの削除 | シンボリックの作成 | 説明 |
---|---|---|---|
mods-enabled | a2dismod | a2enmod | モジュールの設定ファイル |
sites-enabled | a2dissite | a2ensite | 仮想ホストの設定ファイル |
conf-enabled | a2disconf | a2enconf | その他設定ファイル |
a2はApache2、disは無効、enは有効という意味かな・・・?
いや、知りませんよ。
例えば、
sudo vi /etc/apache2/sites-available/sample.conf
で適当な設定ファイルを書いて、
sudo a2ensite sample
を打つと、/etc/apache2/sites-enabled/sample.conf が作成されます。
これは../sites-available/sample.confへのシンボリックリンクです。。
sudo a2dissite sample
を打つと、/etc/apache2/sites-enabled/sample.conf が削除されます。
図で見たほうが一目瞭然。
sudo vi sample.conf
sudo a2ensite sample
sudo a2dissite sample
後はApacheを再起動