Today IIS team has released to web the FastCGI Extension 1.5 for IIS 6.0 and IIS 5.1. This version is based on FastCGI Extension 1.0 and it adds several important improvements and features. This is a production ready release that is officially supported by Microsoft.
Install FastCGI Extension 1.5 for IIS 6.0 and IIS 5.1
To install the FastCGI Extension 1.5 use the download links at the extension’s home page at http://www.iis.net/expand/fastcgi.
Note: If you already have FastCGI v1.0, v1.5 Beta or v1.5 RC installed, then the installation package will upgrade it to version 1.5 – RTW. All the related IIS configuration and settings in fcgiext.ini file will be preserved during upgrade. Note that during upgrade from v1.0 the comments in fcgiext.ini will not be updated and will not mention new configuration settings. However the new settings can still be used after upgrade.
New Features
The FastCGI Extension 1.5 includes these new features:
- Monitor changes to a file. The extension can be configured to listen for file change notifications on a specific file and when that file changes, the extension will recycle FastCGI processes for the process pool. This feature can be used to recycle PHP processes when changes to php.ini file occur.
- Real-time tuning of MaxInstances setting. This MaxInstances setting dictates the maximum number of FastCGI processes which can be launched for each application pool. If it is set to 0 then FastCGI extension will automatically adjust the number of instances up or down every few seconds based on the system load and number of requests waiting in the queue.
- STDERR stream handling. There are several options of how the extension can handle text sent by FastCGI application on STDERR. The extension can send the error data as a failure response to the HTTP client or it can ignore the error and send whatever was received on STDOUT as a response with 200 status code.
- Sending a termination signal to FastCGI processes. The extension can be configured to send a termination signal to FastCGI process before terminating it. This enables FastCGI processes to do a clean shutdown before getting killed.
- _FCGI_X_PIPE_ environment variable. This variable is set by FastCGI extension and it contains the name of the named pipe that is used for communication between the extension and FastCGI process.
- Relaxed enforcement of response headers syntax. The FastCGI extension has less strict enforcements for the correctness of the response headers.
- Per-application FastCGI process pools. In previous version of the extension, the FastCGI process pools could be defined for the entire IIS server or per IIS site. In FastCGI 1.5 it is also possible to define FastCGI process pool per IIS application, which allows to have two different PHP version used for different applications within the same web site.
- Using UTF-8 encoding for server variable values. By default FastCGI uses ASCII encoding when setting server variables. If a FastCGI application requires UTF-8 encoded values for certain server variables, the extension can be configured to use UTF-8 only for required server variables.
- More descriptive error messages are used when configuration in fcgiext.ini is incorrect
- Changes in default values for configuration settings. MaxInstances is now set to 0, so that real-time tuning of MaxInstances is enabled by default. ActivityTimeout is set to 70 seconds.
More information
Refer to the following resources for more information
- FastCGI Extension 1.5 configuration settings
- Using FastCGI Extension to run PHP applications on IIS5.1 and 6.0
- PHP community portal on IIS.NET
Also, be sure to visit the FastCGI Handler forum on IIS.NET if you have run into any problems when using the extension or have questions or suggestions.
Hi, Can you enlighten me on a challenge? I have a permissions issue with Windows IIS 6 and Fast CGI on a Plesk panel. I think it is just getting the permissions correctly in Windows. Using PHP Fast CGI it seems like PHP does not have modify rights to the domain folder. For example when I create a simple PHP Script to create a text file on the server I get permission denied. However if I create a sub folder on the domain I am then able to create a test file within this directory. Thanks.
@Thomas: I suspect that this is caused by some custom permission settings on the folder that were setup by your hosting provider. Take a look at this article on php.net. See section called “Impersonation and file system access”. May be that will help.