How to Install XAMPP and WordPress Locally on PC/Windows
Setting up XAMPP on your Windows machine is by far no easy feat, let me tell you! But once it’s installed, it’s a breeze to run and will save you a bunch of time if you need to run WordPress locally. In fact, you’ll forget it’s even there.
Having a localhost environment is an essential part of my WordPress workflow – I couldn’t do my day job without it. I regularly set up new installs of WordPress to test and play with new versions of themes and plugins, and I have multiple Multisite installs set up, too.
The great thing about running a localhost install is that your test site will run much more quickly than it otherwise would online, but if you want to ensure it continues to run at optimal speed, be sure to install and activate Hummingbird on your install.
A localhost install is also more secure and provides an ideal testing environment on your computer, away from prying eyes or hackers.
What is XAMPP?
XAMPP stands for cross-platform, Apache, MySQL, PHP and Perl. It’s a simple and lightweight solution that allows you to create a local web server for testing purposes.
Since XAMPP is cross-platform, it also works on Mac and Linux, but today we’re going to focus on how to set up XAMPP on Windows 10.
WordPress isn’t a stand-alone application and requires server software in order to run. XAMPP provides the necessary environment needed to run WordPress on a local machine.
Installing XAMPP
Go to the Apache Friends website and download XAMPP
The XAMPP file is 109MB. Once downloaded, launch the installer.
During the install process, you may receive warnings such as Windows asking you if you’re sure you want to install the software and the installer prompting you about antivirus software. As you would when installing any software on Windows, use your best judgment, but you probably want to click “Yes” to continue with the install.
The XAMPP setup wizard will guide you through the installation. Click Next.
In the next window you will be asked to select which components of the software you would like to install and which ones you don’t want. Some options, such as Apache and PHP are essential to running the software and will at automatically installed, so they are greyed out so you can’t select them.
It’s up to you which components you want to install. Since we want to run WordPress in our localhost environment, leave MySQL and phpMyAdmin checked and uncheck the remaining options.
Next, select the folder where you would like to install XAMPP on your machine. I’m going to create a new folder in C:\Program Files\XAMPP.
In the next window, you’ll be asked whether you would like to install Bitnami for XAMPP, which offers free tools for installing WordPress, Drupal and Joomla! on top of XAMPP.
Since we’re going to install WordPress manually later in this turorial and don’t need free installers, untick “Learn more about Bitnami for XAMPP” and click Next.
After going through all those initial installation steps, XAMPP is now finally ready to install. Click Next.
Once installed, you’ll be asked whether you would like to start the XAMPP Control Panel, which provides an interface for running your localhost environment. Leave this option ticked and click Finish.
The Control Panel will automatically open, but if you unchecked the option in the prevous window, you can go to the XAMPP folder on you computer and open XAMPP Control Panel instead.
If the installation process went well and everything is running smoothly, the control panel will open with black and blue text updates at the bottom. But if there are issues…
… Well, look at that – red text! It looks like I’ve run into some errors already. Not to fear, it looks like a port conflict.
Fixing Port Errors
The main reason why XAMPP throws up errors like this is due to another program on your machine using ports 80 or 443 – the ports Apache and MySQL need in order to run.
If you’re using Windows 10, World Wide Web Publishing Service is most likely using post 80. This program, which is for Internet Information Services (IIS) for Windows® Server, comes pre-installed and if you’re not using it, you can simply stop the service running on your machine or even delete it.
To stop the service running, do the following:
Go to Start, type in “services.msc” and select the best match
Scroll down in the Services window to find World Wide Web Publishing Service
Right click on it and select Stop
This should free up port 80. When you restart XAMPP it should run without errors
If that doesn’t resolve the issue, you can set up a new firewall rule to forceably unblock the ports:
Open Windows Firewall on your machine and > click on Advanced Settings on the left
Click on Inbound on the left then on the far right click New Rule
Click Port and then TCP. In the field below for Specific Ports type in “80, 443” and click Next
Check Allow the Connection then click Next
Make sure all options are checked and click Next
In the name field, enter whatever you want, but for the sake of consistency let’s type in LOCALHOST1. Click Finish
Now repeat steps 1-6, but name this new rule LOCALHOST2 and click Finish
Restart your computer
Ports 80 and 443 should now be open locally on your computer.
Running XAMPP
Now, let’s see if everything works smoothly.
If you previously quit the control panel to fix a port issue, restart XAMPP. Then start up both Apache and MySQL.
Both services are running fine. Excellent!
You can check if your new local server is installed by visiting http://localhost in your browser.
Setting Up Your MySQL Database
Before we install WordPress, we need a database.
In your XAMPP Control Panel, click the Admin button in the MySQL section.
A new browser window will automatically open with the phpMyAdmin interface.
Click on Databases near the top-left and you’ll be prompted to create a new database. I’ve called mine “WP.”
When you’ve entered a name, click Create and close the window.
Download and Install WordPress
Download the latest version of WordPress.
In order to get WordPress working with XAMPP we need to unzip WordPress in the right folder. Go to the XAMPP folder on your computer and open the htdocs folder – C:/Program Files/XAMPP/htdocs.
Unzip WordPress into its own folder and rename it whatever you like. For consistency, I’m going to call this installation of WordPress “WP” to match the name of the database I just created.
Open the WP folder where you saved WordPress, find the wp-config-sample.php file and rename it wp-config.php. Open the file and scroll down until you see the following lines:
These lines of code define the login details for your database:
1. Replace“database_name_here” with the name of your database, which in my case is “WP”
2. Replace “username_here” with “root” and leave “password_here” blank
3. Save the file and close it.
Now we can get on with actually installing WordPress.
Open your browser and go to http://localhost/wp/
You should see the translation screen that comes before the famous five minute WordPress installation process.
Once you’ve chosen your language, continue onto the next screen and enter you username and password details. Click Install WordPress.
Your WordPress installation is now complete!
Setting up WordPress Multisite
Having Multisite setup locally provides an efficient way to test themes and plugins in a Multisite environment, but also makes it a quick and easy to have multiple instances of Multisite set up.
Open your wp-config.php file again and add/edit the following lines to activate Multisite’s installation mode:
define(‘WP_DEBUG’, false);
define(‘WP_ALLOW_MULTISITE’, true);
/* That’s all, stop editing! Happy blogging. */
Open XAMPP and ensure Apache and MySQL are running.
Login to your localhost site in your browser and under Tools you will now have a new option, Network Setup.
Enter a name for your network and your email address, then click “Install.”
WordPress will prompt you to edit your wp-config.php and .htaccess files.
Following the onscreen instructions, open wp-config.php and add the following lines underneath your previous edit:
define(‘WP_DEBUG’, false);
define(‘WP_ALLOW_MULTISITE’, true);
define(‘MULTISITE’, true);
define(‘SUBDOMAIN_INSTALL’, false);
define(‘DOMAIN_CURRENT_SITE’, ‘localhost’);
define(‘PATH_CURRENT_SITE’, ‘/’);
define(‘SITE_ID_CURRENT_SITE’, 1);
define(‘BLOG_ID_CURRENT_SITE’, 1);
/* That’s all, stop editing! Happy blogging. */
Next, open .htaccess. If you can’t find it, make sure hidden files are displaying on your computer. If you do not have a .htaccess file already, then create it in the same directory as your wp-config.php file. If you do have a .htaccess file, replace any existing lines with these new ones:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ – [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
# END WordPress
Multisite should now be installed.
You’ll need to log in again, and when you do you’ll see the WordPress dashboard from where you’ll be able to access individual sites in your network.
Wrapping Up
XAMPP provides an easy way to run a local server environment on your Windows machine, allowing you to test and develop locally, rather than installing WordPress on a live site. It will also save you a bunch of time since you won’t have to install and uninstall WordPress each time you test themes and plugins.
The great thing about XAMPP is it’s free and open source. You can set up as many installations of WordPress as you want and it’s just as easy to get Multisite up and running.