Changeset 240
- Timestamp:
- Jun 16, 2011, 8:55:24 PM (14 years ago)
- Location:
- trunk/docs/kernel
- Files:
-
- 7 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/docs/kernel/installation.txt
r230 r240 4 4 ============ 5 5 6 .. contents:: Table of Contents 7 :depth: 4 8 :backlinks: top 6 This page provides documentation on how to compile then install the ZOO Kernel on Unix, Win32, and Mac OS X platforms. 9 7 10 This page provides documentation on how to compile then install the ZOO Kernel on Unix and Win32 platforms. 11 12 Obtaining the ZOO Kernel Source 13 ------------------------------- 14 15 Use the following command to get the ZOO Kernel source code through Subversion: 16 17 :: 18 19 svn checkout http://svn.zoo-project.org/svn/trunk zoo-project 20 21 For users which get a developer account, use the following: 22 23 :: 24 25 sed "s:\[tunnels\]:\[tunnels\]\nzoosvn = /usr/bin/ssh -p 1046:g" -i ~/.subversion/config 26 svn co svn+zoosvn://svn.zoo-project.org/var/svn/repos/trunk zoo-project 27 28 The first line of the instruction above defines a specific tunnel to access the svn server through 29 the SSH protocol. Indeed, the ZOO SVN server listens on the 1046 (1024+22) port rather than the default one (22). 30 31 Prerequisites 32 ------------- 33 34 The following libraries are required on your system before you can install the ZOO Kernel: 35 36 - autoconf ( http://www.gnu.org/software/autoconf/ ) 37 - cgic ( http://www.boutell.com/cgic ) 38 - cURL ( http://curl.haxx.se ) 39 - FastCGI ( http://www.fastcgi.com ) 40 - Flex & Bison ( http://flex.sourceforge.net/ http://www.gnu.org/software/bison/ ) 41 - libxml2 ( http://xmlsoft.org ) 42 - OpenSSL ( http://www.openssl.org ) 43 - Python ( http://www.python.org ) 44 45 Optional libraries include: 46 47 - PHP Embedded (optional) ( http://www.php.net ) 48 - Java SDK (optional) ( http://java.sun.com ) 49 - SpiderMonkey (optional) ( http://www.mozilla.org/js/spidermonkey/ ) 50 51 Compile libcgic 52 --------------- 53 54 The first step is to compile libcgic from the ``zoo-project/thirds`` directory. For such a task, please use 55 the following command: 56 57 :: 58 59 cd thirds/cgic206 60 make 61 62 Make sure that a ``libcgic.a`` is created in your ``zoo-project/thirds/cgic206`` directory. If yes, then 63 you can go to the next step. 64 65 On Windows, rather than using the make command, please use: 66 67 :: 68 69 nmake /f makefile.vc. 70 71 .. warning:: 72 If you don't compile libcgic first, and try to compile the ZOO Kernel, you will get an error such as *cannot find -lcgic* 73 74 Unix 75 ---- 76 77 For Unix users, the ZOO Kernel comes with a GNU autoconf "configure" script that should take care of (hopefully!) 78 all compilation issues for you. 79 80 The configure script won't work on Windows. See section :ref:`WIN32 <win32>` for details on compiling 81 on Windows systems. 82 83 For the impatient 84 ***************** 85 86 To build the ``zoo_loader.cgi`` CGI program with the default options, cd to the directory 87 where you extracted the ZOO Kernel source code package and use the following commands: 88 89 :: 90 91 $ cd zoo-kernel 92 $ autoconf 93 $ ./configure 94 $ make 95 96 Unless something went wrong, you should have executables in the current directory for the ``zoo_loader.cgi`` 97 CGI program. You can copy the ``zoo_loader.cgi`` program and the ``main.cfg`` file to your HTTP server's CGI 98 directory and start using it. 99 100 At this step your ZOO-Kernel should work. Nevertheless, don't forget to correct the main.cfg settings 101 to set ``tmpPath`` and ``tmpUrl`` to fit your web server configuration. 102 103 Configure Options 104 ***************** 105 106 Here is the list of available options as returned by *./configure --help*: 107 108 :: 109 110 --with-gdal-config=FILE specify an alternative gdal-config file 111 --with-xml2config=FILE specify an alternative xml2-config file 112 --with-python=PATH To enable python support or specify an alternative 113 directory for python installation, disabled by 114 default 115 --with-php=PATH To enable php support or specify an alternative 116 directory for php installation, disabled by default 117 --with-perl=PATH To enable perl support or specify an alternative 118 directory for perl installation, disabled by default 119 --with-java=PATH To enable java support, specify a JDK_HOME, 120 disabled by default 121 --with-js=PATH specify --with-js=path-to-js to enable js support, 122 specify --with-js on linux debian like, js support 123 is disabled by default 124 125 All the options are described in more details below. 126 127 (Required) GDAL Support 128 ^^^^^^^^^^^^^^^^^^^^^^^ 129 130 If your gdal-config program is not found in your PATH then you can use the 131 ``--with-gdal-config`` option to specify its location. For instance, let's suppose that your gdal-config 132 was installed in /usr/local/bin and this directory is not in your PATH, then you can use 133 the following command: 134 135 :: 136 137 $ ./configure --with-gdal-config=/usr/local/bin/gdal-config 138 139 (Required) XML2 Support 140 ^^^^^^^^^^^^^^^^^^^^^^^ 141 142 If your xml2-config program is not found in your PATH then you can use the 143 ``--with-xml2config`` option to specify its location. For instance, let's suppose that 144 your xml2-config was installed in /usr/local/bin and this directory is not in your PATH, 145 then you can use the following command: 146 147 :: 148 149 $ ./configure --with-xml2config=/usr/local/bin/xml2-config 150 151 (Optional) Python Support 152 ^^^^^^^^^^^^^^^^^^^^^^^^^ 153 154 If you want to activate Python support for the ZOO Kernel then you will have to use the 155 ``--with-python`` option. If your python-config program is found in your PATH then you 156 don't have to specify the path where Python was installed, such as: 157 158 :: 159 160 $ ./configure --with-python 161 162 This assumes that python-config is found in your PATH. 163 164 In the case that your python-config is not found in your PATH, then you can specify the Python 165 installation directory you are using. For instance, let's suppose that you installed 166 Python in /usr/local, then you can use the following command: 167 168 :: 169 170 $ ./configure --with-python=/usr/local 171 172 This assumes that /usr/local/bin/python-config exists. 173 174 (Optional) PHP Support 175 ^^^^^^^^^^^^^^^^^^^^^^ 176 177 To be able to activate PHP support for the ZOO Kernel you'll need to get a local PHP Embedded 178 installation; for more information about the required configure options when compiling PHP you 179 can refer to this page : 180 181 http://zoo-project.org/trac/wiki/ZooKernel/Embed/PHP 182 183 If you want to activate the PHP support for the ZOO Kernel then you will have to use the 184 ``--with-php`` option. If your php-config program is found in your PATH then you don't have 185 to specify the path where PHP was installed, then you can use the following commnd: 186 187 :: 188 189 $ ./configure --with-php 190 191 This assumes that php-config is found in your PATH. 192 193 In the case that your php-config is not found in your PATH, then you can specify the PHP installation 194 directory you are using. For instance, let's suppose that you installed PHP in /usr/local, 195 then you can use the following command: 196 197 :: 198 199 $ ./configure --with-php=/usr/local 200 201 This assumes that /usr/local/bin/php-config exists. 202 203 (Optional) Perl Support 204 ^^^^^^^^^^^^^^^^^^^^^^^ 205 206 If you want to activate Perl support for the ZOO Kernel then you will have to use the 207 ``--with-perl`` option. If you do not set any value to this option, then the perl program will 208 be searched in your PATH. So in such a case, you can use the following command: 209 210 :: 211 212 $ ./configure --with-perl 213 214 This assumes that perl is found in your PATH. 215 216 In the other case, for custom Perl installations, you can set the installation directory. For instance, 217 let's suppose that you installed Perl in /usr/local and /usr/local/bin is not in your PATH, 218 then you can use the following command: 219 220 :: 221 222 $ ./configure --with-perl=/usr/local 223 224 This assumes that /usr/local/bin/perl exists. 225 226 (Optional) Java Support 227 ^^^^^^^^^^^^^^^^^^^^^^^ 228 229 If you want to activate Java support for the ZOO Kernel then you will have to use the 230 ``--with-java`` option and set the installation path of your Java SDK. For instance, 231 let's suppose that your Java SDK was installed in the /usr/lib/jvm/java-6-sun-1.6.0.22/ directory, 232 then you can use the following command: 233 234 :: 235 236 $ ./configure --with-java=/usr/lib/jvm/java-6-sun-1.6.0.22/ 237 238 This assumes that the include/linux and jre/lib/i386/client/ subdirectories exist in 239 /usr/lib/jvm/java-6-sun-1.6.0.22/, include/linux contains the jni.h headers file and 240 jre/lib/i386/client/ contains the libjvm.so file. 241 242 .. note:: 243 With Mac OS X you only have to set ``macos`` as the value for the ``--with-java`` option 244 to activate Java support. For example: 245 246 :: 247 248 $ ./configure --with-java=macos 249 250 (Optional) JavaScript Support 251 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 252 253 If you want to activate JavaScript support for the ZOO Kernel then you will have to use 254 the ``--with-js`` option. If you are using a "Debian-like" GNU/Linux distribution then 255 dpkg will be used to detect if the required packages are installed and you don't have to 256 specify anything here, so you can use the following command: 257 258 :: 259 260 $ ./configure --with-js 261 262 This assumes that js_api.h and libmozjs.so are found in default directories. 263 264 If you have a custom installation of SpiderMonkey or you are not using a Debian packaging 265 system, then you'll have to specify the directory where you installed it. For 266 instance, let's suppose that you installed your SpiderMonkey in /usr, then you'll 267 have to use the following command: 268 269 :: 270 271 $ ./configure --with-js=/usr 272 273 This assumes that the /usr/include/js exists and contains the js_api.h headers file and 274 /usr/lib contains libmozjs.so file. 275 276 .. _win32: 277 278 OpenSUSE 279 ******** 280 281 Zoo-Kernel is maintained as a package in `OpenSUSE Build Service (OBS) <https://build.opensuse.org/package/show?package=zoo-kernel&project=Application%3AGeo>`__. 282 This way, rpm's are provided for all versions of openSUSE Linux (11.2, 11.3, 11.4, Factory). 283 284 Stable Releases 285 ^^^^^^^^^^^^^^^ 286 287 For installing Zoo-Kernel in openSUSE there are 3 ways available: 288 289 One Click Installer 290 ################### 291 292 One-click installer that can be found `here <http://software.opensuse.org/search?q=zoo-kernel&baseproject=openSUSE%3A11.4&lang=en&exclude_debug=true>`__. 293 For openSUSE 11.4 this is the direct `link <http://software.opensuse.org/ymp/Application:Geo/openSUSE_11.4/zoo-kernel.ymp?base=openSUSE%3A11.4&query=zoo-kernel>`__. 294 295 Yast Software Manager using a GUI 296 ################################# 297 298 The `Application:Geo <http://download.opensuse.org/repositories/Application:/Geo/>`__ repository has to be added 299 to the Software Repositories and then Zoo-kernel can be found in Software Management through search. 300 301 Command line (as root for openSUSE 11.4) 302 ######################################## 303 304 :: 305 306 zypper ar http://download.opensuse.org/repositories/Application:/Geo/openSUSE_11.4/ 307 zypper refresh 308 zypper install zoo-kernel 309 310 Unstable Version 311 ^^^^^^^^^^^^^^^^ 312 313 The latest development version of ZOO-Kernel can be found in OBS under the project `home:tzotsos <https://build.opensuse.org/project/show?project=home%3Atzotsos>`__. 314 ZOO-Kernel packages are maintained and tested there before being released to the Application:Geo repository. 315 316 Installation methods are identical as the stable version. Make sure to use `this <http://download.opensuse.org/repositories/home:/tzotsos/>`__ repository instead. 317 318 Command line installation (as root for openSUSE 11.4) 319 ##################################################### 320 321 :: 322 323 zypper ar http://download.opensuse.org/repositories/home:/tzotsos/openSUSE_11.4/ 324 zypper refresh 325 zypper install zoo-kernel 326 zypper install zoo-kernel-grass-bridge 327 328 Additionally, there is the option of adding the zoo-wps-grass-bridge package. This option will automatically install grass7 (svn trunk). 329 330 Try the Installation 331 ^^^^^^^^^^^^^^^^^^^^ 332 333 - http://localhost/cgi-bin/zoo_loader.cgi?ServiceProvider=&metapath=&Service=WPS&Request=GetCapabilities&Version=1.0.0 334 - http://localhost/cgi-bin/zoo_loader.cgi?ServiceProvider=&metapath=&Service=WPS&Request=DescribeProcess&Version=1.0.0&Identifier=HelloPy 335 - http://localhost/cgi-bin/zoo_loader.cgi?ServiceProvider=&metapath=&Service=WPS&Request=Execute&Version=1.0.0&Identifier=HelloPy&DataInputs=a=myname 336 337 CentOS 338 ****** 339 340 .. note:: 341 This documentation was created thanks to Guillaume Sueur from Neogeo Technologies which took time to test 342 installing the ZOO-Kernel on a CentOS 5.5 environment. 343 344 Requirements 345 ^^^^^^^^^^^^ 346 347 Install some standard tools to be able to run ZOO-Kernel on your platform : 348 349 :: 350 351 yum install apache2 352 yum install build-essentials 353 yum install gcc-c++ 354 yum install zlib-devel 355 yum install libxml2-devel 356 yum install bison 357 yum install openssl 358 yum install python-devel 359 yum install subversion 360 361 Compile then install FastCGI library from source 362 363 :: 364 365 wget http://www.fastcgi.com/dist/fcgi.tar.gz 366 tar xzf fcgi-2.4.0.tar.gz 367 ./configure 368 make 369 make install 370 echo /usr/local/lib >> /etc/ld.so.conf.d/local.conf 371 ldconfig 372 373 Compile then install the autoconf tools : 374 375 :: 376 377 wget http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz 378 tar xzf autoconf-latest.tar.gz 379 ./configure --prefix=/usr 380 make 381 make install 382 383 Compile then install the flex tool : 384 385 :: 386 387 wget http://downloads.sourceforge.net/project/flex/flex/flex-2.5.35/flex-2.5.35.tar.gz?r=http%3A%2F%2Fflex.sourceforge.net%2F&ts=1292529005&use_mirror=switch 388 tar xzf flex-2.5.35.tar.gz 389 cd flex-2.5.35 390 ./configure --prefix=/usr 391 make 392 make install 393 394 Using the curl provided in the CentOS distribution will produce a ZOO-Kernel unable to run any 395 Service. Indeed, some segmentation faults occur when trying to run ``Execute`` requests on the ZOO-Kernel, 396 compiling the ZOO-Kernel setting ``USE_GDB`` flag in the ``CFLAGS`` of your ``Makefile`` will let you run 397 ZOO-Kernel from gdb and be able to get more information on what is going wrong with your ZOO-Kernel. 398 Doing this we can figure out that code on `line 173 <http://zoo-project.org/trac/browser/trunk/zoo-kernel/ulinet.c#L173>`__ 399 and `line 175 <http://zoo-project.org/trac/browser/trunk/zoo-kernel/ulinet.c#L175>`__ have to be commented in the 400 ``ulinet.c`` file to get a ZOO-Kernel working using the curl available in CentOS (curl version 7.15.5). 401 If you don't apply the modification, you will get an error from a gdb session pointing 402 segfault in ``Curl_cookie_clearall``. 403 404 You can optionally compile then install curl from source : 405 406 :: 407 408 wget http://curl.haxx.se/download/curl-7.21.3.tar.bz2 409 tar xjf curl-7.21.3.tar.bz2 410 cd curl-7.21.3 411 ./configure --prefix=/usr 412 make 413 make install 414 415 Compile then install Python : 416 417 :: 418 419 wget http://www.python.org/ftp/python/2.6.6/Python-2.6.6.tar.bz2 420 tar xjf Python-2.6.6.tar.bz2 421 cd Python-2.6.6 422 ./configure 423 make 424 make install 425 426 Compile then install your own GDAL library : 427 428 :: 429 430 wget http://download.osgeo.org/gdal/gdal-1.7.3.tar.gz 431 tar xzf gdal-1.7.3.tar.gz 432 cd gdal-1.7.3 433 ./configure # add your options here 434 make 435 make install 436 437 Install the Sun JAVA SDK into ``/usr/share`` then use the following command to ensure that the ``libjvm.so`` 438 will be found at runtime from any context. 439 440 :: 441 442 echo /usr/share/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/client/ >> /etc/ld.so.conf.d/jvm.conf 443 ldconfig 444 445 Compile ZOO-Kernel and ZOO-Services 446 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 447 448 Compile then install ZOO-Kernel and your first ZOO-Services. 449 450 First of all, compile the cgic library providen in the SVN source tree: 451 452 :: 453 454 svn co http://svn.zoo-project.org/svn/trunk zoo-project 455 cd zoo-project/thirds/cgic206 456 make 457 458 Compile then install ZOO-Kernel. 459 460 :: 461 462 cd ../../zoo-kernel 463 ./configure --with-java=/usr/share/jdk1.6.0_23/ --with-python 464 make zoo_loader.cgi 465 cp main.cfg /var/www/cgi-bin/ 466 cp zoo_loader.cgi /var/www/cgi-bin/ 467 468 Compile then deploy your first ZOO-ServicesProviders (simple HelloPy, line 1 and 2, and the OGR base-vect-ops 469 ServiceProvider, line 3 to 6): 470 471 :: 472 473 cp ../zoo-services/hello-py/cgi-env/*.zcfg /var/www/cgi-bin/ 474 cp ../zoo-services/hello-py/test_service.py /var/www/cgi-bin/ 475 cd ../ogr/base-vect-ops/ 476 make 477 cp ./cgi-env/* /var/www/cgi-bin/ 478 vi /var/www/cgi-bin/main.cfg --> set your own informations here 479 480 To ensure that the ``libjvm.so`` will be found from apache, please restart it : 481 482 :: 483 484 /etc/init.d/httpd restart 485 486 Testing your ZOO-Kernel 487 ^^^^^^^^^^^^^^^^^^^^^^^ 488 489 Test your ZOO-Kernel from command line: 490 491 :: 492 493 cd /var/www/cgi-bin 494 ./zoo_loader.cgi "request=Execute&service=WPS&version=1.0.0&Identifier=HelloPy&DataInputs=a=Djay" 495 ./zoo_loader.cgi "request=Execute&service=WPS&version=1.0.0&Identifier=Buffer&DataInputs=BufferDistance=1@datat 496 497 Debian / Ubuntu 498 *************** 499 500 .. note:: 501 An Ubuntu 10.4 with ZOO virtual image is available at http://www.zoo-project.org/Ubuntu10.4_ZOO.zip 502 (root: ZOO.test) 503 504 The following instructions were tested on Debian Squeeze, Ubuntu 10.04 and Ubuntu 10.10 505 506 Installation Workflow 507 ^^^^^^^^^^^^^^^^^^^^^ 508 509 - install some dependencies 510 511 :: 512 513 sudo apt-get install flex bison libfcgi-dev libxml2 libxml2-dev curl openssl autoconf checkinstall 514 515 - download ZOO source 516 517 :: 518 519 svn checkout http://svn.zoo-project.org/svn/trunk zoo-project 520 521 - install cgic from packages 522 523 :: 524 525 cd zoo-project/thirds/cgic206/ 526 527 - change the path of installation 528 529 :: 530 531 nano Makefile 532 - LIBS=-L./ -lcgic ../fcgi-2.4.0/libfcgi/.libs/libfcgi.a --> LIBS=/path/to/libfcgi.a 533 - cp libcgic.a ../../dist/lib --> cp libcgic.a /usr/lib 534 - cp cgic.h ../../dist//include --> cp cgic.h /usr/include 535 - @echo libcgic.a is in ../../dist/lib and cgic.h is in ../../dist//include. --> @echo libcgic.a is in /usr/lib and cgic.h is in /usr/include. 536 537 - compile 538 539 :: 540 541 make 542 543 - install 544 545 :: 546 547 sudo make install 548 549 - go to kernel path 550 551 :: 552 553 cd ../../zoo-kernel/ 554 555 - create configure file 556 557 :: 558 559 autoconf 560 561 - run configure 562 563 .. note:: 564 In Ubuntu 10.04 libmozjs-dev does not exist, so to use JS you can compile `SpiderMonkey <https://developer.mozilla.org/en/SpiderMonkey>`__ or use the xulrunner-dev package 565 which includes SpiderMonkey. 566 For PHP, you must make sure to compile PHP with `--enable-embed <http://www.zoo-project.org/trac/wiki/ZooKernel/Embed/PHP#ConfigureandInstallPHPEmbedlibrary>`__. 567 568 :: 569 570 ./configure --with-java=/path/to/java 571 572 to JavaScript with XulRunner SpiderMonkey you have to edit configure file. 573 - JS_CPPFLAGS="-I$JSHOME/include/js" --> JS_CPPFLAGS="-I$JSHOME/include" 574 - JS_LDFLAGS="-L$JSHOME/lib -ljs -lm" --> JS_LDFLAGS="-L$JSHOME/lib -lmozjs -lm" 575 - JS_LIB="js" --> JS_LIB="mozjs" 576 577 ./configure --with-js=/usr/lib/xulrunner-devel.1.9.2.n 578 579 - compile 580 581 :: 582 583 make zoo_loader.cgi 584 585 - copy necessary files into your cgi-bin 586 587 :: 588 589 sudo cp main.cfg /usr/lib/cgi-bin 590 sudo cp zoo_loader.cgi /usr/lib/cgi-bin 591 592 - Install ZOO ServiceProvider 593 594 :: 595 596 sudo cp ../zoo-services/hello-py/cgi-env/*.zcfg /usr/lib/cgi-bin 597 sudo cp ../zoo-services/hello-py/*.py /usr/lib/cgi-bin/ 598 599 - change some paths in the main.cfg 600 601 :: 602 603 sudo nano /usr/lib/cgi-bin/main.cfg 604 - serverAddress = http://127.0.0.1 605 - providerSite = http://127.0.0.1 8 .. toctree:: 9 :maxdepth: 2 10 11 install-prerequisites 12 install-unix 13 install-opensuse 14 install-centos 15 install-debian 16 install-windows 17 install-mac 606 18 607 19 608 - try the installation609 610 - http://127.0.0.1/cgi-bin/zoo_loader.cgi?ServiceProvider=&metapath=&Service=WPS&Request=GetCapabilities&Version=1.0.0611 - http://127.0.0.1/cgi-bin/zoo_loader.cgi?ServiceProvider=&metapath=&Service=WPS&Request=DescribeProcess&Version=1.0.0&Identifier=HelloPy612 - http://127.0.0.1/cgi-bin/zoo_loader.cgi?ServiceProvider=&metapath=&Service=WPS&Request=Execute&Version=1.0.0&Identifier=HelloPy&DataInputs=a=myname613 614 .. note::615 If you have some problem in the execute request, add the following to ``main.cfg``:616 617 ::618 619 [env]620 PYTHONPATH=<YOUR_PYTHONPATH>621 622 Windows623 -------624 625 Using OSGeo4W626 *************627 628 ZOO4W is the easiest way to use ZOO Kernel on Windows platforms. It is based on the use of OSGeo4W, and some third-party libs.629 Please follow the steps bellow to install ZOO Kernel. Note that Win32 support for ZOO Kernel is still under development and630 that some bugs may still appear.631 632 Install OSGeo4W633 ^^^^^^^^^^^^^^^634 635 Download the OSGeo4W installer from http://trac.osgeo.org/osgeo4w/, and install it with all the dependencies needed by your636 services (GDAL/OGR for example). The following libs are required: FastCGI, libxml, Python, cURL.637 638 Install other tools and libraries639 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^640 641 After installing OSGeo4W on your platform you'll need more GNU tools and libraries. `This package <http://www.zoo-project.org/dl/tool-win32.zip>`__642 contains full dependencies required to compile on WIN32 platform and this one contains `full runtime dependencies to place <http://www.zoo-project.org/dl/zoo-runtime.zip>`__643 in your c:\OSGeo4W\bin.644 645 Download and Install ZOO Kernel646 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^647 648 Download the `binary version <http://www.zoo-project.org/dl/zoo_loader.cgi>`__ of the ZOO Kernel for WIN32 then place it in the649 ``C:\OSGeo4W\bin`` directory. Don't forget to place a ``main.cfg`` file in the same directory, you can use a modified copy of650 `this file <http://www.zoo-project.org/trac/browser/trunk/zoo-kernel/main.cfg>`__.651 652 Deploy ZOO Services Providers653 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^654 655 Your can use the binary version of the OGR Services Provider available from `here <http://www.zoo-project.org/dl/zoo-services-win32.zip>`__.656 Then place the two libraries with their respective .zcfg files in your local ``C:\OSGeo4W\bin`` directory.657 658 Testing659 ^^^^^^^660 661 Now you should be able to query your local ZOO Kernel.662 663 Compiling Using Your Own Libraries664 **********************************665 666 The following steps are for use with the Microsoft Visual Studio compiler (and tested with MSVC 2008).667 668 1. Make sure the gnuwin32 tools ``bison.exe`` and ``flex.exe`` are found in your path. You can download the GNUwin32 tools `here <http://www.zoo-project.org/dl/tool-win32.zip>`__.669 670 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 <http://www.zoo-project.org/trac/attachment/ticket/27/nmake.opt>`__.671 You can also find a modified ``zoo-project\zoo-kernel\makefile.vc`` file `here <http://www.zoo-project.org/trac/attachment/ticket/27/makefile.vc>`__.672 673 3. Execute:674 675 ::676 677 nmake /f makefile.vc678 679 4. A file ``zoo_loader.cgi`` should be created. Note that if another file named ``zoo_loader.cgi.manifest`` is also created, you680 will have to run another command:681 682 ::683 684 nmake /f makefile.vc embed-manifest685 686 5. Copy the files ``zoo_loader.cgi`` and ``main.cfg`` into your cgi-bin directory.687 688 6. Using the command prompt, test the zoo-kernel by executing the following command:689 690 ::691 692 D:\ms4w\Apache\cgi-bin> zoo_loader.cgi693 694 which should display a message such as:695 696 ::697 698 Content-Type: text/xml; charset=utf-8699 Status: 200 OK700 701 <?xml version="1.0" encoding="utf-8"?>702 <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">703 <ows:Exception exceptionCode="MissingParameterValue">704 <ows:ExceptionText>Parameter <request> was not specified</ows:ExceptionText>705 </ows:Exception>706 </ows:ExceptionReport>707 708 7. Edit the file ``cgi-bin/main.cfg`` so that it contains values describing your WPS service. An example of such709 a file running on Windows is:710 711 ::712 713 [main]714 encoding = utf-8715 version = 1.0.0716 serverAddress = http://localhost/717 lang = en-CA718 tmpPath=/ms4w/tmp/ms_tmp/719 tmpUrl = /ms_tmp/720 721 [identification]722 title = The Zoo WPS Development Server723 abstract = Development version of ZooWPS. See http://www.zoo-project.org724 fees = None725 accessConstraints = none726 keywords = WPS,GIS,buffer727 728 [provider]729 providerName=Gateway Geomatics730 providerSite=http://www.gatewaygeomatics.com731 individualName=Jeff McKenna732 positionName=Director733 role=Dev734 adressDeliveryPoint=1101 Blue Rocks Road735 addressCity=Lunenburg736 addressAdministrativeArea=False737 addressPostalCode=B0J 2C0738 addressCountry=ca739 addressElectronicMailAddress=info@gatewaygeomatics.com740 phoneVoice=False741 phoneFacsimile=False742 743 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=WPS744 745 The response should be displayed in your browser, such as:746 747 ::748 749 <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">750 <ows:ServiceIdentification>751 <ows:Title>The Zoo WPS Development Server</ows:Title>752 <ows:Abstract>753 Development version of ZooWPS. See http://www.zoo-project.org754 </ows:Abstract>755 <ows:Keywords>756 <ows:Keyword>WPS</ows:Keyword>757 <ows:Keyword>GIS</ows:Keyword>758 <ows:Keyword>buffer</ows:Keyword>759 </ows:Keywords>760 <ows:ServiceType>WPS</ows:ServiceType>761 <ows:ServiceTypeVersion>1.0.0</ows:ServiceTypeVersion>762 ...763 764 Optionally Compile Individual Services765 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^766 767 An example could be the ``OGR base-vect-ops`` provider in the ``zoo-project\zoo-services\ogr\base-vect-ops`` directory.768 769 1. Edit the makefile.vc located in that directory, and execute:770 771 ::772 773 nmake /f makefile.vc774 775 Inside that same directory, the file ``cgi-env\ogr_service.zo`` should be created.776 777 2. Copy all of the files inside ``zoo-services\ogr\base-vect-ops\cgi-env`` into your cgi-bin directory778 779 3. Test this service provider through the following URL:780 781 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.15782 783 The response displayed in your browser should contain:784 785 ::786 787 <wps:ProcessSucceeded>Service "Buffer" run successfully.</wps:ProcessSucceeded>788 789 Mac OS X790 --------791 792 Using the Installer793 *******************794 795 1. To install a default build of the ZOO-Project on your Mac OS X computer use the `installer <http://www.zoo-project.org/trac/raw-attachment/wiki/ZooDocumentation/ZOOKernel/MacOSX_installation/ZOO-Project-Installer.pkg>`__.796 797 .. note::798 The installer assumes that you are using the distributed Apache2 version that comes with your Mac. The installer will799 place ZOO-Kernel and ZOO-Services into your cgi-bin at ``/Library/WebServer/CGI-Executables``, and the zoo-demo folder800 will be placed within your document root at ``/Library/WebServer/Documents``801 802 2. Make sure that your Apache server is running, and then access the ZOO Project Demo at:803 804 http://localhost/zoo-demo/spatialtools.html805 806 3. To add additional services, please follow the following intructions to compile your own ZOO Project instance.807 808 Compiling from Source809 *********************810 811 1. Install `Xcode <http://developer.apple.com/technologies/tools/>`__.812 813 2. Before you start downloading the ZOO-Project source code, you'll need to install some tools required to814 compile ZOO-Kernel properly.815 816 First of all install PROJ, GEOS and GDAL frameworks from `here <http://www.kyngchaos.com/software/frameworks>`__.817 818 At this step, you should get the following directories on your local hard drive :819 820 ::821 822 /Library/Frameworks/PROJ.framework823 /Library/Frameworks/GEOS.framework824 /Library/Frameworks/GDAL.framework825 826 3. Then, create a ``src`` directory and inside that directory download the `gettext source code <http://www.gnu.org/software/gettext/#TOCdownloading>`__ and uncompress it.827 828 now, compile gettext with the following commands to produce a universal binary :829 830 ::831 832 cd gettext-0.18.1.1833 CFLAGS="-O -g -arch i386 -arch ppc -arch x86_64" \834 LDFLAGS="-arch i386 -arch ppc -arch x86_64" ./configure835 make836 sudo make install837 838 4. Compile and install your ZOO-Kernel839 840 - Download source from SVN, and use the following command to compile libcgic :841 842 ::843 844 svn co http://svn.zoo-project.org/svn/trunk zoo845 cd zoo/thirds/cgic206846 make847 848 - If you produced the ``libcgic.a`` file, you can run ``autoconf`` and then ``configure`` from zoo-kernel directory.849 850 ::851 852 cd zoo/zoo-kernel853 autoconf854 ./configure --with-python --with-java=macos \855 --with-gdal-config=/Library/Frameworks/GDAL.framework/Versions/1.8/Programs/gdal-config856 857 Obviously, if you don't need Python or Java support then you should remove the corresponding configure option.858 859 .. note::860 Note that we used the --with-java=macos configure option. Due to the generic location of the JDK on all861 Mac OS X platforms, you don't have to provide its full path.862 863 - Now, run the following commands to compile and deploy your ZOO-Kernel on your Apache server :864 865 ::866 867 make868 cp zoo_loader.cgi main.cfg /Library/WebServer/CGI-Executables869 870 You should be ready to request your ZOO-Kernel installation using the following link : http://localhost/cgi-bin/zoo_loader.cgi?request=GetCapabilities&service=WPS .871 872 If everything is ok, you can follow the next steps to deploy new Services Providers.873 874 .. note::875 If you are using your own libs (not the default libs on your system) then you must take care to create876 universal versions of those libs, as the ZOO-Kernel will try to create a universal binary. If you are877 not following this advice, you might receive compile errors of ``symbol(s) not found for architecture ppc`` or ``file was built for878 unsupported file format which is not the architecture being linked (ppc)``.879 880 Deploy the OGR Services Provider881 ********************************882 883 Requirements884 ^^^^^^^^^^^^885 886 Before your try to use any service, please set the correct path in the ``main.cfg`` for tmpPath and tmpUrl.887 888 You can use the following setup :889 890 ::891 892 tmpPath = /Library/WebServer/Documents/tmp893 tmpUrl = ../../tmp894 895 Obviously you'll then need to create this directory, using the following command :896 897 ::898 899 mkdir /Library/WebServer/Documents/tmp900 901 C Version902 ^^^^^^^^^903 904 To compile the base-vect-ops ServicesProvider you'll need to edit the Makefile in *zoo/zoo-services/ogr/base-vect-ops/*905 directory. Add "-I/Library//Frameworks/GEOS.framework/Versions/3/Headers/" to the CFLAGS value on the first line.906 To compile, add GDAL framework to the PATH environmenet variable, to ensure that gdal-config tool will be found,907 run make and then copy cgi-env files in the /Library/WebServer/CGI-Executables directory.908 909 ::910 911 cd zoo/zoo-services/ogr/base-vect-ops/912 export PATH=$PATH:/Library/Frameworks/GDAL.framework/Versions/1.7/Programs/913 make914 cp cgi-env/* /Library/WebServer/CGI-Executables915 916 You can test using this `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>`__917 if everything is ok with your setup.918 919 Python Version920 ^^^^^^^^^^^^^^921 922 **Requirements**923 924 First of all run python from a Terminal.app and try the following import from the python interpreter :925 926 ::927 928 import osgeo.ogr929 import libxml2930 931 If you get an issue when importing the libxml2 module from your python interpreter then that means you932 need to install the Python support for the libxml2 library which is already installed on your Mac OS X environment.933 To accomplish this, you have first to determine what version of libxml2 is installed on your platform, using the following command:934 935 xml2-config --version936 937 Download the source corresponding to your version (i.e. on 10.6.6 you get 2.7.3) from the libxml2938 `download page <ftp://xmlsoft.org/libxml2/>`__ into your ``src`` directory then uncompress it.939 940 Use the following command to install the python support :941 942 ::943 944 cd src/libxml2-2.7.3/python/945 python setup.py install946 947 **Deploy OGR Python Services Provider**948 949 - Now copy the ``zoo-services/ogt/base-vect-ops/cgi-env`` files into ``/Library/WebServer/CGI-Executables``.950 951 You can test using this `url <http://localhost/cgi-bin/zoo_loader.cgi?request=Execute&service=WPS&version=1.0.0&Identifier=BufferPy&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>`__952 if everything is ok with your setup.953 954 Test using Local Demo Page955 **************************956 957 - Download the `OpenLayers <http://openlayers.org>`__ library and uncompress it in your personal Sites directory958 (located in your home directory).959 960 - Rename the OpenLayers directory as openlayers.961 962 - Download this `zip archive <http://www.zoo-project.org/trac/raw-attachment/wiki/ZooDocumentation/ZOOKernel/MacOSX_installation/zoo-demo.zip>`__963 and then uncompress it in your personal Sites directory.964 965 - Load your local demo pages using urls similar to the following (replacing MyUserName by your MacOS user name) :966 967 * http://localhost/~MyUserName/zoo-demo/spatialtools.html968 * http://localhost/~MyUserName/zoo-demo/spatialtools-py.html969 970 971
Note: See TracChangeset
for help on using the changeset viewer.