Apacheの設定はおもに「httpd.conf」ファイルを編集することで行ないます。
「httpd.conf」のインストール先はパッケージでインストールした場合と、ソースファイルからインストールした場合で異なります。
インストール方法 | インストール先 |
---|---|
バイナリパッケージ | /etc/httpd/conf/httpd.conf |
ソースファイルのビルド | /usr/local/apache2/conf/httpd.conf |
「httpd.conf」自体はただのテキストファイルであり、決められたルールや構文に従いエディタを使って直接編集します。また、設定の一部を外部ファイルに分割することもできます。設定ファイル本体は「httpd.conf」とし、モジュールや機能単位で設定ファイルを分割することで可読性を高めることができます。
設定ファイルをうまく分割しておけば、途中で不要な機能となった場合など、その機能に対応する設定ファイルを読み込まないようにするだけで、機能を停止できます。また、他のシステムで設定ファイルを使いまわすこともでき、生産性が向上します。
httpd.confの構文
「httpd.conf」には決められた構文に従ってファイルを記述します。行単位で設定を行い、1行で1つの内容を設定します。1行の先頭で、その行で何の設定をするのかを識別するための記述をします。その記述を「ディレクティブ(Directive)」と言います。
1行の中でディレクティブに続けて引数を指定します。ディレクティブと引数の間には1つ以上の空白文字かタブを挿入します。
ディレクティブの使用例
ServerAdmin webmaster@sample.com
引数は1つのディレクティブに対して複数指定することもできます。その場合は、空白文字で仕切ります。また、1つの引数の中に空白文字を含む場合は「”(ダブルクォーテーション)」で括ります。
なお引数は大文字・小文字を区別しますが、ディレクティブは区別しません。ただし、UNIX系OSではファイル名やディレクトリ名を大文字・小文字で区別されるため、ディレクティブも意識的に区別した方が良いでしょう。
最も基本的なディレクティブとして以下のようなものがあります。
ディレクティブ名 | 設定例 | 概要 |
---|---|---|
ServerRoot | ServerRoot “/etc/httpd” | Apacheのシステム全体のルートとなるディレクトリを指定。 |
Listen | Listen 80 | Apacheが接続を受け付けるポート番号を指定。 |
DocumentRoot | DocumentRoot “/var/www/html” | Webページとして公開するコンテンツを格納する最上位のディレクトリを指定。 |
ServerAdmin | ServerAdmin webmaster@sample.com | 管理者のメールアドレスを指定。 |
Include | Include conf.d/*.conf | 他の設定ファイルを読み込む。 |
Apache2.2のディレクティブ一覧は以下サイトから確認できます。
http://httpd.apache.org/docs/2.0/ja/mod/directives.html
ディレクティブはサーバー全体に対しての設定はどこに記述しても構いません。ただし、特定のディレクトリやURLなどに設定を限定する場合は「<Directory ○○> ~ </Directory>」のようなブロック形式で、対象を限定する必要があります。ブロックの最初と最後に記述する指示子を「セクションコンテナ」と言います。
セクションコンテナ | 単位 | 概要 |
---|---|---|
<Directory パス名>~</Directory> | ディレクトリ | ディレクトリを表すパスはフルパスで指定。「*」や「?」などのワイルドカードを使った指定も可能。 |
<Files ファイル名>~</Files> | ファイル | ファイル名で指定する。そのファイルが存在するディレクトリに関係なく指定したファイル名に対応する。ワイルドカード指定も可能。 |
<Location URLパス名>~</Location> | URL | パス名はURLの中で「http://ホスト名/aaa/bbb」の「/aaa/bbb」の部分を指定する。 |
Apache2.2のセクションコンテナ一覧は以下サイトから確認できます。
https://httpd.apache.org/docs/2.2/ja/sections.html