/usr/web
の作成
/sys/lib/httpd.rewrite
/lib/namespace.httpd
listen
の管理下で実行
2003/01/11 改訂
以下に CGI を使用しない場合のインストールの方法を解説する。
pegasus-2.0b.tgz
をとってくるestrdup
がない」と文句を言われるかもしれません。その場合、emem.c
に含まれている estrdup
を生かしてください。estrdup
は最新の環境ではライブラリに含まれています。
/usr/web
の作成/usr/web
を作成する。term% mkdir /usr/webディレクトリのオーナーを
web
にしてはならない。others
に対して読みとりと実行を許しておく。サーバモードで実行しない限り、/adm/users
に web
を登録する必要はない。ベースディレクトリ /usr/web
は名前空間編成の基礎になるディレクトリである。ここに配布ファイルの $pegasus/example/usr/web
をコピーする。筆者の cpdir
を使用するのが簡便である。cpdir
は http://plan9.aichi-u.ac.jp/netlib/cmd/cpdir に置かれている。term% cpdir -mv $pegasus/example/usr/web /usr/web作成されたこれらのディレクトリのオーナーも
web
にしてはならない。others
に対して読みとりと実行を許しておく。example/usr/web
は CGI が使用できる内容になっている。従って、CGI を使用しない場合には多くの不要のものが含まれている。特に害はないと思えるので、そのまま使用しても構わない。/usr/web/docの下には書かない。このディレクトリは単にコンテンツを盛りつけるベースのような役割を果たしている。
bob
だとすれば/usr/bob/www/docが推奨される置き場所である。
$home
をそのユーザのホームディレクトリとすれば$home/web/docに置く。この場合このユーザ(
alice
とせよ)のコンテンツへのクライアントからのアクセスはhttp://your.host.com/~aliceのようになるであろう。こここに
your.host.com
はあなたのサーバのドメイン名である。
/sys/lib/httpd.rewrite
/usr/bob/www/doc
に置かれていれば/ */usr/bob/wwwの一行だけを書く。これでユーザのホームページの分を含めてサポートされている。最初のうちはこれで十分である。
/lib/namespace.httpd
$pegasus/sample/lib/namespace.httpd
をそのまま使用しても構わない。このファイルは CGI を使用する内容になっている。しかし特に害はないと思える。
listen
の管理下で実行listen
の管理下で httpd
を実行しよう。通常はそれで充分である。/rc/bin/service/tcp80を作成する。その内容は
#!/bin/rc exec /usr/local/bin/$cputype/httpd $*である。アクセスモードを
--rwxrwxr-xに設定する。
bob
と仮定する。その場合/usr/bob/www/doc/index.htmlを作成し、適当な内容を書く。
以上の一般的な規則の他に、パスワードによってアクセスできるディレクトリや特定の IP のクライアントのみ拒否あるいは受け入れるディレクトリを定義できます。
/usr/bob/www/etcは
bob
のドキュメントに対するアクセス制御ファイルの置き場所です。(ドキュメントの制御はドキュメントの所有者の責任において行う。これが Pegasus の思想です。)
殆どのソフトウェアにバグがあるように、Pegasus にもバグが残っているかも知れません。(発見したら報告をお願いします)
多数のユーザを抱えた場合には、ユーザが知っている情報は漏れていく可能性があります。それがシステムのセキュリティを支えているような重要な情報であってもです。従ってそのような場合には認証サーバを別に持つべきです。CPU サーバの情報は全て公開される事を覚悟すべきでしょう。(管理の手落ちによって秘密の情報をオープンにしてしまう事は珍しくはない。)