INTRODUCTION

Basic Notions and Notations

Pegasus may have mutiple document root.
All document roots are expressed as

	$web/doc
Then,
(a) $web is called httpd root which is the essential keyword to understand Pegasus.
(b) name space rooted by $web is merged into name space configured in
	/lib/namespace.httpd
The resulted name space is called service space or httpd space.
(c) name space rooted by $web/doc is called user's document space. The space is merged into name space configured in
	/lib/namespace.httpd
The resulted name space is called document space.

Document Root

By default, system users are allowed to have their web pages under the directory

	$home/web/doc
that can be accessed using "~" prefix such as URL:
	http://hostdomain/~alice

Locations of document roots of real host and virtual hosts may be anywhere. By default, these httpd roots are configured in

	/sys/lib/httpd.rewrite

The convenient places will be under the home directory of document owner, for example,

	/usr/bob/www/doc

If Pegasus accepts a HTTP request, it immediately enters appropriate httpd root and closes the door.
Thus, Pegasus is running in closed service space in servicing.
This means, the httpd looks all web contents under /doc.

Access Control

Pegasus has two types of access control. One is based on IP address and another is based on password. The related files are:

	$web/etc/allow
	$web/etc/passwd

User web

Pegasus httpd is running as user web. The user is one of virtual user, that is, the password must not be assigned.
The user web has a home direcory

	/usr/web/
Owner under this directory should be host owner, and all files must be readable but not be writable by user web except directory
	/usr/web/etc/nonce
The directory must be readable, writable and executable by web.

In muti-user environment, it might be better to have a group for web users.
The following lines are an example for /adm/users

10006:web:glenda:
10007:webu:glenda:web,bob,alice
if your fs is cwfs.

CGI

Pegasus support CGI. Most of files that are used by CGI programs are configured (by default) in
	/lib/namespace.httpd
Note that the following directories will be bound to httpd space by the default configuration:
	/bin
	/sys/lib
	/lib
	/env
etc, and,
	/usr/web/bin/rc
	/usr/web/bin/$objtype

If you want to have CGI, then you must have CGI handler

	$web/etc/handler
which is a configuration file for CGI.

You may have your additional programs to be used for CGI in the following directories.

	$web/bin/rc
	$web/bin/$objtype

CGI programs may be located anywhere in document space.

You may have rewrite rule file and namespace configuration files:

	$web/etc/rewrite
	$web/etc/namespace_$port
for each your service space. ($port is the port number in command option of httpd.)
These are applied after Pegasus has entered httpd root.