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 'f$trnlnm("TT")'/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.

    If DECnet present:
        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.

    If no DECnet present:
	Modify system startup procedures to invoke MBXNET_STARTUP.COM with
        the web server account's username as parameter P1.

    Modify system startup procedures to invoke HTTP_STARTUP.COM,
    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.  If using MBXNET, the MBXNET_STARTUP.COM
    invocation must immediately precede the HTTP_STARTUP.COM invocation.

    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 University        |      Internet:
140 W. 19th St. Rm. 231a     |               jonesd@er6s1.eng.ohio-state.edu
Columbus, OH 43210           |               vman+@osu.edu
