Joomla Local Installation — Manual, XAMPP and Quickstart Guide
In this tutorial, you'll learn multiple ways to install Joomla locally on your computer using XAMPP, manual setup, and Quickstart packages — so you can build and test sites without a live server.
What You'll Learn
- Joomla system requirements for PHP, MySQL, Apache, and extensions
- Setting up XAMPP with the latest PHP and MySQL
- Creating a database using phpMyAdmin with the correct collation
- Running the Joomla web installer step by step
- Using Quickstart packages for pre-built sites with demo content
- Configuring configuration.php for site settings
- Installing Joomla via Composer for developer workflows
Why It Matters
Working on a local installation means you can experiment freely without affecting a live site. You can test extensions, try templates, learn the admin interface, and even build entire sites before moving them to production. Every Joomla developer works locally first. Installing Joomla locally is the first practical skill you need after understanding what Joomla is.
Real-World Use
A freelance web developer receives a request to build a membership site for a local gym. Instead of buying hosting and risking mistakes on a live server, she installs Joomla locally using XAMPP. She builds the entire site, tests every feature, and then migrates it to the client's hosting using Akeeba Backup. The client never sees a half-built site, and the developer can experiment without consequences.
Learning Path
flowchart LR A["What is Joomla?"] --> B["Local Installation
You are here"]:::current B --> C["Admin Dashboard"] C --> D["Joomla Hosting"] D --> E["Articles & Categories"] classDef current fill:#38bdf8,color:#0f172a,stroke-width:2px
System Requirements
Before you install Joomla, check that your environment meets these requirements. Joomla 5.x is the current version as of 2026.
Joomla 5.x Requirements
| Requirement | Minimum | Recommended |
|---|---|---|
| PHP | 8.1.0 | 8.2+ |
| MySQL | 8.0+ | 8.0+ |
| MariaDB | 10.4+ | 10.6+ |
| PostgreSQL | 12.0+ | 15.0+ |
| Web Server | Apache 2.4+ or Nginx 1.18+ | Apache 2.4+ with mod_rewrite |
| Database Engine | InnoDB | InnoDB |
Required PHP Extensions
Joomla needs these PHP extensions enabled:
- mysqli or pdo_mysql — database connection
- mbstring — multibyte string support
- xml — XML Parsing
- dom — DOM document handling
- json — JSON encoding/decoding
- gd or imagick — image processing
- zip — ZIP file handling
- curl — HTTP requests
- openssl — secure connections
- fileinfo — file type detection
- filter — input validation
XAMPP enables most of these by default. If you run into issues, check your PHP configuration.
Option 1: Installing with XAMPP
XAMPP is the easiest way to create a local web server environment. It bundles Apache, MySQL (MariaDB), PHP, and phpMyAdmin in one package.
Step 1: Download and Install XAMPP
Download XAMPP from apachefriends.org. Choose the version with PHP 8.2 or higher. Install it in a location you can easily access, such as /opt/lampp/ on Linux or C:\xampp\ on Windows.
Step 2: Start Apache and MySQL
Open the XAMPP Control Panel and start:
- Apache — the web server
- MySQL — the database server
On Linux, you can start XAMPP from the terminal:
sudo /opt/lampp/lampp start
Step 3: Create a Database
Joomla needs a database to store content, users, and configuration. Open phpMyAdmin at http://localhost/phpmyadmin:
- Click the New button in the left sidebar.
- Enter a database name such as
joomla_db. - Choose utf8mb4_general_ci as the collation.
- Click Create.
Why utf8mb4? This character set supports the full Unicode range, including emoji and special characters. It is the standard for modern Joomla installations.
Step 4: Download Joomla
Go to joomla.org/download and download the latest Joomla 5.x package. You will get a ZIP file named something like Joomla_5-x-x-Stable-Full_Package.zip.
Step 5: Extract to the Web Root
Extract the ZIP contents into your XAMPP web root directory:
- On Linux:
/opt/lampp/htdocs/joomla/ - On Windows:
C:\xampp\htdocs\joomla\
unzip Joomla_5*.zip -d /opt/lampp/htdocs/joomla
Step 6: Run the Web Installer
Open a browser and navigate to http://localhost/joomla. The Joomla web installer appears.
Step 7: Complete the Installer
The installer has several screens:
Site Configuration
Enter:
- Site Name: "My Joomla Site" (can change later)
- Description: A brief site description
- Site Email: Your email address
- Username: Admin username (avoid "admin" for security)
- Password: Strong password
- Site Offline: Leave unchecked
Database Configuration
Enter:
- Database Type: MySQLi
- Host: localhost
- Database Name: joomla_db (the one you created)
- Username: root
- Password: (leave blank for XAMPP default)
- Table Prefix: jos_ (default, can change)
Overview
Review the configuration. The installer checks your PHP settings and warns about any issues. The most common issues are:
memory_limittoo low (needs at least 128M)upload_max_filesizetoo small- Missing PHP extensions
If everything passes, click Install.
Step 8: Remove the Installation Directory
After installation, Joomla prompts you to remove the installation directory for security. You must do this before accessing the site.
rm -rf /opt/lampp/htdocs/joomla/installation
Option 2: Using Quickstart Packages
Quickstart packages are pre-built Joomla sites with demo content, a template, and extensions already installed. Theme developers and extension vendors provide these so you can see a complete site in action and use it as a starting point.
How Quickstart Works
A Quickstart package contains:
- A full Joomla installation
- A specific template with demo styling
- Demo content (articles, categories, images, modules)
- Any extensions the template needs
Installing a Quickstart Package
- Download the Quickstart ZIP from your template vendor.
- Extract it to your XAMPP web root.
- Create a database in phpMyAdmin.
- Browse to the folder — the installer pre-fills many fields.
- Complete the installation as described above.
The advantage is that you get a fully styled site with content you can modify. Instead of starting with a blank Joomla and empty articles, you start with a designed site that you adapt.
Migrating Quickstart to a Live Server
Once you finish building the site locally, move it to live hosting:
- Use Akeeba Backup to create a full site backup package.
- Install Akeeba Kickstart on the live server.
- Upload the backup package and run Kickstart to restore.
- Update configuration.php with the live server database details.
Option 3: Installing via Composer
For developers who manage projects with Composer, you can install Joomla as a Composer project.
composer create-project joomla/joomla-foundation my-joomla-site
This gives you a Joomla installation with Composer managing dependencies. You still need to create the database and run the web installer, but updates become easier:
composer update
This method is more advanced and assumes familiarity with Composer. For beginners, the manual ZIP approach is simpler.
Configuration.php
After installation, Joomla creates a file called configuration.php in the site root. This file contains all site settings. You can edit it directly or change settings through the Global Configuration in the admin panel.
Key settings in configuration.php:
public $dbtype = 'mysqli';
public $host = 'localhost';
public $user = 'root';
public $password = '';
public $db = 'joomla_db';
public $dbprefix = 'jos_';
public $sitename = 'My Joomla Site';
public $error_reporting = 'default';
public $log_path = '/opt/lampp/htdocs/joomla/logs';
public $tmp_path = '/opt/lampp/htdocs/joomla/tmp';
public $live_site = '';
If you move your site to a different server, update the database connection settings here.
Installation Directory Structure
A fresh Joomla installation contains these folders:
joomla/
├── administrator/ # Admin interface files
├── api/ # Web services API endpoints
├── cache/ # Cached pages and data
├── cli/ # Command-line scripts
├── components/ # Component extensions (com_content, com_users, etc.)
├── images/ # Uploaded images and media
├── includes/ # Framework bootstrap files
├── installation/ # Installer (remove after install)
├── language/ # Language files
├── layouts/ # Shared layout files
├── libraries/ # Joomla framework library
├── media/ # JavaScript, CSS, images for extensions
├── modules/ # Module extensions
├── plugins/ # Plugin extensions
├── templates/ # Front-end and admin templates
├── tmp/ # Temporary files
├── configuration.php # Site configuration
└── index.php # Front-end entry point
Common Mistakes
Forgetting to create the database first: Beginners start the web installer and get stuck at the database screen because they have not created a database in phpMyAdmin. Always create the database before running the installer.
Using wrong collation: Using
latin1_swedish_ciinstead ofutf8mb4_general_cicauses issues with special characters, emoji, and multilingual content. Always use utf8mb4 for new Joomla installations.Skipping the installation directory removal: Leaving the installation folder in place is a major security risk. Anyone can run the installer again and overwrite your site. Delete it immediately after installation.
Using "admin" as username: The default admin username is a common target for brute-force attacks. Choose a unique username during installation.
Installing without meeting PHP requirements: Attempting to install Joomla 5 on PHP 7.4 produces errors. Check the requirements before downloading. Use XAMPP with a recent PHP version.
Practice Questions
What PHP extensions are required for Joomla 5? Answer: Required extensions include mysqli or pdo_mysql, mbstring, xml, dom, json, gd or imagick, zip, curl, openssl, fileinfo, and filter.
Why must you remove the installation directory after installing Joomla? Answer: The installation directory allows anyone to re-run the installer, which can overwrite your database and site configuration. Removing it is a critical security step.
What is the difference between a regular Joomla download and a Quickstart package? Answer: A regular download is a blank Joomla installation with no content. A Quickstart package includes a pre-installed template, demo content, and extensions — giving you a ready-made starting point.
Challenge: Install Joomla locally using XAMPP. After installation, create a test article and a test category. Then create a backup using Akeeba Backup and restore it into a second Joomla installation. Document each step and any errors you encounter.
FAQ
Mini Project
Your task: Set up a local Joomla development environment and create a repeatable installation checklist.
- Install XAMPP or your preferred local server package.
- Create a database called
joomla_practice. - Install Joomla 5.x with the following settings: site name "Practice Site", use
jml_as table prefix. - After installation, explore the file structure and identify the configuration.php file.
- Change the site name by editing configuration.php directly.
- Write an installation checklist document with at least 10 verification points that you can use for future Joomla installations.
This exercise gives you a working local Joomla site and a repeatable Process you will use for every future Joomla project.
What's Next
Now that you have Joomla installed locally, it is time to explore the administrator dashboard:
Continue to Lesson 3: Admin Dashboard — A complete tour of every menu and screen in the Joomla administrator interface.
Related lessons:
- Joomla Hosting — Move your local site to live hosting
- PHP Basics — Learn the language behind Joomla
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro