Microsoft FastCGI Extension 1.5 for IIS 5.1 and IIS 6.0

Readme


Table of Contents


Overview

The IIS FastCGI extension enables popular application frameworks that support FastCGI protocol to be hosted on the IIS web server in a high-performance and reliable way. FastCGI provides a high-performance alternative to the Common Gateway Interface (CGI), a standard way of interfacing external applications with Web servers that has been supported as part of the IIS feature-set since the very first release.

CGI programs are executables launched by the web server for each request in order to process the request and generate dynamic responses that are sent back to the client. Because many of these frameworks do not support multi-threaded execution, CGI enables them to execute reliably on IIS by executing exactly one request per process. Unfortunately, it provides poor performance due to the high cost of starting and shutting down a process for each request.

FastCGI addresses the performance issues inherent to CGI by providing a mechanism to reuse a single process over and over again for many requests. Additionally, FastCGI maintains compatibility with non-thread-safe libraries by providing a pool of reusable processes and ensuring that each process will only handle one request at a time.


Features

This release of FastCGI Extension includes these new features:


Installation Notes

To use FastCGI Extension 1.5, you must have one of the following operating systems with IIS installed:

There are two separate downloadable packages for the module; you will need to download the appropriate package for your version of Windows OS:

You will need to run the installation package as an administrator. This can be accomplished by one of the following methods:

Upgrade from 1.0 and from 1.5 beta/rc releases

If you already have the FastCGI Extension version 1.0 or version 1.5 beta/rc installed then the installation package will upgrade it to version 1.5 RTW. All the configuration settings in IIS and fcgiext.ini file will be preserved.

Troubleshooting Installation Issues

If you encounter any problems during installation, you can run appropriate command listed below for your version of Windows to create a log file that will contain information about the installation process:

msiexec /I <msi_filename> /l* fcgiext.log

You can analyze this log file after a failed installation to help determine the cause of the failure.

Configuration Settings

Using UTF-8 encoding for server variables

By default, FastCGI extension uses ASCII encoding when setting server variables that are used by PHP. When requested URL contains non-ASCII characters, then server variables that derive their values from the requested URL string may be set incorrectly. PHP applications that rely on those server variables may not work because of that.

To prevent this the FastCGI extension can be configured to use UTF-8 encoding when setting server variables. To configure FastCGI to use UTF-8 encoding for a particular set of server variables, use the REG_MULTI_SZ registry key FastCGIUtf8ServerVariables and set its value to a list of server variable names, for example:

reg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\w3svc\Parameters /v FastCGIUtf8ServerVariables /t REG_MULTI_SZ /d REQUEST_URI\0PATH_INFO

The above example will configure FastCGI extension to use UTF-8 encoding when setting REQUEST_URI and PATH_INFO server variables.

After setting the registry key restart the IIS by using the iisreset command.

Warning: using UTF-8 encoding for server variables may affect how PHP core and PHP applications work. Make sure to verify that applications work as expected after the registry key has been changed.

For More Information


© 2009 Microsoft Corporation.