世界最大シェアのWebサーバーApacheの基本的な設定例を掻い摘んで説明しています。バージョンは Apache2 です。1.3系もほとんど共通しています。異なる場合は触れています。
Apache2 から設定ファイル構成が分かれています。Apache は過去に分かれたり一つに纏められたりしています。
通常はディレクティブ毎、あるいはプロジェクト毎のディレクッティブグループといった分け方をすると思います。ファイルを分けることでサーバー管理が楽になり、管理者同士の引継も楽になります。 設定ミスからのセキュリティホールも軽減されるはずです。
/etc/httpd/conf.d/任意.conf は一番最期に読みこまれ、よって最期に評価されます。
プロジェクトごとに管理する例を以下に示します。
公開するディレクティブは <Direvtory /任意> ~ </Directory> の間で指定します。 ディレクティブに関する詳細はマニュアルを参照して下さい。
Alias /project-x/ "/data/work/project-x/"
# 上記設定はドキュメントルートディレクトリ外にあるファイルを
# Webアドレス http://docroot/project-x/ で表示させるためAlias設定です。
### project-x ディレクティブ
<Directory /data/work/project-x/>
SSLRequireSSL
# 通常のhttp接続は許可せず、https接続のみに限定します。
SSLVerifyDepth 1
SSLOptions +OptRenegotiate
SSLVerifyClient require
# クライアント認証を指定 ここでは同サーバーと同じ認証局(CA)が発行した
# 証明書を提示しなければSSLセッションを確立できない。
# つまり上記と組み合わせることで
# 強固なセキュリティを確保できる。当然.htaccessによるBASIC認証は必要。
# 以下は基本的なディレクティブ設定
Options FollowSymLinks ExecCGI +Includes
AllowOverride AuthConfig
order deny,allow
deny from all
allow from 192.168.15.10 192.168.1.101 192.168.15.12
</Directory>
例のコメント(#)は設定ファイルに関する注釈です。このようにプロジェクトごとに設定ファイルを作成するか、プロジェクトグループごとに設定ファイルを新たに作成し、管理するとサーバー管理者同士の引継ぎも行いやすくなります。
Apacheの設定ファイルは、非常にデリケートで、Webminなどの管理ツールをつかってしまうと、Apacheが起動できなく亊がよくあります。 Apacheの管理は手作業が基本ですから、このような管理方法は助かります。 Apacheは過去に何回かデフォルトで設定ファイルが1つにまとめられたり、分かれたりしています。個人的には分かれている方が管理し易いです。