This is the second part of the Installing WordPress From the Ground Up series. Previously I discussed installing MySQL. This article will show the exact steps for setting up FastCGI on IIS6. If you are running a later version of IIS (e.g. 7.0 or 7.5), this step will not be necessary as FastCGI is built in to those versions of IIS.

Installing the FastCGI Extension

The FastCGI extension package can be downloaded from iis.net. Download and install the correct version for you system architecture (32-bit or 64-bit). Installing it asks not questions.

Configuring the FastCGI Extension in IIS

You may want to refer to the documentation for the extension when configuring it in IIS. Here are the steps to configure it.

  1. Launch the Internet Information Services (IIS) Manager.
    IIS Manager
  2. View properties of the Web Sites folder node.
    Web Sites Properties
  3. Click on the Home Directory tab.
    Web Sites Properties - Home Directory
  4. Click the Configuration… button.
    Web Sites - Application Configuration
  5. Click the Add… button.
    1. Click the Browse button and navigate to %windir%\system32\inetsrv\ to select fcgiext.dll as the executable.
    2. Enter .php as the Extension.
    3. Select Limit to in the Verbs box and enter GET,HEAD,POST
    4. Ensure that Script engine and Verify that file exists are both checked.
      Add Application Extension Mapping
  6. Click OK to each dialog box to accept your changes.

Configure the FastCGI Extension Settings

The FastCGI extension settings are stored in the fcgiext.ini file found in %windir%\system32\inetsrv\. There is a lot of good information right in the file. There are two sections that need to be specified – a Types section and an application section (referenced by an entry in the Types section). Here are the contents that are required for using WordPress:

[Types]
php=PHP

[PHP]
ExePath=C:\Program Files\PHP\php-cgi.exe
;Protocol=NamedPipes
;QueueLength=1000
;MaxInstances=10
;InstanceMaxRequests=1000
;IdleTimeout=300
;ActivityTimeout=30
;RequestTimeout=90
;ResponseBufferLimit=4194304
;FlushNamedPipe=0
;UnhealthyOnQueueFull=0

The lines that are commented out (those that begin with a semicolon) specify the default values for those settings.

Note that every time you change the FastCGI extension configuration in fcgiext.ini, you must restart the application pools associated with web sites that use the FastCGI extension in order for configuration changes to take effect.

The next article in the series will cover installing PHP on IIS.

Resources: