This weekend I did a short research for a consultancy job in the UK regarding PHP on Windows. Since I am more of a Linux guy I don't follow the Windows developments on a daily basis. It seems like a coincidence: Microsoft released their fastCGI implementation just a couple of days ago. The announcement is covered on many sites including
IIS.net and
Devzone.
PHP has been around for many years now but was never very strong on Windows. It had stability and performance problems. Finally there is a comparable solution which makes PHP on Windows as good as it is on Linux. Thanks to the collaboration between
Zend and
Microsoft there is a good solution. There is a
certified PHP version available from Zend that includes a fastCGI implementation.
Many PHP extensions are not thread safe and since IIS uses a threading model it had stability issues.
Apache with the prefork model was a solution for the stability issues. Unfortunately Windows in contrast to Linux is not optimized for the prefork model. Therefore it had performance issues on Windows. IIS with FastCGI is the solution. It uses one process per job but has a pool of processes standing by. The processes can be reused by different jobs. This approach has an enormous performance increase.
FastCGI for IIS is now available and officially supported by Microsoft. I think we will see a lot more PHP apps running on Windows in the coming year. I would say - in a Windows environment - IIS is generically speaking the webserver of choice. Companies with a Windows environment are not accustomed to running Linux and often you would see a Linux server surrounded by many Windows machines just to run some PHP app. Many times this is a burden for Windows administrators and in the long term not very efficient. Now with products like
Zend Core and
Microsoft's fastCGI implementation there are no longer any obstacles to deploy
PHP on IIS.