Joomla CMS LTS with LAMP Stack on Debian 12

This guide intends to teach you to Install and Configure Joomla CMS LTS with LAMP Stack on Debian 12 Bookwoorm and Access it from the Web Interface. Joomla is one of the most popular content management systems that is available for free and open-source. It allows you to create your website and apps with a user-friendly GUI. Now you can follow the steps below to start your Joomla CMS installation on Debian 12.

Steps To Install Joomla CMS LTS with LAMP Stack on Debian 12

Before you start, you must have access to your server as a non-root user with sudo privileges and set up a basic UFW firewall. To do this, you can check this guide on Initial Server Setup with Debian 12 Bookworm.

Because we want to install Joomla CMS with LAMP stack, you must install it on your server. For this purpose, you can visit this guide on Install LAMP Stack on Debian 12.

Also, you need a valid domain name that is pointed to your server’s IP address.

When you are done, follow the steps below to complete this guide.

Step 1 – Create Joomla CMS Database and User on Debian 12

At this point, you must log in to your MariaDB shell which you have installed from the LAMP Stack installation guide. To do this, run the command below:

sudo mysql -u root -p

Then, you need to create a database for Joomla CMS by using the following command:

MariaDB [(none)]> CREATE DATABASE joomladb;

Next, create a user database, grant all the privileges to it, and set a strong password for it with the command below:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON joomladb.* TO 'joomlauser'@'localhost' IDENTIFIED BY 'password';

Now flush the privileges and exit from the MariaDB shell:

MariaDB [(none)]> EXIT;

Step 2 – PHP Configuration for Joomla CMS on Debian 12

At this point, you need some PHP extensions for your Joomla installation. To do this, run the command below:

sudo apt install php-common libapache2-mod-php php-cli php-fpm php-mysql php-json php-opcache php-gmp php-curl php-intl php-mbstring php-xmlrpc php-gd php-xml php-zip

Now you must edit your php.ini file and make some configuration changes to it. To do this, you can use the command below: You can use your desired text editor to open the file like vi editor or nano editor.

sudo vi /etc/php/8.2/fpm/php.ini

Find the following lines and change their values as shown below:

memory_limit = 512M
upload_max_filesize = 256M
post_max_size = 256M 
max_execution_time = 300

Also, uncomment the following and line and set your correct time zone:

date.timezone = America/New_York

When you are finished, save and close the file.

Step 3 – Download Joomla LTS from Official Site

At this point, you can visit the official site and get the latest version by using the following wget command:

sudo wget

Then, unzip your Joomla downloaded file in the /var/www/html/joomla directory with the command below:

sudo unzip -d /var/www/html/joomla

Set Correct Permissions and Ownership for Joomla CMS

Now you must set the correct permissions and ownership for your Joomla directory with the commands below:

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

Step 4 – Configure Apache To Server Joomla CMS Web Pages

At this point, you must create an Apache virtual host file for your Joomla CMS on Debian 12. To do this, you can use the command below:

sudo vi /etc/apache2/sites-available/joomla.conf

Add the following content to the file:

<VirtualHost *:80>
 DocumentRoot /var/www/html/joomla/

 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined

 <Directory /var/www/html/joomla/>
        Options FollowSymlinks
        AllowOverride All
        Require all granted

When you are done, save and close the file.

Next, use the following command to disable the default page:

sudo a2dissite 000-default.conf

Then, enable your created virtual host file and re-write the module by using the commands below:

# sudo a2ensite joomla.conf
# sudo a2enmod rewrite

Now restart Apache to apply the changes:

sudo systemctl restart apache2

Step 5 – Firewall Configuration to Access Joomla CMS

At this point, we assumed that you have enabled the UFW firewall. Now you must allow port 80 through the firewall by using the command below:

sudo ufw allow 80/tcp

Then, reload the firewall to apply the new rules:

sudo ufw reload

Step 6 – Access Joomla CMS Installer via Web Interface

At this point, you can continue your Joomla CMS installation on Debian 12 via the Web interface. Type your server IP address or domain name in your desired web browser:

http://server-ip Or

You will see your Joomla installer. Select your desired language, enter your Joomla site name, and click Set up login data.

Site name and language for joomla CMS

Next, you need to enter your login data and click Setup database connection.

Set Joomla CMS login data

Next, enter the database credentials that you have provided before on Debian 12 and click Install Joomla.

Joomla database credentials

When your installation is completed, you will see the following screen. Click Open Administrator.

Joomla site is ready to open

Then, enter your Joomla super username and password and click Login.

Joomla CMS login page Debian 12

At this point, you will see your Joomla dashboard.

Joomla CMS dashboard Debian 12

At this point, you can start to publish your web content and manage your site.

Step 7 – Get SSL Certificates from Let’s Encrypt for Joomla CMS

At this point, if you want to secure Joomla by getting the SSL certificates from Let’s Encrypt, you can install certbot and run it to get the Apache SSL certificates from Let’s Encrypt. To do this step by step, you can visit this guide on Secure Apache Web Server with Let’s Encrypt on Debian 12.


At this point, you have learned to Install and configure Joomla CMS LTS with LAMP Stack on Debian 12 Bookowrm, Access your Joomla installer via the Web interface, and start using your dashboard.

Hope you enjoy using it. If you need any help, please comment for us.

Newsletter Updates

Enter your email address below and subscribe to our newsletter

Stay informed and not overwhelmed, subscribe now!