Home arrow XAMPP Install Guide
XAMPP Install Guide
2007-12-15 A3webtech

XAMPP Install Guide

XAMPP Install Guide - Part 1         -- this page
XAMPP Windows Manual - Part 2   -- next page

This introduction is by A3webtech. The rest of the document is the original XAMPP 1.5.5 Install Guide, with some translation improvements and corrections, and minor additions.

Part 2 - the XAMPP Windows Install Manual by A3webtech is on the next page. It is a guide for specific Windows issues; how to set up your dev site on XAMPP; how to set up multi-sites; how to install CMS on XAMP; how to fix MySQL problems; how to fix the WinSQLmyAdmin, my.ini and my.cnf issues.

XAMPP is released by ApacheFriends, and is a sub-project of Apache Server. Go to the main website here:

This Guide is for the Windows version (there are versions for Linux, MacOS etc).  You can download XAMPP for Windows here:

What is XAMPP?

XAMPP, or Xamp, is a (L or W)AMPP server package installer, principally for a simple installation of Apache server and its required ancillaries on a Windows PC. It is a 'one-click' complete server install. Occasionally there are issues to resolve and these are detailed here. On the next page is an XAMPP Windows user guide.

XAMPP is designed for development or LAN use - not production i.e. livesite use, as it cannot be hardened easily for safe Internet use. It makes a combined Apache, mySQL, PHP, and Perl install on Windows very smooth compared to the individual build & config method normally necessary. Together with several other add-ons also installed with the package, it produces a top-class full working server install. It is angled toward dev not production, so security considerations are not paramount.

Use it only on a LAN, for development - not for Internet-facing duties.

If you need a LAN server for a Linux PC, we advise the use of Ubuntu server - virtually a one-click install, and also of course a free download of the open-source type. You can also use the XAMPP equivalent if you just have a desktop Linux install (eg a 'home /office PC-type' version): Lampp, which is for Linux boxes. Don't confuse this with the acronym LAMP for a production server: Lampp is a Linux version of XAMPP. There is also another one-shot server install for Windows, Wampp (but this is obsolete now).

Here is an excellent tutorial for installing Linux Ubuntu Server on a PC, by Robert Schifreen:

Although XAMPP is the perfect way to install a full-service server on a LAN PC, you can also install it on a single PC in order to use it as a server if you have no other machine. In other words the server is on the PC that you are using to view / work on the site with. This works but we do not advise it if another machine is available. It is not a perfect solution and should only be used if you do not have access to another PC to use as a server (and remember that any old PC will perform this function for lightweight LAN use).

XAMP should not be used for Internet server duties, as it is not secure. However many people do use it for LAN applications where the multi-user environment means that extra security is advisable. In this case XAMPP should be hardened, and this is the best tute we know (but be advised it is not complete):

If you need a LAMP server for production (e.g. as an Internet server), and you are not too familiar with Linux, then we recommend you use the Ubuntu Server installation. This is a free OSS Linux-Apache one-click full server install. It needs to be installed on an empty hard drive, and will provide a quick 'n easy Ubuntu Linux / Apache server solution suitable for Internet use. Hardening it is not for beginners but this applies to any server. You will need extensive advice on securing all the individual apps. There are web tutes for this but you need to understand that this is for the experienced. If your security is not 100% then the server and all sites on it can be exploited.

If you want to go the full nine yards then Red Hat or Centos are the most often-used pro Linux server versions. Also consider using another server app such as lighty or engine-X (Lighttppd or Nginx), which are server apps as good as Apache and in some ways better, especially for high-load dediboxes.

If you want a Windows server for production, i.e. as an Internet-facing webserver (which implies you intend to run ASP / .NET applications as there would be no other reason), then you should get Windows Server 2003 + IIS 6 [now upgraded to Windows Server 2008 + IIS 7). Bear in mind this has no PHP or MySQL, out of the box, though experienced users will be able to install them (you can of course have PHP / MySQL on a Windows server).

XAMPP documentation
Like most open-source projects, documentation on XAMPP is not a priority. Apache and XAMP originate in Germany (XAMPP is a sub-project of Apache). However, unlike many OSS projects, they have at least made an effort with the documentation. To help out we have added to and smoothed some of the English versions of their docs, which are mirrored here.

On this page is our revised Windows installer ReadMe. This document should be useful and accurate – but you will have to make your own judgement as to its precise fitness for your purposes. Please let us know if you can see any improvements required.

