source: trunk/docs/install/installation.rst @ 950

Last change on this file since 950 was 950, checked in by djay, 10 months ago

Add documentation for the oas.cfg file and clean it a bit.

  • Property svn:keywords set to Date Author
  • Property svn:mime-type set to text/plain
File size: 15.8 KB
Line 
1.. _install-installation:
2
3Installation on Unix/Linux
4==========================
5
6To build and install ZOO-Project on your Web Server you will need 4
7steps :
8
9.. contents::
10    :local:
11    :depth: 1
12    :backlinks: top
13
14
15Build cgic
16----------
17
18Run the following commands from the ``thirds/cgic`` directory to build
19the cgic library.
20
21::
22
23   cd thirds/cgic
24   make
25
26The cgic library originaly come from `http://www.boutell.com/cgic
27<http://www.boutell.com/cgic>`_.
28
29.. warning::
30
31   You may need to edit the ``Makefile`` in case you are using a 64 bits
32   platform for building and your fcgi library is not located in ``/usr/lib64``.
33
34Install ZOO-Kernel
35------------------
36
37
38For the impatient
39.................
40
41Run the following commands from the directory where you :ref:`install-download` and extracted the ZOO Kernel source code in order to build the ``zoo_loader.cgi`` CGI program with default options.
42
43::
44
45   cd zoo-project/zoo-kernel
46   autoconf 
47   ./configure
48   make
49   make install
50
51This should produce executables for the *zoo_loader.cgi* CGI program
52(located per default in ``/usr/lib/cgi-bin/``) and a shared library
53``libzoo_service``  (located per default in ``/usr/local/lib``).
54
55.. warning::
56
57   Edit ZOO-Kernel installation settings in the ``main.cfg`` file (set
58   ``tmpPath`` and ``tmpUrl`` to fit your web server configuration).
59
60
61Configure options
62.................
63
64This section provides information on :ref:`kernel_index` configure options. It is recommanded to also read the :ref:`kernel_config` section for configuration technical details.
65
66
67Here is the list of available options in the same order as returned by
68``./configure --help`` command:
69
70.. contents::
71    :local:
72    :depth: 2
73    :backlinks: top
74
75Specific CGI Directory
76**********************
77
78In the case your ``cgi-bin`` is not located in ``/usr/lib/`` as it is
79assumed per default, then you can specify a specific target location
80by using the following option:
81
82.. code::
83
84    ./configure --with-cgi-dir=/Lbrary/WebServer/CGI-Executables
85
86This way, when you will run the ``make install`` command, the
87ZOO-Kernel will be deployed in the specified directory (so,
88`/Lbrary/WebServer/CGI-Executables`` in this example).
89
90Specific main.cfg location  (Optional)
91**************************************
92
93Per default, the ZOO-Kernel search for the ``main.cfg`` file from its
94installation directory but, in case you want to store this file in
95another place, then you can use the ``--with-etc-dir`` option so it
96will search for the ``main.cfg`` file in the ``sysconfdir`` directory.
97
98For instance, you can define that the directory to store the
99``main.cfg`` file is the ``/etc/zoo-project`` directory, by using the
100following command:
101
102.. code::
103
104    ./configure --with-etc-dir=yes --sysconfdir=/etc/zoo-project
105
106
107.. _zoo_install_db_backend:
108
109Use a Database Backend (Optional)
110**********************************
111
112If you want to share the ongoing informations of running services
113between various ZOO-Kernel instances then you should use this
114option: ``--with-db-backend``. This way, both the *GetStatus*,
115*GetResult* and *Dismiss* requests can be run from any host accessing
116the same database. Obviously, this will require that the ZOO-Kernel is
117able to access the Database server. To learn how to configure this
118connection and how to create this database please refer to :ref:`[1]
119<zoo_activate_db_backend>` and :ref:`[2] <zoo_create_db_backend>`
120respectively.
121
122.. note::
123    By now, the ZOO-Kernel is not able to handle correctly the
124    *Dismiss* request from any host. Nevertheless, it will provide
125    valid response from any host, but only the host which is really
126    handling the service will be able to stop it and remove all the
127    linked files.
128
129.. _zoo_create_db_backend:
130
131To create a new database to be used by the ZOO-Kernel, you have
132to load the `schema.sql
133<http://zoo-project.org/trac/browser/trunk/zoo-project/zoo-kernel/sql/schema.sql>`_
134file. For instance, you may run the following:
135
136.. code::
137
138    createdb zoo_project
139    psql zoo_project -f zoo-project/zoo-kernel/sql/schema.sql
140
141.. note::
142    You can choose another schema to store ZOO-Kernel specific
143    informations. In such a case, you would need to edit the
144    schema.sql file to uncomment line `33
145    <http://zoo-project.org/trac/browser/trunk/zoo-project/zoo-kernel/sql/schema.sql#L33>`_
146    and `34
147    <http://zoo-project.org/trac/browser/trunk/zoo-project/zoo-kernel/sql/schema.sql#L34>`_.
148
149.. _zoo_create_metadb:
150
151Metadata Database (Optional)
152*****************************
153
154
155It is possible to use a PostgreSQL database to store metadata
156information about WPS Services. This support is optional and require
157to be activated by using the ``--with-metadb=yes`` option.
158
159To create the database for storing the metadata informations about the
160WPS Services, you may use the following command:
161
162.. code::
163
164    createdb zoo_metadb
165    psql zoo_metadb -f zoo-project/zoo-kernel/sql/zoo_collectiondb.sql
166
167In case you want to convert an existing zcfg file then, you can use
168the ``zcfg2sql`` tool from the command line. It can be found in
169``thirds/zcfg2sql`` and can be build simply by running the ``make``
170command. After compilation you only need to give it the path of the
171zcfg file you want to obtain the SQL queries required to store the
172metadata informations in the database rather than in zcfg file.
173
174For instance you may use the following command:
175
176.. code::
177
178    #Direct import in the zoo_metadb database
179    ./zcfg2sql /Path/To/MyZCFGs/myService.zcfg | psql zoo_metadb
180    #Create a SQL file for a futur import
181    ./zcfg2sql /Path/To/MyZCFGs/myService.zcfg > myService.sql
182
183
184
185YAML Support (Optional)
186************************
187
188If ``yaml.h`` file is not found in your ``/usr/include`` directory and
189``libyaml.so`` is not found in ``/usr/lib``, a ``--with-yaml`` option
190can be used to specify its location. For instance, if the header file
191lies in ``/usr/local/include`` and the shared library is located in
192``/usr/local/lib``, you may use the following command:
193
194::
195
196  $ ./configure --with-yaml=/usr/local
197
198
199FastCGI Support (Required)
200***************************
201
202If your FastCGI library is not available in the default search path, a
203``--with-fastcgi`` option can be used to specify its location. For
204instance, if ``libfcgi.so`` lies in ``/usr/local/lib`` which is not in
205your ``LD_SEARCH_PATH``, you may use the following command:
206
207::
208
209  $ ./configure --with-fastcgi=/usr/local
210
211
212
213GDAL Support (Required)
214************************
215
216If gdal-config program is not found in your ``PATH``, a
217``--with-gdal-config`` option can be used to specify its location. For
218instance, if ``gdal-config`` lies in ``/usr/local/bin`` which is not in
219your ``PATH``, you may use the following command:
220
221::
222
223  $ ./configure --with-gdal-config=/usr/local/bin/gdal-config
224
225
226GEOS Support (Optional)
227************************
228
229If ``geos-config`` program is not found in your ``PATH``, a
230``--with-geosconfig`` option can be used to specify its location. For
231instance, if ``geos-config`` lies in ``/usr/local/bin`` which is not in
232your ``PATH``, you may use the following command:
233
234::
235
236  $ ./configure --with-geosconfig=/usr/local/bin/geos-config
237
238
239CGAL Support (Optional)
240************************
241
242If ``CGAL/Delaunay_triangulation_2.h`` program is not found in your
243``/usr/include`` directory, a ``--with-cgal`` option can be used to
244specify its location. For instance, if the file lies in
245``/usr/local/include`` which is not in your PATH, you may use the
246following command:
247
248::
249
250  $ ./configure --with-cgal=/usr/local
251
252
253
254MapServer Support (Optional)
255*****************************
256
257
258In order to activate the WMS, WFS and WCS output support using
259MapServer, the ``--with-mapserver`` option must be used. The path to
260``mapserver-config`` which is located in the source code of MapServer
261must also be set, using the following command:
262
263::
264
265  $ ./configure --with-mapserver=/path/to/your/mapserver_config/
266
267
268Read more about the :ref:`kernel-mapserver`.
269
270XML2 Support (Required)
271************************
272
273If xml2-config program is not found in PATH, a *--with-xml2config* option can be used  to specify its location. For instance, if xml2-config is installed in ``/usr/local/bin`` which is not in PATH, you may use the following command:
274
275::
276
277  $ ./configure --with-xml2config=/usr/local/bin/xml2-config
278
279OGC API - Processing Support (Optional)
280****************************************
281
282In case you want to activate the support for `OGC API - Processing
283<https://github.com/opengeospatial/wps-rest-binding>`__, you
284can do so by using the *--with-json*: You will then need to coy the
285``oas.cfg`` file in the same directory as your ``main.cfg``. For
286instance, one may use the following command:
287
288::
289
290  $ ./configure --with-json=/usr/
291 
292Python Support (Optional)
293**************************
294
295The ``--with-python=yes`` option is required to activate the :ref:`kernel_index` Python support, using the following command:
296
297::
298
299  $ ./configure --with-python=yes
300
301This assumes that python-config is found in your ``PATH``. If not,
302then you can specify the Python installation directory using the
303following command (with Python installed in the ``/usr/local``
304directory):
305
306::
307
308  $ ./configure --with-python=/usr/local
309
310
311Python Version
312##############
313
314If multiple Python versions are available and you want to use a
315specific one, then you can use the ``--with-pyvers`` option as shown
316bellow:
317
318::
319
320  $ ./configure --with-pyvers=2.7
321
322
323.. _js-support:
324
325JavaScript Support (Optional)
326******************************
327
328In order to activate the JavaScript support for ZOO-Kernel,
329the ``--with-js=yes`` configure option must be specified. If you are using
330a "Debian-like" GNU/Linux distribution then  dpkg will be used to
331detect if the required packages are installed and you don't have to
332specify anything here. The following command is only needed (assuming
333that js_api.h and libmozjs.so are found in default directories):
334
335
336::
337
338  $ ./configure --with-js=yes
339
340If you want to use a custom installation of `SpiderMonkey
341<https://developer.mozilla.org/en/SpiderMonkey>`__ , or if you are not
342using a Debian packaging  system, then you'll have to specify the
343directory where it is installed. For  instance, if SpiderMonkey is in
344``/usr/local/``, then the following command must be used:
345
346::
347
348  $ ./configure --with-js=/usr/local
349
350
351PHP Support (Optional)
352***********************
353
354The ``--with-php=yes`` option is required to activate the
355:ref:`kernel_index` PHP support`, using the following command:
356
357::
358
359  $ ./configure --with-php=yes
360
361This assumes that ``php-config`` can be found in the ``<PATH>/bin``
362directory . So, supposing the your ``php-config`` can be found in
363``/usr/local/bin``, then use the following command:
364
365::
366
367  $ ./configure --with-php=/usr/local
368
369.. warning::
370    ZOO-Kernel optional PHP support requires a local PHP Embedded installation. Read more `here <http://zoo-project.org/trac/wiki/ZooKernel/Embed/PHP>`__.
371
372
373Java Support (Optional)
374************************
375
376In order to activate the Java support for ZOO-Kernel, the
377`--with-java` configure option must be specified and sets the
378installation path of your Java SDK. For instance,  if Java SDK is
379installed in the ``/usr/lib/jvm/java-6-sun-1.6.0.22/`` directory,
380then the following command can be used:
381
382::
383
384  $ ./configure --with-java=/usr/lib/jvm/java-6-sun-1.6.0.22/
385
386This assumes that the ``include/linux`` and ``jre/lib/i386/client/``
387subdirectories exist in ``/usr/lib/jvm/java-6-sun-1.6.0.22/``, and
388that the ``include/linux`` directory contains the ``jni.h`` headers file
389and that the ``jre/lib/i386/client/`` directory contains the ``libjvm.so``
390file.
391
392.. note::
393   You can use the `--with-java-rpath` option to produce a binary
394   aware of the libjvm location.
395
396
397.. note::
398   With Mac OS X you only have to set *macos* as the value for the
399   ``--with-java`` option to activate Java support. For example:
400
401   ::
402
403     $ ./configure --with-java=macos
404
405
406Perl Support (Optional)
407************************
408
409The ``--with-perl=yes`` option can be used for activating the
410ZOO-Kernel Perl support, as follow:
411
412::
413
414  $ ./configure --with-perl=yes
415
416This assumes that perl is found in your PATH. For instance, if Perl is
417installed in ``/usr/local`` and ``/usr/local/bin`` is not found in
418your ``PATH``, then the following command can be used (this assumes
419that ``/usr/local/bin/perl`` exists):
420
421::
422
423  $ ./configure --with-perl=/usr/local
424
425
426Orfeo Toolbox Support (Optional)
427*********************************
428
429In order to activate the optional Orfeo Toolbox support, the
430``--with-otb`` option must be used, using the following command:
431
432::
433
434  $ ./configure --with-otb=/path/to/your/otb/
435
436
437Read more about the :ref:`kernel-orfeotoolbox`.
438
439.. warning::
440    To build the Orfeo Toolbox support you will require ITK, the
441    default version of ITK is 4.5, in case you use another version,
442    please make sure to use the ``--with-itk-version`` to specificy
443    what is the version available on your system.
444
445SAGA GIS Support (Optional)
446****************************
447
448
449In order to activate the optional SAGA GIS support, the *--with-saga* option must be used, using the following command:
450
451::
452
453  $ ./configure --with-saga=/path/to/your/saga/
454
455
456Read more about the :ref:`kernel-sagagis`.
457
458.. warning::
459    In case wx-config is not in your ``PATH`` please, make sure to use
460    the ``--with-wx-config``  to specify its location.
461
462Translation support (Optional)
463******************************
464
465The ZOO-Kernel is able to translate the messages it produces in different
466natural languages. This requires that you download `the messages file
467<https://www.transifex.com/projects/p/zoo-kernel-internationalization/>`_
468translated in your language, if any. Then, for this translation
469support to work, you have to generate manually the requested file on
470your system. For instance for the French translation, you may use the
471following command:
472
473.. code::
474
475    msgfmt messagespo_fr_FR.utf8.po -o /usr/share/locale/fr/LC_MESSAGES/zoo-kernel.mo
476
477The ZOO-Kernel is also able to handle translation of
478ZOO-Services. Please, refer to :ref:`this document
479<service_translation>` for more details on the procedure to add new
480ZOO-Service translation files.
481
482.. warning::
483    The location of the final ``.mo`` file may vary depending on your
484    system setup.
485
486
487Install ZOO-Services
488--------------------
489
490.. warning::
491    We present here a global installation procedure for basics
492    ZOO-Services, for details about automatic installation of services
493    provided by :ref:`kernel-orfeotoolbox` or :ref:`kernel-sagagis`,
494    please refer to there specific documentations.
495
496Depending on the programming language used to implement the
497ZOO-Services you want to install, you will need to build a
498Services Provider. In the case of *C* and *Fotran*, you would create a
499shared library exporting the functions corresponding to all the
500ZOO-Services provided by this Services Provider. In case of *Java*,
501you will need to build a Java Class. In any other programming
502language, you should simply have to install the ServiceProvider and
503the zcfg files.
504
505If building a Shared library or a Java class is required, then you
506should find a ``Makefile`` in the service directory which is
507responsible to help you build this Services Provider. So you should
508simply run the `make` command from the Service directory to generate
509the required file.
510
511Then you simply need to copy the content of the ``cgi-env`` directory
512in ``cgi-bin``.
513
514To install the ``ogr/base-vect-ops`` Services Provider, supposing that
515your ``cgi-bin`` directory is ``/usr/local/lib`` use the following
516commands:
517
518.. code::
519
520    cd zoo-project/zoo-services/ogr/base-vect-ops
521    make
522    cp cgi-env/*.* /usr/lib/cgi-bin
523
524.. note::
525    You may also run ``make install`` directly after ``make``.
526
527
528To install the hello-py Services Provider, use the following commands:
529
530.. code::
531
532    cd zoo-project/zoo-services/hello-py/
533    cp cgi-env/* /usr/lib/cgi-bin
534
535
536Testing your installation
537-------------------------
538
539To test your installation yous should first be able to run the
540following command from the ``cgi-bin`` directory:
541
542.. code::
543
544    ./zoo_loader.cgi "request=GetCapabilities&service=WPS"
545
546
Note: See TracBrowser for help on using the repository browser.

Search

Context Navigation

ZOO Sponsors

http://www.zoo-project.org/trac/chrome/site/img/geolabs-logo.pnghttp://www.zoo-project.org/trac/chrome/site/img/neogeo-logo.png http://www.zoo-project.org/trac/chrome/site/img/apptech-logo.png http://www.zoo-project.org/trac/chrome/site/img/3liz-logo.png http://www.zoo-project.org/trac/chrome/site/img/gateway-logo.png

Become a sponsor !

Knowledge partners

http://www.zoo-project.org/trac/chrome/site/img/ocu-logo.png http://www.zoo-project.org/trac/chrome/site/img/gucas-logo.png http://www.zoo-project.org/trac/chrome/site/img/polimi-logo.png http://www.zoo-project.org/trac/chrome/site/img/fem-logo.png http://www.zoo-project.org/trac/chrome/site/img/supsi-logo.png http://www.zoo-project.org/trac/chrome/site/img/cumtb-logo.png

Become a knowledge partner

Related links

http://zoo-project.org/img/ogclogo.png http://zoo-project.org/img/osgeologo.png