.. _install-installation: Installation on Unix/Linux ========================== To build and install ZOO-Project on your Web Server you will need 4 steps : .. contents:: :local: :depth: 1 :backlinks: top Build cgic ---------- Run the following commands from the ``thirds/cgic`` directory to build the cgic library. :: cd thirds/cgic make The cgic library originaly come from `http://www.boutell.com/cgic `_. .. warning:: You may need to edit the ``Makefile`` in case you are using a 64 bits platform for building and your fcgi library is not located in ``/usr/lib64``. Install ZOO-Kernel ------------------ For the impatient ................. Run 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. :: cd zoo-project/zoo-kernel autoconf ./configure make make install This should produce executables for the *zoo_loader.cgi* CGI program (located per default in ``/usr/lib/cgi-bin/``) and a shared library ``libzoo_service`` (located per default in ``/usr/local/lib``). .. warning:: Edit ZOO-Kernel installation settings in the ``main.cfg`` file (set ``tmpPath`` and ``tmpUrl`` to fit your web server configuration). Configure options ................. This section provides information on :ref:`kernel_index` configure options. It is recommanded to also read the :ref:`kernel_config` section for configuration technical details. Here is the list of available options in the same order as returned by ``./configure --help`` command: .. contents:: :local: :depth: 2 :backlinks: top Specific CGI Directory ********************** In the case your ``cgi-bin`` is not located in ``/usr/lib/`` as it is assumed per default, then you can specify a specific target location by using the following option: .. code:: ./configure --with-cgi-dir=/Lbrary/WebServer/CGI-Executables This way, when you will run the ``make install`` command, the ZOO-Kernel will be deployed in the specified directory (so, `/Lbrary/WebServer/CGI-Executables`` in this example). Specific main.cfg location (Optional) ************************************** Per default, the ZOO-Kernel search for the ``main.cfg`` file from its installation directory but, in case you want to store this file in another place, then you can use the ``--with-etc-dir`` option so it will search for the ``main.cfg`` file in the ``sysconfdir`` directory. For instance, you can define that the directory to store the ``main.cfg`` file is the ``/etc/zoo-project`` directory, by using the following command: .. code:: ./configure --with-etc-dir=yes --sysconfdir=/etc/zoo-project .. _zoo_install_db_backend: Use a Database Backend (Optional) ********************************** If you want to share the ongoing informations of running services between various ZOO-Kernel instances then you should use this option: ``--with-db-backend``. This way, both the *GetStatus*, *GetResult* and *Dismiss* requests can be run from any host accessing the same database. Obviously, this will require that the ZOO-Kernel is able to access the Database server. To learn how to configure this connection and how to create this database please refer to :ref:`[1] ` and :ref:`[2] ` respectively. .. note:: By now, the ZOO-Kernel is not able to handle correctly the *Dismiss* request from any host. Nevertheless, it will provide valid response from any host, but only the host which is really handling the service will be able to stop it and remove all the linked files. .. _zoo_create_db_backend: To create a new database to be used by the ZOO-Kernel, you have to load the `schema.sql `_ file. For instance, you may run the following: .. code:: createdb zoo_project psql zoo_project -f zoo-project/zoo-kernel/sql/schema.sql .. note:: You can choose another schema to store ZOO-Kernel specific informations. In such a case, you would need to edit the schema.sql file to uncomment line `33 `_ and `34 `_. YAML Support (Optional) ************************ If ``yaml.h`` file is not found in your ``/usr/include`` directory and ``libyaml.so`` is not found in ``/usr/lib``, a ``--with-yaml`` option can be used to specify its location. For instance, if the headeer file lies in ``/usr/local/include`` and the shared library is located in ``/usr/local/lib``, you may use the following command: :: $ ./configure --with-yaml=/usr/local FastCGI Support (Required) *************************** If your FastCGI library is not available in the default search path, a ``--with-fastcgi`` option can be used to specify its location. For instance, if ``libfcgi.so`` lies in ``/usr/local/lib`` which is not in your ``LD_SEARCH_PATH``, you may use the following command: :: $ ./configure --with-fastcgi=/usr/local GDAL Support (Required) ************************ If gdal-config program is not found in your ``PATH``, a ``--with-gdal-config`` option can be used to specify its location. For instance, if ``gdal-config`` lies in ``/usr/local/bin`` which is not in your ``PATH``, you may use the following command: :: $ ./configure --with-gdal-config=/usr/local/bin/gdal-config GEOS Support (Optional) ************************ If ``geos-config`` program is not found in your ``PATH``, a ``--with-geosconfig`` option can be used to specify its location. For instance, if ``geos-config`` lies in ``/usr/local/bin`` which is not in your ``PATH``, you may use the following command: :: $ ./configure --with-geosconfig=/usr/local/bin/geos-config CGAL Support (Optional) ************************ If ``CGAL/Delaunay_triangulation_2.h`` program is not found in your ``/usr/include`` directory, a ``--with-cgal`` option can be used to specify its location. For instance, if the file lies in ``/usr/local/include`` which is not in your PATH, you may use the following command: :: $ ./configure --with-cgal=/usr/local MapServer Support (Optional) ***************************** In order to activate the WMS, WFS and WCS output support using MapServer, the ``--with-mapserver`` option must be used. The path to ``mapserver-config`` which is located in the source code of MapServer must also be set, using the following command: :: $ ./configure --with-mapserver=/path/to/your/mapserver_config/ Read more about the :ref:`kernel-mapserver`. XML2 Support (Required) ************************ If 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: :: $ ./configure --with-xml2config=/usr/local/bin/xml2-config Python Support (Optional) ************************** The ``--with-python=yes`` option is required to activate the :ref:`kernel_index` Python support, using the following command: :: $ ./configure --with-python=yes This assumes that python-config is found in your ``PATH``. If not, then you can specify the Python installation directory using the following command (with Python installed in the ``/usr/local`` directory): :: $ ./configure --with-python=/usr/local Python Version ############## If multiple Python versions are available and you want to use a specific one, then you can use the ``--with-pyvers`` option as shown bellow: :: $ ./configure --with-pyvers=2.7 .. _js-support: JavaScript Support (Optional) ****************************** In order to activate the JavaScript support for ZOO-Kernel, the ``--with-js=yes`` configure option must be specified. If you are using a "Debian-like" GNU/Linux distribution then dpkg will be used to detect if the required packages are installed and you