httpd
目次
配置
/usr/local/bin/386/httpd
用法
httpd [-Mfmsuw] [-t timeout] [-p port] [-c certificate] [-n namespace] [-R rewrite] [[httpd] dummy .. incalldir]
オプション
-m
-
マウントを許可する。
-s
-
サーバモードで実行する。詳しくはサーバモードを見て下さい。
このオプションを付けない場合には listen によって呼び出される。
-u
-
{httpd} を起動したユーザIDでサービスを行う。
このオプションはサーバモードでのみ有効です。
詳しくはサーバモードを見て下さい。
-w
-
{$home/web/doc} 以下のディレクトリを自動的にユーザドキュメントとして公開することを行わない。
-M
-
{mon} と共に使用する。
このオプションはサーバモードでのみ有効です。
詳しくはサーバモードを見て下さい。
-t
timeout
-
CGI プログラムに対するタイムアウト。
バグを持った CGI プログラムに対するガードです。
暗黙の指定: 5 秒
-p
port
-
サービスポート。
暗黙の指定: 80
-c
certificate
-
PEM 形式の証明書を与えます。https を使用する場合に必要です。
-n
namespace
-
名前空間編成ファイル
暗黙の指定: {/lib/namespace.httpd}
-R
rewrite
-
URI 変換ファイル
暗黙の指定: {/sys/lib/httpd.rewrite}
残りの引数は listen
によって呼び出しを受ける時に、listen
が与えます。直接指定する必要はありません。
説明
実行の方法
Pegasus はいろいろな方法で実行させることができます。以下に手軽な順に説明します。
- listen の下で実行
listen の下で実行する場合には
/rc/bin/service/tcp80
を作成し、実行フラグを立てて以下の内容を書いておきます。
#!/bin/rc
exec /usr/local/bin/$cputype/httpd $*
この場合にはユーザ none として実行されます。
- サーバモードで、ユーザ none で実行
この場合には
/usr/local/bin/386/httpd -s
を /bin/rc/cpurc
の中に書いておきます。
- mon の下で実行
サーバモードで、ユーザ web で実行することによって、サーバのシステムユーザから読みとれないファイルを CGI を使用して作成できます。その場合には mon を使用します。詳しくはmonを見てください。
さらに、上記の実行方法に SSL(TLS) を組み合わせることもできます。詳しくは証明書(Certificate) を見てください。
サービス空間
httpd がサービスを行っているときに、httpd が見るファイルの集合です。「コンセプト」で説明したように、Pegasus の場合にはこの空間は、web ベース /usr/web
を基に、/lib/namespace.httpd
で編成された名前空間に、/sys/lib/httpd.rewrite
で指定された web ルートがマージされることによって形成されます。
web ルート
Pegasus の web ルートは、実ホスト、仮想ホスト、ユーザごとに異なります。実ホストと仮想ホストの web ルートは /sys/lib/httpd.rewrite
で指定されます。ユーザ(例えば alice
)の web ルートは /usr/alice/web
です。
以下では web ルートを $web
で表します。
ドキュメントルート
実ホスト、仮想ホスト、ユーザごとにドキュメントルートが存在します。それらは実空間では $web/doc
であり、サービス空間では /doc
となります。
ドキュメント空間
ドキュメントルートの下にあるファイルの集合です。Pegasus にアクセスするクライアントはドキュメント空間の中のピリオドで始まらないファイルにのみアクセスできます。サービス空間の中の他のファイルは CGI を通じてのみアクセスできます。
関連ファイル
/lib/namespace.httpd
/sys/lib/httpd.conf
/sys/lib/mimetype
/sys/lib/httpd.rewrite
/sys/log/http
/sys/log/blacklist
/rc/bin/service/tcp80
/lib/namespace
/lib/ndb/local
$web/etc
$web/namespace_80
$web/bin/386
$web/bin/rc