2016年6月6日月曜日

Ubuntuにおけるapache設定の基本概念

apacheは最も多く使われているWebサーバーソフトで、UbuntuでもLAMPの一つとして標準でインストールされる。

しかし、Debian/Ubuntuでの設定は従来と少し異なるので、注意が必要である。より柔軟な変更を可能にするために、コアの設定ファイルを編集するのではなく、ディレクトリに設定ファイルを追加・削除する方式となっている。

以下ではその設定の基本的な考え方について、Ubuntu LTS 14.04を前提にして説明する。


apacheは通常/etc/apache2/にインストールされる。ここには、

  • apache2.conf
  • ports.conf
  • envvars
  • magic
のファイルがある。

apache2.confではグローバルな設定、つまりサーバーの動作全体に適用する設定を記述する。例えば、apacheのトップディレクトリ、同時接続数、実行ユーザー、ログ内容、ファイルアクセス権限を設定する。

ports.confでは、サーバーが待機するポートを指定する。通常は80番だが、他のソフトが使っているなどで変更したければ、このファイルで設定する。

envvarsでは起動時に読み込む環境変数を設定し、magicでは各ファイル形式に対するMIMEタイプを指定する。

そしてxxx-available/とxxx-enabled/というディレクトリが、conf、mods、sitesに対して存在する。confには文字コードやセキュリティなどの各項目に関する設定、modsにはapacheのモジュールとその設定、sitesにはバーチャルホストごとの設定を置く。apacheはxxx-enabled/にある設定ファイルやモジュールを起動時に読み込んで適用する。

単にxxx-enabled/の中にファイルを置いてもいいのだが、次のような手順が用意されているのでそれに従うとon/offが簡単になる。

  1. xxx-available/にファイルを置く
  2. a2enxxxコマンドでxxx-enabled/にソフトリンクを張る
  3. service apache2 reloadでファイルを再読み込みする
たとえばデフォルトのwebサイトに対するローカル設定を変更するときは、sites-available/000-default.confを編集し、a2ensite 000-defaultを実行する。そうするとsites-enabled/000-default.confにリンクができる。(ただしこのリンクは標準で存在するのでa2ensiteを実行する必要はこの場合ない。)一通り設定を終えたら、service apache2 reloadを実行してファイルの追加を反映する。なお、ファイルの書き込みやデーモンの操作にはroot権限が必要なので、先頭にsudoをつけて実行する。

逆に、ある設定やモジュールを無効にしたいときは、a2disxxxを実行すればよい。(例 a2dissite 000-default・・・いきなりこれを無効にすると良いことはないけれど。)a2enもa2disも、引数なしで実行すれば候補をリスト表示してくれる。

以上のようにして、最小限の手間で分割した設定や機能を選択することができる。今回はLTS 14.04について述べたが、16.04でも、serviceコマンドを実行する代わりに、systemctl restart apache2.serviceを実行すればよい。(serviceのほうがtab補完が効いて好きだけど。)

参考:Ubuntu Documentation Project「HTTPD - Apache2 Webサーバー」Ubuntuサーバーガイド for Ubuntu 16.04

0 件のコメント:

コメントを投稿