小規模な制作・開発用途のWebサーバーでの制作部署毎のプロジェクト管理を例に考えてみます。
Webサーバー公開ディレクトリに接続するには、FTPサーバー/ Samba / Netatalkなどのファイルサーバーとの乗り入れ、WebDAVなど様々な方法がありますがここでは割愛します。以下のページで解説していますので参考にしてみて下さい。
それでは Webサーバー管理者が行う公開ディレクティブ管理作業について見ていきます。
projectAという制作・開発プロジェクトのための公開ディレクトリをスタッフに提供するとします。 /etc/conf.d/ に project.conf という任意のプロジェクトのための設定ファイルを作成します。
## CGI 実行許可ディレクトリ (各プロジェクト共通)
<Directory /data01/project/*/cgi-bin/> ←ワイルドカードで指定
Options +ExecCGI
AddHandler cgi-script .cgi .pl
</Directory>
## プロジェクトA 始まり
# /data01/project/kawachi/ を http://myserver.com/PROJECTS/kawachi/
# で公開します。
Alias /PROJECTS/kawachi/ "/data01/project/kawachi/"
# 上記公開ディレクトリのディレクティブオプションが必要な場合は
# 以下のディレクティブで指定します。指定がなければhttpd.confの
# <Directory>内に定義されたデフォルトに従います。
<Directory /data01/project/kawachi/>
# 通常のhttp接続は許可せず、https接続のみに限定する
SSLRequireSSL
# .htaccess によるBasic認証を有効にする
AllowOverride AuthConfig
# 接続制限の評価基準とアクセス禁止・許可アドレス
Options None
Order allow,deny
Allow from all
</Directory>
## プロジェクトA 終わり
前のページで説明したのと同じで ScriptAlias は使っていません。ワイルドカード * で指定しているため全てのプロジェクトディレクトリに設置した cgi-bin ディレクトリ以下でCGIの実行が許可される事になります。
一度、Apacheが認識できるルートになれば、後はディレクティブ
<Directory > ~ </Directory> タグ内で細かな指定を行ないます。
ここで雛型が出来れば、プロジェクトA の部分を使いまわすだけで他のプロジェクトに対して再利用できます。プロジェクトごとに設定ファイルを作成する、プロジェクトタイプごとに設定ファイルを 纏めるなど臨機応変に対応します。httpd.conf にまとめて列挙するよりわかりやすく、管理が楽なのでセキュリティ上の見落しも軽減する筈です。
基本的な公開ディレクティブについて説明しています。オプションの詳細についてはマニュアルを参考にして下さい。外部に公開すべきディレクトリなのか、制限する必要があるのかは、適宜設定を行う必要があります。
このように外部クライアントに、Webサーバーの利用を認める場合、知っておくと便利な機能があります。 クライアントは当然の亊ながら、httpd.confは修正出来ません。 出来たら恐いです。 Webサーバー管理者が指定したディレクティブ設定の一部をクライアントに譲渡することも可能で、管理者の負担を減らす事も出来ます。
.htaccess ファイルを用いて、クライアントに対し、自分のディレクトリにディレクティブ(サーバー管理者の権限)を譲渡する亊が可能です。 譲渡する内容は、httpd.confで指定します。つまりサーバー管理者がセキュリティ ポリシーに基づきサーバー管理者が決定します。
興味のある方は 以下のApacheドキュメントに説明があります。
参照 => Apache チュートリアル: .htaccess ファイル - Apache HTTP サーバ
内部の信頼のおけるスタッフであれば、ある程度は譲渡してサーバー管理者の負担軽減も考えられます。使い道の多い機能なので、知っておくと良いことがあるかもしれません。