Viktigt

Översättning är en gemenskapsinsats du kan gå med i. Den här sidan är för närvarande översatt till 100.00%.

6. Avancerad konfiguration

6.1. Loggning

Om du vill logga förfrågningar som skickas till servern måste du ange följande miljövariabel:

Med hjälp av följande variabler kan loggningen anpassas ytterligare:

6.2. Miljövariabler

Du kan konfigurera vissa aspekter av QGIS Server genom att ställa in miljövariabler.

Beroende på HTTP-servern och hur du kör QGIS Server finns det flera sätt att definiera dessa variabler. Detta beskrivs i sin helhet i Apache HTTP-server.

Namn

Beskrivning

Standard

Tjänster

QGIS_OPTIONS_PATH

Anger sökvägen till katalogen med inställningar. Det fungerar på samma sätt som QGIS-applikationens alternativ --optionspath. Den letar efter inställningsfilen i <QGIS_OPTIONS_PATH>/QGIS/QGIS3.ini.

’’

Alla

QGIS_PLUGINPATH

Användbart om du använder Python-tillägg för servern, här anges den mapp som söks efter Python-tillägg.

’’

Alla

QGIS_PROJECT_FILE

Projektfilen .qgs eller .qgz, som normalt skickas som en parameter i frågesträngen (med MAP), du kan också ange den som en miljövariabel (t.ex. genom att använda Apache-modulen mod_rewrite).

Observera att du också kan ange ett projekt som lagras i PostgreSQL, t.ex. postgresql://localhost:5432?sslmode=disable&dbname=mydb&schema=myschema&project=myproject eller inuti en geopackage-fil, t.ex. geopackage:/path/to/geopackage/file.gpkg?projectName=myProjectName.

’’

Alla

QGIS_SERVER_ALLOWED_EXTRA_SQL_TOKENS

Kommaseparerad lista med strängar som representerar de tillåtna extra SQL-tokens som accepteras som komponenter i ett feature-filter.

’’

WMS

QGIS_SERVER_API_RESOURCES_DIRECTORY

Baskatalog för alla statiska resurser för OGC API (t.ex. OAPIF/WFS3) (HTML-mallar, CSS, JS, …)

beror på förpackning

OAPIF/WFS3

QGIS_SERVER_APPLICATION_NAME

Namn på den applikation som ska användas, t.ex. vid anslutning till en databas för att identifiera den anslutna QGIS-serverinstansen

QGIS3-server

Alla

QGIS_SERVER_API_WFS3_MAX_LIMIT

Högsta värde för limit i en begäran om OAPIF/WFS3-funktioner.

10000

OAPIF/WFS3

QGIS_SERVER_CACHE_DIRECTORY

Anger katalogen för nätverkscache i filsystemet.

cache i profilkatalogen

Alla

QGIS_SERVER_CACHE_SIZE

Ställer in storleken på nätverkscachen i MB.

50 MB

Alla

QGIS_SERVER_CAPABILITIES_CACHE_SIZE

Det maximala antalet projektfunktioner som ska cachas.

40

Alla

QGIS_SERVER_DISABLE_GETPRINT

Detta är ett alternativ på projektnivå för att förbättra projektets lästid genom att inaktivera laddning av layouter.

Om du aktiverar detta alternativ inaktiveras QGIS WMS GetPrint-begäran. Ställ in denna QGIS-projektflagga för att inte ladda layouter.

falskt

WMS

QGIS_SERVER_FORCE_READONLY_LAYERS

Tvinga QGIS Server att öppna alla lager i skrivskyddat läge

falskt

Alla

QGIS_SERVER_IGNORE_BAD_LAYERS

”Dåliga” lager är lager som inte kan läsas in. Standardbeteendet för QGIS Server är att betrakta projektet som inte tillgängligt om det innehåller ett dåligt lager.

Standardbeteendet kan åsidosättas genom att ställa in denna variabel till ”1” eller ”true”. I detta fall kommer ”dåliga” lager att ignoreras och projektet kommer att betraktas som giltigt och tillgängligt.

falskt

Alla

QGIS_SERVER_LANDING_PAGE_PREFIX

Prefix för sökvägskomponenten i landningssidans bas-URL

””

Alla

QGIS_SERVER_LANDING_PAGE_PROJECTS_DIRECTORIES

Kataloger som används av landningssidestjänsten för att hitta .qgs- och .qgz-projekt

””

Alla

QGIS_SERVER_LANDING_PAGE_PROJECTS_PG_CONNECTIONS

PostgreSQL-anslutningssträngar som används av målsidestjänsten för att hitta projekt

””

Alla

QGIS_SERVER_LOG_FILE

Ange sökväg och filnamn. Se till att servern har rätt behörighet för att skriva till filen. Filen bör skapas automatiskt, skicka bara några förfrågningar till servern. Om den inte finns där, kontrollera behörigheterna.

Varning

QGIS_SERVER_LOG_FILE är föråldrad sedan QGIS 3.4, använd QGIS_SERVER_LOG_STDERR istället. Stöd för filloggning kommer att tas bort i QGIS 4.0.

’’

Alla

QGIS_SERVER_LOG_LEVEL

Ange önskad loggnivå. Tillgängliga värden är:

  • 0 eller INFO (logga alla förfrågningar)

  • 1 eller WARNING

  • 2 eller CRITICAL (loggar bara kritiska fel, lämpliga för produktionsändamål)

0

Alla

QGIS_SERVER_LOG_PROFILE

Lägg till detaljerad profilinformation i loggarna, gäller endast när QGIS_SERVER_LOG_LEVEL=0

falskt

Alla

QGIS_SERVER_LOG_STDERR

Aktivera loggning till stderr. Denna variabel har ingen effekt när QGIS_SERVER_LOG_FILE är inställd.

  • 0 eller false (skiftlägeskänslighet saknas)

  • 1 eller true (skiftlägeskänslighet saknas)

falskt

Alla

QGIS_SERVER_MAX_THREADS

Antal trådar som ska användas när parallell rendering är aktiverad. Om värdet är -1 används antalet processorkärnor.

-1

Alla

QGIS_SERVER_OVERRIDE_SYSTEM_LOCALE

Ställer in LOCALE som ska användas av QGIS-servern. Standardvärdet är tomt (ingen åsidosättning).

Exempel: de_CH.utf8

’’

Alla

QGIS_SERVER_PARALLEL_RENDERING

Aktiverar parallell rendering för WMS GetMap-begäranden. Den är inaktiverad (false) som standard. Tillgängliga värden är:

  • 0 eller false (skiftlägeskänslighet saknas)

  • 1 eller true (skiftlägeskänslighet saknas)

falskt

WMS

QGIS_SERVER_PROJECT_CACHE_CHECK_INTERVAL

Styr det periodiska strategiintervallet för ogiltighetsförklaring av cache, i millisekunder. Standardvärdet är 0, vilket innebär att den gamla filsystemövervakaren väljs.

Alla

QGIS_SERVER_PROJECT_CACHE_STRATEGY

Definierar metod för att inaktivera projektcachen. Tillgängliga strategier är:

  • filesystem: använder filsystemets bevakningsstrategi

  • periodic: använder det senast ändrade värdet för ett projekt för att kontrollera ändringar i projektkonfigurationen. Praktiskt på atypiska filsystem, t.ex. NFS, eller när projektfilen lagras i ett databassystem som PostgreSQL.

  • off: inaktiverar intern cache-invalidering helt och hållet

filesystem

Alla

QGIS_SERVER_SERVICE_URL

Detta är ett alternativ för att ange tjänstens URL om den inte finns i projektet.

Tjänstens URL definieras från (i prioritetsordning):

  • Värde definierat i projektet per tjänst

  • Miljövariabeln QGIS_SERVER_<service>_SERVICE_URL

  • Miljövariabeln QGIS_SERVER_SERVICE_URL

  • Rubriken X-Qgis-<service>-Service-Url

  • Rubriken ”X-Qgis-Service-Url

  • Bygg från rubriken Forwarded

  • Bygg från rubrikerna X-Forwarded-Host och X-Forwarded-Proto

  • Byggs upp från Host-huvudet och serverprotokollet

  • Bygg från servernamnet och serverprotokollet.

I de fyra sista fallen baseras den resulterande service-URL:en på parametern MAP som anges i frågesträngen och på den inkommande sökvägsbegäran.

’’

Alla

QGIS_SERVER_SHOW_GROUP_SEPARATOR

Anger om en gruppavgränsare (t.ex. tusenavgränsare) ska användas för numeriska värden (t.ex. i GetFeatureInfo-svar). Standardvärdet är 0.

  • 0 eller false (skiftlägeskänslighet saknas)

  • 1 eller true (skiftlägeskänslighet saknas)

falskt

WMS

QGIS_SERVER_TRUST_LAYER_METADATA

Detta är ett alternativ på projektnivå för att förbättra projektets lästid genom att använda vektorlagrets extenter som definieras i projektets metadata och inaktivera kontrollen för PostgreSQL / PostGIS-lagrets primära nyckelunikhet.

Förtroende för lagrets metadata kan tvingas fram genom att ställa in denna variabel till ”1” eller ”true”. Vektorskiktets utsträckning kommer då att vara den som definieras i projektet, och PostgreSQL / PostGIS-lagrets primära nyckel som definieras i datakällan betraktas som unik utan kontroll.

Använd den inte om lagrens utsträckning inte är fastställd under projektets användning.

falskt

Alla

QGIS_SERVER_WCS_SERVICE_URL

Detta är ett alternativ för att ange tjänstens URL om den inte finns i projektet. Se QGIS_SERVER_SERVICE_URL för mer information.

’’

WCS

QGIS_SERVER_WFS_SERVICE_URL

Detta är ett alternativ för att ange tjänstens URL om den inte finns i projektet. Se QGIS_SERVER_SERVICE_URL för mer information.

’’

WFS

QGIS_SERVER_WMS_MAX_HEIGHT / QGIS_SERVER_WMS_MAX_WIDTH

Maximal höjd/bredd för en WMS-begäran. Det mest konservativa värdet mellan detta och projektets används. Om värdet är -1 betyder det att det inte finns någon maxgräns.

-1

WMS

QGIS_SERVER_WMS_SERVICE_URL

Detta är ett alternativ för att ange tjänstens URL om den inte finns i projektet. Se QGIS_SERVER_SERVICE_URL för mer information.

’’

WMS

QGIS_SERVER_WMTS_SERVICE_URL

Detta är ett alternativ för att ange tjänstens URL om den inte finns i projektet. Se QGIS_SERVER_SERVICE_URL för mer information.

’’

WMTS

QUERY_STRING

Frågesträngen, som normalt skickas av webbservern. Den här variabeln kan vara användbar när du testar QGIS server binär från kommandoraden.

Till exempel för att testa en GetCapabilities-begäran på kommandoraden till ett projekt som också kräver en PostgreSQL-anslutning som definieras i en pg_service.conf-fil:

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

Resultatet ska antingen vara innehållet i GetCapabilities-svaret eller, om något är fel, ett felmeddelande.

’’

Alla

6.3. Sammanfattning av inställningar

När QGIS Server startas får du en sammanfattning av alla parametrar som kan konfigureras tack vare miljövariablerna. Dessutom visas det värde som används för närvarande och ursprunget.

Till exempel med spawn-fcgi:

export QGIS_OPTIONS_PATH=/home/user/.local/share/QGIS/QGIS3/profiles/default/
export QGIS_SERVER_LOG_STDERR=1
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_STDERR / '' (Activate/Deactivate logging to stderr): '1' (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

I det här fallet vet vi att värdena QGIS_SERVER_MAX_THREADS och QGIS_SERVER_PARALLEL_RENDERING läses från ini-filen som finns i katalogen QGIS_OPTIONS_PATH (som definieras via en miljövariabel). De motsvarande posterna i ini-filen är /qgis/max_threads och /qgis/parallel_rendering och deras värden är true och 4 trådar.

6.4. Anslutning till servicefil

För att göra apache medveten om PostgreSQL-tjänstfilen (se avsnittet PostgreSQL Service anslutningsfil) måste du få din *.conf-fil att se ut som:

SetEnv PGSERVICEFILE /home/web/.pg_service.conf

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

6.5. Lägg till teckensnitt på din Linux-server

Tänk på att du kan använda QGIS-projekt som pekar på teckensnitt som kanske inte finns som standard på andra maskiner. Det innebär att om du delar projektet kan det se annorlunda ut på andra maskiner (om teckensnitten inte finns på målmaskinen).

För att se till att detta inte händer behöver du bara installera de saknade teckensnitten på målmaskinen. På stationära system är det oftast trivialt (dubbelklicka på teckensnitten).

För Linux, om du inte har en skrivbordsmiljö installerad (eller om du föredrar kommandoraden) måste du göra det:

  • På Debian-baserade system:

    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
    
  • På Fedora-baserade system:

    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