What is Joomla?

Joomla is a Content Management System (CMS) which allows you build website and online apps. Joomla (along with Drupal) is one of the alternatives to the website building juggernaut Wordpress. Joomla is written in PHP, just like Drupal and Worpress. Joomla is free and open-source, just like the others. It also has a multitude of templates and extensions that you can choose from. Joomla is arguably more powerful than wordpress in some areas like ecommerce. I personally started looking at Joomla because I was looking for an alternative to Wordpress, and while Joomla has a steeper learning curve, its robustness could make it an attractive alternative!

Step-by-step guide

  1. First, update the system and install all the required packages
sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt-get install apache2 mysql-server php7.0 php7.0-mysql libapache2-mod-php7.0 php7.0-mcrypt php7.0-xml php7.0-curl php7.0-json php7.0-cgi unzip wget

You will be prompted to enter the root password for MySQL. Remember that.

  1. Next, follow best practices, and execute the MySQL secure installation script. No need to install the password plugin, and no need to change the password. You should enter "Y" for the rest of the prompts

  2. Download and unpackage the Joomla files

wget https://downloads.joomla.org/cms/joomla3/3-8-7/Joomla_3-8-7-Stable-Full_Package.zip
unzip Joomla_3-8-7-Stable-Full_Package.zip -d /var/www/html
rm /var/www/index.html
  1. Set appropriate permissions
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R /var/www/html
  1. Create the Joomla database on MySQL
    Enter the MySQL console
    mysql -u root -p
    Enter the following commands into the MySQL console

    mysql>CREATE DATABASE joomla;
    mysql>GRANT ALL PRIVILEGES on joomla.* to '<username>'@'localhost' identified by '<password>'
    mysql>FLUSH PRIVILEGES;
    mysql>exit
    

    Remember the username and password that you used above, because you will need that during the initial setup process

  2. Restart the Apache server
    sudo systemctl restart apache2

Next, access the newly installed Joomla instance using a web-browser, and the IP address or the domain name of your machine. It should look like this:
Joomla-setup

In the database section, these are the following parameters that you should use:

Database type: MySQLi
Host Name: localhost
Username: <username-you-chose>
Password: <password-you-set>
Database Name: joomla
Table Prefix: joomla_
Old Database Process: Remove