Gevorderde configuratie

Loggen

U dient de volgende omgevingsvariabelen in te stellen om logverzoeken naar de server te versturen:

  • QGIS_SERVER_LOG_LEVEL

  • QGIS_SERVER_LOG_FILE

  • QGIS_SERVER_LOG_STDERR

Bekijk Omgevingsvariabelen om hun betekenis te begrijpen.

Omgevingsvariabelen

U kunt enkele aspecten van QGIS Server configureren door omgevingsvariabelen in te stellen.

In overeenstemming met de HTTP server en hoe u QGIS Server uitvoert, zijn er verschillende manieren om deze variabelen te definiëren. Dit wordt volledig beschreven in Configureren van de HTTP-server.

QGIS_OPTIONS_PATH

Specificeert het pad naar de map met instellingen. Het werkt op dezelfde manieren als de optie --optionspath voor de toepassing QGIS. Het zoekt naar het bestand met instellingen in <QGIS_OPTIONS_PATH>/QGIS/QGIS3.ini.

QUERY_STRING

De query-tekenreeks, normaal gesproken doorgegeven door de webserver. Deze variabele kan nuttig zijn bij het testen van QGIS Server binair vanaf de opdrachtregel.

Bijvoorbeeld voor het testen van een verzoek GetCapabilities op de opdrachtregel naar een project dat ook een verbinding voor PostgreSQL vereist die is gedefinieerd in een bestand pg_service.conf:

PGSERVICEFILE=/etc/pg_service.conf QUERY_STRING="MAP=/home/qgis/projects/world.qgs&SERVICE=WMS&REQUEST=GetCapabilities" /usr/lib/cgi-bin/qgis_mapserv.fcgi

Het resultaat zou ofwel de inhoud van het antwoord van GetCapabilities moeten zijn of, als er iets misgegaan is, een foutbericht.

QGIS_PROJECT_FILE

Het projectbestand .qgs of .qgz, normaal gesproken doorgegeven als een parameter in de query-tekenreeks (met MAP), kunt u ook instellen als een omgevingsvariabele (bijvoorbeeld door de module voor Apache mod_rewrite te gebruiken).

Onthoud dat u ook een project mag aangeven dat is opgeslagen in PostgreSQL, bijv. postgresql://localhost:5432?sslmode=disable&dbname=mydb&schema=myschema&project=mijnproject.

QGIS_SERVER_LOG_FILE

Specificeer pad en bestandsnaam. Zorg er voor dat de server de juiste rechten heeft om naar bestanden te schrijven. Het bestand zou automatisch gemaakt moeten worden, verzend eenvoudigweg enkele verzoeken naar de server. Als het er niet is, controleer dan de rechten.

QGIS_SERVER_LOG_FILE is vervallen sinds QGIS 3.4. Ondersteuning voor loggen van bestanden zal worden verwijderd vanaf QGIS 4.0.

QGIS_SERVER_LOG_STDERR

Activeer loggen naar stderr. Het is standaard uitgeschakeld. Deze variabele heeft geen effect als QGIS_SERVER_LOG_FILE is ingesteld.

  • 0 of false (niet hoofdlettergevoelig)

  • 1 of true (niet hoofdlettergevoelig)

MAX_CACHE_LAYERS

Specificeer het maximale aantal gecachete lagen (standaard: 100).

DISPLAY

Dit wordt gebruikt om (nep) weergavenummer voor X server door te geven (nodig op Unix-achtige systemen).

QGIS_PLUGINPATH

Nuttig als u plug-ins voor Python voor de server gebruikt, dit stelt de map in waarin wordt gezocht naar plug-ins voor Python.

QGIS_SERVER_LOG_LEVEL

Specificeer het gewenste niveau voor het loggen. Beschikbare waarden zijn:

  • 0 of INFO (log alle verzoeken)

  • 1 of WARNING

  • 2 of CRITICAL (log alleen kritische fouten, geschikt voor productiedoeleinden)

QGIS_SERVER_PARALLEL_RENDERING

