How to Install OrangeScrum on CentOS 7

Published on: Tue, Sep 13, 2016 at 9:56 am EST
CentOS Linux Guides Server Apps System Admin

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 Vultr 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.

Want to contribute ?

You could earn up to $300 by adding new articles