Outdated version of the documentation. Find the latest one here.

Configuration avancée

Journal

To log requests sent to the server, set the following environment variables:

  • QGIS_SERVER_LOG_FILE: Specify path and filename. Make sure that the server has proper permissions for writing to file. File should be created automatically, just send some requests to server. If it’s not there, check permissions.

  • QGIS_SERVER_LOG_LEVEL: Specify desired log level. Available values are:

    • 0 INFO (log all requests),
    • 1 WARNING,
    • 2 CRITICAL (log just critical errors, suitable for production purposes).

    Example:

    SetEnv QGIS_SERVER_LOG_FILE /var/tmp/qgislog.txt
    SetEnv QGIS_SERVER_LOG_LEVEL 0
    

Note

  • When using Fcgid module use FcgidInitialEnv instead of SetEnv!
  • Server logging is also enabled if executable is compiled in release mode.

Variables d’environnement

You can configure some aspects of QGIS server by setting environment variables. For example, to set QGIS server on Apache to use /path/to/config/QGIS/QGIS2.ini settings file, add to Apache config:

SetEnv QGIS_OPTIONS_PATH "/path/to/config/"

or, if using fcgi:

FcgidInitialEnv QGIS_OPTIONS_PATH "/path/to/config/"

This is a list of the variables supported by QGIS server:

  • QGIS_OPTIONS_PATH: Specifies the path to the directory with settings. It works the same way as QGIS application –optionspath option. It is looking for settings file in <QGIS_OPTIONS_PATH>/QGIS/QGIS2.ini.
  • QUERY_STRING: The query string, normally passed by the web server. This variable can be useful while testing QGIS server binary from the command line.
  • QGIS_PROJECT_FILE: the .qgs project file, normally passed as a parameter in the query string, you can also set it as an environment variable (for example by using mod_rewrite Apache module).
  • QGIS_SERVER_LOG_FILE: Specify path and filename. Make sure that server has proper permissions for writing to file. File should be created automatically, just send some requests to server. If it’s not there, check permissions.
  • QGIS_SERVER_LOG_LEVEL: Specify desired log level. See Journal
  • MAX_CACHE_LAYERS: Specify the maximum number of cached layers (default: 100).
  • DISPLAY: This is used to pass (fake) X server display number (needed on Unix-like systems).
  • QGIS_PLUGINPATH: Useful if you are using Python plugins for the server, this sets the folder that is searched for Python plugins.
  • DEFAULT_DATUM_TRANSFORM: Define datum transformations between two projections, e.g. EPSG:21781/EPSG:2056/100001/-1;EPSG:2056/EPSG:21781/-1/100001 sets the transformation between CH1903 LV03 (EPSG:21781) and CH1903 LV95 (EPSG:2056) and vice versa. You also need to place grid shift .gsb files in the directory where proj4 stores the grid shift files, e.g. in /usr/share/proj. You need to run crssync after you added new .gsb files and look up the ID in the srs.db. Look at attribute coord_op_code of table tbl_datum_transform in srs.db to find the correct entry.

Nom court pour les couches, les groupes et le projet

Un certains nombre d’éléments disposent d’un <Name> dt d’un <Title>. Le nom est une chaîne de caractères utilisée dans la communication de machine à machine alors que le titre est utilisé pour les êtres humains.

Par exemple, un jeu de données peut avoir un titre descriptif Température Atmosphérique Maximum et être requêté par le nom abrégé ATMAX. L’utilisateur peut indiquer un titre pour les couches, les groupes et le projet.

Le nom OWS est basé sur le nom utilisé dans l’arbre des couches. Ce nom est plus une étiquette pour les être humains qu’un nom utilisé dans la communication de machine à machine.

QGIS Server gère :

  • Modification de la ligne de nom abrégé pour les propriétés des couches. Vous pouvez modifier cela en cliquant avec le bouton droit de la souris sur un calque, choisissez Propriétés ‣ Onglet Métadonnées ‣ Description ‣ Nom court

  • une boîte de dialogue WMS pour les groupes (permet de saisir le nom court du groupe, le titre et un résumé)

    En faisant un clic-droit sur un groupe de couches et en sélectionnant l’option Définir un groupe de données WMS, vous obtiendrez:

    ../../../../_images/set_group_wms_data.png

    Définir la boîte de dialogue des données associées au groupe WMS

  • l’édition de nom court dans les propriétés du projet et l’ajout d’un validateur d’expressions régulières "^[A-Za-z][A-Za-z0-9\._-]*" pour les éditions de noms courts (via une méthode statique)

  • l’ajout d’un validateur de fonction rationnelles "^[A-Za-z][A-Za-z0-9\._-]*" pour les éditions de noms courts (via une méthode statique)

    Vous pouvez choisir un nom court pour la racine du projet en allant à : Propriétés du projet ‣ Serveur OWS ‣ Fonctionnalités du service ‣ Nom court.

  • l’ajout d’un élément TreeName dans les propriétés du projet (fullProjectSettings)

Si un nom court a été utilisé pour des couches, des groupes ou pour le projet, il sera utilisé par QGIS Server pour définir le nom de la couche.

Connexion au fichier de service

Pour faire en sorte qu’Apache puisse accéder au fichier de service PostgreSQL (consultez la section ref:pg-service-file), vous devez modifier vos fichiers *.conf de la manière suivante:

SetEnv PGSERVICEFILE /home/web/.pg_service.conf

<Directory "/home/web/apps2/bin/">
  AllowOverride None
.....

Ajouter des polices à votre serveur Linux

Gardez à l’esprit que vous pouvez utiliser des projet QGIS qui utilisent des polices qui n’existent pas par défaut sur les autres machines. Cela signifie que si vous partagez le projet, il pourra apparaître de manière différente sur d’autres machines (si les polices n’existent pas sur la machine cible).

Pour s’assurer que cela n’arrive pas, vous devez simplement installer les polices manquantes sur la machine cible. En règle général, le faire sur des systèmes bureautiques est relativement simple (double-cliquer sur des polices).

Sous Linux, si vous n’avez pas d’environnement de bureau d’installé (ou que vous préferrez la ligne de commande), vous devrez:

  • Sur les systèmes basés sur Debian:

    $ sudo su
    $ mkdir -p /usr/local/share/fonts/truetype/myfonts && cd /usr/local/share/fonts/truetype/myfonts
    
    # copy the fonts from their location
    $ cp /fonts_location/* .
    
    $ chown root *
    $ cd .. && fc-cache -f -v
    
  • Pour les systèmes basés sur Fedora:

    $ sudo su
    $ mkdir /usr/share/fonts/myfonts && cd /usr/share/fonts/myfonts
    
    # copy the fonts from their location
    $ cp /fonts_location/* .
    
    $ chown root *
    $ cd .. && fc-cache -f -v