How to install and configure OrangeScrum on CentOS 8

Orangescrum is a collaborative and open source web application written with CakePHP. This app is a simple and easy-to-use tool for managing projects, teams, documents, tasks and communicating with teams on important issues.

Orangescrum is a widely used tool for small and medium sized businesses. Orangescrum contains many useful features such asAgile project management, collaboration, problem tracking, notifications, reports, task management, thread conversations And many other features that will speed up the work process for producing high quality projects.

Tutorial requirements

  • CentOS 8 Server.
  • Log in as root user or regular user with sudo privileges.
  • For database server, if STRICT mode is on, change it to off

Initial step

Update the operating system (software) package. This is an important first step as it ensures that you have the latest updates and security fixes for the default software packages for your operating system:

dnf update

Install LAMP Server.

For this tutorial, we selected LAMP (Linux, Apache, MariaDB, and PHP),

1. Install Apache web server

Install Apache web server using the following command:

sudo dnf -y install httpd

Now verify the Apache service using the following command

systemctl status httpd

If the Apache service is not running, turn it on and enable it to start at boot time, with the following command: –

sudo systemctl start httpd
sudo systemctl enable httpd

2. Install and configure MariaDB

Install MariaDB Server by running the following command:

sudo dnf install mariadb-server

Now start the MariaDB service and enable it to start at boot up, then check the MariaDB service status with the following command:

sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo systemctl status mariadb

Next, run the mysql_secure_installation script to perform the basic security improvements:

sudo mysql_secure_installation

This command will change the root password, delete anonymous users, block remote root logins, and delete the test database. Answer the questions as shown below and make sure to choose a secure root user password:

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

Once MariaDB is secured, log into the MariaDB shell with the following command:

sudo mysql -u root -p

Next, you need to disable MariaDB hard mode. First, check out the mode MariaDB is running in:

MariaDB [(none)]> SHOW VARIABLES LIKE 'sql_mode';

This will result in 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)

After that, you can disable Hard Mode by running the following command:

MariaDB [(none)]> SET GLOBAL sql_mode="NO_ENGINE_SUBSTITUTION";

Then, you can check whether Hard mode is disabled or not by running the following:

MariaDB [(none)]> SELECT @@GLOBAL.sql_mode;

Check MySQL Mode

Then restart the MariaDB service.

sudo systemctl restart mariadb

Next, you log into the MariaDB console and create a database for Orangescrum. Run the following command to create a database

sudo mysql -u root -p

Enter your root password then create a database and database user for Orangescrum with the following command:

CREATE DATABASE orangescrum;
CREATE USER 'orangescrum_user'@'localhost' IDENTIFIED BY 'g4nt!_d3n9an_p4$$w0rd'; 
GRANT ALL PRIVILEGES ON orangescrum.* TO 'orangescrumuser'@'localhost' IDENTIFIED BY 'g4nt!_d3n9an_p4$$w0rd' WITH GRANT OPTION;
FLUSH PRIVILEGES; exit;

3. Install and configure PHP

Next, you need to install PHP package, run the 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

After installing all packages, now you need to make some changes to the files php.ini As required by OrangeScrum:

First, copy the php.ini file and paste it with another name.

cp /etc/php.ini /etc/php.ini.bak

After that, edit the php.ini file

sudo nano /etc/php.ini

Find the value and change it from 2M to 200M:

post_max_size=200M
upload_max_filesize=200M

Save and close the file.

After that, you must restart the apache web server to take effect the changes, run the following command:

sudo systemctl restart httpd

Install Orangescrum

To download the Open Source version of Orangescrum, run the following command:

sudo wget https://github.com/Orangescrum/orangescrum/archive/master.zip

Then unzip the downloaded file by running

sudo unzip master.zip

The decompress command will extract the directory orangescrum-master 

Now move the orangescrum-master directory to the root of the Apache web directory. You can do this by running:

sudo mv orangescrum-master /var/www/html/

Next, grant the orangescrum-master folder the correct permissions:

sudo chown -R apache:apache /var/www/html/orangescrum-master
sudo chmod -R 777 /var/www/html/orangescrum-master

Once done, we are ready to configure Apache for Orangescrum

First, create a default host file for Orangescrum,

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

Add the following composition

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

When done, check the configuration syntax. To do this, run the following command:

sudo apachectl configtest

After the syntax check is complete, restart the Apache service:

sudo systemctl restart httpd

Orangescrum composition

Now import OrangeScrum data into 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:

nano /var/www/html/orangescrum-master/app/Config/database.php

Then find and change the following settings:

class DATABASE_CONFIG {

    public $default = array(
            'datasource' => 'Database/Mysql',
            'persistent' => false,
            'host' => 'localhost',
            'login' => 'orangescrum_user',
            'password' => 'g4nt!_d3n9an_P4$$w0rd',
            'database' => 'orangescrum',
            'prefix' => '',
            'encoding' => 'utf8',
    );
}

Then save and exit the file. Here you will need to enter the username, password and database name that you specified when creating the MySQL database and the user.

Next, you need to edit the constants.php file for SMTP:

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

Edit the SMTP / Email settings according to your needs.

//Gmail SMTP
define("SMTP_HOST", "ssl://smtp.gmail.com");
define("SMTP_PORT", "465");
define("SMTP_UNAME", "[email protected]");
define("SMTP_PWORD", "g4nt!_d3n9an_P4$$w0rd");
define("IS_SMTP", "0");


define('FROM_EMAIL_NOTIFY', '[email protected]'); //(REQUIRED)
define('SUPPORT_EMAIL', '[email protected]'); //(REQUIRED) From Email

Now restart the Apache service.

sudo systemctl restart httpd

Next, change the firewall rules to allow access to the web:

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

You can disable SELinux temporarily using the command given below.

setenforce 0

Orangescrum test

From your web browser and visit http://serverIP/ Enter your company name, email, and password, then click the Register button.

.

Source link

Leave a Reply

Your email address will not be published. Required fields are marked *