How to Install and Set Up Joomla on Localhost Using XAMPP in Windows
Set up Joomla locally on Windows with XAMPP. This step-by-step tutorial covers the server, Joomla files, database, installer, login, and common fixes.
Learning how to install Joomla in XAMPP gives you a private local site for practice, configuration, template work, and extension testing. XAMPP supplies the local web server and database services, while Joomla provides the content management system you will manage in your browser.
This tutorial walks through the Windows setup from start to finish. You will install or open XAMPP, place the Joomla files in htdocs, create a database in phpMyAdmin, run the Joomla web installer, and confirm that both the site and administrator area work.
What you need before installing Joomla in XAMPP
Prepare these items before opening the installer:
- A Windows computer with permission to install and run local applications.
- XAMPP downloaded from the Apache Friends website.
- The current Joomla installation package downloaded from the official Joomla website.
- A browser such as Edge, Chrome, or Firefox.
- A simple local project name, such as
joomla-site.
XAMPP bundles Apache, MariaDB, PHP, and Perl into a local development stack. For this Joomla installation, Apache serves the files, PHP runs Joomla, and MariaDB stores the site data. The exact Joomla and XAMPP versions should be compatible, so check the requirements for the Joomla release you download before proceeding.
A local installation is different from a live website. It is useful for learning and testing, but people on the internet cannot visit a Joomla site running at localhost unless you deliberately configure a networked environment.
Step 1 Install XAMPP on Windows
Download the XAMPP installer for Windows from its official source. Run the installer and keep Apache, MariaDB, PHP, phpMyAdmin, and the other standard components selected unless you have a specific reason to change them.
Choose an installation directory that is easy to find. The common Windows location is:
C:\xamppAvoid placing the project in a random Downloads subfolder. Keeping XAMPP in a predictable directory makes the htdocs path easier to identify and simplifies later troubleshooting.
When installation finishes, open the XAMPP Control Panel. Windows Firewall may ask whether Apache or MariaDB can communicate on a network. Allow the local access needed for your development setup, following your computer's security policy.
Step 2 Start Apache and MariaDB
In the XAMPP Control Panel, click Start beside Apache and MariaDB. A running service is normally highlighted in the panel.
Test Apache by opening this address in your browser:
http://localhost/If the XAMPP start page appears, the web server is responding. If it does not, check whether another program is already using Apache's port. Common causes include another web server, a virtual machine, or a system service configured to use the same port.
Next, open phpMyAdmin at:
http://localhost/phpmyadmin/If phpMyAdmin loads, the database service is available through the local XAMPP environment. Leave both Apache and MariaDB running while you complete the Joomla installation.
Step 3 Download and place the Joomla files
Download the current Joomla package from the official Joomla download page. The download is usually a compressed archive. Extract it with Windows File Explorer or an archive utility.
Copy the extracted Joomla files into the XAMPP document root:
C:\xampp\htdocs\joomla-siteThe final folder name becomes part of your local URL. For example, files in C:\xampp\htdocs\joomla-site will be opened at:
http://localhost/joomla-site/Make sure Joomla's files are directly inside joomla-site. A common mistake is creating an extra nested folder, such as htdocs\joomla-site\Joomla_package. If that happens, the browser may show a directory listing or fail to find the installer at the expected address.
Step 4 Create a Joomla database in phpMyAdmin
Open http://localhost/phpmyadmin/ and select the Databases area. Create a new database for this local Joomla site. A name such as joomla_site is clear and easy to recognize.
Use a name without spaces. You do not need to create Joomla tables yourself. The installer will create the tables after it connects to the empty database.
For a standard XAMPP development setup, the database connection values are often similar to these:
| Joomla field | Typical local value |
|---|---|
| Database type | MySQLi or the MySQL option shown by your installer |
| Host name | localhost |
| Username | root |
| Password | Blank if you have not assigned one in XAMPP |
| Database name | The database you just created, such as joomla_site |
Treat these as local setup values, not universal credentials. If you changed the MariaDB root password or configured a separate database user, enter those credentials instead. Never carry a blank local password into a production server without understanding the security implications.
Step 5 Run the Joomla web installer
Open the local Joomla URL:
http://localhost/joomla-site/The Joomla installer should appear. Choose English as the installation language if it is not already selected, then enter a name for the local website. Continue to the administrator account screen.
Create the Super User account. Use an administrator username that is not simply admin, choose a strong local password, and enter an email address you can recognize during testing. These credentials protect the administrator area at:
http://localhost/joomla-site/administrator/Continue to the database configuration screen. Select the database type offered for your Joomla release, enter localhost for the host, and provide the username, password, and database name that match phpMyAdmin. If the installer asks for a table prefix, keep its generated value unless you have a specific reason to change it.
Review the settings and choose Install Joomla. Joomla will create its database tables and write the configuration needed to connect the site to the local database. Wait for the completion message rather than refreshing the page during this process.
Step 6 Open the site and administrator area
After the installation completes, open the front end at:
http://localhost/joomla-site/Then open the administrator login page at:
http://localhost/joomla-site/administrator/Sign in with the Super User details you created. Check that the dashboard loads, then open the front end in another browser tab. This quick test confirms that Apache, PHP, the Joomla files, and the database are working together.
At this stage, you can create sample articles, test menus, select a template, and practice configuration without changing a live website. When you are ready to compare designs, review best Joomla templates that fit the type of site you want to build.
Common Joomla and XAMPP installation problems
Apache will not start
Check the XAMPP Control Panel for a port conflict. Another Apache installation, IIS, or a different local development tool may already be using the required port. Stop the conflicting service or adjust the local configuration carefully, then restart Apache.
If Windows displays a permissions error, open the XAMPP Control Panel with the required account permissions. Installing XAMPP inside a protected system location can also make file access harder to diagnose.
MariaDB will not start
Confirm that another MySQL or MariaDB service is not already running. If the database service stops immediately, read the XAMPP log before changing files. A second database service can cause a port conflict, while an interrupted shutdown can indicate a separate data problem.
Joomla cannot connect to the database
Check each database field character by character. The database name in the Joomla installer must match the database created in phpMyAdmin. Confirm that MariaDB is running, the host is localhost, and the username and password are correct for your XAMPP setup.
The Joomla page does not appear
Confirm that Apache is running and that the URL includes the exact folder name inside htdocs. For example, a folder named joomla-site requires http://localhost/joomla-site/. Also check that the Joomla files are not buried inside an additional extracted folder.
The installer says installation is incomplete
Follow the message shown by the installer and complete any required cleanup step. Some Joomla releases require the installation directory to be removed or disabled before the site can be used. Do not ignore a security instruction simply because the site is only local. A local project may later be copied to a server, and leftover installation files can create avoidable risk.
If the installation completed but the browser still shows old content, a cache may be involved. A clear Joomla cache check can help you separate stale cached output from a file or database problem.
What to do after the local installation
A working localhost installation is a safe place to learn the Joomla administrator workflow. Start with a small checklist:
- Log in to the administrator area and confirm your Super User credentials.
- Create a test category, article, and menu item.
- Review global configuration before installing additional extensions.
- Keep a note of the XAMPP folder, Joomla folder, database name, and administrator URL.
- Test one change at a time so you can identify what caused a problem.
- Read Joomla extension types before adding components, modules, or plugins.
When you install extensions locally, check their Joomla compatibility and test their settings before using them on a public site. A local environment is especially useful for checking updates, template changes, menu structures, and content workflows without interrupting visitors.
Frequently Asked Questions
Can I install Joomla in XAMPP without hosting?
Yes. XAMPP provides a local server environment, so Joomla can run on your own Windows computer without a web hosting account. The resulting site is available through localhost, not a public domain.
Where should I put Joomla in XAMPP?
Put the extracted Joomla files in a folder inside XAMPP's htdocs directory. For example, C:\xampp\htdocs\joomla-site is opened through http://localhost/joomla-site/.
What database should I create for Joomla in XAMPP?
Create an empty MariaDB or MySQL-compatible database in phpMyAdmin. Give it a simple name without spaces, then use that exact name in Joomla's database configuration screen.
What is the default Joomla administrator URL in XAMPP?
The administrator URL combines the localhost address, your Joomla folder name, and /administrator/. With a folder named joomla-site, the address is http://localhost/joomla-site/administrator/.
Why does Joomla say it cannot connect to the database?
The usual checks are whether MariaDB is running, whether the database name is correct, and whether the host, username, and password match your XAMPP configuration. Correct any mismatch and try the installation again.
Conclusion
To install Joomla in XAMPP on Windows, start Apache and MariaDB, place the Joomla package in htdocs, create an empty database in phpMyAdmin, and open the Joomla installer through your local folder URL. Once the front end and administrator area load, you have a practical environment for learning Joomla and testing changes before moving them to a live server.