在Windows上安装 ™

安装动物园项目二进制文件

注解

动物园项目Windows二进制文件的内容基于 GISInternals SDK ,请确保参考许可证信息。

注解

当使用动物园项目Windows二进制文件时,您可以决定是否要激活Java支持(默认情况下是这样的)。实际上,一旦安装完成,您将同时拥有 zoo_loader.cgizoo_loader_java.cgi 分别对应于没有激活和Java支持的动物园内核。因此,在您希望使用Java支持的情况下,只需重命名 zoo_loader_jave.cgi 文件位于 c:\inetpub\cgi-binzoo_loader.cgi 并确保 jvm.dll 可以找到。

使用安装程序

在运行动物园项目安装程序之前,请确保您有IIS和 Python 在您的机器上设置。然后下载 ZOO-Project-Installer 与您的平台相对应。第一次运行安装程序二进制文件时,可能会提示您授权它运行。安装程序运行后,只需访问以下链接:http://localhost/zoo demo/即可访问本地演示应用程序。

手动安装

在运行动物园项目安装程序之前,请确保您有IIS和 Python 在您的机器上设置。然后下载 ZOO-Project 与平台相对应的存档。解压,然后移动 cgi-bindatatmp 从未压缩文件夹到 c:\inetpub ,同时移动 wwwroot\zoo-demowwwroot\tmpc:\inetpub\wwwroot .要完成安装,请以管理员身份运行以下命令以允许 zoo_loader.cgi 从http://localhost/cgi-bin/zoo-loader.cgi运行:

cd C:\Windows\System32\inetsrv
appcmd.exe add vdirs /app.name:"Default Web Site/" /path:/cgi-bin /physicalPath:c:\inetpub\cgi-bin
appcmd set config /section:handlers /+[name='CGI-exe1',path='*.cgi',verb='*',modules='CgiModule']
appcmd.exe set config /section:isapiCgiRestriction /+[path='c:\inetpub\cgi-bin\zoo_loader.cgi',description='ZOO-Project',allowed='True']

从源代码编译动物园项目

警告

确保首先执行 prerequisite steps 在编译动物园内核之前。

以下步骤用于Microsoft Visual Studio编译器(并用MSVC 2010测试)。

  1. 确保gnuwin32工具 bison.exe and flex.exe are found in your path. You can download the GNUwin32 tools here .

  2. 修改 nmake.opt 指向本地库的文件。请注意,如果愿意,还可以直接在命令行中使用定义。参见 生成选项 有关此选项的详细信息。

  3. 执行:

    nmake /f makefile.vc
    
  4. 一个文件 zoo_loader.cgilibzoo_service.dll 应该创建。请注意,如果另一个文件名为 zoo_loader.cgi.manifest 如果还创建了,则必须运行另一个命令:

    nmake /f makefile.vc embed-manifest
    
  5. 复制文件 zoo_loader.cgilibzoo_service.dllmain.cfg 进入你的CGI bin目录。

  6. 使用命令提示符,通过执行以下命令测试zoo内核:

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

    应显示以下信息:

    Content-Type: text/xml; charset=utf-8
    Status: 200 OK
    
    <?xml version="1.0" encoding="utf-8"?>
    <ows:ExceptionReport xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://www.opengis.net/ows/1.1 http://schemas.opengis.net/ows/1.1.0/owsExceptionReport.xsd" xml:lang="en-US" version="1.1.0">
      <ows:Exception exceptionCode="MissingParameterValue">
        <ows:ExceptionText>Parameter &lt;request&gt; was not specified</ows:ExceptionText>
      </ows:Exception>
    </ows:ExceptionReport>
    
  7. 编辑 main.cfg 文件,以便它包含描述WPS服务的值。在Windows上运行的此类文件的一个示例是:

    [main]
    encoding = utf-8
    version = 1.0.0
    serverAddress = http://localhost/
    lang = en-CA
    tmpPath=/ms4w/tmp/ms_tmp/
    tmpUrl = /ms_tmp/
    
    [identification]
    title = The Zoo WPS Development Server
    abstract = Development version of ZooWPS. See http://www.zoo-project.org
    fees = None
    accessConstraints = none
    keywords = WPS,GIS,buffer
    
    [provider]
    providerName=Gateway Geomatics
    providerSite=http://www.gatewaygeomatics.com
    individualName=Jeff McKenna
    positionName=Director
    role=Dev
    adressDeliveryPoint=1101 Blue Rocks Road
    addressCity=Lunenburg
    addressAdministrativeArea=False
    addressPostalCode=B0J 2C0
    addressCountry=ca
    addressElectronicMailAddress=info@gatewaygeomatics.com
    phoneVoice=False
    phoneFacsimile=False
    
  8. 打开Web浏览器窗口,在您的WPS服务上执行getcapababilites请求:http://localhost/cgi-bin/zoo-loader.cgi?请求=getCapabilities&服务=wps

    响应应显示在浏览器中,例如:

    <wps:Capabilities xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsGetCapabilities_response.xsd" service="WPS" xml:lang="en-US" version="1.0.0">
    <ows:ServiceIdentification>
      <ows:Title>The Zoo WPS Development Server</ows:Title>
      <ows:Abstract>
        Development version of ZooWPS. See http://www.zoo-project.org
      </ows:Abstract>
      <ows:Keywords>
        <ows:Keyword>WPS</ows:Keyword>
        <ows:Keyword>GIS</ows:Keyword>
        <ows:Keyword>buffer</ows:Keyword>
      </ows:Keywords>
      <ows:ServiceType>WPS</ows:ServiceType>
      <ows:ServiceTypeVersion>1.0.0</ows:ServiceTypeVersion>
      ...
    

