Installing WordPress on Windows + IIS

In order to develop a WordPress site on your own development machine, you’ll need to setup a local web server and run WordPress on that. Why not use the Internet Information Services server, which comes with your Windows installation. This guide explains how to setup IIS, PHP and WordPress hassle-free. Already have WordPress running on […]

This article was posted by Independent Software, a website and database application development company based in Maputo, Mozambique. Our website offers regular write-ups on technical and design issues, ranging from details at code level to 3D Studio Max rendering. Read more about Independent Software's philosophy, or get in touch with Independent Software.

In order to develop a WordPress site on your own development machine, you’ll need to setup a local web server and run WordPress on that. Why not use the Internet Information Services server, which comes with your Windows installation. This guide explains how to setup IIS, PHP and WordPress hassle-free.

Already have WordPress running on your development machine?

Learn how to Build a WordPress Theme from Scratch

Step 1. Setting up your computer as a web server

In order to do web development, you’ll need your computer to act as your own local web server. This means installing software on it that can serve websites through your browser – for you alone. When your site and theme are all done, you can upload them to a remote web server, but you’ll want to do all development on your own computer. Your development cycle will be much faster that way, since uploading every little change to a server through FTP will make you tear your hair out.

For basic websites that consist only of HTML files, you can just point your browser to a file on your computer and have it render the file. WordPress websites on the other hand, like most other content management systems, require PHP, and PHP requires a web server to run.

There are various pieces of software that can act as web servers. Many people use Apache, which will run of many operating systems and is very powerful. For this guide, we’ll assume that you use a Windows machine and will use the Windows-only Internet Information Services (IIS), which is already included in your Windows installation and easy to set up.

All that is necessary to install Internet Information Services is activating it. To do so, find the “Windows Features” area of the Control Panel in Windows. It’s easy to find by just typing “Features” in the Start menu and selecting “Turn Windows features on or off”. You’ll be presented with a list of features; find “World Wide Web Services” and activate the checkboxes as below (this should be the default situation when you simply check “World Wide Web Services”):

IIS will now be installed.

Let’s test that it works. Create a directory somewhere on your hard drive for your test website. Now start the IIS manager by running Internet Information Services (IIS) Manager (you can find it by typing inetmgr  in your Start menu). In the control panel that appears, expand the tree on the left to find Sites. Right-click that and select Add Website:

Creating a site in IIS

A window pops up inviting you to enter your new site details. Assuming you created the folder “your-directory”, fill it out like this (remember, your-directory is whatever name you choose for your website. Keep it short and don’t uses spaces or special characters):

Creating a site in IIS

IIS is now serving a new website from your new directory, and it’s in this directory that we’ll eventually install WordPress and build our site. However, if you visit http://your-directory in your browser now, it will try to access the internet and not your local server. You’ll first need to configure Windows to understand that this particular URL must point to your local web server, or your requests will never reach your local IIS.

To do so, start Notepad (or whatever text editor you prefer to use) in Administrator mode (find it in the Start menu, right-click it and select “Run As Administrator”). You will need to open a Windows file that requires Administrator privileges to edit. In Notepad, open C:\Windows\System32\drivers\etc\hosts. This file contains special instructions that Windows will use to look for sites, and it is here that we will tell Windows that your-directory is actually a website on the local computer.

At the bottom of the hosts file, add a new line with the following text:

The IP-address “” is a special address known as the local loopback. It simply refers to your own computer, which is exactly what we need in our scenario. Save the file (you’ll need Administrator privileges) and close it.

From now on, whenever you visit http://your-directory in your browser, it will talk to your local IIS service and not try to find the URL your-directory on the internet.

It’s important to test that all is well. Create a new file “test.html” in your site’s directory and put some test content in it (“hello world” is traditional). Open http://your-directory/test.html in your browser. If “hello world” appears, all is working as it should.

Step 2. Installing PHP

Installing PHP on IIS is easy thanks to a little tool released by Microsoft called the Web Platform Installer ( Download and install it. On launch, it will query Microsoft’s servers looking for products that can be installed, which may take a while. When it shows you the list of available products, select “PHP 7.1.7” (x86 or x64 depending on your machine) and have the tool install it.

Microsoft Web Platform Installer

(It should be possible to use the Web Platform installer to install IIS as well – I’ve not tried that, but that might be even easier than the steps described above. The instructions that I gave are what works for me; YMMV).

PHP should now be available with all the bells and whistles that come with it, such as interfaces to the MySQL database (which we’ll need for WordPress), image manipulation plugins etc. It should all be there without needing further configuration from you.

Let’s verify that everything works. Create a new file called “test.php” in your site’s directory and place the following content in it:

Now point your browser to http://your-directory/test.php. If you see a bunch of information about PHP, everything is fine. If you get a blank screen, the literal text phpinfo();  or the file is offered for download then PHP is not yet working and IIS is serving the PHP file like any other file, without any PHP processing. If this is the case, go back to inetmgr and find your site under “Sites”. Select it, and then select the option Handler Mappings in the center panel. There should be a mapping for PHP there. If there isn’t one, create one with the following settings:

PHP Handler Mappings in IIS

If everything works – congratulations! You’ve got a local webserver with PHP installed.

Step 3. Installing MySQL

Most of what we need for WordPress is now in place, but we still need a database. WordPress uses a database to store everything about your website: posts, pages, users and settings. The database system used by WordPress is MySQL and you’ll need to install this on your local machine.

MySQL is available to install through the Web Platform Installer. I’ve not done that, but I did notice that the MySQL version on offer tends to be a little behind the times. I therefore recommend that you begin by downloading the latest version of MySQL from This will take you straight to the download page for the free MySQL Community Server. You can use either the web-based (partial download) or the community installer (full download).

During the installation, you will be asked to pick a root password. This is the master password for all your databases, so keep it somewhere safe.

At some point, the installer will ask whether you want to install MySQL as a Windows Service. You’ll want to do this, because this’ll make sure that MySQL starts up whenever your computer starts up with no further intervention from you. It’ll always be available.

After the installation, you should be able to open a command prompt and run:

This will open the MySQL console. We’ll create a database for our new WordPress website now. Do so by typing:

(For “mydatabase”, pick any database name you like.)

In this tutorial, WordPress will access this database as the “root” user. In a testing environment, such as your local machine, this is fine, but you should never do this on a production server. In a production environment, you must create a specific user for the WordPress database.

Congratulations again, you’ve got MySQL running, and with that, the last requirement for running WordPress.

Step 4. Installing WordPress

It is now time to install WordPress itself. Download the latest version of WordPress from You will receive a .zip file. Unpack the contents of the wordpress folder in the zip to this directory.

Visit the url http://your-directory in your browser. This should now show you the WordPress installation screen.

WordPress Installation Screen

Fill out your database information. For now, you can use “root” as the database user. When you move your site to a production server, you must change this! At a later stage, you can always edit the wp-config.php  to edit the database credentials. WordPress will now write initial data to the MySQL database. When it’s done, you can enter WordPress’s administration panel.

This post was written with a specific purpose in mind. Next time, we’ll look at how to build a WordPress theme from the ground up!

Learn how to Build a WordPress Theme from Scratch

Did this article help you out? Please help us find more time to write useful guides & articles like this by donating a buck or two. It'll keep us coffee-fueled. Thanks!


  1. Creating a WordPress theme from scratch: Theme files, styles, header and footer | Independent Software
  2. Creating a WordPress theme from scratch: Content and the WordPress Template Hierarchy | Independent Software


2 2 Responses to “Setting up a WordPress development environment on Windows with IIS”

Leave a Reply

Your email address will not be published. Required fields are marked *