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 Ibmi Media, 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 update2. 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 httpdNow check apache service using the following command:
$ systemctl status httpdIf 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 httpdii. Install and configure MariaDB
Install MariaDB server by executing the following command:
$ sudo dnf install mariadb-serverNow 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 mariadbNext, you will need to secure database server, to do so run following command in Terminal:
$ sudo mysql_secure_installationHere, 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] YYour MariaDB installation is now secure.
Next, log in to MariaDB console with the below command:
$ sudo mysql -u root -pNext, 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 mariadbNext, 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 -pEnter 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)]> exitiii. 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-fpmOnce 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.bakNext edit php.ini file:
$ sudo vim /etc/php.iniFind and change the value from 2M to 200M:
post_max_size=200M
upload_max_filesize=200MSave and close the file.
Next, You'll need to restart your apache web server to apply changes, run following command:
$ sudo systemctl restart httpd3. 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.zipAfter 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-master4. Configure Apache for Orangescrum
First, create a virtual host file for Orangescrum:
$ sudo vim /etc/httpd/conf.d/orangescrum.confThen 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 configtestAfter the syntax check is done, restart Apache service:
$ sudo systemctl restart httpd5. 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.sqlNow you need to edit the database.php file to update the database connection details:
$ vim /var/www/html/orangescrum-master/app/Config/database.phpChange 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.phpNext Find and Change the following lines as per your need:
//Gmail SMTPdefine("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 httpd6. 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-autoNext, run the certbot a command that will download and install all of its dependencies:
$ sudo /usr/local/bin/certbot-auto --apache7. 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 --reloadOrangeScrum 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.