How to Install OrangeScrum on CentOS 7

Updated on November 21, 2023
How to Install OrangeScrum on CentOS 7 header image

OrangeScrum is a free and open source project management tool which is widely used in small and medium businesses. This article describes 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.

1. Update the CentOS 7 system

Log into your machine as a sudo user and update the system.

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

After the system reboots, log in as the same sudo user to proceed.

2. Install and Configure Apache

  1. Install Apache.

     $ sudo yum install httpd -y
  2. Remove the pre-set Apache welcome page.

     $ sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf
  3. 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
  4. Start the Apache service.

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

3. Install and Configure MariaDB

  1. Install MariaDB.

     $ sudo yum install mariadb mariadb-server -y
  2. Modify the MariaDB database settings.

     $ sudo nano /etc/my.cnf

    To change the collation settings, append a few lines to the [mysqld] segment as shown 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
  3. Save and exit the editor.

  4. Start the MariaDB service.

     $ sudo systemctl start mariadb.service
     $ sudo systemctl enable mariadb.service
  5. Secure the MariaDB installation.

     $ sudo /usr/bin/mysql_secure_installation
  6. During this interactive process, answer questions as shown 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

4. Install and Configure PHP

  1. Install the PHP Packages.

     $ sudo yum -y install php
     $ sudo yum -y install php-mysql
     $ sudo yum -y install php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mssql php-snmp php-soap php-tidy curl curl-devel
  2. 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
  3. Restart Apache to load the new configuration.

     $ sudo systemctl restart httpd.service

5. Install OrangeScrum

  1. Locate the latest stable version of OrangeScrum.

  2. Download and unzip the file.

     $ cd
     $ wget https://github.com/Orangescrum/orangescrum/archive/<VERSION>.tar.gz
     $ tar -zxvf v1.6.1.tar.gz
  3. 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}
  4. Setup a virtual host for OrangeScrum.

     $ sudo nano /etc/httpd/conf.d/orangescrum.conf
  5. 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>
  6. Save and exit the editor.

6. Create an OrangeScrum Database

  1. Log into the MySQL shell as root.

     $ mysql -u root -p

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

  2. 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 all commands with your values.

     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;
  3. Import OrangeScrum data into the orangescrum database.

     $ mysql -u root -p orangescrum < /var/www/html/orangescrum-1.6.1/database.sql
  4. Update OrangeScrum database credentials.

     $ sudo nano /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',
  5. Save and exit the editor.

  6. Update email details.

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

    Find the following lines. Replace the email addresses and the password with your values.

     define("SMTP_UNAME", "youremail@gmail.com");
     define("SMTP_PWORD", "******");
     define('FROM_EMAIL_NOTIFY', 'notify@mycompany.com');
     define('SUPPORT_EMAIL', 'support@mycompany.com');
  7. Save and exit the editor.

  8. Restart Apache to load the new configuration.

     $ sudo systemctl restart httpd.service
  9. Change the firewall rules to allow web access.

     $ sudo firewall-cmd --zone=public --permanent --add-service=http
     $ sudo firewall-cmd --reload
  10. Navigate to http://<your-server-IP>, enter your company name, an email ID, and a password to login.