名前空間
2002/08/25
Pegasus の名前空間は以下の順序で決定されていく。
httpd の起動
起動直後は httpd を起動した名前空間の中にいる。 これは通常 console の名前空間である。
ユーザ none として実行される場合には名前空間は
/lib/namespaceに従って再編成される。
クライアントからのリクエスト
/sys/lib/httpd.rewriteに従って前処理される。
この段階で、実ホストへの要求か、仮想ホストやユーザへの要求かが判明する
まず
/lib/namespace.httpdに従い名前空間を再編する。(これは実ホストの名前空間でもある)
仮想ホスト・ユーザの場合には、さらに名前空間を再編する。
httpd のサービス空間の確立(実ホスト・仮想ホスト・ユーザごとの名前空間)
(以下ではパス表示は全てサービス空間でのものである)
/etc/rewrite による前処理
要求されたファイルの確定
/etc/allow、/etc/passwd によるアクセス制限のチェック
CGI でない場合には要求されたファイルをクライアントに渡す
CGI の場合
必要なら ramfs
必要なら新たなマウントの禁止
/etc/namespace.cgi を参照し名前空間の再編成
CGI における名前空間の確立
CGI プログラムの実行