Activeert parallel renderen voor verzoeken GetMap voor WMS. Het is standaard uitgeschakeld (false). Beschikbare waarden zijn:

  • 0 of false (niet hoofdlettergevoelig)

  • 1 of true (niet hoofdlettergevoelig)

QGIS_SERVER_MAX_THREADS

Aantal te gebruiken threads als parallel renderen is geactiveerd. Standaardwaarde is -1 om het aantal processor-bronnen te gebruiken.

QGIS_SERVER_CACHE_DIRECTORY

Specificeert de netwerk cachemap op het filesysteem. De standaardmap is genaamd cache en geplaatst in de map profile.

QGIS_SERVER_CACHE_SIZE

Stelt de grootte van de netwerkcache in in MB. De standaardwaarde is 50 MB.

QGIS_SERVER_OVERRIDE_SYSTEM_LOCALE

Stelt LOCALE in om te worden gebruikt door QGIS server. De standaardwaarde is leeg (geen overschrijving).

Voorbeeld: de_CH.utf8

QGIS_SERVER_SHOW_GROUP_SEPARATOR

Definieert of een scheidingsteken voor groepen (bijv. scheidingsteken voor duizendtallen) zou moeten worden gebruikt voor numerieke waarden (bijv. in antwoorden GetFeatureInfo). De standaardwaarde is 0.

  • 0 of false (niet hoofdlettergevoelig)

  • 1 of true (niet hoofdlettergevoelig)

QGIS_SERVER_IGNORE_BAD_LAYERS

“Bad layers” (slechte lagen) zijn lagen die niet kunnen worden geladen. Het standaardgedrag van QGIS Server is om te overwegen het project als niet beschikbaar te beschouwen als het een slechte laag bevat.

Het standaardgedrag kan worden overschreven door deze variabele in te stellen op 1 of true. In dat geval zullen lagen “bad” gewoon worden genegeerd, en het project als geldig en beschikbaar worden beschouwd.

Overzicht instellingen

Als QGIS Server start, krijgt u een overzicht van alle te configureren parameters dankzij de omgevingsvariabelen. Meer nog, de huidige gebruikte waarden en het origine worden ook weergegeven.

Bijvoorbeeld met spawn-fcgi:

export QGIS_OPTIONS_PATH=/home/user/.local/share/QGIS/QGIS3/profiles/default/
export QGIS_SERVER_LOG_FILE=/home/user/qserv.log
export QGIS_SERVER_LOG_LEVEL=2
spawn-fcgi -f /usr/lib/cgi-bin/qgis_mapserv.fcgi -s /tmp/qgisserver.sock -U www-data -G www-data -n

 QGIS Server Settings:

   - QGIS_OPTIONS_PATH / '' (Override the default path for user configuration): '/home/user/.local/share/QGIS/QGIS3/profiles/default/' (read from ENVIRONMENT_VARIABLE)

   - QGIS_SERVER_PARALLEL_RENDERING / '/qgis/parallel_rendering' (Activate/Deactivate parallel rendering for WMS getMap request): 'true' (read from INI_FILE)

   - QGIS_SERVER_MAX_THREADS / '/qgis/max_threads' (Number of threads to use when parallel rendering is activated): '4' (read from INI_FILE)

   - QGIS_SERVER_LOG_LEVEL / '' (Log level): '2' (read from ENVIRONMENT_VARIABLE)

   - QGIS_SERVER_LOG_FILE / '' (Log file): '/tmp/qserv.log' (read from ENVIRONMENT_VARIABLE)

   - QGIS_PROJECT_FILE / '' (QGIS project file): '' (read from DEFAULT_VALUE)

   - MAX_CACHE_LAYERS / '' (Specify the maximum number of cached layers): '100' (read from DEFAULT_VALUE)

   - QGIS_SERVER_CACHE_DIRECTORY / '/cache/directory' (Specify the cache directory): '/root/.local/share/QGIS/QGIS3/profiles/default/cache' (read from DEFAULT_VALUE)

   - QGIS_SERVER_CACHE_SIZE / '/cache/size' (Specify the cache size): '52428800' (read from INI_FILE)

 Ini file used to initialize settings: /home/user/.local/share/QGIS/QGIS3/profiles/default/QGIS/QGIS3.ini

