Orangescrum is a free, open-source, flexible project management web application written using CakePHP. It helps you to manage projects, teams, documents, and tasks, all in one place. Orangescrum provides various features like agile project management, collaboration, issue tracking, notifications, reporting, task management, and traditional project management functionality for small / medium businesses.
Here at LinuxAPT, as part of our Server Management Services, we regularly help our Customers to perform related open-source Software Installation queries.
In this context, we shall look into how to install OrangeScrum on CentOS 8.
1. Perform System Update
To begin, ensure that your system is up-to-date with the below command:
$ sudo dnf install epel-release
$ sudo dnf update
2. Install LAMP server
Here you need to install LAMP server on your CentOS system.
i. Install Apache Web Server
Install Apache Web Server by the following command:
$ sudo dnf -y install httpd
Now check apache service using the following command:
$ systemctl status httpd
If apache service not working then start and enable it to start at boot time, using the following commands:
$ sudo systemctl start httpd
$ sudo systemctl enable httpd
ii. Install and configure MariaDB
Install MariaDB server by executing the following command:
$ sudo dnf install mariadb-server
Now start MariaDB service and enable it to start at boot time then check MariaDB service status with the following command:
$ sudo systemctl start mariadb
$ sudo systemctl enable mariadb
$ sudo systemctl status mariadb
Next, you will need to secure database server, to do so run following command in Terminal:
$ sudo mysql_secure_installation
Here, set up a strong password and answer yes to all questions:
Set root password? [Y/n] Y
New password:
Re-enter new 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
Your MariaDB installation is now secure.
Next, log in to MariaDB console with the below command:
$ sudo mysql -u root -p
Next, you will need to disable strict mode for MariaDB. First, verify which mode MariaDB is running with:
MariaDB [(none)]> SHOW VARIABLES LIKE 'sql_mode';
It will show you output like the following:
+---------------+-------------------------------------------------------------------------------------------+
| Variable_name | Value |
+---------------+-------------------------------------------------------------------------------------------+
| sql_mode | STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+---------------+-------------------------------------------------------------------------------------------+
1 row in set (0.001 sec)
Next, You can disable strict mode by running the following command:
MariaDB [(none)]> SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION';
Then, you can verify that strict mode disabled or not by running the following command:
MariaDB [(none)]> SELECT @@GLOBAL.sql_mode;
Then restart MariaDB service:
$ sudo systemctl restart mariadb
Next, you will need to log in to the MariaDB console and create a database for the Orangescrum. Run the following command to create the database:
$ sudo mysql -u root -p
Enter your root password when prompted and run following command:
MariaDB [(none)]> CREATE DATABASE orangescrum;
Now create a new user and grant the required permissions to the user for the database:
MariaDB [(none)]> CREATE USER 'orangescrumuser'@'localhost' IDENTIFIED BY 'YourStrongPassword';
Then grant privileges to the orangescrum database with the following command:
GRANT ALL PRIVILEGES ON orangescrum.* TO 'orangescrumuser'@'localhost' IDENTIFIED BY 'YourStrongPassword' WITH GRANT OPTION;
Now run the following command to immediately apply the changes on the database privileges:
MariaDB [(none)]> FLUSH PRIVILEGES;
Next, exit from the MySQL shell:
MariaDB [(none)]> exit
iii. Install and configure PHP
Next, you will need to install PHP package, run following command from Terminal:
$ sudo dnf install php php-cli php-mysqlnd php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap php-curl php-opcache php-bcmath php-fpm
Once all the packages are installed, Now you will need to make some changes in php.ini file as required by OrangeScrum:
First, take the backup of php.ini:
$ cp /etc/php.ini /etc/php.ini.bak
Next edit php.ini file:
$ sudo vim /etc/php.ini
Find and change the value from 2M to 200M:
post_max_size=200M
upload_max_filesize=200M
Save and close the file.
Next, You'll need to restart your apache web server to apply changes, run following command:
$ sudo systemctl restart httpd
3. Install Orangescrum on the system
Now we download the Open Source version of Orangescrum run the following command:
$ sudo wget https://github.com/Orangescrum/orangescrum/archive/master.zip
After downloading, you will need to unzip the master.zip. To do this, run:
$ sudo unzip master.zip
$ sudo mv orangescrum-master /var/www/html/
We will need to change some folders permissions:
$ sudo chown -R apache:apache /var/www/html/orangescrum-master
$ sudo chmod -R 777 /var/www/html/orangescrum-master
4. Configure Apache for Orangescrum
First, create a virtual host file for Orangescrum:
$ sudo vim /etc/httpd/conf.d/orangescrum.conf
Then add the following content:
<VirtualHost *:80>
ServerName localhost
DocumentRoot /var/www/html/orangescrum-master
<Directory /var/www/html/orangescrum-master>
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
Save and quit:
:wq!
When you are finished, check the syntax of the configurations.to do so run the following command:
$ sudo apachectl configtest
After the syntax check is done, restart Apache service:
$ sudo systemctl restart httpd
5. Configure Orangescrum
Now Import the OrangeScrum data into the orangescrum database using the following command as shown below:
mysql -u orangescrum_user -p orangescrum < /var/www/html/orangescrum-master/database.sql
Now you need to edit the database.php file to update the database connection details:
$ vim /var/www/html/orangescrum-master/app/Config/database.php
Change the file as shown below:
class DATABASE_CONFIG {
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'orangescrumuser',
'password' => 'Your_StrongPassword',
'database' => 'orangescrum',
'prefix' => '',
'encoding' => 'utf8',
);
}
Then save and exit file. Here you have to enter your database usename, password and database name that you've chosen when creating the database and MySQL user.
Next, you need to edit the constants.php file for SMTP:
$ sudo vim /var/www/html/orangescrum-master/app/Config/constants.php
Next Find and Change the following lines as per your need:
//Gmail SMTP
define("SMTP_HOST", "ssl://smtp.gmail.com");
define("SMTP_PORT", "465");
define("SMTP_UNAME", "youremail@gmail.com");
define("SMTP_PWORD", "******");
define("IS_SMTP", "0");
define('FROM_EMAIL_NOTIFY', 'notify@mycompany.com'); //(REQUIRED)
define('SUPPORT_EMAIL', 'support@mycompany.com'); //(REQUIRED) From Email
Now restart Apache service:
$ sudo systemctl restart httpd
6. Install an SSL certificate
First, download the required packages and create a new system binary with the below commands:
$ wget https://dl.eff.org/certbot-auto
$ sudo mv certbot-auto /usr/local/bin/certbot-auto
$ sudo chown root /usr/local/bin/certbot-auto
$ sudo chmod 0755 /usr/local/bin/certbot-auto
Next, run the certbot a command that will download and install all of its dependencies:
$ sudo /usr/local/bin/certbot-auto --apache
7. Configure Firewall
Modify firewall rules in order to allow web access:
$ sudo firewall-cmd --zone=public --permanent --add-service=http
$ sudo firewall-cmd --zone=public --permanent --add-service=https
$ sudo firewall-cmd --reload
OrangeScrum will be available on HTTP port 80 by default.
Open your favorite browser and navigate to https://your-domain.com/ or https://server-ip-address and complete the required steps to finish the installation.
This article covers How to Install OrangeScrum on CentOS 8. In fact, Orangescrum is an open-source and collaboration web application for managing projects, teams, documents, tasks, and communicate with the team on important issues.