Windows Frequently Asked Questions

How do I install XAMPP?

XAMPP for Windows exists in three different flavors:

Probably the easiest way to install XAMPP.

For purists: XAMPP as ordinary ZIP archive.

For purists with low bandwidth: XAMPP as 7zip archive.

Note: If you extract the files, there can be false-positives virus warnings.

Using the installer:

The XAMPP control panel for start/stop Apache, MySQL, FileZilla & Mercury or install these server as services.

Installing from ZIP

Unzip the zip archives into the folder of your choice. XAMPP is extracting to the subdirectory "C:\xampp" below the selected target directory. Now start the file "setup_xampp.bat", to adjust the XAMPP configuration to your system.

If you choose a root directory "C:\" as target, you must not start "setup_xampp.bat".

Like with the installer version, you can now use the "XAMPP Control Panel" for additional tasks.

Does XAMPP include MySQL or MariaDB?

Since XAMPP 5.5.30 and 5.6.14, XAMPP ships MariaDB instead of MySQL. The commands and tools are the same for both.

How can I start XAMPP without setup?

If you extract XAMPP in a top level folder like "C:\" or "D:\", you can start most servers like Apache or MySQL directly without execution of the file "setup_xampp.bat".

Not using the setup script, or selecting relative paths in the setup script, is preferred if you are installing XAMPP on a usb drive. Because on each pc such a drive can have an other drive letter. You can switch from absolute to relative paths at any time with the setup script.

Using the installer from our Downloads page is the easiest way to install XAMPP. After the installation is complete, you will find XAMPP under Start | Programs | XAMPP. You can use the XAMPP Control Panel to start/stop all server and also install/uninstall services.

The XAMPP control panel for start/stop Apache, MySQL, FileZilla & Mercury or install these server as services.

How do I start and stop XAMPP?

The universal control center is the "XAMPP Control Panel" (thanks It is started with:


You can also use some batchfiles to start/stop the servers:

  • Apache & MySQL start: \xampp\xampp_start.exe
  • Apache & MySQL stop: \xampp\xampp_stop.exe
  • Apache start: \xampp\apache_start.bat
  • Apache stop: \xampp\apache_stop.bat
  • MySQL start: \xampp\mysql_start.bat
  • MySQL stop: \xampp\mysql_stop.bat
  • Mercury Mailserver start: \xampp\mercury_start.bat
  • Mercury Mailserver stop: \xampp\mercury_stop.bat
  • FileZilla Server start: \xampp\filezilla_start.bat
  • FileZilla Server stop: \xampp\filezilla_stop.bat

How can I test that everything worked?

Type in the following URL at your favourite web browser:

http://localhost/ or

You should see the XAMPP start page, as shown below.

How can I install a server as a service?

Each server in XAMPP you can install also as Windows service. You can also install it from the XAMPP Control Panel. In this case it is necessary to run the scripts or the Control Panel with Administrator privileges.

Apache service install: \xampp\apache\apache_installservice.bat

Apache service uninstall: \xampp\apache\apache_uninstallservice.bat

MySQL service install: \xampp\mysql\mysql_installservice.bat

MySQL service uninstall: \xampp\mysql\mysql_uninstallservice.bat

FileZilla service (un)install: \xampp\filezilla_setup.bat

Mercury: No service installation available

Is XAMPP production ready?

XAMPP is not meant for production use but only for development environments. XAMPP is configured to be open as possible to allow the developer anything he/she wants. For development environments, this is great but in a production environment, it could be fatal.

Here a list of missing security in XAMPP:

  1. The MySQL administrator (root) has no password.
  2. The MySQL daemon is accessible via network.
  3. ProFTPD uses the password "lampp" for user "daemon".
  4. The default users of Mercury and FileZilla are known.

All points can be a huge security risk. Especially if XAMPP is accessible via network and people outside your LAN. It can also help to use a firewall or a (NAT) router. In case of a router or firewall, your PC is normally not accessible via network. It is up to you to fix these problems. As a small help there is the "XAMPP Security console".

Please secure XAMPP before publishing anything online. A firewall or an external router are only sufficient for low levels of security. For slightly more security, you can run the "XAMPP Security console" and assign passwords.

If you want have your XAMPP accessible from the internet, you should go to the following URI which can fix some problems:


With the security console you can set a password for the MySQL user "root" and phpMyAdmin. You can also enable a authentication for the XAMPP demopages.

This web based tool does not fix any additional security issues! Especially the FileZilla FTP server and the Mercury mail server you must secure yourself.

How do I uninstall XAMPP?

If you installed XAMPP using the installer version, please use the Uninstaller. The Uninstaller will delete all XAMPP entries from your registry and it will uninstall some installed services included with XAMPP. We highly recommend that you use the Uninstall program for removing XAMPP installations from the Installer version.Please backup all the data you want to keep before uninstalling XAMPP.

If you installed XAMPP using the ZIP and 7zip versions, shut down all XAMPP servers and exit all panels. If you installed any services, uninstall and shut them down too. Now simply delete the entire folder where XAMPP is installed. There are no registry entries and no environment variables to clean up.

What is the "lite" version of XAMPP?

XAMPP Lite (means "light" as in "light-weight") is a smaller bundle of XAMPP components, which is recommended for quick work using only PHP and MySQL. Some servers or tools such as Mercury Mail and FileZilla FTP are missing in the Lite version.

Where should I place my web content?

The main directory for all WWW documents is \xampp\htdocs. If you put a file "test.html" in this directory, you can access it with the URI "http://localhost/test.html".

And "test.php"? Just use "http://localhost/test.php". A simple testscript can be:

echo 'Hello world';

A new subdirectory for your web? Just make a new directory (e.