おもしろwebサービス開発日記

Ruby や Rails を中心に、web技術について書いています

apacheを復習する(その1)

これまでなんとなくの知識でwebサーバを使っていたのですが、そろそろ基礎からがっちり固めてやる必要がありそうです。webサーバーとしてはapache以外にもlighttpdとかnginx(えんじんえっくす)とかありますが、やっぱりapacheが基本だと思うので(あとドキュメントも多いしね)、apacheにフォーカスして気になる部分をまとめていこうと思います。

セクションコンテナ

範囲を指定するディレクティブのこと。, , の3種類があります。ちなみにディレクティブはapacheの設置のためのキーワードのことです。

セクションコンテナの適用順序

の順で解釈をおこない、後の設定が前の設定を上書きします。が複数存在するような場合は、登場する順番で解釈されます。も同様ですが、に関しては順序が異なります。

複数のが存在した場合

下記のような適用順序になり、後の設定が前の設定を上書きします。

  1. 正規表現を使わずディレクトリ名が短い
  2. 正規表現を使わずディレクトリ名が長い
  3. 正規表現を使うファイルの登場順

DirectoryIndex

ファイル名を指定せずにアクセスした場合に表示するページ、つまりインデックスページの名前を指定するディレクティブです。

設定例

複数指定できます。

DirectoryIndex index.html index.html

Optionsディレクティブ

いろんな設定をするディレクティブ。Optionsを書かなかった場合は、下記のように書いたのと同じになります。

Options ALL
例

通常パターン

Options Indexes ExecCGI

+, -で設定の追加/削除ができます

Options +Indexes -ExecCGI

通常パターンを複数書いた場合は、後に書いた設定の方が有効になります。

Optionsディレクティブのオプション

All

MutiView以外の全てのオプションを指定したのと同じです。

ExecCGI

CGIスクリプトの実行を許可します。

FollowSymLinks

シンボリックリンクを辿るのを許可します。

SymLinksIfOwnerMatch

ファイルやディレクトリの所有者とシンボリックリンクの所有者が同一の場合だけ、サーバがリンクを辿ることを許可する。だそう。セキュリティを考えると、FollowSymLinksよりもこちらを使った方がよさそう。

Includes

SSIの利用を許可します。SSI(Server-Side Include)とは、他のファイルやプログラムの実行結果をページの一部に組み込む機能を指します。RailsやPHPを使っている場合は使わない機能です。

IncludesNOEXEC

#exec cmd及び#exec cgi以外のSSIの利用を許可します。

Indexes

クライアントがディレクトリのURLを要求していて、かつインデックスファイルが存在しない場合にディレクトリ構成を表示する。

MultiViews

MultiViewsをサポート。MultiViewsとは、リクエストヘッダに合わせてレスポンスを変更できるようにする仕組みです。詳しくは下記を参考のこと。

ITmedia エンタープライズ : Linux Tips「ApacheのMultiViews機能ってなに?」

Aliasディレクティブ

Aliasディレクティブを使うと、ドキュメントルートの外のディレクトリも公開できます。apache2.2系であれば、このあたりの設定はhttpd-autoindex.confに書いてあります。

例
Alias /icons "/usr/local/apache2/icons"

下記のように書いてもいいけど、そうするとhttp://www.example.com/iconsのように末尾の"/"を省いたときにNotFoundになるので、icons/index.htmlにアクセスさせたいときは上記の書き方の方がよいと思います(本来はApache側でディレクトリかファイルかの判別をさせるのは間違いらしいので、下記の書き方で問題ないときは下記のように書いた方がよいみたい)。

Alias /icons/ "/usr/local/apache2/icons/"
正規表現を使いたい場合は

正規表現を使いたい時は、AliasMatchディレクティブを使います。

AddType

MIMEタイプと拡張子の関連づけに使うディレクティブです。デフォルトでほとんど設定されているようなので、あまり設定する機会はないかもしれません。

例
AddType video/x-mx-asx .asx

参考

Apacheハンドブック
ApacheハンドブックBen Laurie

おすすめ平均
starsLINUX上のWEBサーバの基本
starsApache使い必須

Amazonで詳しく見る
by G-Tools
できるPRO Apache Webサーバー Apache2/1.3対応 (できるPROシリーズ)
できるPRO Apache Webサーバー Apache2/1.3対応 (できるPROシリーズ)辻 秀典

おすすめ平均
stars第2刷買いました
stars良い本とは思いますが初心者向きでは無いと思います。

Amazonで詳しく見る
by G-Tools