version 1.2 (97.06.27)

Fail safe VAX/VMS setup instructions for:

OSU DECthreads HTTP Server

by Neil Rieck

Note: when surfing the web, you will see two different methods of installing the server. Method #1 (documented here) is used when you obtain the software directly from Ohio State University. Method #2 is used when you install the software from DEC's Internet Product Suite (IPS) CD-ROM. Since installing from the CD-ROM is usually successful, I won't bother documenting it here. But be aware of the fact that some Method #2 documentation on the web will not work with Method #1.

Example Assumptions:

my login name: ns_rieck
server user name: httpd (stands for HTTP daemon)
server s/w destination disk: dia2: (an under used disk on my system)
server s/w destination directory: [httpd] (same as server user name)
TCP/IP Protocol Stack: TCPware (by Process Technologies). You might be using UCX by DEC. Use the DCL command "license list" to determine which stack you've got installed.
Current DECnet Node Name: kawc15
Current TCP/IP Node Name (a.k.a. DNS name) node.domain.org

Required "C" Compiler Tools:

either DEC-C or VAX-C

notes:

  1. GNU "C" (a.k.a. gcc from the Free Software Foundation) is reported to work with some tweaking, but I've not tried it
  2. DEC-C++ does not work
  3. If you need to buy a compiler software license from DEC in order to get this free HTTP software working, you should consider purchasing a commercially available product from Process Technologies called "Purveyor".
  4. If you decide to buy a compiler software license from DEC, the cheapest way to go is to get a personal license which will be tied to one user account. The second cheapest way is to get a concurrent license which will only allow one person at a time to run the compiler. I have found that many large companies (including my current employer) are running VAX systems with platform/cluster wide licenses which allow everyone and anyone to run the compiler. This is an unfortunate waste of money since these licenses were really meant for an application development system rather than a data entry system.

Required Miscellaneous Tool(s):

gunzip.exe (Gnu Unzip from the Free Software Foundation) or equivalent

Miscellaneous Info (that shouldn't matter to you):

Processor Hardware: VAX 4000-300 (a.k.a. uVax 4300)
OS software: VMS 6.2
OSU HTTP software version: 2.3 (released 97.05)

Instructions (more or less standard):

create a directory and unzip the server software into it

cre/dir dia2:[httpd]
unzip -d dia2:[httpd] http_server_2-3.zip

build files for TCPware's stack (use the script required for the TCP/IP protocol stack installed on your system. See file "AAAREADME.TXT" for details)

set default dia2:[httpd.base_code]
@build_tcpware.com

set default dia2:[httpd.script_code]
@build_scripts_tcpware.com

set default dia2:[httpd.fork_code]
@build_forkscipts.com

note: during the compile/link process you will probably get some warning messages. These are usually prefixed by the string "-W-" and should usually be ignored. If you get error messages (prefixed by "-E-") or fatal messages (prefixed by "-F-"), then you've got problems.

Test the server by running is interactively from your account on TCP Port 8000 (rather than 80)

@dia2:[httpd.system]http_startup.com run sys$output/3 http_main.conf 8000

Then from your browser:

http//node.domain.org.com:8000/

Instructions (additional and/or modified)

create (via DCL "create" or "edit" command) a special startup command file (note: the server documentation states that logical name www_root will be defined for you if you do not define it yourself. I have found that it will not be properly defined for you, so defining it yourself is one of the keys to getting the server up and running)

create dia2:[httpd]my_startup.com
define/system/executive/translation=concealed www_root dia2:[httpd.]
@dia2:[httpd.system]http_startup.com httpd
ctrl-z

note:
1. there is a dot preceeding the closing square bracket at the end of the second line. This is not a typo.

modify file "http_main.conf"

edit dia2:[httpd.system]http_main.conf
find: 8000
change to: 80
exit editor

add new user to VMS

set default sys$system
run authorize
show/brief [375,*]
add httpd/uic=[375,203]/password=pick_one
mod httpd/privileges=all/defpriv=all/lgicmd=""
mod httpd/device=dia2:/directory=[httpd] /account=DECNET
mod httpd/flags=(nocaptive,dismail,disnewmail)
add/proxy kawc15::httpd httpd/default
add/proxy kawc15::system httpd
add/proxy kawc15::ns_rieck httpd
exit

note:
1. the third line (sh/br) is used to select an unassigned UIC
2. directory is where the file "wwwexec.com" currently resides which will be run by proxy from DECnet object: WWWEXEC
3. every account that will be expected to start up the server via the special startup command file must have a proxy entry for httpd. Failure to do so will result in startup errors.

add object WWWEXEC to DECnet

mcr ncp def object wwwexec num 0 file wwwexec.com user httpd
mcr ncp set object wwwexec num 0 file wwwexec.com user httpd

check for presence of TASK '0' DECnet object

mcr ncp sho obj TASK
mcr ncp lis obj TASK

possibly add missing TASK '0' object to DECnet (if missing or removed by an overzealous system administrator)

mcr ncp def obj task num 0 user ILLEGAL pass DISABLED
mcr ncp set obj task num 0 user ILLEGAL pass DISABLED

change file owner to HTTPD

set file/owner=httpd dia2:[httpd...]*.*;*
set file/owner=httpd dia2:[000000]httpd.dir

start server

@dia2:[httpd]my_startup.com

manage the running server on port 931

add the following DCL symbol definition to either your personal login command file by editing sys$login:login.com, or the system wide login command file by editing sys$manager:sylogin.com

httpman*ager:== $www_system:privrequest 931

server management commands:

httpman help
httpman newtrace[/logger level]








httpman invcache
httpman newlog
httpman restart[/timeout]
httpman shutdown[/timeout]
httpman statistics[/zero]
provides command list
Creates new trace file/set log level
 0 (no logging)
 1 (only connections traced)
 6 (connections and scripts traced)
11 (connections, scripts, and rules traced)



Invalidate document cache
Create new access log
Restart server (default timeout=10)
Shutdown (default timeout=10)
Display counters/Reset Counters

Note: parameters inside square brackets are optional

Misc Info

The file: HTTP_main.conf is the master configuration file that calls all the others. It also tells the browser which TCP port to listen to etc. I found feature "DirAccess" set to off but I recommend that you change it to on so that people can get "FTP like" directory listings of paths that contain no default.html or index.html etc.

The file: HTTP_paths.conf controls which web path is mapped to which VAX/VMS directory, as well as what should happen if incomplete paths are entered.

For example, if you type "http://node.domain.org/" in a web browser right after installation, the server will deliver "index.html" from VAX/VMS directory dia2:[httpd.serverdoc]. The same thing would have happened if you had typed "http://node.domain.org/demo/index.html" This means that "/*" is mapped to "/demo/* which is mapped to www_system:[serverdoc]"

Also, you will see that a path called "/www/*" is mapped to "www_system:[document]" but since this VAX/VMS directory doesn't exist, you might wish to do one of the following:

1. create the specified directory using the following command:

cre/dir dia2:[httpd.document]

2. map "/www/*" to "www_system:[www] then create that directory as follows:

cre/dir dia2:[httpd.www]

CONF and PROT file programming info can be found in the CERN_HTTPD Server Guide at CERN in Geneva


Back to OpenVMS
Back to Home
Neil Rieck
Kitchener - Waterloo - Cambridge, Ontario, Canada.