Pegasus のインストール
目次- 1.0.0 インストール
- 2.0.0
/usr/web
の作成 - 3.0.0 コンテンツの置き場所
- 4.0.0
/sys/lib/httpd.rewrite
- 5.0.0
/lib/namespace.httpd
を作成する - 6.0.0 最初は
listen
の管理下で実行 - 7.0.0 動作確認をする。
- 8.0.0 アクセス制御とセキュリティ
- 9.0.0 おわりに
インストール
1.pegasus-1.2a.tgz
をとってくる。2. 解凍する。
term% gunzip pegasus-1.2a.tgz term% tar -xf pegasus-1.2a.tarすると tar を実行したディレクトリに、ディレクトリ
pegasusが作成される。
term% cd pegasus term% cd httpd term% mk lib term% mk標準的なインストール先は
/usr/local/bin/386なので無ければ作成する。(あるいは他のディレクトリにインストールしても構わない)
term% mk install
/usr/web
の作成
/usr/web
は Pegasus の標準設定では名前空間編成の基礎になるディレクトリである。サーバモードで実行しない限り、
/adm/users
に web
を登録する必要はない。CGI のサービスを行わないのであれば
/usr/web/doc /usr/web/etc /usr/web/mntが作成されていれば充分である。(最初はここから始めよう)
CGI を使用する場合の /usr/web/* の編成は、配布ファイルの中の
example/usr/webに書かれている。でも最初の内は CGI を使用しない方がよい。
実際のコンテンツは
/usr/web/docの下には書かない。これは単にコンテンツを盛りつけるベースのような役割を果たしている。
コンテンツの置き場所
コンテンツはあなたのホームディレクトリの下に置く。あなたが bob だとすれば/usr/bob/www/docが推奨される置き場所である。
/sys/lib/httpd.rewrite
まあ、最初の内は何も書かなくてもよい。これは仮想ホストをサポートする場合と、ホームページが他のホストに移動した場合に使用する。(あまり縁の無いファイルである)
/lib/namespace.httpd
を作成する
配布ファイルの中のexample/lib/namespace.httpdに CGI を使用する場合の編成例が載っている。でも最初の内は CGI を使用しない方がよい。CGI を使用しない場合の編成は(あなたが bob だとすれば)
bind /usr/bob/www/doc /usr/web/docだけでよい。
最初は listen
の管理下で実行
いきなりサーバモードなどと言う高級な事はしないで、listen の管理下で httpd を実行しよう。通常はそれで充分である。/rc/bin/service/tcp80を作成する。その内容は
#!/bin/rc exec /usr/local/bin/$cputype/httpd $*である。アクセスモードを
--rwxrwxr-xに設定する。
動作確認をする。
あなたが bob と仮定する。その場合/usr/bob/www/doc/index.htmlを作成し、適当な内容を書く。
他のコンピュータからブラウザを使ってアクセスしてみる。
アクセス制御とセキュリティ
Pegasus は、他のサーバと同様に、ドキュメントルート(サービス空間の /doc) の外のファイルをクライアントから要求された場合には拒否します。さらに Pegasus はピリオドで始まるファイルを要求された場合にも拒否します。これらは CGI を通じてのみアクセス可能です。
以上の一般的な規則の他に、パスワードによってアクセスできるディレクトリや特定の IP のクライアントのみ拒否あるいは受け入れるディレクトリを定義できます。
/usr/bob/www/etcはアクセス制御ファイルの置き場所です。
詳しくはアクセス制御を参照して下さい。
殆どのソフトウェアにバグがあるように、Pegasus にもバグが残っているかも知れません。(発見したら報告をお願いします)
多数のユーザを抱えた場合には、ユーザが知っている情報はホームページに掲載される可能性があります。それがシステムのセキュリティを支えているような重要な情報であってもです。従ってそのような場合には認証サーバを別に持つべきです。CPU サーバの情報は全て公開される事を覚悟すべきでしょう。(管理の手落ちによって秘密の情報をオープンにしてしまう事は珍しくはない。)
おわりに
Pegasus は様々な事に柔軟に対応できるように作られています。CGI に対しても木目の細かい制御が可能です。
そのためにいきなり高度な事を行うと、訳が分からなくなるかも知れません。
まずは簡単な所から始めましょう。
なお、このままでシステムのどのユーザもホームページを持てます。(システム設定の変更は必要ありません。)
ユーザ alice は単に
/usr/alice/web/docの下に HTML ドキュメントを置けば良いだけです。
ブラウザからは
/~aliceで見る事ができます。alice は
/usr/alice/web/etcを持つ事ができて、この中に alice のファイルに対するアクセス制御ファイルを置くことができます。