I’m one of the thousands of people who are all-in-all pretty impressed with WordPress as a blogging platform. As a primarily windows developer I have looked around for half decent .NET alternatives, and there are a few such as Das Blog and BlogEngine.NET, but none are as “polished” as WordPress.

With this in mind I went about installing php and mySQL on my windows 2003 64 bit virtualization slice, which isn’t as straight forward as you might expect.

Step 1: Install PHP

Well it turns out that php and IIS play quite nice together, and have done for some time now. It is also a fairly well written about setup process see: http://www.iisadmin.co.uk/?p=4.

So I followed the instructions given and everything went ok until I navigate to a test.php page and hit:

Invalid win 32 app

The problem is that the only supported version of the php ISAPI filter .dll is compiled for a 32bit machine.  Now it turns out that IIS can only load applications that are either ALL 64-bit or ALL 32-bit. Not to worry as we can enable IIS to run under 32-bit by throwing this at the command line:

cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

This is fine if your aspnet_isapi.dll referenced by your ASP.NET sites are 32-bit.  Otherwise (like me) any ASP.NET sites living on the box will crash, taking its application pool with it (bye-bye www.dotlesscss.com).

So what are the options? Either I and reset all my ASP.NET sites to use the 32-bit aspnet_isapi.dll or I find 64-bit php libraries, I went for the latter. If you hop along here you will find a nicely zipped up 64 bit php instance (Note: Its the PHP-5.x.x-x64-2007-xx-yy.zip).

Step 2: Install mySQL

Fortunately, mySQL do provide a supported 64-bit windows installer so its only really a matter of following the instructions. If you require a step-by-step installation guide for this then see here.

Step 3: Install WordPress on IIS6

Yet again, this is a fairly well documented process and shouldn’t cause you too many problems. The only other bump in the road I hit was that I forgot to remove the comments referencing mysql in the php.ini file, in which case WordPress will dutifully report “your php installation appears to be missing the mysql which is required for wordpress“.

Other than that, happy blogging.