WordPress is one of the most popular website solutions in the world. This easy-to-use content management system (CMS) installs quickly on a web hosting account and the online control panel enables the website manager to focus on content rather than the technical details of creating each post.
Behind the scenes, WordPress has certain requirements. It uses MySQL as a database to store all the content including posts and menu options and the entire system is designed in PHP, so a web server or test environment that’s running WordPress needs both of these installed and configured to work together. When the system receives a request for a page from the WordPress site, either from the local system or a remote computer, it needs to be able generate the page from the information in the database and serve up the resulting PHP code.
A typical solution is to create a WAMP stack on the system. WAMP stands for Windows / Apache / MySQL / PHP with Apache being the web server software that actually receives the request for the WordPress page and returns it to the requesting system. On a Linux system, this would be referred to as a LAMP stack. The collection is referred to as a stack because the software functions collectively as part of one system in order to carry out the tasks of a web server.
Apache is a popular choice for these setups as it’s free and open source and has been around since the mid-90s. There are also pre-configured WAMP environments such as EasyPHP which include Apache and can be quickly installed and run to support PHP development in a test or learning environment.
While Apache will run on Windows, Internet Information Services (IIS) is the native web server software that comes packaged with the operating system and, in some cases, it might be chosen over Apache as the web server software. In this case, it must be configured to recognize PHP files and serve them up as requested.
I recently had the experience of setting up MySQL and PHP with IIS 7.5 on a Windows server and, after working my way through a number of pitfalls and error messages, decided to write up the instructions for anyone else deciding to embark on the adventure. You can find the entire set of instructions on my blog at: