** Installation procedure for HTTPi
** Copyright 1998-2009 Cameron Kaiser

1. Check that all files are present. Make sure you have Perl 5 installed.
   You only need the executable, not the standard distribution in full.

   If you aren't sure if you have all the files, look in the Manifest file
   (it's an ls -lR of the development directory, minus, of course, the
   Manifest file itself) and compare it with an ls -lR of your directory.

2. Read the LICENSE file.

3. Read the LICENSE file.

4. Read the ... have you read it yet?

5. Determine which configure file you should be running on your platform.
It is *highly* recommended that your Perl include support for alarm(), though
grudgingly no longer required. (For all these installations, you might need
to know your AF_INET socket constant, although HTTPi probably knows it
already. On Linux, AIX, SCO, HP/UX and Solaris, and probably every other
Unixy thing, it's invariably 2. Demonic will try to autodetect it.)

If you want to use HTTPi for SSL, your ONLY option is configure.stunnel.

Demonic installation:

configure.demonic	For Demonic HTTPi, the daemonised version. You'll
			either need Socket.pm, a C compiler, or a list of
			your system's socket constants (these are only
			needed for constants, not execution). Your Perl must
			also support fork(). This is the most popular option.

Some sort of inetd installation:

configure.inetd		Most Unix boxen. Use this if you use the vanilla
			inetd. Will autoconfigure your files for you if root.

configure.xinetd	For users of the inetd clone http://www.xinetd.org/
			Will autoconfigure your files for you if root.

Others:

configure.launchd	Most Mac OS X users (10.4 and higher) who aren't
			using Demonic HTTPi, or for people who are using
			launchd and don't want to use the other options.
			Will autoconfigure your files for you if root.

configure.stunnel	For users of stunnel http://www.stunnel.org/
			This is the only supported method for an SSL server.
			Will autoconfigure your files for you if root.
			** DUE TO ITS HIGH SECURITY DEMANDS, THIS SHOULD BE
			CONSIDERED EXPERIMENTAL!! **

configure.generic	Don't know what inetd you have, or one I don't support
			yet. You'll have to connect HTTPi to your inetd
			yourself.

demonic is the fastest and easiest to set up (you don't need to be root), but
requires some special care and feeding. See the documentation. Most people
prefer it. So will you.

xinetd is vewwy vewwy fast. If you have the means, I highly recommend it. (To
quote Ferris Bueller.) Many people will see a significant speed difference with
it over your OS's stock inetd; as such, many OS "inetd"s are really stealth
xinetds running in compat mode! It assumes, however, that your .conf file
is /etc/xinetd.conf, which is xinetd's default.

Most modern Mac OS X users who do not want a daemon HTTPi will need to run
configure.launchd. 10.2 and 10.3 users can still use configure.inetd or
.xinetd, though this may require some internal configuration. 10.0 and 10.1
are not recommended and not supported.

configure.stunnel requires that your stunnel be already setup with a working
stunnel.conf and all of your options and certificates preloaded. Do not
run this script until that is accomplished.

Some of you will still be running configure.inetd, so for backwards
compatibility it's still named configure (just a symlink to configure.inetd).

Do not run configure.generic if you can run one of the others.

Make sure that consubs.pl and conquests.pl are in the current directory.

6. Run that config file.

$ perl configure.demonic # most unices that don't want inetd installation
$ perl configure.inetd	 # most unices that want inetd installation
$ perl configure.xinetd	 # smart unices/sysadmins that want xinetd installation
$ perl configure.launchd # those wacky Maccies (like me) who dislike daemons
$ perl configure.stunnel # SSL via stunnel
$ perl configure.generic # others who can't help it

Do *not* use the Makefile. The Makefile is not intended for installation;
it's used for rolling your own distributions. Do *not* use the Makefile.
Do *not* chew your nails.

For that matter, don't use perl Makefile.PL either.

NOTE TO (x)inetd/launchd/stunnel INSTALLERS:
If you're on a Unix box, you must run as root for full install options.
Any user can build an object, but only root can modify your configuration
files, unless you are really dumb and made them writeable (BAD IDEA).

7. Follow the handy and verbose prompts. The configure program may have
   additional directions to follow. Follow them.

8. If configure bombs, feel free to contact me with the error message at

	httpi@floodgap.com

9. DO NOT TOAST THE INSTALL DIRECTORY. If you make config changes, etc.,
   you will need these files again. Don't delete them. Especially hold on
   to the configure transcript file, as it will make tweaking HTTPi's code
   much more painless.

10. Enjoy your new, small and extremely sexy web server.

--
Cameron Kaiser
