Telaen and WASD PHP

These are some guidelines for installing and configuring Telaen for PHP under WASD.

http://www.telaen.org/

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.


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 -