source: trunk/docs/kernel/configuration.rst @ 781

Last change on this file since 781 was 772, checked in by djay, 9 years ago

Dynamically add a [renv] section to store all environment variables available at runtime. Update the documentation to provide informations about thie new section.

  • Property svn:keywords set to Date Author
  • Property svn:mime-type set to text/plain
File size: 8.9 KB
RevLine 
[659]1.. _kernel_config:
2
3ZOO-Kernel configuration
[713]4========================
[659]5
6Main configuration file
7-----------------------
8
9ZOO-Kernel general settings are defined in a configuration file called
10``main.cfg``. This file is stored in the same directory as ZOO-Kernel
11(``/usr/lib/cgi-bin/`` in most cases). It provides usefull metadata information on your ZOO-Kernel installation.     
12
13.. warning::
14  ZOO-Kernel (``/usr/lib/cgi-bin/zoo_loader.cgi``) and its
15  configuration file (``/usr/lib/cgi-bin/main.cfg``) must be in the
16  same directory.
17 
18.. note::
19  Information contained by ``/usr/lib/cgi-bin/main.cfg`` is accessible from WPS Services at runtime, so when *Execute* requests are used.
20
21Default main.cfg
22...............................
23
24An example *main.cfg* file is given here as reference.
25
26.. code-block:: guess
27    :linenos:
28   
29    [headers]
30    X-Powered-By=ZOO@ZOO-Project
31   
32    [main]
33    version=1.0.0
34    encoding=utf-8
35    dataPath=/var/data
36    tmpPath=/var/www/temp
37    cacheDir=/var/www/cache
38    sessPath=/tmp
39    serverAddress=http://localhost/cgi-bin/zoo_loader.cgi
40    lang=fr-FR,ja-JP
41    language=en-US
42    mapserverAddress=http://localhost/cgi-bin/mapserv.cgi
43    msOgcVersion=1.0.0
44    tmpUrl=http:/localhost/temp/
[752]45    cors=false
[659]46   
47    [identification]
48    keywords=t,ZOO-Project, ZOO-Kernel,WPS,GIS
49    title=ZOO-Project demo instance
50    abstract= This is ZOO-Project, the Open WPS platform.
51    accessConstraints=none
52    fees=None
53   
54    [provider]
55    positionName=Developer
56    providerName=GeoLabs SARL
57    addressAdministrativeArea=False
58    addressDeliveryPoint=1280, avenue des Platanes
59    addressCountry=fr
60    phoneVoice=+33467430995
61    addressPostalCode=34970
62    role=Dev
63    providerSite=http://geolabs.fr
64    phoneFacsimile=False
65    addressElectronicMailAddress=gerald@geolabs.fr
66    addressCity=Lattes
67    individualName=Gerald FENOY
68
69
70Main section
71...............................
72
73The main.cfg ``[main]`` section parameters are explained bellow.
74
75 * ``version``: Supported WPS version.
76 * ``encoding``: Default encoding of WPS Responses.
77 * ``dataPath``: Path to the directory where data files are stored (used to store mapfiles and data when MapServer support is activated).
78 * ``tmpPath``: Path to the directory where temporary files are stored (such as *ExecuteResponse* when *storeExecuteResponse* is set to true).
[752]79 * ``tmpUrl``: URL to access the temporary files directory (cf. ``tmpPath``).
[659]80 * ``cacheDir``: Path to  the directory where cached request files [#f1]_ are stored (optional).
81 * ``serverAddress``: URL to the ZOO-Kernel instance.
82 * ``mapservAddress``: URL to the MapServer instance (optional).
83 * ``msOgcVersion``: Version of all supported OGC Web Services output [#f2]_
84   (optional).
85 * ``lang``: Supported natural languages separated by a coma (the first is the default one),
[752]86 * ``cors``: Define if the ZOO-Kernel should support `Cross-Origin
87   Resource Sharing <https://www.w3.org/TR/cors/>`__. If this
88   paramater is not defined, then the ZOO-Kernel won't support CORS.
[659]89
[752]90In case you have activated the MapServer support, please refer to
91:ref:`this specific section <kernel-mapserver-main.cfg>`.
[659]92
[752]93
[659]94Identification and Provider
95..........................................
96
97The ``[identification]`` and ``[provider]`` sections are not ZOO-Project
98specific. They provide OGC metadata [#f3]_ and should be set according
99to the `XML Schema Document
100<http://schemas.opengis.net/ows/1.1.0/ows19115subset.xsd>`__ which
101encodes the parts of ISO 19115 used by the common
102*ServiceIdentification* and *ServiceProvider* sections of the
103*GetCapabilities* operation response, known as the service metadata
104XML document.
105
106Details of the common OWS 1.1.0 *ServiceIdentification* section can be
107found in this `XML Schema Document
108<http://schemas.opengis.net/ows/1.1.0/owsServiceIdentification.xsd>`__.
109
110Details of the common OWS 1.1.0 *ServiceProvider* section can be
111found in this `XML Schema Document
112<http://schemas.opengis.net/ows/1.1.0/owsServiceProvider.xsd>`__.
113
114
115Additional sections
116--------------------------------
117
118Headers section
119...............................
120
121The ``[headers]`` section can be set in order to define a specific HTTP
122Response header, which will be used for every response. As an example,
123you can check http://zoo-project.org using *curl* command line tool
124and notice the specific header *X-Powered-By: Zoo-Project@Trac*.
125
[752]126In case you want to allow CORS support for POST requests coming from
127``myhost.net``, then you should define the following minimal
128parameters in this section:
129
130.. code-block:: guess
131    :linenos:
132   
133    Access-Control-Allow-Origin=myhost.net
134    Access-Control-Allow-Methods=POST
135    Access-Control-Allow-Headers=content-type
136
137
[659]138env section
139...............................
140
141The ``[env]`` section can be used to store specific environment
142variables to be set prior the loading of *Services Provider* and Service execution.
143
144A typical example is when a Service requires the access to a X server
145running on *framebuffer*, which takes to set the DISPLAY environnement
146variable, as follow:
147
148.. code-block:: guess
149    :linenos:
150   
151    [env]
152    DISPLAY=:1
153
[752]154In case you have activated the OTB support, please refer to :ref:`this
155specific section <kernel-orfeotoolbox-main.cfg>`.
156
[659]157lenv section
158...............................
159
[772]160The ``lenv`` section is used by the ZOO-Kernel to store runtime informations
161before the execution of a WPS service, it contains the following
162parameters:
[659]163
164 * ``sid`` (r): The WPS Service unique identifier,
165 * ``status`` (rw): The current progress value ( a value between 0 and
166   100 in percent (**%**) ),
167 * ``cwd`` (r): The current working directory of ZOO-Kernel,
168 * ``message`` (rw): An error message used when ``SERVICE_FAILED`` is returned (optional),
169 * ``cookie`` (rw): The cookie to be returned to the client (for
170   example for authentication purpose).
[772]171 * ``file.pid`` (r): The file used by the ZOO-Kernel to store process identifier.
172 * ``file.sid`` (r): The file used by the ZOO-Kernel to store service identifier.
173 * ``file.responseInit`` (r): The file used by the ZOO-Kernel to store
174   the initial (then final) WPS response.
175 * ``file.responseFinal`` (r): The file used by the ZOO-Kernel to
176   temporary store the final WPS response.
[659]177
[772]178renv section
179...............................
180
181The ``renv`` section is automatically created by the ZOO-Kernel before
182the execution of a WPS service, it contains all the environment
183variables available at runtime (so including the header fields in case
184it is used through http, refer to [https://tools.ietf.org/html/rfc3875
185rfc3875] for more details).
186
187
[659]188senv section
189...............................
190
191The ``senv`` section can be used to store sessions information on the
192server side. Such information can then be accessed automatically from
193the Service if the server is requested using a valid cookie (as
194defined in ``lenv`` section). ZOO-Kernel will store the values set in the
195``senv`` maps on disk, load it and dynamically replace its content to
196the one in the ``main.cfg``. The ``senv`` section must contain the
197following parameter at least:
198
199 * ``XXX``: The session unique identifier where ``XXX`` is the name
200   included in the cookie which is returned.
201
202.. _cookie_example:
203
204For instance, adding the following in the Service source code  :
205
[713]206.. code:: python
[659]207   
208    conf["lenv"]["cookie"]="XXX=XXX1000000; path=/"
209    conf["senv"]={"XXX": "XXX1000000","login": "demoUser"}
210
211means that ZOO-Kernel will create a file named ``sess_XXX1000000.cfg``
212in the ``cacheDir`` directory, and will return the specified cookie to the client. Each time the client will
213request ZOO-Kernel using this cookie, it will automatically load the
[683]214value stored before the Service execution.
[659]215
[713]216.. _zoo_activate_db_backend:
[659]217
[713]218Database section
[683]219...............................
220
[713]221The database section allows to configure the
222:ref:`ZOO-Kernel optional database support <zoo_install_db_backend>`.
[683]223
[697]224.. code-block:: guess
[683]225
[697]226        [database]
227        dbname=zoo_project
228        port=5432
229        user=username
230        host=127.0.0.1
231        type=PG
232        schema=public
[683]233
[713]234This will generate strings to be passed to GDAL to connect the
235database server:
[697]236
[713]237.. code-block:: guess
[710]238   
[713]239    <type>:host=<host> port=<port>  user=<user> dbname=<dbname>
[710]240
241
[713]242With the previous database section, it will give the following:
[710]243
[713]244.. code-block:: guess
245
246    PG:"dbname=zoo_project host=127.0.0.1 port=5432 user=username"
247
[722]248Please refer to this `section <zoo_create_db_backend>`_ to learn how
249to setup the database.
[713]250
[710]251     
[659]252.. rubric:: Footnotes
253
[697]254.. [#f1] If GET requests are passed through ``xlink:href`` to the ZOO-Kernel , the latter will execute the request the first time and store the result  on disk. The next time the same request is executed, the cached file will be used and this will make your process run much faster. If ``cachedir`` was not specified in the ``main.cfg`` then the ``tmpPath`` value will be used.
[659]255.. [#f2] Usefull when the :ref:`kernel-mapserver` is activated (available since ZOO-Project version 1.3.0).
[697]256.. [#f3] ZOO-Kernel and MapServer are sharing the same metadata for OGC Web Services if the :ref:`kernel-mapserver` is activated.
[659]257
258   
Note: See TracBrowser for help on using the repository browser.

Search

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