This directory contains the source files for a DECthreads-based HTTP server.

Building images:
    First build the www_server executable, either by MMS with the descrip.mms 
    file or the build_xxxx.com command procedure in the [.BASE_CODE]
    sub-directory.  The commands to do this are:

	(MMS)	$ MMS/MACRO=TCP=xxxx
	(DCL)	$ @BUILD_xxxx.COM

    where 'xxxx' is a code for the TCP package: 
	UCXTCP, MULTINET, CMUTCP, TWGTCP, TCPWARE

    NOTE: If you get 'NOLINKAGE' errors in a TYPES.H file, you have a broken
	TCP installation and must contact your TCP vendor to get it fixed.

    Next set default to the [.SCRIPT_CODE] sub-directory and compile/link the
    script images using either one of the the commands:

	(MMS)	$ MMS/MACRO=TCP=xxxx
	(DCL)	$ @BUILD_SCRIPTS_xxxx.COM

    Finally, set default to the [.FORK_CODE] sub-directory and compile/link the
    script images using either one of the the commands:

	(MMS)	$ MMS
	(DCL)	$ @BUILD_FORKSCRIPTS.COM

Testing server:
    Verify that the server operates by invoking the [.SYSTEM]HTTP_SERVER.COM 
    with the following parameters:

	 @[.SYSTEM]HTTP_SERVER.COM RUN SYS$OUTPUT/3 HTTP_MAIN.CONF 8000

    of if you haven't setup DECnet yet:

	 @[.SYSTEM]HTTP_SERVER.COM MBXNET SYS$OUTPUT/3 HTTP_MAIN.CONF 8000

    and then attempt to connect to the server using a WWW client (use url
    "http://your-host-name:8000/").  The "/3" appended to the second parameter
    sets the logging level to 3, increasing the logging level makes the server
    report more information (useful for debugging problems with the configura-
    tion).

    The demonstrations (vmshelp and nagel23a) will not work until the
    DECnet proxy access is set up properly, view the HTML file
    serverdoc/script_setup.html for hints on setting this up.

    Comments at the top of HTTP_SERVER.COM give detailed descriptions of
    the parameters it expects.

Logical names:

    WWW_ROOT		Logical root of web server files.  If not defined
			when invoked, http_server.com defines it as parent
			directory of directory containing http_server.com.
			
    WWW_SYSTEM		Contains server executables and configuration files.
			Defaults to same directory as http_server.com.

    WWW_SERVER_PORTS	Exec mode logical that lists privileged TCP ports
			http_server.exe is permitted to listen on.

Distribution directories:

    [] (WWW_ROOT:[000000])	If login directory, holds WWWEXEC.COM and
				WWWDIR.COM (DECnet task objects).  Default
				location for log files such as access.log.

    [.BASE_CODE] 		Source code for main server and support
				programs such as privrequest.c.

    [.BIN]			Default location for scripts invoked via
				URL paths starting with /htbin.

    [.JAVA_CODE]		Contains source code for http_java_script
				scripserver and sample java scripts.

    [.JBIN...]			Default location for java scripts invoked
				via URL paths that start with /jbin.

    [.SERVERDOC]		Holds HTML documents used in sample
				configuration.  These documents describe
				the server's features as they demonstrate
				them.

    [.SCRIPT_CODE]		Source code for scripts run from the WWWEXEC
				object (i.e. any code that uses scriptlib.c,
				or cgilib.c).

    [.SYSTEM] (WWW_SYSTEM)	Holds procedures, executables, and
				configuration files for running server.

Installing server:
    The best way and safest way to install the server is to create a dedicated
    non-privileged account, duplicating the distribution file tree in this
    account's login directory.

    Define DECnet proxy access to the server account from both the server
    account and the SYSTEM account for the current node, making the 
    proxy from the server account a default proxy (/default).  The comments
    at the top of HTTP_STARTUP.COM give more details on creating the
    proxy records via AUTHORIZE.

    Copy HTTP_STARTUP.COM to sys$manager and modify your system startup 
    procedures to invoke it at system startup, specifying the parameters as 
    directed by the comments at the top of HTTP_STARTUP.COM.  HTTP_STARTUP.COM
    will define the logicals listed above as system-wide logical names.

    Create a rules file for your site, using http_main.html as a 
    starting point.  The rules file format is similar to the CERN http server 
    format, see file [.SERVERDOC]CONFIGFILE.HTML for descriptions of the
    individual rules.

Shutting down/Restarting server:
    Management commands are sent to the running server using the privrequest
    program.  Privrequest must be invoked as a foriegn command with the 
    following arguments:

	$ privrequest local-port "command" remport

    where:
	local-port	Local port number server recognizes as management port
			(HTTP_MAIN.CONF configures server to use port 931).
	"command"	Managment command: HELP, SHUTDOWN, RESTART, ...
	remport   	Port number, required if server not running on port 80.

Mailing list:
    Javier Henderson operates a mailing list for discussion of issues related
    to DECthread HTTP server. To subscribe send a command like the following 
    in the body of a mail message to MXserver@kjsl.com: 

	SUBSCRIBE VMS-WEB-daemon "Your real name here" 

Release notes:
    See the file aaareadme.release_notes for a summary of fixes and
    enhancments made to the various releases.

-----------------------------------------------------------------------------
David L. Jones               |      Phone:    (614) 292-6929
Ohio State Unviversity       |      Internet:
2070 Neil Ave. Rm. 122       |               jonesd@kcgl1.eng.ohio-state.edu
Columbus, OH 43210           |               vman+@osu.edu
