[0001]
[0002]
[0003]
[0004]
[0005]
[0006]
[0007]
[0008]
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038]
[0039]
[0040]
[0041]
[0042]
[0043]
[0044]
[0045]
[0046]
[0047]
[0048]
[0049]
[0050]
[0051]
[0052]
[0053]
[0054]
[0055]
[0056]
[0057]
[0058]
[0059]
[0060]
[0061]
[0062]
[0063]
[0064]
[0065]
[0066]
[0067]
[0068]
[0069]
[0070]
[0071]
[0072]
[0073]
[0074]
[0075]
[0076]
[0077]
[0078]
[0079]
[0080]
[0081]
[0082]
[0083]
[0084]
[0085]
[0086]
[0087]
[0088]
[0089]
[0090]
[0091]
[0092]
[0093]
[0094]
[0095]
[0096]
[0097]
[0098]
[0099]
[0100]
[0101]
[0102]
[0103]
[0104]
[0105]
[0106]
[0107]
[0108]
[0109]
[0110]
[0111]
[0112]
[0113]
[0114]
[0115]
[0116]
[0117]
[0118]
[0119]
[0120]
[0121]
[0122]
[0123]
[0124]
[0125]
[0126]
[0127]
[0128]
[0129]
[0130]
[0131]
[0132]
[0133]
[0134]
[0135]
[0136]
[0137]
[0138]
[0139]
[0140]
[0141]
[0142]
[0143]
[0144]
[0145]
[0146]
[0147]
[0148]
[0149]
[0150]
[0151]
[0152]
[0153]
[0154]
[0155]
[0156]
[0157]
[0158]
[0159]
[0160]
[0161]
[0162]
[0163]
[0164]
[0165]
[0166]
[0167]
[0168]
[0169]
[0170]
[0171]
[0172]
[0173]
[0174]
[0175]
[0176]
[0177]
[0178]
[0179]
[0180]
[0181]
[0182]
[0183]
[0184]
[0185]
[0186]
[0187]
[0188]
[0189]
[0190]
[0191]
[0192]
[0193]
[0194]
[0195]
[0196]
[0197]
[0198]
[0199]
[0200]
[0201]
[0202]
[0203]
[0204]
[0205]
[0206]
[0207]
[0208]
[0209]
[0210]
[0211]
[0212]
[0213]
[0214]
[0215]
[0216]
[0217]
[0218]
[0219]
[0220]
[0221]
[0222]
[0223]
[0224]
[0225]
[0226]
[0227]
[0228]
[0229]
[0230]
[0231]
[0232]
[0233]
[0234]
|1New to WASD? Start Here!|

|0Welcome!|

|^ WASD is outlined in the
|link%|../features/##Introduction| and
|link%|../features/##Package Overview| sections of the
|link%|../features/##|WASD Features| document.

|^ There are a number of approaches to installing and updating a WASD package. 
|^-The |/vanilla recipes| are |link|Installation| and |link|Update| but there are 
|link|Other Ways to Deploy||.

|^ This section provides a quick guide to getting your WASD package installed,
configured and serving.

|number|

|item| |*Unzip Package||

|^ Install the files following the guidelines in |link|Installation||.
|^- |*Note| that more than one archive may be needed
(|link|Source Archive, Object Module Archives)||).

