Debian系のApache管理方法
Debian系ディストリビューションのApacheは一般的なレイアウトとは少し異なっている。
/etc/apache2/apache2.conf | 基本設定 |
/etc/apache2/httpd.conf | オーバーライドする設定 |
/etc/apache2/conf.d/ | 基本設定の中でIncludeするスニペット |
/etc/apache2/ports.conf | ポートの設定 |
/etc/apache2/envvars | 環境変数の設定 |
/etc/apache2/mods-available/ | 利用可能なモジュール設定 |
/etc/apache2/mods-enabled/ | 利用中のモジュール設定(リンク) |
/etc/apache2/sites-available/ | 利用可能なサイト設定 |
/etc/apache2/sites-enabled/ | 利用中のサイト設定(リンク) |
/var/www | ドキュメントルート |
/usr/lib/cgi-bin | cgi-bin |
/var/log/apache2 | ログ |
Apacheの設定といえばhttpd.confだけど、Debianの場合0バイトの空ファイル。初めて見ると何だこりゃと思う。
基本的な設定はapache2.confの方に書いてあって、httpd.confはIncludeされるようになっている。
設定を変更したい場合は、apache2.confはいじらずにhttpd.confを書き換えることになる。
ポートに関する設定だけはports.confに書かれている。ListenとかNameVirtualHostとか。
ちなみにServerTokensやServerSignatureはconf.d/securityに書かれている。
モジュールに関する設定はmods-availableにモジュール毎の設定ファイルとして格納されていて、それらのうち実際に有効にするものがmods-enabledにシンボリックリンクとして置かれる。
そしてこのリンクによるOn/Offはa2enmod, a2dismodというコマンドで制御する。
例:mod_proxyを有効にする sudo a2enmod proxy 例:mod_proxyを無効にする sudo a2dismod proxy
サイトに関する設定もモジュールと同じ方式で、sites-availableとsites-enabledで管理される。
バーチャルホストやLocationなどでファイルを分けて管理する(defaultは使わずにコピーして使うと良い)。
例:svn.example.comを有効にする sudo a2ensite svn.example.com 例:svn.example.comを無効にする sudo a2dissite svn.example.com
modsもsitesもavailableの方を編集するようにする。
間違ってもenabledの方でcp hoge hoge.bakなどとしてはいけない。enabledの中に入っているものは全て読み込まれると思うべし。*1
envvarsは環境変数の設定ファイルで、apache2ctlが毎回読み込むようになっている。
また、Apacheのユーザ、グループ、PIDファイルはこのファイルで設定し、apache2.confの中で環境変数を参照するような形になっている。
Apacheの起動・停止等はapache2ctlでもいいが、/etc/init.d/apache2のほうがよい。
特に設定変更時は/etc/init.d/apache2 reloadでapache2ctl configtestしてからgracefulしてくれる。*2