Authors:Nicolas Bozon, Gérald Fenoy, Jeff McKenna
Last Updated:$Date: 2011-12-07 14:44:57 +0100 (Wed, 07 Dec 2011) $

Using OSGeo4W

Install OSGeo4W

Download the OSGeo4W installer from, and install it with all the dependencies needed by your services (GDAL/OGR for example). The following libs are required: FastCGI, libxml, Python, cURL.

Install other tools and libraries

After installing OSGeo4W on your platform you’ll need more GNU tools and libraries. This package contains full dependencies required to compile on WIN32 platform and this one contains full runtime dependencies to place in your c:OSGeo4Wbin.

Download and Install ZOO Kernel

Download the binary version of the ZOO Kernel for WIN32 then place it in the C:\OSGeo4W\bin directory. Don’t forget to place a main.cfg file in the same directory, you can use a modified copy of this file.

Deploy ZOO Services Providers

Your can use the binary version of the OGR Services Provider available from here. Then place the two libraries with their respective .zcfg files in your local C:\OSGeo4W\bin directory.


Now you should be able to query your local ZOO Kernel.

Compiling Using Your Own Libraries


You must be sure to perform the prerequisite steps before compiling the ZOO Kernel.

The following steps are for use with the Microsoft Visual Studio compiler (and tested with MSVC 2008).

  1. Make sure the gnuwin32 tools bison.exe and flex.exe are found in your path. You can download the GNUwin32 tools here.

  2. Modify the file zoo-project\zoo-kernel\nmake.opt to point to your local libraries. You can find a modified nmake.opt that points to local libs here. You can also find a modified zoo-project\zoo-kernel\ file here.

  3. Execute:

    nmake /f
  4. A file zoo_loader.cgi should be created. Note that if another file named zoo_loader.cgi.manifest is also created, you will have to run another command:

    nmake /f embed-manifest
  5. Copy the files zoo_loader.cgi and main.cfg into your cgi-bin directory.

  6. Using the command prompt, test the zoo-kernel by executing the following command:

    D:\ms4w\Apache\cgi-bin> zoo_loader.cgi

    which should display a message such as:

    Content-Type: text/xml; charset=utf-8
    Status: 200 OK
    <?xml version="1.0" encoding="utf-8"?>
    <ows:ExceptionReport xmlns:ows="" xmlns:xsi="" xmlns:xlink="" xsi:schemaLocation="" xml:lang="en-US" version="1.1.0">
      <ows:Exception exceptionCode="MissingParameterValue">
        <ows:ExceptionText>Parameter &lt;request&gt; was not specified</ows:ExceptionText>
  7. Edit the file cgi-bin/main.cfg so that it contains values describing your WPS service. An example of such a file running on Windows is:

    encoding = utf-8
    version = 1.0.0
    serverAddress = http://localhost/
    lang = en-CA
    tmpUrl = /ms_tmp/
    title = The Zoo WPS Development Server
    abstract = Development version of ZooWPS. See
    fees = None
    accessConstraints = none
    keywords = WPS,GIS,buffer
    providerName=Gateway Geomatics
    individualName=Jeff McKenna
    adressDeliveryPoint=1101 Blue Rocks Road
    addressPostalCode=B0J 2C0
  8. Open a web browser window, and execute a GetCapababilites request on your WPS service: http://localhost/cgi-bin/zoo_loader.cgi?request=GetCapabilities&service=WPS

    The response should be displayed in your browser, such as:

    <wps:Capabilities xsi:schemaLocation="" service="WPS" xml:lang="en-US" version="1.0.0">
      <ows:Title>The Zoo WPS Development Server</ows:Title>
        Development version of ZooWPS. See

Optionally Compile Individual Services

An example could be the OGR base-vect-ops provider in the zoo-project\zoo-services\ogr\base-vect-ops directory.

  1. Edit the located in that directory, and execute:

    nmake /f

    Inside that same directory, the file cgi-env\ogr_service.zo should be created.

  2. Copy all of the files inside zoo-services\ogr\base-vect-ops\cgi-env into your cgi-bin directory

  3. Test this service provider through the following URL:


    The response displayed in your browser should contain:

    <wps:ProcessSucceeded>Service "Buffer" run successfully.</wps:ProcessSucceeded>