How to Install TestLink on CentOS 7


TestLink is an open-source web based test management execution system. It enables quality assurance teams to create and manage their test cases as well as to organize them into test plans. These test plans allow team members to execute test cases and track test results dynamically.

In this tutorial, we will be installing TestLink version 1.9.16 (the latest version at the time this article was written) on CentOS 7.

Prerequisites

  • A CentOS 7 x64 server instance.
  • A sudo user.

I’ll reference the main IP of my CentOS 7 server as 203.0.113.1.

Step 1: Update the system

Log in to your server via SSH using the sudo user to install epel, update the system, and restart to apply the updates.

sudo yum install epel-release -ysudo yum update -y && sudo shutdown -r now

Step 2: Install a web server—Apache

sudo yum install httpd -y

It is recommended to remove/disable the Apache default welcome page in production environments.

sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf

Prevent Apache from listing web directory files to visitors:

sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/httpd/conf/httpd.conf

Start the Apache service and enable it to auto-start on boot

sudo systemctl start httpd.servicesudo systemctl enable httpd.service

Step 3: Install database software—MariaDB 10.1

As required by TestLink 1.9.16, you need to install MariaDB 10.1 or later on your system.

3.1 Create the MariaDB 10.1 YUM repo file

cat <<EOF | sudo tee -a /etc/yum.repos.d/MariaDB.repo# MariaDB 10.1 CentOS repository list - created 2017-01-14 03:11 UTC# http://downloads.mariadb.org/mariadb/repositories/[mariadb]name = MariaDBbaseurl = http://yum.mariadb.org/10.1/centos7-amd64gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDBgpgcheck=1EOF

3.2 Install MariaDB 10.1 using YUM

sudo yum install MariaDB-server MariaDB-client -y

3.3 Start the MariaDB service and set it as running at system startup

sudo systemctl start mariadb.servicesudo systemctl enable mariadb.service

3.4 Secure the MariaDB installation

sudo /usr/bin/mysql_secure_installation

Answer questions on the screen as instructed below, and remember to use your own MariaDB root password:

  • Enter current password for root (enter for none): Just press the Enter button
  • Set root password? [Y/n]: Y
  • New password: your-root-password
  • Re-enter new password: your-root-password
  • Remove anonymous users? [Y/n]: Y
  • Disallow root login remotely? [Y/n]: Y
  • Remove test database and access to it? [Y/n]: Y
  • Reload privilege tables now? [Y/n]: Y

3.5 Create a MariaDB database for TestLink

Log into the MySQL shell as root:

mysql -u root -p

Type the MariaDB root password you set earlier and then press Enter.

In the MySQL shell, create a database testlink, a database user testlinkuser, and the database user’s password yourpassword as follows.

Note: For security purposes, remember to replace the sample password yourpassword with your own password.

CREATE DATABASE testlink;CREATE USER 'testlinkuser'@'localhost' IDENTIFIED BY 'yourpassword';GRANT ALL PRIVILEGES ON testlink.* TO 'testlinkuser'@'localhost' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;FLUSH PRIVILEGES;EXIT;

Step 4: Install PHP 7.1 and some extensions

TestLink requires PHP 5.5 or later. In order to get better performance, we will install PHP 7.1 and all the necessary extension for TestLink as follows:

sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpmsudo yum install mod_php71w php71w-mysqlnd php71w-common php71w-gd php71w-ldap php71w-cli php71w-mcrypt php71w-xml -y

We will need to modify PHP settings to meet TestLink’s requirements as follows:

sudo cp /etc/php.ini /etc/php.ini.baksudo sed -i "s/session.gc_maxlifetime = 1440/session.gc_maxlifetime = 2880/" /etc/php.inisudo sed -i "s/max_execution_time = 30/max_execution_time = 120/" /etc/php.ini

Step 5: Install TestLink 1.9.16

5.1 Download the TestLink 1.9.16 archive from the official TestLink GitHub repo, and then unzip the archive to the /var/www/html directory:

cdwget https://github.com/TestLinkOpenSourceTRMS/testlink-code/archive/1.9.16.tar.gzsudo tar -zxvf 1.9.16.tar.gz -C /var/www/htmlsudo chown -R apache:apache /var/www/html/testlink-code-1.9.16

5.2 Create a custom configuration file for TestLink:

sudo cp /var/www/html/testlink-code-1.9.16/custom_config.inc.php.example /var/www/html/testlink-code-1.9.16/custom_config.inc.php

5.3 Modify the custom TestLink configuration file:

Use the vi text editor to open this configuration file:

sudo vi /var/www/html/testlink-code-1.9.16/custom_config.inc.php

Find the following lines:

// $tlCfg->log_path = '/var/testlink-ga-testlink-code/logs/'; /* unix example */// $g_repositoryPath = '/var/testlink-ga-testlink-code/upload_area/';  /* unix example */

Replace them with:

$tlCfg->log_path = '/var/www/html/testlink-code-1.9.16/logs/';$g_repositoryPath = '/var/www/html/testlink-code-1.9.16/upload_area/';

Save and quit:

:wq!

5.4 Create a virtual host for TestLink:

cat <<EOF | sudo tee -a /etc/httpd/conf.d/testlink.conf<VirtualHost *:80>ServerAdmin admin@example.comDocumentRoot /var/www/html/testlink-code-1.9.16/ServerName testlink.example.comServerAlias www.testlink.example.com<Directory /var/www/html/testlink-code-1.9.16/>Options FollowSymLinksAllowOverride AllOrder allow,denyallow from all</Directory>ErrorLog /var/log/httpd/testlink.example.com-error_logCustomLog /var/log/httpd/testlink.example.com-access_log common</VirtualHost>EOF

5.5 Restart Apache in order to apply all above settings:

sudo systemctl restart httpd.service

5.6 Modify firewall rules in order to allow web access:

sudo firewall-cmd --zone=public --permanent --add-service=httpsudo firewall-cmd --reload

5.7 Finishing the installation

When you visit http://203.0.113.1 for the first time, you will be presented with the TestLink installation wizard.

On the first page, Click the New installation link.

On the Acceptance of License page, check I agree to the terms set out in this license., and then click the Continue button.

On the Verification of System and configuration requirements page, make sure that all requirements (excluding requirements on Postgres and MSSQL) are satisfied, and then click the Continue button.

On the Database Configuration page, provide database configuration info as follows, and then click the Process TestLink Setup button to finish the installation:

  • Database Type: MySQL/MariaDB (5.6+ / 10.+)
  • Database host: localhost
  • Database name: testlink
  • Table prefix: <LEAVE IT EMPTY>
  • Database admin login: root
  • Database admin password: <your-MariaDB-root-password>
  • TestLink DB login: testlinkuser
  • TestLink DB password: yourpassword

You can point your web browser to http://203.0.113.1 to start using TestLink, and you need to use the default credentials below to log in:

  • Login Name: admin
  • Password: admin

Note: Remember to change your password after logging in.

5.8 Security measures after the installation:

For security purposes, you should restrict the apache user’s permissions after the installation:

sudo chown -R root:root /var/www/html/testlink-code-1.9.16sudo chown -R apache:apache /var/www/html/testlink-code-1.9.16/{gui,logs,upload_area}sudo systemctl restart httpd.service

Additionally, you should remove the /var/www/html/testlink-code-1.9.16/install directory:

sudo rm -rf /var/www/html/testlink-code-1.9.16/install

That’s it. Thanks for reading.

Want to contribute?

You could earn up to $300 by adding new articles

Submit your article
Suggest an update
Request an article

No comments

Powered by Blogger.