Oh No, Not again!I found myself with the need to install PHP, MySQL and FastCGI onto another IIS machine yesterday and was feeling pretty good about myself as I set out on the journey. “I’ve done this a buncha times now…this will be smooth sailing!” Famous last words, right?

So I installed Fast CGI. I installed PHP and set up the php.ini file just like I like it. (I even made sure all my extensions existed!) I then installed mySQL. Wow. this is easy. Feel full of myself, I went ahead and installed my favorite free mySQL management tool, EMS SQL Manager for MySQL. After that was in place, I copied the WordPress site over, dumped the extract from the old home into the new database, changed a few URL paths in the database to match my new server digs, and then set up the application in IIS. “T minus 10 seconds and counting until site launch…. 10 …. 9 …. 8 …. ” you get the idea.

Well, wasn’t I surprised when I fired up the browser only to find every-one’s favorite ambiguous error:

“The specified CGI application misbehaved by not returning a complete set of HTTP headers.”

Aww… come on! This isn’t what I signed up for!

So, I turned to Google to solve this dilemma. It’s amazing how many different solutions are out there for the same problem. And it’s even more amazing how few of them are actually solutions that resolve the problem. I found none. Well, almost none.

After checking and double checking my php.ini file location and contents, and checking my Environment Variables for the appropriate PHP extension paths, and checking my IIS config for my applications for the appropriate extensions, modules and processors, I was stumped.

I dug into the Event Viewer to see what was happening, and could only find this:

“Permission settings do not grant Local Launch permission for the COM Server application with CLSID.”

What?! What’s this?

Look. I’ll spare you the gory details, but it was just another red herring. I added permissions my files, folders and dll’s to my hearts’ content in search of answers, but got no where. Well, nearly nowhere. Maybe you could call it ‘knowhere’... because in one of my searches, in one of the posts, attached there at the bottom, probably on page 2 was a little link that said something like “Just try this. It works every time and usually fixes problems like this” and then there was a link. You know the link. It’s the one you usually ignore. Desperate, and running out of time, and really wanting to power down this machine and go eat, I clicked. And boy, am I glad I did.

IIS + AIDWhat I found on the other end was something called IIS AID. Sounds harmless enough. What they offered was a PHP installation kit for IIS. I took the bait and downloaded the package. Fearing both the worst, and that things couldn’t get worse, I went ahead and installed it and lo-and-behold, it went by in seconds, painlessly. Granted, it went into the default C:\iis-aid\php\ location which for a details guy like me, ruffled my feathers, (I’ll know better next time) but even that was survivable.

So I dared to turn back to the browser, left staring blankly at me with incoherent blabbering about CGI headers. And then I hit F5. And there it was, in all of its’ glory. A site to behold. A website to behold! Thank you IIS AID. What I missed, you didn’t. And I am really grateful. And now I can go eat.