Apacheの設定メモ

TracLightningの裏がApacheである関係で、Apacheを復習したのでメモしておく。

設定ファイル

  • httpd.conf ・・・全体の設定ファイル
  • .htaccess ・・・ディレクトリ毎の設定ファイル。このファイル名はhttpd.confのAccessFileNameに指定された値である。有効化するには、該当ディレクトリについて AllowOverride All の設定が必要
  • 任意のファイル ・・・httpd.confでIncludeで指定されたファイルは、全体の設定ファイルの一部となる。例えば、conf/virtualhost.confなど

設定ファイルの構造

設定ファイルにおいて、「全体の設定」と「特定範囲の設定」の2種類の設定方法がある。
特定範囲の指定方法は、以下の通り。

  •  ・・・特定のディレクトリ(ファイルシステムにおける)の配下。再帰的に適用
  •  ・・・特定のファイル名
  •  ・・・特定のURL(「http://サーバ名」以下の部分を指定)の配下。再帰的に適用
設定の優先順位
  • 優先度の高い順は、Location, Files, Directory
  • 同じ範囲指定の場合、
    • FilesとLocationについては、設定ファイルでより下に書かれた設定が優先
    • Directoryについては、ディレクトリ名の短い順、次いで正規表現を含むディレクトリ、の順

公開ディレクト

ドキュメントルート

設定例:

DocumentRoot "/usr/local/apache/htdocs"
エイリアス

公開ディレクトリ以外の場所をエイリアス指定することで、公開することができる。
設定例:

Alias /icons/ "/usr/local/apache/icons/"

※Apache2.2では、extra/httpd-autoindex.conf で設定されている。有効化する場合は、httpd.confのInclude部分をアンコメントする。

ユーザごとの公開ディレクト

ユーザごとのディレクトリを公開することも可能。UNIX系OSで以下のように設定すると、~/public_htmlが公開される。URLは「/~ユーザ名/」。
設定例:

UserDir pulic_html

※Apache2.2では、extra/httpd-userdir.conf で設定されている。有効化する場合は、httpd.confのInclude部分をアンコメントする。

仮想ホスト

1台のホストを仮想的に複数のホストに見せる方法。HTTPのHostヘッダで呼び分ける方式と、NICIPアドレス)で呼び分ける方式がある。

Hostヘッダで呼び分け

設定例:

<VirtualHost *:80>
  ServerName vertual01.jp
  DocumentRoot /usr/local/apache/htdocs
</VirtualHost>

※Apache2.2では、extra/httpd-vhosts.conf で設定されている。有効化する場合は、httpd.confのInclude部分をアンコメントする。
※ServerAlias で、ServerNameのエイリアス定義も可能。

NICIPアドレス)で呼び分け

設定例:

<VirtualHost 192.168.1.1>
 〜〜〜
</VirtualHost>

アクセス制御

接続元による制御

設定例:

# 適用順。denyが後から適用されるため、denyの優先度の方が高くなる
Order allow, deny
Allow from all
Deny from 192.168.1.1
ユーザ認証による制御

設定例:

# ベーシック認証
AuthType Basic
AuthName "認証ダイアログに表示するメッセージ"
# htpasswdコマンドで作成したパスワードファイルを指定
AuthUserFile /usr/local/apache/conf/passwd
# 認証に成功したユーザはすべてアクセスできる
Require valid-user

Apacheではベーシック認証のほかに、DB認証、LDAP認証、ダイジェスト認証などの選択肢がある。

参考文献

できるPRO Apache Webサーバー Apache2/1.3対応 (できるPROシリーズ)

できるPRO Apache Webサーバー Apache2/1.3対応 (できるPROシリーズ)