How to Install Joomla on Debian 10

Joomla is a popular and widely used CMS (Content Management System) used for creating websites with little or no knowledge in markup or web programming languages. It ships with lots of PHP code, plugins, and themes that can help you get started from the ground up in no time.

In this guide, we are going to demonstrate how you can install Joomla CMS on Debian 10.

Let’s walk you through the Joomla CMS installation process.

Step 1: Update Debian System Packages

We begin by updating Debian system packages to their latest versions by running the following apt command.

$ sudo apt update -y && sudo apt upgrade -y
Update Debian System
Update Debian System

Step 2: Install LAMP Stack on Debian

LAMP stack is a popular free and open-source web hosting stack used for hosting websites. It’s an acronym for Linux, Apache, MySQL / MariaDB, and PHP. We are going to install each on these components. If you have already had a LAMP installed, you can skip this step.

We will begin by installing the Apache web server, PHP and finally MariaDB server.

Install Apache on Debian

To install Apache execute the commands below:

$ sudo apt install apache2 apache2-utils
Install Apache on Debian
Install Apache on Debian

Now start and enable the Apache webserver.

$ sudo systemctl start apache2
$ sudo systemctl enable apache2

To be sure that Apache web server is running, confirm using the command:

$ sudo systemctl status apache2
Verify Apache Status
Verify Apache Status

From the output, we can clearly see that the Apache webserver is up and running as expected.

Similarly, you can head over to your browser and browse your server’s IP as shown.


This is what you should get as a confirmation that your web server is up and running.

Verify Apache Web Page
Verify Apache Web Page

Install PHP in Debian

PHP is a server-side web programming language used by developers for designing dynamic web pages. We are going to install PHP 7.2.

$ sudo apt install libapache2-mod-php7.2 openssl php-imagick php7.2-common php7.2-curl php7.2-gd php7.2-imap php7.2-intl php7.2-json php7.2-ldap php7.2-mbstring php7.2-mysql php7.2-pgsql php-smbclient php-ssh2 php7.2-sqlite3 php7.2-xml php7.2-zip
Verify Apache Status
Verify Apache Status

When the installation is complete, confirm the version on PHP using the command:

$ php -v
Verify PHP in Debian
Verify PHP in Debian

Install MariaDB in Debian

The last component of the LAMP stack is the database server, which in this case will be MariaDB. MariaDB is a free and open-source database engine which was forked from MySQL.

To install MariaDB execute the command:

$ sudo apt install mariadb-server
Install MariaDB in Debian
Install MariaDB in Debian

Upon installation, extra steps are needed to secure the database server. This is primarily because the default settings are weak and leave the server prone to security breaches. So, to fortify the server, run the command:

$ sudo mysql_secure_installation

Press ENTER when prompted for the root password and press ‘Y’ to set the root password.

Create MariaDB Root Password
Create MariaDB Root Password

For subsequent prompts, simply type ‘Y’ and press the ENTER key for recommended settings.

Secure MariaDB Installation
Secure MariaDB Installation

We have finally secured our database engine.

Step 3: Create a Joomla Database

In this section, we are going to create a database for Joomla to store its files during and after the installation.

So, log in to MariaDB as shown:

$ sudo mysql -u root -p

We are now going to create the Joomla database, Joomla database user and grant privileges to the database user using the command below.

MariaDB [(none)]> CREATE DATABASE joomla_db;
MariaDB [(none)]> GRANT ALL ON joomla_db.* TO ‘joomla_user’@’localhost’ IDENTIFIED BY ‘StrongP@ssword’;
MariaDB [(none)]> EXIT;

Step 4: Download Joomla in Debian

Let’s now download Joomla’s installation package from the Official Joomla’s website. At the time of penning down this guide, the latest version is Joomla 3.9.16.

To download the latest Joomla package, execute the wget command.

$ sudo wget

This will take a minute or two depending on your internet speed. Upon completion of the download, create a new directory ‘joomla’ in the webroot directory as shown.

$ sudo mkdir -p /var/www/html/joomla

