Learn How To Install OrangeScrum on CentOS 7

April 6, 2019

Table of Contents

OrangeScrum is a free and open source project management tool which is widely used in small and medium businesses.

In this article, I will walk you through the procedure of installing OrangeScrum on a CentOS 7 server.

Prerequisites

  • A fresh IT Web Services CentOS 7 server instance with minimum 2G of memory.
  • A sudo user.

Step 1: Update the CentOS 7 system

Log into your machine as a sudo user, and then update the system to the latest stable status:

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

After the system getting started again, log in as the same sudo user to proceed.

Step 2: Install and configure Apache

Install Apache 2.4 using YUM:

sudo yum install httpd -y

Remove the pre-set Apache welcome page:

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

Prevent Apache from exposing files and directories in visitors’ web browser:

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

Start the Apache service:

sudo systemctl start httpd.service
sudo systemctl enable httpd.service

Step 3: Install and configure MariaDB

OrangeScrum requires MySQL 5.5 which can be installed using the built-in YUM repos:

sudo yum install mariadb mariadb-server -y

Modify MariaDB database settings:

sudo vi /etc/my.cnf

To change the collation settings, append a few lines to the [mysqld] segment as below:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
init_connect='SET collation_connection=utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake

Save and quit:

:wq!

Start the MariaDB service:

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

Secure MariaDB’s installation:

sudo /usr/bin/mysql_secure_installation

During this interactive process, answer questions as below:

Enter current password for root (enter for none): Enter
Set root password? [Y/n]: Y
New password: <your-password>
Re-enter new password: <your-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

Step 4: Install and configure PHP

Because PHP 5.5.x and earlier PHP versions have reached EOL (End of Life), a recommended practice is to install PHP 5.6.x using the IUS YUM repo.

Setup the IUS YUM repo:

cd
wget https://centos7.iuscommunity.org/ius-release.rpm
sudo rpm -Uvh ius-release.rpm

Install PHP 5.6.x and necessary extensions using the IUS YUM repo:

sudo yum install php56u php56u-mysqlnd php56u-gd php56u-imap php56u-ldap php56u-odbc php56u-xml php56u-xmlrpc php56u-mbstring php56u-mcrypt php56u-mssql php56u-snmp php56u-soap php56u-tidy php56u-pear curl libcurl-devel -y

Increase the upload file size to 200 MB as required by OrangeScrum:

sudo cp /etc/php.ini /etc/php.ini.bak
sudo sed -i "s/post_max_size = 8M/post_max_size = 200M/" /etc/php.ini
sudo sed -i "s/upload_max_filesize = 2M/upload_max_filesize = 200M/" /etc/php.ini

Restart Apache in order to load new components:

sudo systemctl restart httpd.service

Step 5: Install OrangeScrum

1) Download and unzip the latest stable version of OrangeScrum which is 1.6.1 at the time of writing:

cd
wget https://github.com/Orangescrum/orangescrum/archive/v1.6.1.tar.gz
tar -zxvf v1.6.1.tar.gz

2) Move all OrangeScrum files to the web root directory /var/www/html and then setup appropriate permissions:

sudo mv ~/orangescrum-1.6.1 /var/www/html && sudo chown root:root -R /var/www/html
sudo chmod -R 0777 /var/www/html/orangescrum-1.6.1/{app/Config,app/tmp,app/webroot}

3) Setup a virtual host for OrangeScrum:

sudo vi /etc/httpd/conf.d/orangescrum.conf

Populate the file with the following settings:

<VirtualHost *:80>
ServerName orangescrum.example.com
DocumentRoot /var/www/html/orangescrum-1.6.1
<Directory /var/www/html/orangescrum-1.6.1>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>

Save and quit:

:wq!

4) Create a database for OrangeScrum:

Log into the MySQL shell as root:

mysql -u root -p

Use the MariaDB root password you set earlier to log in.

In the MySQL shell, create a database named orangescrum and a database user named orangescrumuser with the password yourpassword, and then grant all privileges on this database to this database user.

Note: On your machine, make sure to replace these parameters in each and every command with your own ones.

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

Import OrangeScrum data into the orangescrum database:

mysql -u root -p orangescrum < /var/www/html/orangescrum-1.6.1/database.sql

5) Modify OrangeScrum configuration files:

To update database credentials:

sudo vi /var/www/html/orangescrum-1.6.1/app/Config/database.php

Find the following lines:

'login' => 'root',
'password' => '',
'database' => 'orangescrum',

Change them to:

'login' => 'orangescrumuser',
'password' => 'yourpassword',
'database' => 'orangescrum',

Save and quit:

:wq!

To update email details:

sudo vi /var/www/html/orangescrum-1.6.1/app/Config/constants.php

Find the following lines separately, and then replace these email addresses and the password with your own ones:

define("SMTP_UNAME", "youremail@gmail.com");
define("SMTP_PWORD", "******");
define('FROM_EMAIL_NOTIFY', 'notify@mycompany.com');
define('SUPPORT_EMAIL', 'support@mycompany.com');

Save and quit:

:wq!

6) Restart Apache in order to put your changes into effect:

sudo systemctl restart httpd.service

7) Modify firewall rules in order to allow web access:

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

8) Point your web browser to http://<your-server-IP>, provide your company name, an email ID, and a password to login. Feel free to explore OrangeScrum.

That concludes our tutorial. Thank you for reading.

Need help?

Do you need help setting up this on your own service?
Please contact us and we’ll provide you the best possible quote!