The information in this post is not applicable anymore because the update for FastCGI module in IIS 7.0 has been made available, so now the functionality and features of FastCGI are consistent across all IIS versions. Read the release announcement to get more details about the update.
Recent release of FastCGI Extension 1.5 for IIS 6.0 and IIS 5.1 has several new features and improvements that make it easier to run PHP on Windows and IIS. However, all the new features are only available when using Windows XP or Windows Server 2003. FastCGI module on IIS 7.5 in Windows 7 and Windows Server 2008 R2 supports most of these features. FastCGI module on IIS 7 in Windows Vista and Windows Server 2008 does not support those new features yet. The reasons why this happens and the plan for updating FastCGI functionality across all platforms are explained in this post.
FastCGI is supported across 4 different versions of IIS: IIS 5.1/6.0, IIS 7.0 and IIS 7.5. The release models for each of those versions are different:
- FastCGI Extension for IIS 5.1 and IIS 6.0: This is a separate add-on, which is shipped independently of IIS and Windows OS. IIS team has a lot of control over the release schedule and is able to release updates and fix bugs in the extension relatively fast. Thus the new FastCGI features were first introduces in this extension.
- FastCGI Module for IIS 7.0: The module is included in IIS and is therefore a part of the already shipped operating system. Updating the OS component, while possible, requires more time as the changes have to go through the standard Windows Servicing process. The update to the IIS 7.0 FastCGI Module that includes all the new FastCGI features is currently in the release stage and will soon be publicly available for download. The update for the IIS 7.0 FastCGI Module has been released.
- FastCGI Module for IIS 7.5: FastCGI module is included in IIS and is a part of the operating system. However, the development phase for IIS 7.5 coincided with the release of the FastCGI Extension 1.5 thus the majority (but not all) of the new FastCGI features are available in IIS 7.5. The remaining updates to the FastCGI Module for IIS 7.5 will be done in Windows Server 2008 R2 Service Pack.
The following table lists the new FastCGI features and their availability in different versions of IIS:
|Feature||IIS 5.1/6.0||IIS 7.0 *||IIS 7.5|
|Monitor Changes to File||yes||no YES||yes|
|Real-time tuning of MaxInstances||yes||no YES||yes|
|STDERR stream handling||yes||no YES||yes|
|Sending termination signal to FastCGI processes||yes||no YES||yes|
|_FCGI_X_PIPE_ environment variable||yes||no YES||yes|
|Relaxed enforcement of response headers syntax||yes||no YES||yes|
|Per-application FastCGI process pools||yes||YES||yes|
|Using UTF-8 encoding for server variable values||yes||no YES||no|
|IIS CPU Limits support||no||YES||yes|
* – Install the FastCGI update for IIS 7.0 to get all the features listed above.
6 thoughts on “FastCGI Module: Differences across IIS versions”
I have installed FastCGI 1.5, IIS6, Windows 2003 Server and after setting CPU limit on application pool FastCGI doesn’t work and show this error message :
* Unable to place a FastCGI process in a JobObject. Try disabling the Application Pool CPU Limit feature
* Error Number: 5 (0x80070005).
* Error Description: Access is denied.
Are you sure about support IIS CPU limit on FastCGI 1.5?
@Be3CH: You are right – there is no CPU Limits support in FastCGI 1.5. I have updated the post. Thanks for pointing this out.
You’re welcome. For me it’s disappointing 🙁
I just want to thank you for this post:
this post from 3 years ago was a huge help; so much so that I tracked down your blog and decided to comment on it!
once again, many thanks kind sir!
“Using UTF-8 encoding for server variable values”
That is a very important feature. Does anyone have an estimate of when a fix will be included so that IIS7.5 supports UTF-8 variable values?