6. Configurazione avanzata
6.1. Registrazioni di controllo
Per registrare le richieste inviate al server, devi impostare la seguente variabile d’ambiente:
Con le seguenti variabili è possibile personalizzare ulteriormente la registrazione:
6.2. Variabili d’ambiente
Puoi configurare alcuni aspetti di QGIS Server impostando le environment variables.
A seconda del server HTTP e del modo in cui si esegue QGIS Server, esistono diversi modi per definire queste variabili. Questo è descritto in dettaglio in Apache HTTP Server.
Nome |
Descrizione |
Predefinito |
Servizi |
---|---|---|---|
QGIS_OPTIONS_PATH |
Specifica il percorso della cartella con le impostazioni. Funziona come l’opzione |
“” |
All |
QGIS_PLUGINPATH |
Utile se stai utilizzando i plugin Python per il server, questo imposta la cartella che viene cercata per i plugin Python. |
“” |
All |
QGIS_PROJECT_FILE |
Il file di progetto Nota che puoi anche indicare un progetto memorizzato in PostgreSQL, ad esempio |
“” |
All |
QGIS_SERVER_ALLOWED_EXTRA_SQL_TOKENS |
Elenco separato da virgole di stringhe che rappresentano i token SQL extra consentiti e accettati come componenti di un filtro di elementi. |
“” |
WMS |
QGIS_SERVER_API_RESOURCES_DIRECTORY |
Cartella di base per tutte le risorse statiche OGC API (come OAPIF/WFS3) (modelli HTML, CSS, JS, …) |
dipende dal packaging |
OAPIF/WFS3 |
QGIS_SERVER_API_WFS3_MAX_LIMIT |
Valore massimo per |
10000 |
OAPIF/WFS3 |
QGIS_SERVER_CACHE_DIRECTORY |
Specifica la cartella della cache di rete sul filesystem. |
|
All |
QGIS_SERVER_CACHE_SIZE |
Imposta la dimensione della cache di rete in MB. |
50 MB |
All |
QGIS_SERVER_DISABLE_GETPRINT |
È un’opzione a livello di progetto per migliorare i tempi di lettura del progetto disabilitando il caricamento dei layout. L’attivazione di questa opzione disabilita la richiesta GetPrint di QGIS WMS. Imposta questo flag del progetto QGIS per non caricare i layout. |
false |
WMS |
QGIS_SERVER_FORCE_READONLY_LAYERS |
Forza QGIS Server ad aprire tutti i layer in modalità di sola lettura |
false |
All |
QGIS_SERVER_IGNORE_BAD_LAYERS |
I layer «bad» sono layer che non possono essere caricati. Il comportamento predefinito di QGIS Server è quello di considerare il progetto come non disponibile se contiene un layer non valido. Il comportamento predefinito può essere sovrascritto impostando questa variabile a |
false |
All |
QGIS_SERVER_LANDING_PAGE_PREFIX |
Prefisso del componente di percorso dell’URL di base della pagina di destinazione |
«» |
All |
QGIS_SERVER_LANDING_PAGE_PROJECTS_DIRECTORIES |
Cartelle utilizzate dal servizio di landing page per trovare i progetti .qgs e .qgz |
«» |
All |
QGIS_SERVER_LANDING_PAGE_PROJECTS_PG_CONNECTIONS |
Stringhe di connessione PostgreSQL utilizzate dal servizio di landing page per trovare i progetti |
«» |
All |
QGIS_SERVER_LOG_FILE |
Specifica il percorso e il nome del file. Assicurati che il server abbia i permessi corretti per scrivere sul file. Il file dovrebbe essere creato automaticamente, basta inviare alcune richieste al server. Se non c’è, controlla i permessi. Avvertimento QGIS_SERVER_LOG_FILE è deprecato da QGIS 3.4, utilizza invece QGIS_SERVER_LOG_STDERR. Il supporto per la registrazione dei file sarà rimosso in QGIS 4.0. |
“” |
All |
QGIS_SERVER_LOG_LEVEL |
Specifica il livello di log desiderato. I valori disponibili sono:
|
0 |
All |
QGIS_SERVER_LOG_PROFILE |
Aggiungi informazioni dettagliate sul profilo ai log, efficace solo quando QGIS_SERVER_LOG_LEVEL=0 |
false |
All |
QGIS_SERVER_LOG_STDERR |
Attiva la registrazione su stderr. Questa variabile non ha effetto quando
|
false |
All |
QGIS_SERVER_MAX_THREADS |
Numero di thread da utilizzare quando si attiva il rendering parallelo. Se il valore è |
-1 |
All |
QGIS_SERVER_OVERRIDE_SYSTEM_LOCALE |
Imposta LOCALE da utilizzare dal server QGIS. Il valore predefinito è vuoto (nessuna sovrascrittura). Esempio: |
“” |
All |
QGIS_SERVER_PARALLEL_RENDERING |
Attiva il rendering parallelo per le richieste di WMS GetMap. È disabilitato (
|
false |
WMS |
QGIS_SERVER_PROJECT_CACHE_CHECK_INTERVAL |
Controlla l’intervallo della dichiarazione periodica per l’invalidazione della cache. |
All |
|
QGIS_SERVER_PROJECT_CACHE_STRATEGY |
Definisce il metodo per invalidare la cache del progetto. Le alternative disponibili sono:
|
filesystem |
All |
QGIS_SERVER_SERVICE_URL |
Questa è un’opzione per impostare l’URL del servizio se non è presente nel progetto. L’URL del servizio è definito da (in ordine di precedenza):
Negli ultimi quattro casi, l’URL del servizio risultante si basa sul parametro |
“” |
All |
QGIS_SERVER_SHOW_GROUP_SEPARATOR |
Definisce se un separatore di gruppi (ad esempio, il separatore delle migliaia) deve essere usato per i valori numerici (ad esempio, nelle risposte di GetFeatureInfo). Il valore predefinito è
|
false |
WMS |
QGIS_SERVER_TRUST_LAYER_METADATA |
Si tratta di un’opzione a livello di progetto per migliorare i tempi di lettura del progetto utilizzando le estensioni dei layer vettoriali definite nei metadati del progetto e disabilitando il controllo dell’unicità della chiave primaria dei layer PostgreSQL/PostGIS. La fiducia nei metadati del layer può essere forzata impostando questa variabile a Non usarlo se l’estensione dei layer non viene definita durante l’uso del progetto. |
false |
All |
QGIS_SERVER_WCS_SERVICE_URL |
È un’opzione per impostare l’URL del servizio se non è presente nel progetto. Vedere QGIS_SERVER_SERVICE_URL per maggiori informazioni. |
“” |
WCS |
QGIS_SERVER_WFS_SERVICE_URL |
È un’opzione per impostare l’URL del servizio se non è presente nel progetto. Vedere QGIS_SERVER_SERVICE_URL per maggiori informazioni. |
“” |
WFS |
QGIS_SERVER_WMS_MAX_HEIGHT / QGIS_SERVER_WMS_MAX_WIDTH |
Altezza/larghezza massima per una richiesta WMS. Viene utilizzato il valore più conservativo tra questo e quello del progetto. Se il valore è ``-1””, significa che non è stato impostato un massimo. |
-1 |
WMS |
QGIS_SERVER_WMS_SERVICE_URL |
È un’opzione per impostare l’URL del servizio se non è presente nel progetto. Vedere QGIS_SERVER_SERVICE_URL per maggiori informazioni. |
“” |
WMS |
QGIS_SERVER_WMTS_SERVICE_URL |
È un’opzione per impostare l’URL del servizio se non è presente nel progetto. Vedere QGIS_SERVER_SERVICE_URL per maggiori informazioni. |
“” |
WMTS |
QUERY_STRING |
La stringa di query, normalmente passata dal server web. Questa variabile può essere utile per testare i binari del server QGIS dalla riga di comando. Ad esempio, per testare una richiesta GetCapabilities sulla linea di comando a un progetto che richiede anche una connessione PostgreSQL definita in un file pg_service.conf: PGSERVICEFILE=/etc/pg_service.conf \
QUERY_STRING="MAP=/home/projects/world.qgs&SERVICE=WMS&REQUEST=GetCapabilities" \
/usr/lib/cgi-bin/qgis_mapserv.fcgi
Il risultato dovrebbe essere il contenuto della risposta di GetCapabilities o, se qualcosa non va, un messaggio di errore. |
“” |
All |
6.3. Riepilogo impostazioni
All’avvio di QGIS Server, viene visualizzato un riepilogo di tutti i parametri configurabili grazie alle variabili d’ambiente. Inoltre, viene visualizzato anche il valore attualmente utilizzato e l’origine.
Ad esempio con 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
In questo caso particolare, sappiamo che i valori QGIS_SERVER_MAX_THREADS e QGIS_SERVER_PARALLEL_RENDERING vengono letti dal file ini che si trova nella cartella QGIS_OPTIONS_PATH (definita tramite una variabile d’ambiente). Le voci corrispondenti nel file ini sono /qgis/max_threads e /qgis/parallel_rendering e i loro valori sono true e 4 thread.
6.4. Connessione a file di servizio
Per far sì che apache sia a conoscenza del file di servizio PostgreSQL ( vedere la sezione File per la connessione a Servizio PostgreSQL) devi fare in modo che il tuo file *.conf
assomigli a:
SetEnv PGSERVICEFILE /home/web/.pg_service.conf
<Directory "/home/web/apps2/bin/">
AllowOverride None
.....
6.5. Aggiungere font al server Linux
Tieni presente che puoi utilizzare progetti QGIS che puntano a font che potrebbero non esistere per impostazione predefinita su altri computer. Ciò significa che se si condivide il progetto, questo potrebbe apparire diverso su altri computer (se i font non esistono sul computer di destinazione).
Per evitare che ciò accada, devi installare i font mancanti sul computer di destinazione. Sui sistemi desktop questa operazione è di solito banale (doppio clic sui font).
Per Linux, se non hai installato un ambiente desktop (o preferisci la linea di comando), devi installarlo:
Su sistemi basati su 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
Su sistemi basati su 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