Testlink

From Wiki at Neela Nurseries
Jump to: navigation, search


Testlink Notes</br > 2019-04-10 Wednesday


^ Overview

This wiki article holds notes on Testlink 1.9.12 installation and configuration, motivated by need to restore an off-lined installation of Testlink along with its contact files found in the originally configured upload_area . . .


^ References to Testlink

We started this effort back in 2018 Q3 . . .

2018-09-06

2019-04-25


We may need to install PHP 5.6 to get Testlink to work, to talk with MYSQL database server. Unfortunately both the following articles refer to PPA of Andrej Sury which is not reachable from work site where needed . . .


2019-04-10 Wednesday

It looks like on a host running Apache2, PHP and MYSQL that Testlink can be set up with a symlink in /var/www pointing to a directory outside Apache's documentRootPath:

user@localhost:/var/www$ ls -l

total 36
lrwxrwxrwx  1 www-data www-data   28 Oct 31  2011 blogs -> /usr/local/share/b2evolution
drwxr-x--- 16 root     www-data 4096 Jan 24  2014 bugzilla
-rw-r--r--  1 root     root      349 Nov 28  2017 BUGZILLA_TODO
drwxr-xr-x  7     1003     1003 4096 Oct  1  2012 documents
lrwxrwxrwx  1 www-data www-data   27 Nov 16  2011 dotproject -> /usr/local/share/dotproject
-rw-r--r--  1 root     root     1941 Oct 28  2015 index.html
-rw-r--r--  1 www-data www-data 1915 Jan 14  2013 index.oldhtml
lrwxrwxrwx  1 root     root       32 Oct 18  2012 mantis -> /usr/local/share/mantisbt-1.2.11
lrwxrwxrwx  1 root     root       29 Jan  4  2013 math -> /usr/local/share/MathJax-v2.1
-rw-r--r--  1 www-data www-data   17 May 13  2011 phpinfo.php
lrwxrwxrwx  1 root     root       32 Nov 13  2014 testlink -> /usr/local/share/testlink-1.9.12
lrwxrwxrwx  1 root     root       32 Nov 13  2014 testlink-new -> /usr/local/share/testlink-1.9.12
lrwxrwxrwx  1 root     root       32 Aug 13  2014 testlink-old -> /usr/local/share/testlink-1.9.11
drwxr-xr-x 19 root     root     4096 Jan 19  2017 wiki

user@localhost:/var/www$


The stuff in /usr/local/share has these permissions:

user@localhost:/usr/local/share$ ls -l

total 76
drwxr-xr-x 14 root     www-data  4096 Feb 24  2012 b2evolution
drwxrwsr-x  2 root     staff     4096 May  9  2011 ca-certificates
drwxr-xr-x 14 root     www-data  4096 Nov 16  2011 dotproject
drwxrwsr-x  2 root     staff     4096 May  9  2011 fonts
drwxr-xr-x  2 root     root      4096 Sep 26  2013 hide
drwxr-xr-x 11 www-data www-data  4096 Oct 22  2013 kcfinder-2.51
drwxr-xr-x  2 root     root      4096 May  9  2011 man
drwxr-xr-x 16 root     www-data 12288 Oct 31  2012 mantisbt-1.2.11
drwxr-xr-x  9 root     www-data  4096 Feb 23  2012 MathJax-v1.1a
drwxr-xr-x 10     1002     1002  4096 Jan  4  2013 MathJax-v2.1
drwxrwsr-x  7 root     staff     4096 May  9  2011 sgml
drwxr-xr-x 10 www-data www-data  4096 Aug 14  2014 testlink-1.9.11
drwxr-xr-x 10 www-data www-data  4096 Jun 22  2017 testlink-1.9.12
drwxr-xr-x  9 www-data www-data  4096 May 30  2014 testlink-1.9.8
drwxr-xr-x  4 www-data www-data  4096 Aug 13  2014 testlink_custom
drwxrwsr-x  2 root     staff     4096 Sep 21  2012 texmf
drwxrwsr-x  6 root     staff     4096 May  9  2011 xml

user@localhost:/usr/local/share$


Search for PHP's error log file path and name:

$ for file in `locate php.ini | grep etc | grep 7.0`; do grep -n error_log $file; done



^ Testlink Config Variables

Before running web-based install script must set ($tlCfg->log_path) and ($g_repositoryPath) . . .

   136 - log directory         ($tlCfg->log_path)
   137 - upload directory  ($g_repositoryPath)


Figure x - two Testlink config files contain variable $g_repositoryPath:

/mnt/sdb5/usr/local/share/testlink-1.9.12$ grep -nr g_repositoryPath ./*

./config.inc.php:1016:$g_repositoryPath = '/var/testlink/upload_area/';  /* unix example */
./custom_config.inc.php.example:39:// $g_repositoryPath = '/var/testlink-ga-testlink-code/upload_area/';  /* unix example */
./lib/functions/files.inc.php:116:	global $g_repositoryPath;
./lib/functions/files.inc.php:118:	$dest = $g_repositoryPath.DIRECTORY_SEPARATOR.session_id().".dummy.gz";
./lib/functions/common.php:464:  global $g_repositoryPath;
./lib/functions/common.php:468:    $ret = checkForRepositoryDir($g_repositoryPath);
./README:137:- upload directory  ($g_repositoryPath)

/mnt/sdb5/usr/local/share/testlink-1.9.12$


Testlink upload directory and log directory are on the old server set to the same path:

/mnt/sdb5/var/testlink$ ls -l

total 8
drwxr-xr-x   2 www-data www-data 4096 Feb 25 11:51 logs
drwxr-xr-x 157 www-data www-data 4096 Oct  3  2013 upload_area

/mnt/sdb5/var/testlink$


^ Restore Testlink database back-up

May be able to avoid some of the initial config steps if what we really need is to restore a Testlink database back-up . . . however will this back-up contain paths to files which were stored in a different location in the original Testlink installation?


^ Recommended sticky bit settings - logs and upload_area

Sticky bit settings recommended:

Read/write permissions
For security reasons we suggest that directories tagged with [S] on following messages, will be made UNREACHEABLE from browser.
Give a look to README file, section 'Installation & SECURITY' to understand how to change the defaults.
Checking if /opt/testlink-1.9.12/gui/templates_c directory exists 	OK
Checking if /opt/testlink-1.9.12/gui/templates_c directory is writable (by user used to run webserver process) 	OK
Checking if /var/local/testlink-1p9p12/logs/ directory exists [S] 	OK
Checking if /var/local/testlink-1p9p12/logs/ directory is writable (by user used to run webserver process) 	OK
Checking if /var/local/testlink-1p9p12/upload_area/ directory exists [S] 	OK
Checking if /var/local/testlink-1p9p12/upload_area/ directory is writable (by user used to run webserver process) 	OK


^ Manual Copy of Logs and Upload Content

On new 18.04 LTS host created /var/testlink-1p9p12 with ownership www-data:www-data, and created symlink /var/testlink -> /var/testlink-1p9p12. Invoke `rsync` to copy each group of files over from mounted volume constituting old server file system to new server disk partition at like paths. Steps in list-wise summary:

    •  $ cd /var
    •  $ sudo mkdir -pv ./logs ./upload_area
    •  $ sudo chown -R www-data:www-data ./*
    •  $ sudo rsync -avzpt /path/to/original/testlink/logfiles/* ./logs
    •  $ sudo rsync -avzpt /path/to/original/testlink/uploaded/files/* ./upload_area