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