In dit bijzondere geval weten we dat de waarden QGIS_SERVER_MAX_THREADS en QGIS_SERVER_PARALLEL_RENDERING worden gelezen vanuit het bestand ini dat is te vinden in de map QGIS_OPTIONS_PATH (die is gedefinieerd met een omgevingsvariabele). De overeenkomende items in het bestand ini zijn /qgis/max_threads en /qgis/parallel_rendering en hun waarden zijn true en 4 threads.

Verkorte namen voor lagen, groepen en project

Een aantal elementen heeft zowel een <Name> als een <Title>. De Naam is een teksttekenreeks gebruikt voor communicatie van machine-naar-machine terwijl de Titel ten behoeve van mensen is.

Een gegevensset kan bijvoorbeeld de beschrijvende Titel Maximum Atmospheric Temperature hebben en kan worden bevraagd met de verkorte Naam ATMAX. Gebruikers kunnen al titels instellen voor lagen, groepen en het project.

OWS-naam is gebaseerd op de gebruikte naam in de boom van lagen. Deze naam is meer een label voor mensen dan een naam voor communicatie van machine-naar-machine.

QGIS Server ondersteunt:

  • bewerkingen van verkorte naam in Laageigenschappen. U kunt dit wijzigen door met rechts te klikken op een laag en te kiezen voor Eigenschappen ‣ tab Metadata ‣ Omschrijving ‣ Korte naam.

  • dialoogvenster voor gegevens van WMS om de boom van lagen te groeperen (verkorte naam, titel, abstract)

    Door met rechts te klikken op een lagengroep en de optie Groeperen WMS-gegevens instellen te selecteren zult u krijgen:

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

    Dialoogvenster Groeperen WMS-gegevens instellen

  • bewerkingen voor verkorte naam voor projecteigenchappen - voeg een validatie als reguliere expressie “^[A-Za-z][A-Za-z0-9._-]*” toe om bewerking voor verkorte naam toegankelijk te houden via een statische methode

  • voeg een validatie voor regexp “^[A-Za-z][A-Za-z0-9._-]*” toe om bewerking voor verkorte naam toegankelijk te houden via een statische methode

    U kunt een verkorte naam voor de bron van het project kiezen door te gaan naar Projecteigenschappen ‣ OWS Server ‣ Service-mogelijkheden (Capabilities) ‣ Korte naam.

  • toevoegen van een element TreeName aan de fullProjectSettings

Als een korte naam is ingesteld voor lagen, groepen en project wordt die door QGIS Server gebruikt als de laagnaam.

Verbinding naar servicebestand

U dient, om Apache het PostgreSQL servicebestand te kunnen laten herkennen (zie het gedeelte PostgreSQL service verbindingsbestand), uw bestand *.conf er als volgt uit te laten zien:

SetEnv PGSERVICEFILE /home/web/.pg_service.conf

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

Lettertypen aan uw server van Linux toevoegen

Onthoud dat u projecten van QGIS kunt gebruiken die verwijzen naar lettertypen die niet als standaard op andere machines zijn geïnstalleerd. Dat betekent dat als u het project gaat delen, het er op andere machines anders uit kan zien (als de lettertypen niet bestaan op de doelmachine).

U dient eenvoudigweg de ontbrekende lettertypen te installeren op de doelmachine om er voor te zorgen dat dit niet gebeurt. Dit op machines als desktopsystemen te doen is gewoonlijk triviaal (dubbelklikken op de lettertypen).

Voor Linux, als u geen dekstopomgeving hebt geïnstalleerd (of als u liever via de opdrachtregel werkt) dient u:

  • Op Debian gebaseerde systemen:

    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
    
  • Op Fedora gebaseerde systemen:

    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