Wednesday, July 15, 2009

PHP Removes ISAPI support, and what that means to Gelbooru

Windows Server 2003 + IIS 6 has always been regarded as being a poor choice to use for hosting websites. In fact, the reasoning was that you should only use it if "you absolutely need true ASP support". Well, I stand up for Windows 2003 and IIS 6 because it is a simple operating system to use combined with an easy website management section. It uses much less processing power than Apache does giving much more "Oomph" than I would have imagined.

Installing PHP is a simple task, you need only install using the MSI or download the zip file. The installer and archive files always came with php5_isapi.dll and php-cgi.exe (or variety of). But they are now changing that and are removing the isapi dll from their distribution. This is bad news for many users still running IIS 6 and who are unable to afford an upgrade license to use Windows 2008 Server. Why is this? IIS 6 does not have a stable FastCGI engine and Windows 2008's IIS 7 does.

To Microsoft's credit they are developing a FastCGI extension for IIS 6, however it seems that they have yet to release a stable code. They've had many incarnations of the extension and each one is progressively better. In fact, their RC1 of the FastCGI 1.5 release actually worked on my server! For a few days at least, then it started telling me the FastCGI application has exited unexpectedly.

This isn't the biggest problem. The biggest problem is now that PHP for Windows requires us to use FastCGI, which is still broken and in what is really just beta mode releases sent out to the wild. Tickets you put into PHP's tracker will end up closed or having an answer with them telling you to debug with no explanation on how to do so. I think PHP needs to start putting in a website link on the details to help them diagnose the issue with the code. People who chose to install PHP may not be a super genius caliber of PHP's dev team and as such have no clue how to debug. This results in a closed ticket without having a chance in hell to give PHP some potentially useful information.

Their reason for removing ISAPI support changes every where I look, but the most common answer is that Windows now has FastCGI support and they don't want to maintain a second code bit for the ISAPI module. Is it really that much of a problem to have two choices for Windows? Even a typical LAMP install has two, mod_php and fastcgi, to select from. Is funding the real issue? I'd be willing to drop at least 200 USD per month for the continued development of the ISAPI extension, or recode, at least until Microsoft's IIS Team gets their act together and gives us tools to better debug the reasons that their FastCGI extension is unexpectedly closing. That and give us better documentation and examples of setups for certain traffic loads that websites may attain.

No comments: