Building a web server

How to install and configure XAMPP on Windows 10

This guide will walk you through the steps to install XAMPP on Windows 10, how to configure the control panel, fix Apache if refuses to start, and how to increase the upload size using phpMyAdmin.

XAMPP Setup on Windows 10

XAMPP is a free open source software that provides an easy way for web designers and developers to install the necessary components to run PHP based software like WordPress, Drupal, Joomla, and others on Windows 10, Mac OS X, and Linux.

If you’re a web developer, designer, or a person trying to get into blogging, XAMPP will save you time and frustration having to manually install and configure Apache, MySQL, PHP, and Perl on your device to create a test environment.

In this guide, you’ll learn the instructions to install XAMPP on your computer running Windows 10, how to configure the software, and solve common problems.

How to install XAMPP on Windows 10

To download and install XAMPP on your Windows 10 computer, use the following steps:

  1. Download XAMPP from Apache Friends.

    Note: If you have special version requirements for PHP, then download the version you’re required to install. If you don’t have a version requirement, then download the oldest version, as it may help you to avoid issues trying to install a PHP based software.
  2. Double-click the file to run the installer.

  3. Click the OK button on the warning to continue.

    XAMPP warning on Wndows

  4. Click the Next button.

    XAMPP setup on Windows 10

  5. XAMPP offers a variety of components that you can install, such as MySQL, phpMyAdmin, PHP, Apache, and more. For the most part, you will be using most of these components, as such it’s recommended to leave the default options and click the Next button.

    XAMPP install components

  6. Use the default install location settings, or choose another folder to install the software, and click the Next button.

    XAMPP installation location

  7. Clear the Learn more about Bitnami for XAMPP option.

  8. Click the Next button.

    XAMPP installation wizard on Windows 10

  9. Click the Allow access button to allow the app through the firewall (if applicable).

    XAMPP allow access through Windows Firewall

  10. Click the Finish button.

    Complete XAMPP installation on Windows 10

  11. Choose your language (English or German).

  12. Click the Save button.

    XAMPP Control Panel on Windows 10

Once you’ve completed the steps, the XAMPP Control Panel will launch, and you can begin the web server environment configuration.

How to configure XAMPP on Windows 10

The XAMPP Control Panel includes three main sections. In Modules, you will find all the services available. You can run each service by clicking the Start button.

When you start some of the services, including Apache and MySQL, on the right side, you will also see the process ID number and TCP/IP port numbers each service is using. For example, by default Apache uses TCP/IP port 80 and 443, while MySQL uses TCP/IP port 3306.

You can also click the Admin button to get access to the administration dashboard for each service and verify that everything is working correctly.

XAMPP Control Panel

On the right side there’s a list of buttons to configure various aspects of the control panel, including Config to configure which modules will automatically want to start when you launch XAMPP.

XAMPP Config

Netstart will give you a list of services currently accessing the network, process ID and TCP/IP port information.

XAMPP Netstat

And there are also quick access buttons to open the shell command-line utility, XAMPP installation folder, services, and quit the app.

Lastly, you get the logs section, where you can get a glance of what happens every time you start a module or change a setting. This is also the first place to look at when something isn’t working.

Apache won't start on Windows 10 error

The default settings should work for most people using XAMPP to create a testing environment to run a website for personal use or a client. However, depending on your setup configuration, you may need to change the TCP/IP port number for the Apache server, the database upload size, or set the password for phpMyAdmin.

To change these settings, you’ll need to use the Config button for the corresponding service. For example, you’ll need to open the httpd.conf file to change the settings on the Apache server, and the my.ini file to change the settings for MySQL.

How to fix Apache not starting on XAMPP

The XAMPP installation is very straightforward, but on Windows 10 and other versions of the operating system, sometimes there is a problem that will not allow the Apache server to run.

The issues can be attributed to the World Wide Publishing Service that may be installed and running on port 80 on your Windows PC. Port 80 also happens to be the default TCP/IP port that Apaches uses on XAMPP and no two applications can use the same port in the computer.

You have a few ways to fix the problem as shown below:

Uninstall World Wide Web Services

If you don’t have any applications depending on the World Wide Web Services feature, you can uninstall it using the following steps:

  1. Open Start.

  2. Search for Control Panel, and click the top result to open the experience.

  3. Click on Programs.

  4. Click the Programs and Features option.

  5. Click the Turn Windows features on or off link.

    Turn Windows features on or off

  6. Expand Internet Information Services and uncheck World Wide Web Services. Here, you can also uncheck FTP Server and Web Management Tools, if you don’t depend on those services.

  7. Click the OK button.

    Microsoft IIS - World Wide Web Services

  8. Restart your computer to apply the changes.

  9. Open XAMPP Control Panel and click Start on Apache.