|^ If |*Transport Layer Security| (TLS - a.k.a. |*Secure Sockets Layer||
- SSL) is to be used and a TLS/SSL server image to be built the WASD [Open]SSL
product must be installed at this stage (see
|link%|../features/##TLS/SSL Functionality Sources++of++WASD Features and Facilities||).
An existing VSI SSL111 for OpenVMS product (all based on OpenSSL 1.0.2 and
earlier obsolete) requires no  additional step.  If the WASD [Open]SSL package
it must UNZIPed into the [.WASD_ROOT] tree at this stage.

|code|
$ UNZIP -d [.WASD_ROOT] device:[dir]OPENSSLWASD|/nnn-arch||.ZIP
|!code|

|^ Note the use of the |*."-d" switch||.

|item| |*INSTALL Package||

|^ Server installation is performed using the INSTALL.COM procedure
(|link|INSTALL.COM procedure||).

|bullet|

|item| |*Build Package |-| |
Compile and link, or just link supplied object files to produce VMS
executables for the system's version of VMS.

|item| |*Check Package |-| |
Check basic operation of the package (|link|Quick Check||).

|item| |*Create Server and Scripting Accounts |-| |
Create two independent accounts, one for executing the server, the other for
executing scripts (|link|VMS Server Account||).  If quotas are enabled on
the target disk provides an ambit allocation for these accounts.  Review this
at some stage.

|item| |*Set Package Security |-| |
This sections traverses the newly installed tree and sets all package
directories and files to required levels of access
(|link%|../config/##Maintaining Package Security++in++WASD Configuration||).

|item| |*Copy Support and Configuration Files |-| |
Copy the example server support and configuration files
(|link|Account Support Files||).

|item| |*Install Scripts |-| |
Selectively copy groups of scripts from package build directories into the
scripting directories.

|!bullet|

|item| |*Configure Package||

|^ Following the execution of the INSTALL.COM procedure the package should
require only minor, further configuration.

|^ |*Initially| two files may require alteration.

|number|

|item| The startup file, possibly to set the local WASD_CONFIG_GMT logical (for
systems not supporting DTSS (e.g. DECnet-Plus)).  Consider using the
STARTUP_LOCAL.COM file for other site-specific requirements
(|link|Account Support Files||).

|item| The only configuration that should require immediate attention will be
the mapping rules
(|link%|../config/##Request Processing Configuration++in++WASD Configuration||).

|!number|

|^ |*More generally| server runtime configuration involves the considerations
discussed in |link%|../config/##Site Organisation++of++WASD Configuration|
along with the following aspects:

|bullet|

|item| Configuring the HTTP server run-time characteristics
(|link%|../config/##Configuration Considerations++in++WASD Configuration||).

|item| Mapping request paths to the VMS file system, and to other things such as
scripts
(|link%|../config/##Request Processing Configuration++in++WASD Configuration||).

|item| Customizing some or all messages
(|link%|../config/##Message Configuration++in++WASD Configuration||).

|item| Establishing an authentication and authorization environment
(|link%|../config/##Authorization Configuration (Basics)++in++WASD Configuration||).

|!bullet|

|item| |*Start Server||

|^ Execute the startup procedure (|link|STARTUP.COM||).
Get your browser and connect!

|item| |*Find Out What's Wrong| |'_frowny.\ |

|^ Of course |/something| will not be right!  This can happen with
the initial configuration and sometimes when changing configuration.  The
server provides information messages in the run-time log, look in the
WASD_ROOT:[LOG_SERVER] directory.

|^ Remember, the basic installation's integrity can always be checked
as described in |link|Quick-Check||).
This uses the configuration files from the [EXAMPLE] directory, so provided
these have not been altered the server should execute in
|/demonstration mode| correctly.

|^ Can't resolve it? See |link|Reporting Problems||.

|!number|

|2Using IA64-hosted X86 Cross-Complier?|

|^ Until a native X86 C compiler becomes available all WASD package and
additional application builds must be done in two phases.

|number|
|item| cross-compile on an IA64 system
|item| link resulting object file(s) on the X86 system
|!number|

|^ When building using the cross-compiler tools the procedures recognise the
XCC$COMPILER environment and adjust to create and use |= [.OBJ_X86_64]| object
code directories. 

|^ For example; to build WASD package:

|number|

|item| On IA64 ensure |= @SYS$MANAGER:X86_XTOOLS$SYLOGIN.COM| and then select
"3. Compile only" and complete the compilation.

|bullet|

|item| For clustered IA64/X86 with an MSCP-mounted volume containing a shared
|= [WASD_ROOT]| the appropriate object files are now available to the X86
system.

|^ Proceed with the second phase.

|item| For non-clustered build environments the same WASD kit must be installed
on both IA64 and X86 systems. After compilation the resulting |= [.OBJ_X86_64]|
directories must be ZIPed into an archive, transferred to the X86 system and
restored into the corresponding |= [WASD_ROOT]||.

|^ For example:

|code|
IA64$ SET DEFAULT |/device||:[WASD_ROOT]
IA64$ ZIP "-V" |/location||:X86_1200_OBJ.ZIP [...OBJ_X86_64]*.OBJ
|!code|

|code|
X86$ SET DEFAULT |/device||:[WASD_ROOT]
X86$ UNZIP |/location||:X86_1200_OBJ.ZIP
|!code|

|^ Proceed with the second phase.

|!bullet|

|item| On X86  perform the corresponding  "2. linking (separate package) object
modules", and continue the rest of the installation.

|!number|

|2Troubleshooting?|

|^ When initially installing or configuring WASD, and sometimes later where
something breaks spectacularly, it is most useful to be able to gain insight
into what the server is up to.

|^ The |/go-to| tool is\&nbsp;  |"<span style=\"font-size:110%\">WATCH</span>||\&nbsp; 
(yes, all capitals, and for no other reason than it makes it stand out).

|^ WATCH is described in detail in
|link%|../features/##WATCH Facility++of the++WASD Features and Facilities||
document.

|^ For most circumstances WATCH can be made available for troubleshooting even
if the configuration is significantly broken.  This is done by using a
skeleton-key to authorise special access into the server.

|^ The skeleton-key is described in detail in
|link%|../features/##Skeleton-Key Authentication++of the++WASD Features and Facilities||
document.

|^ |*TL;DR|

|^ Enable at the command-line with the username anything beginning with an
underscore and at least 8 characters, same for the password length.

|code|
$ HTTPD /DO=AUTH=SKELKEY=_|/username||:|/password||
|!code|

|^ Then using a browser access any available service, entering the above
username (including underscore) and password when prompted.

|block|
|link%|/httpd/-/admin/report/WATCH|https://\<i\>the.host.name:port\</i\>\&thinsp;/httpd/-/admin/report/WATCH|
|!block|

|^ The service administration facilities (of which WATCH is one) are also
available and useful.

|block|
|link%|/httpd/-/admin/|https://\<i\>the.host.name:port\</i\>\&thinsp;/httpd/-/admin/|
|!block|