This is the original XAMPP install guide for v1.5.5, with additions and alterations by A3webtech which mean it is no longer an official version. In particular, the Windows section on the next page is entirely our work. In most cases XAMPP is a one-click server install on Windows; in those cases where it fails, we provide some basic troubleshooting info, especially on faulty MySQL initialisation and winSQLmyAdmin problems.
This xamp version 1.5.5 doc may not be the latest but this information is still relevant. Please note that XAMPP is deliberately spelled incorrectly in places (as XAMP, xamp etc), to enable those searching for a user manual to locate it.



ApacheFriends XAMPP - package contents
Function of XAMPP
Standard Installation
Manual Installation
Apache Notes
MySQL Notes
PHPswitch Notes
Windows User Notes
- Building a new site
- Multi-site on XAMPP
- Initialising MySQL
- WinSQLmyAdmin issues


  ApacheFriends XAMPP Standard Edition v1.5.5

  + Apache 2.2.3
  + MySQL 5.0.27
  + PHP 5.2.0 + PHP 4.4.4 + PEAR
  + PHP-Switch win32 1.0
  + XAMPP Control Panel v2.3 from www.nat32.com
  + XAMPP Security 1.0
  + SQLite 2.8.15
  + OpenSSL 0.9.8d
  + phpMyAdmin
  + ADOdb 4.93
  + Mercury Mail Transport System v4.01b
  + FileZilla FTP Server 0.9.20
  + Webalizer 2.01-10
  + Zend Optimizer 3.0.2
  + eAccelerator 0.9.5 RC1 for PHP 5.1.6
        (commented-out in ...\apache\php\php.ini)

* System Requirements:

  + 64MB RAM (>64MB recommended)
  + 260MB free space on hard disk (>300MB recommended)
  + Windows 98, ME
  + Windows NT, 2000, XP (recommended)


Function of XAMPP

[by A3webtech]
Installs a standard LAMP server environment on a Windows PC (deduct the 'L' = a WAMP installation). The initials come from the common production server environment, i.e. a working public webserver:
   Linux                    -- the OS
   Apache server       -- the server application
   MySQL                 -- the database application
   PHP                     -- scripting language
   Perl                     -- script language and interpreter

The Windows installation is ideal for development (aka dev - testing of applications or code) and private LANserver requirements. It is less useful for a production role, since security and stability are likely to be better in a 100% Linux environment.

The installation will typically serve static or dynamic web pages on a LAN, or be used for application testing. Fully-dynamic applications such as CMS and ecommerce apps are handled exactly as on a standard webserver.

There are many add-ons with the package: for instance FileZilla provides an integral FTP capability for bulk file transfer and remote directory management; Mercury Mail is the built-in email application. Webalizer is the standard webserver stats app, and provides a full metrics (site statistics) facility.

XAMPP is for website development, not production. Also, there are security issues if you use it on a LAN with an Internet connection.



1. Double-click on the Windows installation icon, xampp-win32-1.xxx-installer.exe.
The installation will commence, and standard options are presented. Xampp installs by default to C:\Program Files\Xampp. Check the relevant boxes to install Apache, mySQL, and FileZilla as a service on NT-type systems -- NT4, W2K, XP -- (recommended). This means they start up with Windows, and Windows closes them to shut down.
2. Run the program by clicking the Start Menu item.
3. Start / stop the individual applications via the Xampp Control Panel, in the Windows Start menu.
4. To Uninstall: Windows - Control Panel - Add/Remove Programs - click the Xampp entry.

(The following section applies only to archive downloads – it does not apply to Windows-installer installations)


Unpack / unzip the archive to your USB stick or a partition of your choice. In a separate data partition it must be in the root folder, on the highest level, e.g. E:\ . The archive will unpack to e.g. E:\xampp.
#Do not use the batch file "setup_xampp.bat" for a USB stick installation#


Step 1: Unpack the archive into a directory of your choice. Start the "setup_xampp.bat" and begin the installation.
Note: XAMPP makes no entries in the windows registry, and no settings for the system variables.

Step 2: If installation ends successfully, start Apache 2 with "apache_start".bat", MySQL with "mysql_start".bat". Stop the MySQL Server with "mysql_stop.bat". To shutdown the Apache server, just close the Apache Command (CMD) window.

Step 3: Start your browser and type or http://localhost in the location bar. You should see our pre-made index page.

Step 4: PHP (with mod_php, as *.php, *.php3, *.php4, *.phtml), Perl by default with *.cgi, SSI with *.shtml are all located in => C:\xampp\htdocs\.
- C:\xampp\htdocs\test.php => http://localhost/test.php
- C:\xampp\my.home.site.folder\test.php => http://localhost/my.home.site.folder/test.php

First shutdown Apache and mySQL. Simply delete the "xampp" directory.

* ONLY FOR NT SYSTEMS! (NT4 | Windows 2000 | Windows XP)

- \xampp\apache\apache_installservice.bat
  ===> Install Apache 2 as service

