YouTube Icon

Code Playground.

How to Install Joomla with Apache on Ubuntu 18.04


How to Install Joomla with Apache on Ubuntu 18.04

Joomla is one of the most mainstream open-source content administration frameworks that powers a huge number of sites. It is written in PHP and packs a huge load of highlights that can be stretched out with free and premium expansions and topics. With Joomla, you can undoubtedly manufacture your eCommerce store, individual site, social webpage or blog. 

In this instructional exercise, we will disclose how to introduce Joomla on Ubuntu 18.04. We'll be utilizing a LAMP stack with Apache as a web worker, SSL endorsement, the most recent PHP 7.2 and MySQL/MariaDB as an information base worker. 


Guarantee the accompanying requirements are met prior to proceeding with this instructional exercise: 

Have a space name highlighting your worker public IP. We will utilize 

Signed in as a client with sudo advantages . 

Apache introduced by adhering to these guidelines . 

You have a SSL authentication introduced for your space. You can introduce a free Let's Encrypt SSL testament by adhering to these guidelines . 

Creating a MySQL database

Joomla can store its information, for example, articles, classes, clients, expansions and topics settings in a MySQL, PostgreSQL or MS SQL information base. 

We'll utilize MySQL as the back-end information base. On the off chance that you don't have MySQL introduced on your Ubuntu worker you can introduce it by composing: 

sudo apt-get update
sudo apt-get install mysql-server

Login to the MySQL reassure by composing: 

sudo mysql

From inside the MySQL shell, run the accompanying SQL explanation to make an information base : 

CREATE DATABASE joomla CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

Next, make another MySQL client and award advantages to this client on the new information base: 

GRANT ALL ON joomla.* TO 'joomlauser'@'localhost' IDENTIFIED BY 'change-with-strong-password';

When done, leave the mysql support by composing: 


Installing PHP

PHP 7.2 which is the default PHP form in Ubuntu 18.04 is completely upheld and suggested for Joomla. 

Introduce PHP all necessary PHP expansions with the accompanying order: 

sudo apt update
sudo apt install php7.2 php7.2-cli php7.2-mysql php7.2-json php7.2-opcache php7.2-mbstring php7.2-intl php7.2-xml php7.2-gd  php7.2-zip php7.2-curl php7.2-xmlrpc php7.2-xmlrpc

Set the suggested PHP alternatives by altering the php.ini record with sed : 

sudo sed -i "s/memory_limit = .*/memory_limit = 512M/" /etc/php/7.2/apache2/php.ini
sudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 256M/" /etc/php/7.2/apache2/php.ini
sudo sed -i "s/post_max_size = .*/post_max_size = 256M/" /etc/php/7.2/apache2/php.ini
sudo sed -i "s/output_buffering = .*/output_buffering = Off/" /etc/php/7.2/apache2/php.ini
sudo sed -i "s/max_execution_time = .*/max_execution_time = 300/" /etc/php/7.2/apache2/php.ini
sudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/7.2/apache2/php.ini

Restart apache so the recently introduced PHP augmentations are stacked: 

sudo systemctl restart apache2

Downloading Joomla

At the hour of composing this article, the most recent form of Joomla is adaptation 3.9.4. 

Prior to downloading the Joomla chronicle, first make an index that will hold the Joomla documents and explore to it: 

sudo mkdir -p /var/www/
cd /var/www/

Next, download the current arrival of Joomla from the Joomla downloads page utilizing the accompanying wget order : 

sudo wget

Once the download is finished, unfasten the chronicle and move the records into the area's report root registry: 

sudo unzip

Change the catalog's proprietor to www-information utilizing the chown order so the web worker can have full admittance to the website's documents and registries: 

sudo chown -R www-data: /var/www/

Configuring Apache

At this point, you should as of now have Apache with SSL declaration introduced on your framework, if not check the requirements for this instructional exercise. 

The following stage is to alter the Apache virtual hosts setup: 

sudo nano /etc/apache2/sites-available/

The accompanying Apache setup [redirects HTTP to HTTPS] and www to non-www variant of your area and empowers HTTP2. Remember to supplant with your Joomla space and set the right way to the SSL authentication documents. 


<VirtualHost *:80>

  Redirect permanent /

<VirtualHost *:443>

  Protocols h2 http/1.1

  <If "%{HTTP_HOST} == ''">
    Redirect permanent /

  DirectoryIndex index.html index.php
  DocumentRoot /var/www/

  ErrorLog ${APACHE_LOG_DIR}/
  CustomLog ${APACHE_LOG_DIR}/ combined

  SSLEngine On
  SSLCertificateFile /etc/letsencrypt/live/
  SSLCertificateKeyFile /etc/letsencrypt/live/
  SSLCertificateChainFile /etc/letsencrypt/live/

  <Directory /var/www/>
      Options FollowSymLinks
      AllowOverride All
      Require all granted


If not empowered, empower the virtual host for the space. This order will make a representative connection from the locales accessible to the destinations empowered catalog: 

sudo a2ensite

For the new setup to produce results, restart the Apache administration by composing: 

sudo systemctl restart apache2

Completing the Joomla Installation

Since Joomla is downloaded and the worker design is finished, the time has come to conclude the Joomla establishment utilizing the web interface. 

Open your program, type your area and a screen like the accompanying will show up: 

Select the language you might want to utilize and fill in the accompanying data: 

Webpage Name - The name of your new Joomla site. 

Portrayal - Description of the site. This is a fallback meta depiction that will be utilized on each page without a particular portrayal. 

Administrator Email Address - The managerial client email address. Utilize a substantial email. In the event that you fail to remember your secret word you'll get a connection to change the secret word at this email address. 

Administrator Username - The username of the regulatory client. For security purposes, set the username to something different than "administrator". 

Administrator Password - The regulatory client secret phrase. Ensure you utilize a solid secret word. Enter a similar secret key in the Confirm Admin Password field. 

Site Offline - Leave the default "No". On the off chance that you select "Yes", when the establishment is finished, the site will show "Site is disconnected". 

At the point when completed, click on the "Following" button. 

On the following screen, the arrangement wizard will request that you enter your information base association subtleties. 

Information base Type - Leave the default "MySQLi". 

Hostname - Leave the default "localhost". On the off chance that this instructional exercise the information base is situated on a similar worker. 

Username, Password, Database Name - Enter the MySQL client and information base subtleties you recently made. 

Table Prefix - Leave the naturally created prefix. 

Old Database Process - Leave the default "Reinforcement" alternative. 

When you click on the "Following" button you'll be diverted to the Overview page: 

Here you can choose to introduce test information and confirm that all checks are passed. Snap on the Install button and once the establishment is finished you will be taken to a page advising you that Joomla has been introduced. 

On the off chance that you need to introduce extra dialects click on the "Additional means: Install dialects" button. 

For security reasons, you'll have to erase the establishment index. To do as such, return to the terminal and run the accompanying rm order: 

sudo rm -rf /var/www/

To get to your Joomla back-end click on the Adminstrator button. From here, you can begin modifying your Joomla establishment by putting in new subjects and modules. 


Congrats, you have effectively introduced Joomla with Apache on your Ubuntu 18.04 worker. Joomla Documentation is a decent beginning spot to study how to begin with your new Joomla site. 

In the event that you have questions, don't hesitate to leave a remark beneath.