Not a developer? Go to


FastCGI and Microsoft IIS

Although Microsoft Internet Information Services web servers can, in their initial state, support the use of FastCGI, there are several steps that are required to prepare such servers to best use Movable Type with FastCGI.

Install FCGI Perl module

In order to operate Movable Type with FastCGI, the FCGI module must be installed. See Perl Module Installation for information on the installation procedure.

Install Movable Type

See Windows Server Installation Instructions for detailed information on the installation procedure. It is important that you do not specify any CGI scripting settings.

Set up handler mappings

In order for the Movable Type CGI scripts to work with FastCGI, there are several IIS manager settings that need to be configured.

Running FastCGI

  1. Select MT Site > mt.
  2. Right click on Handler mapping from Function view, and then click Open functions.
  3. From the operating menu, click Add a module map.
  4. Enter all these CGI scripts.

Common Setup Sample

  • Module: FastCgiModule
  • Name: Optional
  • Option: Request restriction boxes should be left unchecked

Important: Replace %SP% with the Strawberry Perl application directory and %MT% with the Movable Type application directory

Request pathExecuted file
mt.cgi %SP%\bin\perl.exe | %MT%\mt.cgi
mt-atom.cgi %SP%\bin\perl.exe | %MT%\mt-atom.cgi
mt-comments.cgi %SP%\bin\perl.exe | %MT%\mt-comments.cgi
mt-cp.cgi %SP%\bin\perl.exe | %MT%\mt-cp.cgi
mt-data-api.cgi %SP%\bin\perl.exe | %MT%\mt-data-api.cgi
mt-feed.cgi %SP%\bin\perl.exe | %MT%\mt-feed.cgi
mt-search.cgi %SP%\bin\perl.exe | %MT%\mt-search.cgi
mt-sp.cgi %SP%\bin\perl.exe | %MT%\mt-sp.cgi
mt-tb.cgi %SP%\bin\perl.exe | %MT%\mt-tb.cgi
mt-xmlrpc.cgi %SP%\bin\perl.exe | %MT%\mt-xmlrpc.cgi

FastCGI and IIS: 1 – Add Module Mapping

Running scripts through CGI

  1. Click MT Site > mt.
  2. Right click Handler mapping from Function view and then click Open functions.
  3. From the operating menu, click Add a script map.
  4. Specify the necessary CGI scripts based on the information in the table below.
Request pathExecuted file
mt-check.cgi %SP%\bin\perl.exe "%s" %s
mt-wizard.cgi %SP%\bin\perl.exe "%s" %s
mt-upgrade.cgi %SP%\bin\perl.exe "%s" %s

Movable Type settings

  1. Open mt-config.cgi in a text editor.
  2. Add the IISFastCGIMonitoringFilePath environment variable and set the filename as the full path.


     IISFastCGIMonitoringFilePath /path/to/pid_file
  3. Create the file specified by IISFastCGIMonitoringFilePath.


     c:\>type nul > /path/to/pid_file
  4. Open the properties of the created file and give write permission to the IUSR user.

FastCGI settings

  1. Click MT Site > mt.
  2. Double click FastCGI under Function view to open the FastCGI application listing screen.
  3. Double click the CGI script that should have been set up using the directions from the previous section (Required settings for running FastCGI). The Edit FastCGI application dialogue box will appear. From FastCGI properties, select Monitor changes to files, and then enter the file specified in IISFastCGIMonitoringFilePath.
  4. Select Environment Variable and then click the button on the right side to open the EnvironmentVariables Collection Editor.
  5. Click Add from the bottom of the left hand list to add a new member.
  6. Select the new member by clicking their name, and then confirm the Name and Value that appear on the right side.

    • Name: MT_HOME
    • Value: Movable Type Advanced directory path (Such as C:/Inetpub/app/mt60x)

    FastCGI and IIS: 2 – EnvironmentVariables Collection Editor

  7. Click OK, close the EnvironmentVariables Collection Editor, and then click OK in the Edit FastCGI application dialogue box to close it.

  8. Repeat steps for all remaining CGI scripts


  • The values for Max Instances, Instance MaxRequests, Activity Timeout, Idle Timeout and Request Timeout can be adjusted if necessary.
  • If increasing Max Instances, keep in mind when using mt.cgi that one instance requires about 100 to 250 megabytes of memory.
  • For Activity Timeout, Idle Timeout and Request Timeout, 600 to 900 is the recommended setting for processes that take a lot of time to execute, such as importing.
  • Operation verification is not possible with ActivePerl.