生成选项

可以在 nmake.opt 文件定义要用于构建动物园内核的已构建库的位置。有些是可选的,有些是必需的,具体如下:

GetText(必需)

应通过定义 INTL_DIR 环境变量。它假设头部和 intl.lib 文件可用。

例如,如果您在 \buildkit\srcs\gettext-0.14.6 ,您可以在运行之前定义以下内容 nmake /f makefile.vc

set INTL_DIR=\buildkit\srcs\gettext-0.14.6\gettext-runtime\intl

libcurl(必需)

libcurl的位置应该通过定义 CURL_DIR 环境变量。假设有2个子目录 include 包含libcurl头和 lib 其中包含 libcurl.lib 文件。

例如,如果你在 \buildkit\srcs\curl-7.38.0 ,您可以在运行之前定义以下内容 nmake /f makefile.vc

set CURL_DIR=\buildkit\srcs\curl-7.38.0\builds\libcurl-vc10-x86-release-dll-ssl-dll-zlib-dll-ipvs6-sspi

libfcgi(必需)

libfcgi的位置应该通过定义 FCGI_DIR 环境变量。假设有2个子目录 include 包含fastcgi头和 libfcgi/Release 其中包含 libfcgi.lib 文件。

例如,如果您在 \buildkit\srcs\fcgi-2.4.1 ,您可以在运行之前定义以下内容 nmake /f makefile.vc

set FCGI_DIR=\buildkit\srcs\fcgi-2.41.1

libxml2(必需)

libxml2的位置应该通过定义 XML2_DIR 环境变量。假设有2个子目录 include 包含libxml2头和 win32\bin.msvc 其中包含 libxml2.lib 文件。

例如,如果您在 \buildkit\srcs\libxml2-2.9.0 ,您可以在运行之前定义以下内容 nmake /f makefile.vc

set XML2_DIR=\buildkit\srcs\libxml2-2.9.0

OpenSSL(必需)

应通过定义 SSL_DIR 环境变量。假设有2个子目录 inc32 包含头文件和 out32dll 其中包含 ssleay32.lib 文件。

例如,如果您在 \buildkit\srcs\openssl-1.0.2c ,您可以在运行之前定义以下内容 nmake /f makefile.vc

set SSL_DIR=\buildkit\srcs\openssl-1.0.2c

GDAL(必需)

gdal库的位置应该通过定义 GDAL_DIR 环境变量。它对应于您解压和构建gdal的路径,它假设您拥有 gdal_i.lib 此目录中的可用文件。

例如,如果您在 \buildkit\srcs\gdal-1.10.1 ,您可以在运行之前定义以下内容 nmake /f makefile.vc

set GDAL_DIR=\buildkit\srcs\gdal-1.10.1

MAPServer(可选)

映射服务器库路径的位置应通过定义 MS_DIR 环境变量。它对应于您在系统上构建mapserver的路径,该目录应包含 nmake.opt 使用的文件。

例如,如果您在 \buildkit\srcs\mapserver-6.2.0 ,您可以在运行之前定义以下内容 nmake /f makefile.vc

set MS_DIR=\buildkit\srcs\mapserver-6.2.0

python(可选)

python二进制文件路径的位置应该通过定义 PY_DIR 环境变量。它对应于您在系统上构建Python的路径。的位置 pythonXX.lib 文件应通过设置 PY_LIBRARY 环境变量。

例如,如果您在 \buildkit\srcs\Python-2.7 ,您可以在运行之前定义以下内容 nmake /f makefile.vc

set PY_DIR=\buildkit\srcs\Python-2.7
set PY_LIBRARY=\buildkit\srcs\Python-2.7\PCBuild\python27.lib

javascript(可选)

libmozjs的位置应该通过定义 JS_DIR 环境变量。它对应于您在系统上构建libmozjs的路径,它假定头部和 mozjs185-1.0.lib 文件在此目录中可用。

例如,如果您在 \buildkit\srcs\js-1.8.5 ,您可以在运行之前定义以下内容 nmake /f makefile.vc

set JS_DIR=\buildkit\srcs\js-1.8.5

PHP(可选)

应通过定义 PHP_DIR 环境变量。它对应于您在系统上构建PHP的路径。的位置 php5embed.lib 文件应通过设置 PHP_LIB 环境变量。

例如,如果您在 \buildkit\srcs\php-5.5.10 ,您可以在运行之前定义以下内容 nmake /f makefile.vc

set PHP_DIR=\buildkit\srcs\php-5.5.10
set PHP_LIB=\buildkit\srcs\php-5.5.10\Release_TS\php5embed.lib

数据库后端(可选)

Zoo内核可以使用数据库后端来存储正在运行的服务的状态信息,为了激活此操作模式,应该定义环境变量 DB 并将其设置为任何值。因此,要激活此选项,可以在运行之前使用以下选项 nmake /f makefile.vc

set DB=activated

注解

要了解如何设置相应的数据库,请参阅 this section .

可选择编译单个服务

例如 OGR base-vect-ops 提供程序位于 zoo-project\zoo-services\ogr\base-vect-ops 目录。

  1. 首先编辑 makefile.vc 位于该目录中,并执行:

    nmake /f makefile.vc
    

    在同一个目录中, ogr_service.zo 应创建文件。

  2. 复制里面的所有文件 zoo-services\ogr\base-vect-ops\cgi-env 进入你的 cgi-bin 目录

  3. 通过以下URL测试此服务提供程序:

http://localhost/cgi-bin/zoo_loader.cgi?request=Execute&service=WPS&version=1.0.0&Identifier=Buffer&DataInputs=BufferDistance=1@datatype=interger;InputPolygon=Reference@xlink:href=http%3A%2F%2Fwww.zoo-project.org%3A8082%2Fgeoserver%2Fows%3FSERVICE%3DWFS%26REQUEST%3DGetFeature%26VERSION%3D1.0.0%26typename%3Dtopp%3Astates%26SRS%3DEPSG%3A4326%26FeatureID%3Dstates.15

浏览器中显示的响应应包含:

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