[ms4w-users] How to install FastCGI with ms4w

Alexandre Dubé adube at mapgears.com
Fri Jul 11 16:21:05 EDT 2008

Here's how to install and setup fastCGI with Apache 2.2.8 contained in 
the MS4W 2.2.7 version.

1- MS4W 2.2.7 contains a MapServer compiled to support FastCGI so 
nothing needs to be done there.

2- But, Apache 2.2.8 that comes with MS4W 2.2.7 doesn't include the 
mod_fcgi module.  This module can be dowloaded at 
http://www.apachelounge.com/download/ ... Take the 
mod_fcgid-2.2a-w32.zip which will work with Apache 2.2.8.

3- Copy mod_fcgid.so to your apache/modules folder

4- Install the Visual C++ 2008 Redistributable Package (the binary is 
build with VC 2008).  Download and install, if it isn't already done, 

5- Modify your /ms4w/Apache/conf/httpd.conf

    a) Add :
    LoadModule fcgid_module modules/mod_fcgid.so

    b) Add :
    ScriptAlias /cgi-bin/ "/ms4w/Apache/cgi-bin/"
    ScriptAlias /fcgi-bin/ "/ms4w/Apache/cgi-bin/"

    c) Remove :
    <Directory "/ms4w/Apache/cgi-bin">
        AllowOverride All
        Options None
        Order allow,deny
        Allow from all

    d) Add :
    <Location "/cgi-bin">
        Options None
        Order allow,deny
        Allow from all

    e) Add :
    <Location "/fcgi-bin">
        # The following line activates the fastCGI script to all files 
in location
        SetHandler fcgid-script
        Options None
        Order allow,deny
        Allow from all

    f) Add :
    <IfModule fcgid_module>
        IPCCommTimeout 60
        IdleTimeout 60
        DefaultMinClassProcessCount 2
        DefaultMaxClassProcessCount 20
        DefaultInitEnv PROJ_LIB    "c:/ms4w/proj/nad/"
        DefaultInitEnv PATH        
        DefaultInitEnv windir      "c:/WINDOWS"
        DefaultInitEnv SystemRoot  "c:/WINDOWS"
        DefaultInitEnv SystemDrive "c:"
        DefaultInitEnv GDAL_DATA   "c:/ms4w/gdaldata"
        DefaultInitEnv GDAL_DRIVER_PATH "c:/ms4w/gdalplugins"
        DefaultInitEnv TMP         "c:/ms4w/tmp"
        DefaultInitEnv TEMP        "c:/ms4w/tmp"

6- Restart Apache : /ms4w/apache-restart.bat

7- In your mapfile, set a PROCESSING directive to tell FastCGI to cache 
the connections and layer information on all layers for which connection 
caching is desired - ie. all slow layers.
    a) Add :

8- Now you can load your map using either normal CGI or FastCGI :
    a) CGI :

    b) fastCGI :

That way, your original cgi-bin folder wont be affected by fastCGI 
unless you use the modified url with "fcti-bin" which is the alias you 
added to your httpd.conf file at 5b).

Special thanks to Jeff McKenna and Daniel Morissette who helped me a lot 
with this.

Alexandre Dubé

More information about the ms4w-users mailing list