How To Install Mod_Security Apache on CentOS 7

Install Mod_Security Apache on CentOS 7

ModSecurity is an open source, cross platform web application firewall (WAF) developed by Trustwave’s SpiderLabs. It has a robust event-based programming language which provides protection from a range of attacks against web applications and allows for HTTP traffic monitoring, logging and real-time analysis. In this tutorial we will learn how To Install Mod_Security Apache on CentOS 7

This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo’ to the commands to get root privileges. I will show you through the step by step installation ModSecurity on a CentOS 7 server.

Install Mod_Security Apache on CentOS 7

Step 1. First, let’s start by ensuring your system is up-to-date.

yum clean all
yum -y update

Step 2. Installing Mod_Security Apache on CentOS

Install Dependencies for mod_security:

yum install gcc make httpd-devel libxml2 pcre-devel libxml2-devel curl-devel git

Next, download latest stable release of mod_security source code from their official website to your server:

wget https://www.modsecurity.org/tarball/2.9.3/modsecurity-2.9.3.tar.gz
tar xzf modsecurity-apache_2.9.3.tar.gz
cd modsecurity-apache_2.9.3
./configure
make install
cp modsecurity.conf-recommended /etc/httpd/conf.d/modsecurity.conf
cp unicode.mapping /etc/httpd/conf.d/

Step 3. Configuring Mod_Security.

# nano /etc/httpd/conf/httpd.conf
LoadModule security2_module modules/mod_security2.so

Now set the basic rule set in your httpd.conf file. Add the following lines of code at the end of the file:

<IfModule security2_module>
    Include conf.d/modsecurity.conf
</IfModule>

Save the changes and restart Apache:

systemctl restart httpd

Step 4. Download and configure OWASP (Open Web Application Security Project) core rule set for a base configuration.

cd /etc/httpd
git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git
mv owasp-modsecurity-crs modsecurity-crs
cd modsecurity-crs
cp modsecurity_crs_10_setup.conf.example modsecurity_crs_10_config.conf

Open the Apache configuration file again, and add the following lines at the end of the file:

# nano /etc/httpd/conf/httpd.conf