Thereafter, unzip the zipped Joomla file to the just created ‘Joomla’ directory.

$ sudo unzip -d /var/www/html

Next, set the directory ownership of the directory to Apache user and change the permissions as indicated below:

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

For systemd to effect the changes, restart the Apache webserver.

$ sudo systemctl restart apache2

Step 5: Configuring Apache for Joomla

Finally, we need to configure the Apache webserver to server Joomla web pages. To accomplish this, we will create a virtual host file for Joomla as shown.

$ sudo vim /etc/apache2/sites-available/joomla.conf

Paste the configuration below into the file and save.

<VirtualHost *:80>
   ServerAdmin [email protected]
   DocumentRoot /var/www/html/joomla
   <Directory /var/www/html/joomla>
	    Allowoverride all

Then disable the default configuration file and enable the Joomla virtual host file as shown.

$ sudo a2dissite 000-default.conf
$ sudo a2ensite joomla.conf

Then restart the Apache webserver service for the changes to come into effect.

$ sudo systemctl restart apache2

Step 6: Finalizing Joomla Installation in Debian

To finalize the installation of Joomla. Launch your browser and browse your server’s URL as shown.


The page below will be displayed. To continue, ensure that you fill in the required details such as Site name, Email address, username and password.

Joomla Site Configuration
Joomla Site Configuration

Once done, click the ‘Next’ button. The next section will require you to fill in the database details that you earlier specified earlier when creating a database for Joomla. These include database name, database user and password.

Joomla MySQL Settings
Joomla MySQL Settings

Then click ‘Next’. The proceeding page will give you an overview of all the settings and allow you to perform a pre-installation check.

Joomla Installation Overview
Joomla Installation Overview

Scroll down to the ‘Pre-installation Check’ and ‘Recommended settings’ sections and ensure all the settings and installed package versions are as per the recommended guidelines.

Joomla Pre-Installation Check
Joomla Pre-Installation Check

Then click the ‘Install’ button to begin Joomla setup. Upon completion, you will get the notification below indicating that Joomla has been installed.

Joomla Installation Complete
Joomla Installation Complete

To proceed to the next step, however, you will be required to purge or delete the installation folder. So scroll down and click on the ‘Remove installation folder’ button shown below.

Remove Joomla Installation Directory
Remove Joomla Installation Directory

To login to the back end or dashboard click on the ‘Administrator’ button which takes you to the login page shown.

Joomla Admin Login
Joomla Admin Login

Provide your username and password and click on the ‘Login’ button to access Joomla’s control panel as shown.

Joomla Dashboard in Debian
Joomla Dashboard in

And that’s it! We have successfully installed Joomla on Debian 10.

James Kiarie
This is James, a certified Linux administrator and a tech enthusiast who loves keeping in touch with emerging trends in the tech world. When I'm not running commands on the terminal, I'm taking listening to some cool music. taking a casual stroll or watching a nice movie.

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.


Leave a Reply
  1. Thanks for your guide.

    Worked perfectly. I would modify the following to add the additional line like this…

    Allowoverride all
    Require all granted

    Works on Apache 2.4 or later…

  2. There is a mistake I think when unzipping Joomla. You are extracting it on /var/www/html but I don’t know if it should be extracted in /var/www/html/joomla.

  3. Hello,

    I would like to inform you that after installation of Joomla it is not opening in a web browser and give me an error like this

    setStart($startTime, $startMem)->mark('afterLoad') : null; // Instantiate the application. $app = JFactory::getApplication('site'); // Execute the application. $app->execute();

    so give me any suggestion on how to solve this and I have tried the solution on google but still, It is not resolved so give me proper solution for that how to resolve this permanently

    Mayank Mehta


Got Something to Say? Join the Discussion...

Thank you for taking the time to share your thoughts with us. We appreciate your decision to leave a comment and value your contribution to the discussion. It's important to note that we moderate all comments in accordance with our comment policy to ensure a respectful and constructive conversation.

Rest assured that your email address will remain private and will not be published or shared with anyone. We prioritize the privacy and security of our users.