- \xampp\apache\apache_uninstallservice.bat
  ===> Uninstall Apache 2 as service

- \xampp\mysql\mysql_installservice.bat
  ===> Install MySQL as service

- \xampp\mysql\mysql_uninstallservice.bat
  ===> Uninstall MySQL as service

==> After all un- / installations of services, reboot!



1) MySQL:

   User: root
   Password: (none)

2) FileZilla FTP:

   User: newuser
   Password: wampp

   User: anonymous
   Password: some@mail.net

3) Mercury:

   Postmaster: postmaster (postmaster@localhost)
   Administrator: Admin (admin@localhost)

   TestUser: newuser
   Password: wampp


   User: wampp
   Password: xampp



XAMPP is not meant for production use, but for developers in a development environment; usage as localhost on a closed LAN is recommended. The way XAMPP is configured is to be open as possible, and allow the developer anything he/she wants. For development environments this is fine, but in a production environment it could be fatal. Here is a list of (some of) the missing security measures in XAMPP:

- The MySQL administrator (root) has no password.
- The MySQL daemon is accessible via network.
- phpMyAdmin is accessible via network.
- Examples are accessible via network.

To fix most of the security weaknesses simply call the following URL:


The root password for MySQL and phpMyAdmin, and also Xampp directory protection can be established here. All these measures should be taken if the server is on a LAN with an Internet connection, although this should be behind a hardware firewall.



(1) In contrast to apache 1.x, you cannot stop apache 2.x with the command "apache -k shutdown". This functions only for an installation as service by NT systems. Use the Control Panel button. In the case of Apache not Installed As A Service, just close the Apache command DOS window for shutdown. This window can be minimised during normal running.
(2) To use the experimental version of mod_auth_mysql, remove the comment-out # at the relevant line start, in the httpd.conf file. Detailed information about this topic can be found on the left navbar menu of the XAMPP admin page.

(3) To use Mod_Dav load the Modules mod_dav.so and mod_dav_fs.so in the "httpd.conf" by removing the # on the beginning of their lines. Restart Apache. Then try (for Dreamweaver, NOT for MS Frontpage!)



(1) The MySQL server can be started in the Xampp Control Panel; otherwise, by double-clicking (executing) mysql_start.bat in the Xampp root directory.

In manual (non-Windows installer) installations, the exact path to this file is X:\xampp\mysql_start.bat, where "X" indicates the letter of the drive you unpacked XAMPP into. This batch file starts the MySQL server in console mode. The first intialization might take a few minutes.
Do not close the DOS window or you'll crash the server!
To stop the server, please use mysql_shutdown.bat, which is located in the same directory.

(2) To use the MySQL Daemon with "innodb" for better performance, please edit the "my" (or "my.cnf") file in the C:\xampp\mysql\bin directory, or for services the c:\my.cnf for Windows NT/2000/XP. In there, activate the "innodb_data_file_path=ibdata1:30M" statement. Attention, "innodb" is not recommended for 95/98/ME.
To use MySQL as Service for NT / 2000 / XP, simply copy the "my" / "my.cnf" file to "C:\my", or "C:\my.cnf". Please note that this file has to be placed in C:\ (root), other locations are not permitted. Then execute the "mysql_installservice.bat" in the mysql folder.

(3) MySQL starts with standard values for the user id and the password. The preset user id is "root", the password is "" (= no password). To access MySQL via PHP with the preset values, you'll have to use the following syntax:

mysql_connect("localhost", "root", "");

If you want to set a password for MySQL access, please use MySQL Admin.
To set the passwort "secret" for the user "root", type the following:

C:\xampp\mysql\bin\mysqladmin.exe -u root -p secret
After changing the password you'll have to reconfigure phpMyAdmin to use the new password, otherwise it won't be able to access the databases. To do that, open the file config.inc.php in \xampp\phpmyadmin\ and edit the following lines:

$cfg['Servers'][$i]['user']            = 'root';   // MySQL User
$cfg['Servers'][$i]['auth_type']       = 'http';   // HTTP authentification

So first the 'root' password is queried by the MySQL server, before phpMyAdmin can access it.


 * PHP-Switch Notes

This is used for testing applications on the earlier v4 PHP, as well as the latest v5 included with Xampp. You can use the Windows Start Menu item in the Xampp group, or the relevant batch file for switching between the two versions.
(See ....\Apache\php-switch.bat)

Please ignore this feature if you are not developing with PHP.



        Moved to: Part 2 - XAMPP Windows Manual

Have a lot of fun! | Viel Spaß! | Bonne Chance!

Did you find this page useful?
If so, please consider linking to it. Thank you.


Web Business Managers