After completing the steps, Apache should be able to run in port 80 on your device.

Change the default Apache TCP/IP port

Alternatively, you can configure Apache to run on a different TCP/IP port using the following steps:

  1. One the XAMPP Control Panel.

  2. Click the Admin button on Apache.

  3. Click the httpd.conf option.

  4. Scroll down and find the line: Listen 80.

  5. Change the 80 for another TCP/IP port number. You can try port 81. (After the change the line should read: Listen 81.)

    httpd.conf change TCP/IP port number

  6. Save and close the httpd.conf file.

  7. Click the Start button to run the Apache server.

Once you’ve completed the steps, the Apache server should run with issues in the port you specified. 

The only caveat with this configuration change is that you’ll need to append TCP/IP port number on the address every time you want to connect to your website. For example, to access the Apache server on the web browser, you will need to type: localhost:81/dashboard instead of localhost/dashboard.

Manually stop World Wide Web Publishing Service

Another thing you could do is to stop World Wide Web Publishing Service (World Wide Web Services) and change its settings to only start the service manually using the following steps:

  1. Open Start.

  2. Search for Services, and click the top result to open the experience.

  3. Double-click the World Wide Web Publishing Service.

    World Wide Web Publishing Service

  4. Click the Stop button.

  5. Change the startup type to Manual.

  6. Click the Apply button.

  7. Click the OK button.

    Stop and set Manual settings for World Wide Web Publishing Service

  8. On XAMPP Control Panel, click the Start button to run the Apache server.

The best way to get Apache working again is by uninstalling the World Wide Web Publishing Service, but when that’s not possible you can alternatively change the TPC/IP port number or stop service as necessary.

How to increase phpMyAdmin upload size on XAMPP

Another common problem with XAMPP is the default database upload limit. For example, many times web designers and developers will make a copy of a website for troubleshooting purposes or work in site without disrupting the live website.

However, people using WordPress or another content management software will quickly find out that they can’t upload a database because it exceeds the maximum upload size permitted, which by default is 2,048KiB.

Increasing the database upload limit on phpMyAdmin is pretty simple, use the following steps:

  1. On XAMPP Control Panel, click the Explorer button.

  2. Open the php folder and open the php.ini file with a text editor.

  3. Change the value for upload_max_filesize and post_max_size to the size you want. For example: post_max_size=20M and upload_max_filesize=20M to import database files of up to 20MB.

  4. Click the Stop button for MySQL and Apache .

  5. Click the Start button to restart Apache and MySQL.

You should now be able to import larger database files on phpMyAdmin.

How to change phpMyAdmin password on XAMPP

By default, phpMyAdmin (MySQL) uses “root” as username without password, which means that if you’re installing a WordPress site, when asked you only need to enter root as the username and leave the password field empty. However, if you want to change the password, you can use the following steps.

  1. On XAMPP Control Panel, click the Admin button for MySQL.

  2. Click on the User accounts tab.

  3. Click the Edit privileges link for the username root, but the one with hostname localhost.

  4. Click the Change password button.

    Set root password on phpMyAdmin

  5. Type and re-type the new password.

  6. Click the Go button to complete the task.

    phpMyAdmin root password

At this point if you try to login to phpMyAdmin, you will get an access denied message: “Cannot connect: invalid settings.”

phpMyAdmin access denied after setting root password

To fix access issue you need to change the configuration settings in the config.inc.php file using the following steps:

  1. On XAMPP Control Panel, click the Explorer button.

  2. Inside the XAMPP folder, open the phpMyAdmin folder.

  3. Open the config.inc.php file with a text editor.

  4. Under “Authentication type and info,” and update the following lines:

    • On $cfg['Servers'][$i]['auth_type'] = 'config'; replace config for cookie.

    • On $cfg['Servers'][$i]['AllowNoPassword'] = true; replace true for false.

      Config.inc.php Authentication type and info

  5. Save and close the file.

After saving the file, you should be able to login to phpMyAdmin dashboard.

Now XAMPP is configured and ready to use with any supported PHP-based software.

Update August 29, 2018: This guide was originally published in March 2016, and it was revised in August 2018 to make sure the information still works.