Apache HTTP サーバ バージョン 2.4
ユーザ毎のウェブディレクトリ
複数のユーザのいるシステムでは、UserDir
ディレクティブを使って
各ユーザがホームディレクトリにウェブサイトを構築できるように設定することが
可能です。URL http://example.com/~username/
を訪れた人は
"username
" というユーザの UserDir
ディレクティブで指定された
サブディレクトリからコンテンツを得ることになります。
in the default config file, and adapting the httpd-userdir.conf
file as necessary, or by including the appropriate directives in a
Directory
block within the main config file.
デフォルトではこれらのディレクトリへのアクセスは許可されていません。
UserDir
を使って有効にできます。
有効にするには、デフォルトの設定ファイルで付随する
httpd-userdir.conf
ファイルが必要で、
その中の次の行のコメントアウトを外して有効にするか、
#Include conf/extra/httpd-userdir.conf
あるいは、メインの設定ファイル中の Directory
ブロックの中に適切にディレクティブを記述しておきます。
ユーザ毎のウェブディレクトリ
関連モジュール | 関連ディレクティブ |
---|---|
UserDir を使ってファイルのパスを設定する
UserDir
ディレクティブは
ユーザ毎のコンテンツが読み込まれるディレクトリを指定します。
このディレクティブはいろいろ違った形式を取ることができます。
スラッシュで始まらないパスが与えられたときは、ユーザのホームディレクトリ からの相対パスとみなされます。次の設定があったときに:
UserDir public_html
URL http://example.com/~rbowen/file.html
は
パス /home/rbowen/public_html/file.html
へ
変換されます。
パスがスラッシュで始まるときは、ディレクトリパスはそのパスに ユーザ名を加えたものからなります。次の設定のとき:
UserDir /var/html
URL http://example.com/~rbowen/file.html
は
パス /var/html/rbowen/file.html
へ変換されます。
アスタリスク (*) を含むパスが指定されたときは、アスタリスクを ユーザ名で置換したものが使用されます。このような設定だと:
UserDir /var/www/*/docs
URL http://example.com/~rbowen/file.html
は
パス /var/www/rbowen/docs/file.html
へ変換されます。
ディレクトリやディレクトリパスを複数設定することもできます。
UserDir public_html /var/html
http://example.com/~rbowen/file.html
という
URL に対しては ~rbowen
を探します。見つからなければ、
/var/html
の下にある rbowen
を探します。
もし見つかれば上記の URL は /var/html/rbowen/file.html
というファイルパスに変換されます。
外部 URL にリダイレクトする
UserDir
ディレクティブを使って外部 URL にリダイレクトすることもできます。
UserDir http://example.org/users/*/
上記例では http://example.com/~bob/abc.html
へのリクエストは http://example.org/users/bob/abc.html
にリダイレクトされます。
この機能を使用できるユーザを制限する
UserDir のドキュメントに示されている構文を使うことで、 どのユーザがこの機能を使うことができるかを制限することができます:
UserDir enabled
UserDir disabled root jro fish
上の設定は dissabled
文のユーザ以外のすべてのユーザに
対して UserDir の機能を有効にします。同様にして、以下のように
数名のユーザ以外に対してこの機能を無効にすることもできます:
UserDir disabled
UserDir enabled rbowen krietz
他の例は UserDir
の説明を参照してください。
ユーザ毎の CGI ディレクトリ
それぞれのユーザに専用の cgi-bin ディレクトリを与えるために、
<Directory>
を使ってユーザのホームディレクトリの指定された領域に対して CGI を有効に
することができます。
<Directory /home/*/public_html/cgi-bin/> Options ExecCGI SetHandler cgi-script </Directory>
そして、UserDir
が
public_html
に設定されていると仮定すると、
そのディレクトリの CGI プログラム example.cgi
は以下の様に呼び出されることができます:
http://example.com/~rbowen/cgi-bin/example.cgi
ユーザによる設定変更を許可
ユーザに彼らのウェブ空間でのサーバの設定の変更を許可する場合、
ユーザは .htaccess
ファイルを使って設定を変更する必要があります。
AllowOverride
の値を
ユーザが変更することを許可したいディレクティブに対して十分なものに
設定していることを確認してください。この機能がどのようにして動作しているか
の詳細は .htaccess チュートリアル を読んで
ください。