How to Install and Set Up Joomla on localhost Using XAMPP in Windows
Learn how to install Joomla in XAMPP on Windows by preparing Apache, creating a database, completing the browser installer, and opening your local site.
If you want to learn how to install Joomla in XAMPP, you can build a working Joomla site on a Windows computer without putting it online first. XAMPP supplies the local web server and database services, while Joomla provides the content management system you will configure in your browser.
This walkthrough covers the complete local setup: installing or checking XAMPP, placing Joomla in the correct folder, creating a database with phpMyAdmin, completing the Joomla installer, and troubleshooting the first common errors. A localhost installation is useful for learning, testing templates and extensions, and preparing changes before moving them to a live host.
What you need before installing Joomla in XAMPP
Prepare these items before you start:
- A Windows computer with permission to install and run local services
- XAMPP installed in a location you can access, commonly
C:\xampp - A Joomla installation package downloaded from the official Joomla website
- A browser such as Chrome, Firefox, or Edge
- A site name, administrator email address, username, and strong password
XAMPP provides Apache for serving web pages and a database service based on MariaDB in current packages. Joomla uses PHP and a supported database to run. The exact Joomla requirements depend on the version you download, so check the requirements for that release if the installer reports a compatibility problem.
A local site is not automatically public. It runs through addresses such as http://localhost/your-folder, which makes it a practical environment for experimentation before deployment.
How to install Joomla in XAMPP step by step
1. Install and open XAMPP
Download XAMPP from its official project website if it is not already installed. Run the Windows installer and keep Apache and the database service selected. The default installation path is often C:\xampp, but your path may be different.
Open the XAMPP Control Panel. You should see controls for Apache and MySQL. In some XAMPP releases, the database service is MariaDB even though the control panel label may still say MySQL.
Click Start beside Apache and Start beside MySQL. Both services need to run for Joomla to load pages and connect to its database. If either service fails to start, stop here and resolve that issue before continuing.
To check Apache, open this address in your browser:
http://localhostA XAMPP start page or local server response confirms that Apache is answering requests.
2. Download and extract Joomla
Download the Joomla package that matches the version you intend to use. Keep the downloaded archive until you have confirmed that the installation works.
Extract the archive. The extracted folder contains Joomla files and directories, including the installation files needed by the browser-based setup. Avoid nesting the package inside several unnecessary folders because that makes the local URL harder to remember.
3. Copy Joomla into the XAMPP web folder
Open the XAMPP installation directory and then open htdocs:
C:\xampp\htdocsCreate a short folder name for the site, such as joomla-site, and copy the extracted Joomla files into it. The important detail is that Joomla's files should be directly inside that folder. You should be able to find the Joomla entry files at a path similar to:
C:\xampp\htdocs\joomla-siteThe folder name becomes part of your local address. In this example, you will later open:
http://localhost/joomla-site4. Create a Joomla database in phpMyAdmin
With Apache and MySQL running, open phpMyAdmin:
http://localhost/phpmyadminChoose Databases or New, depending on the phpMyAdmin layout. Enter a database name such as joomla_site and create it. Using a name that matches your project makes it easier to identify the database later.
For a simple local installation, you usually do not need to create a separate database user if your XAMPP setup uses its common local defaults. Do not assume those defaults on a shared or production server. On a local computer, confirm the database username and password expected by your XAMPP installation before entering them into Joomla.
5. Open the Joomla web installer
Go to the folder URL in your browser:
http://localhost/joomla-siteThe Joomla installer should appear. If you see a directory listing, a blank page, or a server error instead, revisit the folder placement and the Apache status in the XAMPP Control Panel.
Choose the installation language and enter the site name. Continue to the administrator account screen and provide:
- An administrator name or username
- A unique administrator password
- An email address you can use for local testing
Use a strong password even on localhost. Local files and databases can still be exposed if other software or users access the computer.
6. Enter the database connection details
When Joomla asks for the database connection, use the values that match the database you created in phpMyAdmin. A common XAMPP configuration looks like this:
| Joomla field | Common local value |
|---|---|
| Database type | MySQLi, if offered by your Joomla version |
| Host name | localhost |
| Username | root, when using the common XAMPP default |
| Password | Often blank in a default local setup, but verify yours |
| Database name | The name you created, such as joomla_site |
The installer may also ask about a table prefix or encryption setting. The default values are generally suitable for a new local site. Read the fields carefully and avoid reusing credentials from another application.
Submit the form to begin the installation. Joomla creates its tables and writes the configuration needed to connect the site to the database. Do not close the browser or stop Apache and MySQL while this process is running.
7. Finish the installation and sign in
When the installer reports success, follow any prompt to remove the installation directory. This step prevents the installer from being run again and is part of completing the setup safely.
Open the site at:
http://localhost/joomla-siteThe administrator area is normally available at:
http://localhost/joomla-site/administratorSign in with the administrator credentials you created. From the Joomla dashboard, you can create categories and articles, adjust global configuration, select a template, and install compatible extensions.
For a broader next step, use this Joomla installation guide when you are ready to compare a local setup with a manual installation on hosting.
What to check after Joomla is installed
A successful login is only the beginning of a useful local environment. Run through these checks before building the site:
- Open the front end and administrator area in separate browser tabs.
- Create a test article and confirm that it appears on the site.
- Check that the administrator email and site name are correct.
- Review the global configuration and set the site to the intended offline or online state for your workflow.
- Check the update notifications for Joomla and installed extensions.
- Add sample data only if you want a demonstration site to explore.
- Record the folder name, database name, and administrator URL in your project notes.
If you plan to add functionality, evaluate compatibility before installing an extension. You can use the Joomla extensions directory to compare options by purpose and check whether an extension fits your Joomla version.
Common XAMPP and Joomla installation problems
Apache will not start
Another program may already be using Apache's port. Skype, IIS, another web server, or a separate development tool can cause a conflict. Check the XAMPP Control Panel messages, identify the conflicting service, and either stop it or configure Apache to use an available port. If Apache uses a different port, the address may include that port, such as http://localhost:8080/joomla-site.
MySQL will not start
A database service may already be running outside XAMPP, or an earlier service may not have shut down cleanly. Check the XAMPP log information and Windows services. Only change database settings after you understand which service owns the port and where the active data directory is located.
Joomla cannot connect to the database
Check each value in the Joomla database form against phpMyAdmin and the XAMPP configuration. The database name must match exactly. Also confirm that the database service is running, the host is correct, and the password is not being filled in automatically by the browser.
The Joomla folder opens as a directory listing
Make sure the Joomla files are directly inside htdocs\joomla-site, not inside a second extracted folder. For example, if the files are actually in htdocs\joomla-site\Joomla_package, the URL will not reach the expected installer at the first level. Move the contents up one folder or use the complete nested path.
Changes do not appear in the browser
First confirm that you are viewing the correct local folder and not a different Joomla installation. Then refresh the page and clear relevant Joomla caches after saving configuration changes. This clear Joomla cache resource explains the cache checks to use when old content continues to appear.
Frequently asked questions
Can I install Joomla in XAMPP without hosting?
Yes. XAMPP provides a local web server and database environment, so Joomla can run on your computer without a domain or paid hosting. The site is available only through your local machine unless you later migrate it to a public server.
What is the Joomla URL after a XAMPP installation?
The front-end URL uses the folder name inside htdocs, for example http://localhost/joomla-site. The administrator URL adds /administrator to the same path.
Should I leave the XAMPP database password blank?
Only if that matches your local XAMPP configuration. A blank password is common in a default local setup, but it is not a universal rule. Use the credentials configured on your computer, and never carry a blank database password into production.
Can I move my local Joomla site to hosting later?
Yes, but migration requires more than copying the visible files. You also need the Joomla database, configuration details, compatible server software, and a careful update of the live site's URLs and credentials. Test the migration on a separate copy before replacing a live site.
Conclusion
The process for how to install Joomla in XAMPP is straightforward once Apache, the database service, the htdocs folder, and phpMyAdmin are understood. Place the Joomla files in a named local folder, create a matching database, complete the browser installer, and verify both the front end and administrator area.
Your localhost site is now a safe place to learn Joomla, test content structures, and evaluate templates or extensions before moving changes to a web host.