Telaen and WASD PHP
These are some guidelines
for installing and configuring Telaen for
PHP under WASD.
It is not a definitive document. It is
basically just a description of how I managed to get Telaen
running. There are undoubtably alternate
approaches.
This software configuration information is provided under the
terms of the GNU General Public Licence as published by the Free
Software Foundation; version 2 of the License, or any later version.
05 July 2007
Disclaimer
I am not an administrator and only a casual user of Telaen. I
undertook
this exercise to demonstrate how it might be supported under WASD
PHP. There is no point in querying me personally on Telaen
setup, quirks, changes, etc. If there is something incorrect
within these guidelines or information by which they could be improved
then by all means advise me. Likewise if it's suspected WASD or
WASD PHP is misbehaving itself or requires refinement.
mark.daniel@wasd.vsm.com.au
Requirements
These guidelines were developed in the following environment.
Other combinations may work, or may not.
- ODS-5 volume for Telaen to be installed on (mandatory)
- A v1.1.3 Telaen ZIP
kit (mandatory)
(I had difficulties with VMSTAR and the Telaen tarball.)
- An ODS-5 aware ZIP (e.g. UnZip 6.00c BETA of 19 Nov 05) (mandatory)
- WASD v9.2
- WASD PHP v1.3.4 (based on CSWS PHP 1.3 (PHP 4.3.10))
- Telaen v1.3.4
- OpenVMS V8.3
- HP TCP/IP Services V5.6
Installation
Restore the archive to disk.
$ set process /parse=extended
$ set default ODS5_DISK:[000000]
$ unzip
dev:[dir]telaen-1^.1^.3.zip
This creates a directory
ODS5_DISK:[telaen-1^.1^.3]
File-System
A concealed device logical name must be defined. To make this
permanent it needs to placed in a system or Web-related startup
procedure.
$ define /system /executive /translation=concealed -
TELAEN_ROOT
ODS5_DISK:[telaen-1^.1^.3.telaen.]
This directory structure must be made accessable to the default WASD
server and
scripting accounts.
$ set security /owner=SYSTEM /protection=W:RE ODS5_DISK:[000000]telaen-1^.1^.3.dir
$ set
security /owner=SYSTEM /protection=W:RE ODS5_DISK:[telaen-1^.1^.3...]*.*
Following the Telaen installation instructions found in
TELAEN_ROOT:[docs]INSTALL.TXT
an independent data
directory is
required.
$ create /directory ODS5_DISK:[telaen-data]
$ create /directory ODS5_DISK:[telaen-data.tmp]
$
define /system /executive /translation=concealed -
TELAEN_DATA ODS5_DISK:[telaen-data.]
The directory [telaen-1^.1^.3.smarty-move-me]
requires a write accessable directory and so this was moved to the data directory.
$ rename ODS5_DISK:[telaen-1^.1^.3]smarty-move-me.dir ODS5_DISK:[telaen-data]smarty.dir
This then must be made write accessable to the scripting account but
not the server account.
$ set security /owner=HTTP$NOBODY /protection=W ODS5_DISK:[000000]telaen-data.dir
$ set security
/owner=HTTP$NOBODY /protection=W ODS5_DISK:[telaen-data...]*.*
Of course if a different account to the one shown in the example is
intended to execute Telaen the above needs to reflect that.
NOTE: CSWS PHP V1.3 (at least)
does not appear to process ACLs when establishing read/write
permissions, etc. As a consequence required access to the various
components of the directory structure must be enforced using ownership
and protections.
WASD Scripting Wrapper
Create a Telaen-specific wrapper procedure HT_ROOT:[CGI-BIN]TELAEN.COM
containing
$! TELAEN.COM
$ set noon
$ define /process tmp telaen_data:[tmp]
$ define
decc$argv_parse_style enable
$ define decc$efs_case_preserve enable
$ define decc$efs_charset enable
$ define
decc$efs_case_special enable
$ define decc$enable_getenv_cache enable
$ define decc$posix_seek_stream_file enable
$ define
decc$file_sharing enable
$ mcr cgi_exe:phpwasd.exe
WASD Mapping Rules
WASD mapping rules then make the application accessable.
# HTTPD$MAP
map /telaen**/ /telaen_root*/index.php
exec /telaen/**.php
(@cgi-bin:[000000]telaen.com)/telaen_root/*.php \
ods=5 script=syntax=unix script=query=relaxed
map=once
pass /telaen/* /telaen_root/* dir=noaccess
If you wish to be able to browse the source using the Web server you
can also add rules something like
pass /_telaen_root/* /ODS5_DISK/telaen-1.1.3/*
(Server access to the
TELAEN_DATA:[000000] is not possible due to file protections.)
Load these new rules into the server:
$ HTTPD /DO=MAP
Telaen Configuration
Follow the Telaen instructions found in
TELAEN_ROOT:[docs]INSTALL.TXT
According to INSTALL.TXT these files need to be copied an
modified
before use.
$ set default telaen_root:[inc]
$ copy config^.languages^.php.default;1
config^.languages.php
$ copy config^.php.default;1 config.php
$ copy config^.security^.php.default;1
config^.security.php
Importantly config.php
configuration includes the moved
smarty directory
define("SMARTY_DIR","/telaen_data/smarty/");
and the location of the data directory
$temporary_directory = "/telaen_data/tmp/";
along with the Telaen-specific configuration options.
Again according to INSTALL.TXT the installation may then be checked by
$ rename telaen_root:[extra]check_install^.php.txt -
telaen_root:[extra]check_install.php
and then accessing that script via the browser
http://the.server.name/telaen/extra/check_install.php
which should show all tests passed!
Now change that script back to it's original name.
Application Access
Using the above mapping rules the basic method for accessing the
application is
http://the.host.name/telaen/
which should now show the Telaen login page.
- end of document -