Test WordPress On Your Hard Drive with XAMPP
While I was performing some extensive WordPress plugin compatibility testing, I was getting frustrated with having to wait for what seemed like an eternity for page refreshes to occur. I did a little Google-ing and found an excellent open-source software package called XAMPP that runs on Windows.

XAMPP screen shot
It lets you run Apache (a web server program), PHP5 (a server programming language), MySql (a database program), FileZilla (an FTP program), and Mercury (an e-mail server program) on your local hard drive running a 32-bit version of Windows. You can manually start the programs/servers or run them as installed services. Here is a good XAMPP installation tutorial.
The XAMPP program lets you install a test blog locally on your hard drive, which greatly speeds up development and testing.
If you have a shared web hosting plan and you have ever seen a Server Error 500 message as a result of activating a plugin or accessing some part of your blog, you may already know that shared web hosting plans don't typically include access to the server error logs. The main advantage to using XAMPP is the ability to access your own, local server logs directly to perform server-side scripting language troubleshooting. Once you have tested and verified your site, you can then upload it to the live host on the Internet, without any interruptions in site availability.
-Dan
There is something else worth mentioning here…
After some Windows Updates, I found that I was unable to run XAMPP on my laptop or main office computer any more. Apache Server would start up fine but 3 or so seconds later it would stop by itself. This became very frustrating, and I had to determine why it was happening because XAMPP running Apache and MySQL is my web design test bed.
After a lot of Google searches, and some troubleshooting start up services in Windows, I was able to determine the cause of the issue (at least for me).
Here’s what I did:
From a command prompt, type
netstat -o
This will output a list of ports, along with the PID (Process ID) that has that port open. Apache Server uses port 80 (HTTP).
To determine what executable is running under what a process ID, open Windows Task Manager and switch to the Processes tab. Now click on View->Select Columns… On the screen that opens, make sure to check the box next to PID (Process Identifier) and then click OK. Now click on the PID heading to sort the entries by PID and note the program or service that matches your PID. Note that you may need to check the box below the list that says “Show Processes from All Users” in order to see System PIDs and the like…
Navigate to the Computer Management MMC by typing compmgmt.msc in the Windows search box or at a Command Prompt. When it opens, drill down to Services and Applications > Services. Look for the service that matches the results you got earlier from running the netstat -o command…
Many people point to Skype as the program that was causing their issue, but I don’t use Skype or have it installed. As it turns out, the World Wide Web Publishing Service was the culprit.
Stopping this service and then setting the Startup Type to Manual in the service’s properties took care of it. This service is used by Windows to publish directly to the Web from applications, but I don’t use it so this was a no-brainer for me. If you need the service to be running, you might try setting the Startup Type to Delayed Start…
Hope this helps!
-D
I wanted to add a small update:
The Server Error 500 messages I was getting were easily fixed by adding the following line to my .htaccess file at the site root level:
AddType x-mapp-php5 .php
This tells the server that any .php files should be executed using the PHP5 engine. PHP4 is the default PHP engine on my web host, and could be for yours too!
Hope this helps!
Dan