Include modsecurity-crs/modsecurity_crs_10_config.conf
Include modsecurity-crs/base_rules/*.conf

Next, restart the Apache service to enable mod_security module:

systemctl restart httpd

Congratulation’s! You have successfully installed Mod_Security. Thanks for using this tutorial for installing Mod_Security on CentOS 7 system. For additional help or useful information, we recommend you to check the official ModSecurity website.

How To Install TYPO3 9 LTS(Version: 9.5.5)on Ubuntu 18.04 LTS

Install TYPO3 on Ubuntu 18

TYPO3 is an enterprise open source content management system based on PHP. It’s intended for ease of use to allow owners and enterprises to create powerful and dynamic content websites. If you’re looking for a functional, higher performance content management system to manage your websites or blogs and 100% free, then you’ll find TYPO3 to be helpful.

This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo’ to the commands to get root privileges. I will show you through the step by step installation LimeSurvey on an Ubuntu 18.04 (Bionic Beaver) server.

Install TYPO3 on Ubuntu 18.04 LTS

Step 1. First, make sure that all your system packages are up-to-date

sudo apt update
sudo apt upgrade

Step 2. Install LAMP (Linux, Apache, MariaDB and PHP) server.

An Ubuntu 18.04 LAMP server is required. If you do not have a LAMP installed, you can follow our guide here. Also install all required PHP modules:

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php

Next, run the commands below to install PHP 7.2 and related modules:

sudo apt install php7.2 libapache2-mod-php7.2 php7.2-common php7.2-gmp php7.2-curl php7.2-intl php7.2-mbstring php7.2-xmlrpc php7.2-mysql php7.2-gd php7.2-xml php7.2-cli php7.2-zip

Step 3. Download TYPO3 latest version

Download TYPO3 latest release you may want to use Github repository:

Install Composer, Curl and other dependencies:

sudo apt install curl git
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Next, Download TYPO3 latest release you may want to use Github repository:

cd /var/www/html
sudo composer create-project typo3/cms-base-distribution typo3 ^9
sudo touch /var/www/html/typo3/public/FIRST_INSTALL

We will need to change some folders permissions:

sudo chown -R www-data:www-data /var/www/html/typo3/
sudo chmod -R 755 /var/www/html/typo3/

Step 4. Configuring MariaDB for TYPO3.

By default, MariaDB is not hardened. You can secure MariaDB using the mysql_secure_installation script. you should read and below each step carefully which will set the root password, remove anonymous users, disallow remote root login, and remove the test database and access to secure MariaDB:

mysql_secure_installation

Configure it like this:

- Set root password? [Y/n] y
- 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

Next we will need to log in to the MariaDB console and create a database for the TYPO3. Run the following command:

mysql -u root -p

This will prompt you for a password, so enter your MariaDB root password and hit Enter. Once you are logged in to your database server, you need to create a database for TYPO3 installation:

CREATE DATABASE typo3;
CREATE USER 'typo3user'@'localhost' IDENTIFIED BY 'new_password_here';
GRANT ALL ON typo3.* TO 'typo3user'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

Step 5. Configuring Apache for TYPO3.

Create a new virtual host directive in Apache. For example, create a new Apache configuration file named ‘typo.conf’ on your virtual server:

touch /etc/apache2/sites-available/typo.conf
ln -s /etc/apache2/sites-available/typo.conf /etc/apache2/sites-enabled/typo.conf
nano /etc/apache2/sites-available/typo.conf

Add the following lines:

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html/typo3/public
ServerName your-domain.com
ServerAlias www.your-domain.com
<Directory /var/www/html/typo3/public/>
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/your-domain.com-error_log
CustomLog /var/log/apache2/your-domain.com-access_log common
</VirtualHost>

Now, we can restart Apache web server so that the changes take place:

sudo a2ensite typo3.conf
sudo a2enmod rewrite
systemctl restart apache2.service

Next, we have to make some PHP settings. For this we go into the php.ini and adjust a few settings:

nano /etc/php/7.2/apache2/php.ini

Then make the change the following lines below in the file and save:

file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
max_input_vars = 1500
date.timezone = America/Chicago

Step 6. Accessing TYPO3 CMS.

TYPO3 will be available on HTTP port 80 by default. Open your favorite browser and navigate to http://yourdomain.com/ or http://server-ip/ and complete the required the steps to finish the installation. If you are using a firewall, please open port 80 to enable access to the control panel.

Congratulation’s! You have successfully installed TYPO3. Thanks for using this tutorial for installing TYPO3 on Ubuntu 18.04 LTS (Bionic Beaver) system. For additional help or useful information, we recommend you to check the official TYPO3 web site.

How To Install Elgg3.0.2 on Ubuntu 18.04 LTS

Install Elgg on Ubuntu 18

In this tutorial we will show you how to install Elgg on Ubuntu 18.04 LTS. For those of you who didn’t know, Elgg is an open source social networking engine that allows the creation of social environments such as campus social networks and internal collaborative platforms for organizations. Elgg offers a number of social networking features including microblogging, messaging, file-sharing and groups.

This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo’ to the commands to get root privileges. I will show you through the step by step installation Elgg Social Networking Platform on an Ubuntu 18.04 Bionic Beaver server.

Install Elgg on Ubuntu 18.04 LTS

Step 1. First, make sure that all your system packages are up-to-date

sudo apt update
sudo apt upgrade

Step 2. Install LAMP (Linux, Apache, MariaDB and PHP) server.

A Ubuntu 18.04 LAMP server is required. If you do not have LAMP installed, you can follow our guide here. Also install all required PHP modules:

apt-get install php7.1-cli php7.1-mbstring php7.1-gd php7.1-opcache php7.1-mysql php7.1-json php7.1-mcrypt php7.1-xml php7.1-curl

Step 3. Download latest stable Elgg version

First thing to do is to go to Elgg’s download page and download the latest stable version of Elgg, At the moment of writing this article it is version 2.3.10:

wget https://elgg.org/about/getelgg?forward=elgg-2.3.10.zip

Unpack the Elgg archive to the document root directory on your server:

unzip elgg-2.3.10.zip
mv /elgg-2.3.10/ /var/www/html/elgg/

We will need to change some folders permissions:

chown -R www-data:www-data /var/www/html/elgg/
chmod -R 755 /var/www/html/elgg/

Step 4. Configuring MariaDB for Elgg.

By default, MariaDB is not hardened. You can secure MariaDB using the mysql_secure_installation script. you should read and below each steps carefully which will set root password, remove anonymous users, disallow remote root login, and remove the test database and access to secure MariaDB:

mysql_secure_installation

Configure it like this:

- Set root password? [Y/n] y
- 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

Next we will need to log in to the MariaDB console and create a database for the Elgg. Run the following command:

mysql -u root -p

This will prompt you for a password, so enter your MariaDB root password and hit Enter. Once you are logged in to your database server you need to create a database for Elgg installation:

create database elggdb;
GRANT ALL PRIVILEGES ON elggdb.* TO 'elgguser'@'localhost' IDENTIFIED BY 'Y0UR-PASSW0RD';
flush privileges;
quit

Step 5. Configuring Apache web server for Elgg.

Create a new virtual host directive in Apache. For example, create a new Apache configuration file named ‘elgg.conf’ on your virtual server:

touch /etc/apache2/sites-available/elgg.conf
ln -s /etc/apache2/sites-available/elgg.conf /etc/apache2/sites-enabled/elgg.conf
nano /etc/apache2/sites-available/elgg.conf

Add the following lines:

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html/elgg/
ServerName your-domain.com
ServerAlias www.your-domain.com
<Directory /var/www/html/elgg/>
Options FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/apache2/your-domain.com-error_log
CustomLog /var/log/apache2/your-domain.com-access_log common

Save and close the file. Restart the apache service for the changes to take effects:

sudo a2ensite elgg.conf
sudo a2enmod rewrite
sudo systemctl restart apache2

Step 6. Accessing Elgg.

Elgg Social Networking Platform will be available on HTTP port 80 by default. Open your favorite browser and navigate to http://yourdomain.com/install.php or http://server-ip/install.php and complete the required the steps to finish the installation. If you are using a firewall, please open port 80 to enable access to the control panel.
how-to-isntall-elgg

Congratulation’s! You have successfully installed Elgg. Thanks for using this tutorial for installing Elgg Social Networking Platform in Ubuntu 18.04 LTS system. For additional help or useful information, we recommend you to check the official Elgg web site.

How To Install LimeSurveyCE(V3.17.1) on Ubuntu 18.04 LTS

Install LimeSurvey on Ubuntu 18

LimeSurvey (formerly PHPSurveyor) is an open source online survey application. It has been widely used by many big industries to create the survey tasks. It has many powerful features like creating dynamic fields for survey. Supports multilingual, defines userroles, user groups and the more it has been integrated into various CMS. The limesurvey team provides the commercial for those who are seeking. As well as community support for its users.

This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo’ to the commands to get root privileges. I will show you through the step by step installation LimeSurvey on an Ubuntu 18.04 (Bionic Beaver) server.

Install LimeSurvey on Ubuntu 18.04 LTS

Step 1. First, make sure that all your system packages are up-to-date

sudo apt update
sudo apt upgrade

Step 2. Install LAMP (Linux, Apache, MariaDB and PHP) server.

A Ubuntu 18.04 LAMP server is required. If you do not have LAMP installed, you can follow our guide here. Also install all required PHP modules:

apt-get install php7.1-cli php7.1-mbstring php7.1-gd php7.1-opcache php7.1-mysql php7.1-json php7.1-mcrypt php7.1-xml php7.1-curl

Step 3. Download the latest LimeSurvey version

Download the latest stable version of LimeSurvey, At the moment of writing this article it is version 3.15.6:

wget https://www.limesurvey.org/stable-release?download=2519:limesurvey3156%20190108zip
unzip "stable-release?download=2519:limesurvey3156 20190108zip"
mv limesurvey/ /var/www/html/limesurvey/

We will need to change some folders permissions:

chown www-data:www-data -R /var/www/html/limesurvey
chmod -R 755 /var/www/html/limesurvey/

Step 4. Configuring MariaDB.

By default, MariaDB is not hardened. You can secure MariaDB using the mysql_secure_installation script. You should read and below each steps carefully which will set root password, remove anonymous users, disallow remote root login, and remove the test database and access to secure MariaDB.

mysql_secure_installation

Configure it like this:

- Set root password? [Y/n] y
- 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

Next we will need to log in to the MariaDB console and create a database for the LimeSurvey. Run the following command:

mysql -u root -p

This will prompt you for a password, so enter your MariaDB root password and hit Enter. Once you are logged in to your database server you need to create a database for LimeSurvey installation:

CREATE DATABASE limesurvey;
GRANT ALL PRIVILEGES ON limesurvey.* TO 'limeuser'@'localhost' IDENTIFIED BY 'your-password';
FLUSH PRIVILEGES;
\q

Step 5. Configuring Apache web server for LimeSurvey.

Create a new virtual host directive in Apache. For example, create a new Apache configuration file named ‘limesurvey.conf’ on your virtual server:

touch /etc/apache2/sites-available/limesurvey.conf
ln -s /etc/apache2/sites-available/limesurvey.conf /etc/apache2/sites-enabled/limesurvey.conf
nano /etc/apache2/sites-available/limesurvey.conf

Add the following lines:

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html/limesurvey/
ServerName your-domain.com
ServerAlias www.your-domain.com
<Directory /var/www/html/limesurvey/>
Options FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/apache2/your-domain.com-error_log
CustomLog /var/log/apache2/your-domain.com-access_log common
</VirtualHost>

Now, we can restart Apache web server so that the changes take place:

sudo a2ensite limesurvey.conf
sudo a2enmod rewrite
sudo systemctl restart apache2.service

LimeSurvey will be available on HTTP port 80 by default. Open your favorite browser and navigate to http://yourdomain.com/admin or http://server-ip/admin and complete the required the steps to finish the installation. If you are using a firewall, please open port 80 to enable access to the control panel.

Congratulation’s! You have successfully installed LimeSurvey. Thanks for using this tutorial for installing LimeSurvey online survey platform based PHP on Ubuntu 18.04 LTS (Bionic Beaver) system. For additional help or useful information, we recommend you to check the official LimeSurvey web site.

How To Install OroCRM 3.1 on Ubuntu 18.04 LTS

Install OroCRM on Ubuntu 18

OroCRM is an open-source and simple to utilize CRM with worked in advertising devices for eCommerce business. This product is completely focused on the internet business. OroCRM offers the best functionalities being adaptable and additionally intense. OroCRM can also be easily integrated with popular e-commerce platforms like Magento, MailChimp or Zendesk.

This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo’ to the commands to get root privileges. I will show you through the step by step installation OroCRM open-source and simple to utilize CRM on an Ubuntu 18.04 Bionic Beaver server.

Install OroCRM on Ubuntu 18.04 LTS

Step 1. First make sure that all your system packages are up-to-date

sudo apt-get update
sudo apt-get upgrade

Step 2. Install LAMP (Linux, Apache, MariaDB and PHP) server.

A Ubuntu 18.04 LAMP server is required. If you do not have LAMP installed, you can follow our guide here. Also install all required PHP modules:

apt-get install php7.1-cli php7.1-mbstring php7.1-gd php7.1-opcache php7.1-mysql php7.1-json php7.1-mcrypt php7.1-xml php7.1-curl

Step 3. Installing Node.js and Composer.

OroCRM requires Node.js and Composer to be installed on the system. To install these packages, run the commands below:

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Next, run the commands below to install Node.js:

sudo curl --silent --location https://deb.nodesource.com/setup_8.x | sudo bash -
sudo apt install nodejs

Step 3. Download the stable version

First thing to do is to go to OroCRM’s download page and download the latest stable version of OroCRM:

cd /var/www/html/
sudo git clone -b 2.4 https://github.com/oroinc/crm-application.git orocrm
cd orocrm
sudo composer install --prefer-dist --no-dev

Next, run the commands below to complete the installation:


sudo php app/console oro:install --env=prod

We will need to change some folders permissions:

sudo chown -R www-data:www-data /var/www/html/orocrm/
sudo chmod -R 755 /var/www/html/orocrm/

Step 4. Configuring MariaDB for OroCRM.

By default, MariaDB is not hardened. You can secure MariaDB using the mysql_secure_installation script. You should read and below each steps carefully which will set root password, remove anonymous users, disallow remote root login, and remove the test database and access to secure MariaDB.

mysql_secure_installation

Configure it like this:

- Set root password? [Y/n] y
- 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

Next we will need to log in to the MariaDB console and create a database for the OroCRM. Run the following command:

mysql -u root -p

This will prompt you for a password, so enter your MariaDB root password and hit Enter. Once you are logged in to your database server you need to create a database for OroCRM installation:

MariaDB [(none)]> CREATE DATABASE orocrm;
MariaDB [(none)]> CREATE USER 'orocrmuser'@'localhost' IDENTIFIED BY 'new_password_here';
MariaDB [(none)]> GRANT ALL ON orocrm.* TO 'orocrmuser'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q

Step 5. Configuring Apache web server for OroCRM.

Create a new virtual host directive in Apache. For example, create a new Apache configuration file named ‘orocrm.conf’ on your virtual server:

touch /etc/apache2/sites-available/orocrm.conf
ln -s /etc/apache2/sites-available/orocrm.conf /etc/apache2/sites-enabled/orocrm.conf
nano /etc/apache2/sites-available/orocrm.conf

Add the following lines:

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/var/www/html/orocrm/web"
ServerName your-domain.com
ServerAlias www.your-domain.com
<Directory "/var/www/html/orocrm/web">
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/your-domain.com-error_log
CustomLog /var/log/apache2/your-domain.com-access_log common
</VirtualHost>

Now, we can restart Apache web server so that the changes take place:

sudo a2enmod rewrite
a2ensite orocrm.conf
systemctl restart apache2.service

Step 6. Accessing OroCRM.

OroCRM will be available on HTTP port 80 by default. Open your favorite browser and navigate to http://yourdomain.com or http://server-ip and complete the required the steps to finish the installation. If you are using a firewall, please open port 80 to enable access to the control panel.

orocrm-install

Congratulation’s! You have successfully installed OroCRM. Thanks for using this tutorial for installing OroCRM open-source and simple to utilize CRM on your Ubuntu 18.04 LTS (Bionic Beaver) system. For additional help or useful information, we recommend you to check the official OroCRM web site.

How To Install Matomo 3.9.1 on Ubuntu 18.04 LTS

Install Matomo on Ubuntu 18

Matomo or formerly known as Piwik, is an open source web analytics application. It rivals Google Analytics and includes even more features and allows you to brand your brand and send out custom daily, weekly, and monthly reports to your clients.

This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo’ to the commands to get root privileges. I will show you through the step by step installation Matomo open source web analytics on an Ubuntu 18.04 Bionic Beaver server.

Install Matomo on Ubuntu 18.04 LTS

Step 1. First make sure that all your system packages are up-to-date

sudo apt-get update
sudo apt-get upgrade

Step 2. Install LAMP (Linux, Apache, MariaDB and PHP) server.

A Ubuntu 18.04 LAMP server is required. If you do not have LAMP installed, you can follow our guide here. Also install all required PHP modules:

apt-get install php7.1-cli php7.1-mbstring php7.1-gd php7.1-opcache php7.1-mysql php7.1-json php7.1-mcrypt php7.1-xml php7.1-curl

Step 3. Download the latest version

First thing to do is to go to Matomo’s download page and download the latest stable version of Matomo:

cd /var/www/html/
wget https://builds.matomo.org/piwik.zip

Unzip the Matomo archive to the document root directory on your server:

unzip piwik.zip

We will need to change some folders permissions:

chown -R www-data:www-data /var/www/html/piwik
chmod -R 0755 /var/www/html/piwik/tmp

Step 4. Configuring MariaDB for Matomo.

By default, MariaDB is not hardened. You can secure MariaDB using the mysql_secure_installation script. you should read and below each steps carefully which will set root password, remove anonymous users, disallow remote root login, and remove the test database and access to secure MariaDB:

mysql_secure_installation

Configure it like this:

- Set root password? [Y/n] y
- 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

Next we will need to log in to the MariaDB console and create a database for the Matomo. Run the following command:

mysql -u root -p

This will prompt you for a password, so enter your MariaDB root password and hit Enter. Once you are logged in to your database server you need to create a database for Matomo installation:

CREATE DATABASE db_name;
GRANT ALL ON db_name.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
quit

Step 5. Accessing Matomo web analytics application.

Matomo will be available on HTTP port 80 by default. Open your favorite browser and navigate to http://yourdomain.com/piwik or http://server-ip/piwik and complete the required the steps to finish the installation. If you are using a firewall, please open port 80 to enable access to the control panel.

install-matomo

Congratulation’s! You have successfully installed Matomo. Thanks for using this tutorial for installing Matomo open source web analytics on your Ubuntu 18.04 LTS Bionic Beaver. For additional help or useful information, we recommend you to check the official Matomo web site.

How To Install Joomla 3.9.5 With Nginx on Ubuntu 18.04 LTS

Install Joomla With Nginx on Ubuntu 18

Joomla is a free and open source popular content management that uses a PHP and a backend database, such as MySQL. It offers a wide variety of features that make it an incredibly flexible content management system right out of the box. Furthermore, there are hundreds of free extensions written for that allows users to extend its functionality and customize it to their own objectives. A major advantage of using a content management system (CMS) is that it requires almost no technical skill or knowledge to manage. if you are planning to publish content on your website frequently, then maybe using WordPress will be a better option for you.

This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo’ to the commands to get root privileges. I will show you through the step by step installation Joomla with Nginx on an Ubuntu 18.04 (Bionic Beaver) server.

Install Joomla With Nginx on Ubuntu 18.04

Step 1. First make sure that all your system packages are up-to-date

sudo apt-get update
sudo apt-get upgrade

Step 2. Install LEMP (Linux, Apache, MariaDB, PHP) server.

A Ubuntu 18.04 LAMP server is required. If you do not have LAMP installed, you can follow our guide here. Also install all required PHP modules:

apt-get install php7.1-cli php7.1-gd php7.1-opcache php7.1-mysql php7.1-json php7.1-mcrypt php7.1-xml php7.1-curl

Step 3. Installing Joomla with Nginx on Ubuntu 18.04.

First thing to do is to go to Joomla’s download page and download the latest stable version of Joomla, At the moment of writing this article it is version 3.8.5:

wget https://downloads.joomla.org/us/cms/joomla3/3-8-12/Joomla_3-8-12-Stable-Full_Package.zip
mkdir /var/www/html/joomla
unzip Joomla*.zip -d /var/www/html/joomla

We will need to change some folders permissions:

chown -R www-data.www-data /var/www/html
chmod -R 755 /var/www/html

Step 4. Configuring MariaDB for Joomla.

By default, MariaDB is not hardened. You can secure MariaDB using the mysql_secure_installation script. You should read and below each steps carefully which will set root password, remove anonymous users, disallow remote root login, and remove the test database and access to secure MariaDB.

mysql_secure_installation

Configure it like this:

- Set root password? [Y/n] y
- 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

Next we will need to log in to the MariaDB console and create a database for the Joomla. Run the following command:

mysql -u root -p

This will prompt you for a password, so enter your MariaDB root password and hit Enter. Once you are logged in to your database server you need to create a database for Joomla installation:

CREATE DATABASE joomladb;
CREATE USER joomlauser@localhost;
SET PASSWORD FOR 'joomlauser'@'localhost' = PASSWORD("your-password");
GRANT ALL PRIVILEGES ON joomladb.* TO 'joomlauser'@'localhost' IDENTIFIED BY 'your-password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
quit

Step 5. Configuring Nginx web server for Joomla.

Finally, configure Nginx site configuration file for Joomla. Run the commands below to create a new configuration file called joomla:

nano /etc/nginx/sites-available/joomla

Add the following lines:

server {
    listen 80;
    listen [::]:80;
    root /var/www/html/joomla;
    index  index.php index.html index.htm;
    server_name  example.com www.example.com;

    location / {
        try_files $uri $uri/ /index.php?$args;        
    }

    location ~ \.php$ {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include fastcgi_params;
    }

After configuring the VirtualHost above, enable it by running the commands below:

ln -s /etc/nginx/sites-available/joomla /etc/nginx/sites-enabled/

Now, we can restart Apache web server so that the changes take place:

nginx -t
systemctl restart nginx
systemctl restart php7.1-fpm

Step 6. Accessing Joomla.

Joomla will be available on HTTP port 80 by default. Open your favorite browser and navigate to http://yourdomain.com/ or http://server-ip and complete the required the steps to finish the installation. If you are using a firewall, please open port 80 to enable access to the control panel.

joomla-web-interface

[youtube https://www.youtube.com/watch?v=prBpxVspDHs]

Congratulation’s! You have successfully installed Joomla. Thanks for using this tutorial for installing Joomla CMS (content management system) with Nginx on Ubuntu 18.04 LTS systems. For additional help or useful information, we recommend you to check the official Joomla web site.