How to Install Joomla in XAMPP on Windows
Learn how to install Joomla in XAMPP on Windows, create a local database, run the web installer, fix common errors, and secure your test site.
If you want to learn how to install Joomla in XAMPP, you can build a complete Joomla test site on your Windows computer without publishing it to the internet. XAMPP provides the local Apache web server and database services Joomla needs, while Joomla supplies the content management system.
This guide walks through the full process: preparing XAMPP, creating a database in phpMyAdmin, placing Joomla in the correct htdocs folder, completing the web installer, and checking the local site. It also covers the setup errors that most often stop a first installation.

What you need before installing Joomla in XAMPP
Prepare these items before opening the Joomla installer:
- A Windows computer where you can install local software.
- XAMPP downloaded from the official Apache Friends website.
- A Joomla package downloaded from the official Joomla download page.
- A site folder name, such as
joomla-local. - A database name, such as
joomla_local. - A strong administrator password for the local Joomla account.
Check the PHP compatibility information for the Joomla release you plan to use. XAMPP bundles PHP, and Joomla releases have specific PHP requirements. Matching those versions before you begin is easier than diagnosing a blank page after installation.
XAMPP is intended for local development and testing. Do not treat a default XAMPP installation as a production hosting environment, especially when its local database account has no password.
Quick answer: how to install Joomla in XAMPP
The process is:
- Install XAMPP with Apache, the database service, PHP, and phpMyAdmin.
- Start Apache and MySQL or MariaDB in the XAMPP Control Panel.
- Create an empty database in
http://localhost/phpmyadmin. - Extract Joomla into a new folder inside
C:\xampp\htdocs. - Open that folder through
http://localhost/your-folder-name. - Enter the site, administrator, and database details in the Joomla web installer.
- Remove the installation folder when Joomla asks you to do so.
- Test both the public site and the administrator area.
The exact labels can differ slightly between Joomla and XAMPP releases, but the workflow remains the same.
Step 1: Install XAMPP on Windows
Download the Windows installer from Apache Friends, then run it with the permissions requested by Windows. The standard installation location is usually:
C:\xamppDuring component selection, keep the services needed for a Joomla site. Apache runs the local web server. MySQL or MariaDB provides the database service, depending on how the XAMPP release labels it. PHP runs Joomla, and phpMyAdmin gives you a browser interface for managing the database.
The default installation location makes later instructions easier to follow. If you choose another location, use that path whenever this guide refers to C:\xampp.
After setup completes, open XAMPP Control Panel. You should see controls for Apache and the database service.
Step 2: Start Apache and the database service
In the XAMPP Control Panel, select Start beside Apache. Then select Start beside MySQL or MariaDB. Both services must be running before Joomla can load and connect to its database.
Test Apache by opening this address in your browser:
http://localhost/If the XAMPP start page or another local response appears, Apache is responding. Next, open phpMyAdmin at:
http://localhost/phpmyadminIf phpMyAdmin does not load, check that Apache is still running and that you entered the address correctly. If Apache cannot start, skip to the troubleshooting section below before continuing.
Step 3: Create a Joomla database in phpMyAdmin
Joomla stores articles, users, menus, configuration, and extension data in a database. Create an empty database before launching the installer.
- Open
http://localhost/phpmyadmin. - Select New or the database creation option in the sidebar.
- Enter a clear name, such as
joomla_local. - Create the database.
- Leave it empty. Joomla will create its own tables during installation.
For a default local XAMPP installation, the database host is commonly localhost, the username is commonly root, and the password may be blank. These defaults are convenient for local testing, but they are not safe credentials for a public site. If you changed the database account during XAMPP setup, use your actual username and password instead.
The database name is not the same thing as the Joomla site name. joomla_local identifies the storage database, while a site name such as Joomla Practice Site appears in the website and administrator interface.
Step 4: Put Joomla in the XAMPP web root
Download the Joomla package and extract it. Locate the extracted Joomla files, then copy the Joomla folder into XAMPP's web root:
C:\xampp\htdocs\joomla-localThe important detail is the folder level. Joomla's files, including its entry point, should be directly inside joomla-local. Avoid accidentally creating a nested path such as:
C:\xampp\htdocs\joomla-local\joomla-package\If the files are nested one level too deep, the URL you expect may show a directory listing or a 404 error. Rename the outer folder if necessary, but do not rename or remove Joomla's internal files.
The folder name becomes part of the local address. With the example above, the site address is:
http://localhost/joomla-localStep 5: Run the Joomla web installer
Open http://localhost/joomla-local in your browser. Joomla should redirect you to its installation screen. Work through each screen carefully rather than accepting database values that do not match your local setup.
Enter the site details
Provide the requested site information, including:
- Site name, such as
Joomla Practice Site. - Administrator email address.
- Administrator username.
- A unique administrator password.
Use a password you would not reuse on another account. Local development accounts are still worth protecting because a compromised computer or an exposed local service can put them at risk.
Enter the database details
Use the database you created in phpMyAdmin. Typical local values are:
| Installer field | Typical local value |
|---|---|
| Database type | The driver supported by your Joomla release, commonly MySQLi |
| Host name | localhost |
| Username | root for an unchanged local XAMPP setup |
| Password | Blank only when that local account has no password |
| Database name | joomla_local |
| Table prefix | Keep the generated prefix unless you have a specific reason to change it |
Do not copy these values blindly if you configured a different database account. A database connection error usually means one of these fields does not match the service running in XAMPP.
Complete the installation
Review the summary and let Joomla create its tables and configuration files. Installation time depends on your computer and the package, so wait for the completion message rather than refreshing the browser repeatedly.
When Joomla reports that installation is complete, use the provided option to remove the installation folder. If the installer does not remove it automatically, remove the folder from the Joomla directory before using the site normally. Leaving installer files in place can allow someone to restart the setup process if the local site becomes accessible to others.
Step 6: Test the local Joomla site
Open the public site and confirm that the front end loads. Then open the administrator area by adding /administrator to the local site address:
http://localhost/joomla-local/administratorSign in with the administrator account you created during setup. Check that you can reach the dashboard, save a test article, and view the article on the front end.
Also verify the basics before you begin building:
- The site name and administrator email are correct.
- The administrator password works.
- A new article can be saved.
- The public site can display that article.
- The Joomla installation folder has been removed.
- The XAMPP services remain available after restarting the computer.
For the next stage, follow this Joomla beginner tutorial to understand the administrator area, content structure, templates, and extensions.
Common Joomla in XAMPP problems and fixes
Apache will not start
Another application may already be using the port Apache needs. In the XAMPP Control Panel, check the service messages and port information. Stop the conflicting local service if you recognize it, or configure Apache to use an available port. If you change the port, use the matching port in the browser address, such as http://localhost:port/joomla-local.
Do not guess at the cause from the red status color alone. The Apache error log and the port information in XAMPP provide better clues.
localhost works, but the Joomla folder returns a 404
Confirm that Apache is running and that the folder is inside the correct htdocs directory. Then check the URL letter by letter. The folder name in the address must match the folder name on disk.
Also inspect the extracted files. If Joomla is inside a second package folder, either move the files up one level or use the complete nested path while testing.
Joomla cannot connect to the database
Check the database service status in XAMPP, then compare the installer values with phpMyAdmin. The host, username, password, and database name must refer to the same local database service. Confirm that joomla_local exists and that you did not accidentally enter the Joomla site name in the database name field.
The page is blank or shows a PHP error
Review the PHP requirements for the Joomla release and compare them with the PHP version bundled with XAMPP. A mismatch can prevent Joomla from running correctly. Check the PHP and Apache logs for the exact error before changing configuration files.
The site loads, but changes do not appear
First verify that you are viewing the correct local folder and URL. Browser caching or Joomla caching can also make an older page appear. After saving your changes, use the administrator cache controls when appropriate. If cached files continue to return, use this guide to clear Joomla cache safely.
Local XAMPP security checklist
A localhost site is useful because it stays on your computer, but it still deserves sensible safeguards:
- Use a unique administrator password.
- Avoid exposing XAMPP services to a public network.
- Do not use a blank database password outside a disposable local setup.
- Remove the Joomla installation folder after setup.
- Keep Joomla, XAMPP, PHP, and extensions compatible and maintained.
- Back up the local project before testing major changes.
- Do not copy local database credentials into a public hosting environment without reviewing them.
When you later move the site to hosting, the workflow will include a real database user, a protected password, server configuration, file permissions, HTTPS, and a backup plan. The local installation is a development environment, not a substitute for those production checks. You can also review this broader Joomla installation checklist before moving beyond localhost.
Frequently asked questions
Can I install Joomla in XAMPP without internet access?
You need internet access to download XAMPP and the Joomla package, but after both packages are stored on your computer, the installation itself can run locally. The browser, Apache, PHP, and database service communicate through your computer.
Where should I put Joomla in XAMPP?
Put the extracted Joomla files in a folder inside XAMPP's htdocs directory. A typical path is C:\xampp\htdocs\joomla-local, which you open at http://localhost/joomla-local.
What database should I create for Joomla in XAMPP?
Create an empty MySQL or MariaDB database in phpMyAdmin. A name such as joomla_local makes it easy to identify. The installer creates the Joomla tables after you provide the correct connection details.
Can I use a blank database password for a local Joomla site?
A blank password may match an unchanged local XAMPP configuration, but it should be limited to local testing. Create a database user with a strong password before deploying a Joomla site to a server that others can access.
How do I open Joomla after installing it?
Open the local folder URL for the public site, such as http://localhost/joomla-local. Add /administrator to that address to open the Joomla administrator login.
Conclusion
Installing Joomla in XAMPP means connecting three pieces: the Apache web server, the local MySQL or MariaDB database, and the Joomla files in htdocs. Once those pieces are in place, the Joomla web installer creates the site and administrator account for you.
The most important checks are simple: start both XAMPP services, use a database name that matches the installer, keep Joomla files at the expected folder level, remove the installation folder, and test the administrator and public URLs. With that foundation working, you can safely learn Joomla locally before publishing a site.