README,v 2.8 1994/11/06 21:12:51 sanders Exp
This is the README file for the Plexus HTTP server.
This server is provided ``as is'', and without warranty. However, if you
have a suggestion or comment (bug fixes preferred) please feel free to
send them to sanders@earth.com. If you write a server module I'll be happy
to look at it for inclusion in the release, just send it along.
Look in the ``unsupported'' directory for some useful tools that you can
integrate without too much effort. As time allows in the future, I will
move some of these into the standard distribtion.
To install this server there are four basic things you need to do:
o Configure src/plexus.conf, src/local.conf and src/site.pl for
your site. The default server location ($plexus_top) is
/usr/local/www and is defined in src/plexus but you can override
it on the command line (plexus -d /usr/local/www). The config
file is server/plexus.conf (relative to $plexus_top) and can be
overridden on the command line (plexus -c server/plexus.conf).
Note that items in the site.pl file might need to be changed for
your site. I highly recommend that you install the required
system header files using perl's h2ph. Plexus will use built-in
defaults if they don't exist but the defaults might not be right
for your system (though they should be ok for most systems).
See howto/* for some additional tips on configuration.
o Edit Makefile.config (and the Makefile.run files in each directory).
You can run ``make configure'' if you want to automatically update
all the files with configuration data from Makefile.config. This
currently only changes the #!/usr/bin/perl to $PERLBIN on the scripts
but it *does* process every single file and leave the original
version in filename.bak (so you'll have a lot of .bak files that
are the same as the orig).
When you are happy with the configuration run ``make install''.
You can also install in an alternate directory tree by using
(this is mostly for testing):
make install DESTDIR=/altroot
NOTE: Only the files in the "src" directory are really needed for the
basic server (plexus, *.conf, *.pl). Everything else is optional.
o Setup the $plexus_top directory (/usr/local/www by default).
To start with it's handy to have an index.html file in the root
directory. See doc/web-info.html under Authors and Service
Providers for more information about HTML and setting up servers.
Here are some important file and directory permissions.
The main directory should be writable by group `www':
drwxrwxr-x 33 sanders www 1536 Oct 20 09:00 .
Doesn't matter who the owner is.
All the log files, etc, will be created as needed like so:
-rw-r--r-- 1 www www 67 Oct 20 09:00 log
-rw-r--r-- 1 www www 1701426 Oct 20 09:00 log.summary
-rw-rw-r-- 1 www www 4 Sep 29 01:28 plexus.pid
-rw-rw-r-- 1 www www 0 Sep 29 01:28 plexus.pid.lock
-rw-r--r-- 1 www www 58852 Oct 20 09:00 usage.host
-rw-r--r-- 1 www www 49716 Oct 20 09:00 usage.url
The rest of the stuff can pretty much be owned by anyone, e.g.:
drwxrwxr-x 2 sanders bsdi 512 Jul 8 1993 bin
drwxrwxr-x 10 sanders bsdi 1024 Jul 21 22:37 server
-rw-rw-r-- 1 sanders bsdi 615 Jun 23 11:08 index.html
I also keep a user crontab file (user www, group www):
0 09 * * * /bin/sh /usr/local/www/bin/summary
Which runs the summary program every night. Every so often
I ``gzip -9'' (compress) the log.summary and usage.* files and
keep them in a "stats" directory. I have complete logs for the
past 1.5 years and it's only 8.3 megabytes compressed (that
is nearly 70MB when uncompressed!) Someday I hope to do a
meta-summary program and get rid of some of this junk.
o Setup your system so it starts the server at boot time (e.g., add
`/usr/local/www/server/plexus 2>/dev/null &' to /etc/rc.local).
If you *really* want to you can also run it from inetd but it
will be DOG slow. Don't run Plexus from inetd unless you really
know what you are doing. It's *much* *much* better to simply
run it at startup time and let it deal with opening sockets itself.
To export a directory from outside where the server code lives:
/private/server/plexus -d /public/www -s /private/server
And I also recommend setting up your own conf file and have it
include plexus.conf. For example, I have an austin.conf:
require "$plexus_src/plexus.conf";
$hostname = "austin.bsdi.com";
$http_localcfg = "austin-local.conf";
and austin-local.conf is just a copy of the standard local.conf
edited to my tastes (that way I don't modify any distribution files).
Finally, include the -c option to plexus, something like:
/www/server/plexus -c austin.conf -d /www -s /www/server
Just make sure that "austin.conf" is in the directory you
specify with -s.
If you are going to run the finger gateway you'll need to configure
finger.pl. I don't recommend installing the finger gateway in general
but it's a nice demo for how to do more complex gateways. The siks, neuro,
npindex, sunman and sunmanindex parts came with the code from cs.indiana.edu
(though I've tried to keep them up with changes I've made I have not tested
them) and will probably need work if you are going to use them. I'm just
passing them along for informational purposes. The original code is at
http://www.cs.indiana.edu/perl-server/intro.html.
IMPORTANT INTRO INFORMATION
===========================
If you are going to serve files to the Internet (even if you aren't it's
still a good idea) you should setup a generic hostname (e.g.,
www.company.com). That way you are free to move the server around without
disrupting the Web. You should also add a ``webmaster'' alias to point
to the server administrator. It's also a good idea to put information
about how to contact someone on your home page (an email address is a good
start).
I also highly recommend keeping a list of all places you register your
server in case something changes and you need to update them. At least
keep the email addresses and URLs.
www-announce@info.cern.ch mailing list and the comp.infosystems.announce
newsgroup).
Register a site.idx file with ALIWEB:
http://web.nexor.co.uk/aliweb/doc/aliweb.html
Email an announcement to
To: whats-new@ncsa.uiuc.edu
http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/whats-new.html
To: www-announce@info.cern.ch
Post a notice on the comp.infosystems.announce newsgroup.
See also http://info.cern.ch/hypertext/DataSources/WWW/Geographical_generation/new-servers.html
Problems
========
I have tried to make the server run without requiring perl versions of
the system header files (like stat.ph, sockets.ph, etc) but if you have
problems that would be the first place I would look.
For more information see the files in the doc directory.
--sanders@earth.com
|