[QGIS-Developer] QGIS server landing page when running as fastcgi?

Richard Duivenvoorde rdmailings at duif.net
Tue Feb 2 04:49:56 PST 2021


On 2/2/21 12:41 PM, Alessandro Pasotti wrote:
> On Tue, Feb 2, 2021 at 12:34 PM Richard Duivenvoorde
> <rdmailings at duif.net> wrote:
>>
>> Hi (Server)Devs,
>>
>> When I run the minimal qgis_mapserver and go to http://localhost:8000 QGIS server presents me the nice "QGIS Server Catalog" landingpage.
>>
>> But installing (the exact same) qgis server as fast-cgi in my local apache I do NOT get that....
> 
> Hi Richard,
> 
> ... and you get what?

IF I provide a qgz file (+data) in the /usr/lib/cgi-bin dir, I get the (xml) error message:

Service unknown or unsupported. Current supported services (case-sensitive): WMS WFS WCS WMTS SampleService, or use a WFS3 (OGC API Features) endpoint

If I at that moment go to 

http://localhost/cgi-bin/qgis_mapserv.fcgi/wfs3/

I get the Collections "landing page" with the layers in the qgz next to the fastcgi 
(note I am trying to get the "QGIS Server Catalog" landingpage)

>> Do I have to enable the QGIS_PLUGINPATH env var?
> 
> nope: landing page is not a python plugin.

Ok, was not clear to me that this was a PYTHON plugin path... 
https://www.qgis.org/en/site/forusers/visualchangelog316/index.html#qgis-server-landing-page-plugin
states: "A Landing Page Plugin for QGIS Server was created" that is the reason I still though it was a plugin..

>> I tried to set it to the "/build/output/data/" or "/build/output/data/resources"  as there are some js files there for the server...
>>
>> Going to http://localhost/cgi-bin/qgis_mapserv.fcgi/wfs3/ I get a landing page, but that one is different from the "QGIS Server Catalog" which I have if I run qgis_mapserver.
> 
> yeah, that's the WFS3/OAPIF landing page, dictated by the standar.
> 
>>
>> Any hints?
> 
> It depends on what you actually get instead of the landing page.
> 
> Try checking the logs, the landing page is pretty chatty.

I still do not have the magic combi of ENVIRONMENT variables to get the QGIS server log (other then in my apache error log) :-(

I do find some more environment variables now:
https://docs.qgis.org/testing/en/docs/server_manual/config.html#qgis-server-logging

Is the
QGIS_SERVER_API_RESOURCES_DIRECTORY
needed for this landing page? Tried: failed :-(

(note: never heard/used of spawn-fcgi ... is that the way to show the vars used by the server?)

$ spawn-fcgi -f /usr/lib/cgi-bin/qgis_mapserv.fcgi -s /tmp/qgisserver.sock -U www-data -G www-data -n
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
	- 'VirtualXPath'	[XML Path Language - XPath]
	- 'VirtualXPath'	[XML Path Language - XPath]
../src/core/qgsmessagelog.cpp:29 : (logMessage) [93ms] 2021-02-02T13:41:32 Server[0] QGIS Server Settings: 
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0]   - QGIS_OPTIONS_PATH / '' (Override the default path for user configuration): '' (read from DEFAULT_VALUE)
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0]   - QGIS_SERVER_PARALLEL_RENDERING / '/qgis/parallel_rendering' (Activate/Deactivate parallel rendering for WMS getMap request): 'true' (read from INI_FILE)
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0]   - QGIS_SERVER_MAX_THREADS / '/qgis/max_threads' (Number of threads to use when parallel rendering is activated): '-1' (read from INI_FILE)
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0]   - QGIS_SERVER_LOG_LEVEL / '' (Log level): '4' (read from DEFAULT_VALUE)
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0]   - QGIS_SERVER_LOG_FILE / '' (Log file): '' (read from DEFAULT_VALUE)
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0]   - QGIS_SERVER_LOG_STDERR / '' (Activate/Deactivate logging to stderr): 'false' (read from DEFAULT_VALUE)
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0]   - QGIS_PROJECT_FILE / '' (QGIS project file): '' (read from DEFAULT_VALUE)
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0]   - QGIS_SERVER_IGNORE_BAD_LAYERS / '' (Ignore bad layers): 'false' (read from DEFAULT_VALUE)
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0]   - QGIS_SERVER_CACHE_DIRECTORY / '/cache/directory' (Specify the cache directory): '/home/richard/.local/share/QGIS/QGIS3/profiles/default/cache' (read from DEFAULT_VALUE)
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0]   - QGIS_SERVER_CACHE_SIZE / '/cache/size' (Specify the cache size): '52428800' (read from INI_FILE)
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0]   - QGIS_SERVER_SHOW_GROUP_SEPARATOR / '/locale/showGroupSeparator' (Show group (thousands) separator): 'false' (read from INI_FILE)
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0]   - QGIS_SERVER_OVERRIDE_SYSTEM_LOCALE / '/locale/userLocale' (Override system locale): 'en_US' (read from INI_FILE)
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0]   - QGIS_SERVER_WMS_MAX_HEIGHT / '/qgis/max_wms_height' (Maximum height for a WMS request. The lower one of this and the project configuration is used.): '-1' (read from DEFAULT_VALUE)
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0]   - QGIS_SERVER_WMS_MAX_WIDTH / '/qgis/max_wms_width' (Maximum width for a WMS request. The most conservative between this and the project one is used): '-1' (read from DEFAULT_VALUE)
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0]   - QGIS_SERVER_API_RESOURCES_DIRECTORY / '/qgis/server_api_resources_directory' (Base directory where HTML templates and static assets (e.g. images, js and css files) are searched for): '/usr/share/qgis/resources/server/api' (read from DEFAULT_VALUE)
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0]   - QGIS_SERVER_API_WFS3_MAX_LIMIT / '/qgis/server_api_wfs3_max_limit' (Maximum value for "limit" in a features request, defaults to 10000): '10000' (read from DEFAULT_VALUE)
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0]   - QGIS_SERVER_TRUST_LAYER_METADATA / '' (Trust layer metadata): 'false' (read from DEFAULT_VALUE)
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0]   - QGIS_SERVER_DISABLE_GETPRINT / '' (Don't load layouts): 'false' (read from DEFAULT_VALUE)
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0]   - QGIS_SERVER_LANDING_PAGE_PROJECTS_DIRECTORIES / '/qgis/server_projects_directories' (Directories used by the landing page service to find .qgs and .qgz projects): '' (read from DEFAULT_VALUE)
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0]   - QGIS_SERVER_LANDING_PAGE_PROJECTS_PG_CONNECTIONS / '/qgis/server_projects_pg_connections' (PostgreSQL connection strings used by the landing page service to find projects): '' (read from DEFAULT_VALUE)
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0]   - QGIS_SERVER_LOG_PROFILE / '/qgis/server_log_profile' (Add detailed profile information to the logs, only effective when QGIS_SERVER_LOG_LEVEL=0): 'false' (read from DEFAULT_VALUE)
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0] Ini file used to initialize settings: /home/richard/.local/share/QGIS/QGIS3/profiles/default/QGIS/QGIS3.ini
../src/core/qgsmessagelog.cpp:29 : (logMessage) [83ms] 2021-02-02T13:41:32 Server[0] cacheDirectory: /home/richard/.local/share/QGIS/QGIS3/profiles/default/cache/
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0] maximumCacheSize: 52428800
../src/core/qgsproviderregistry.cpp:179 : (init) [0ms] No dynamic QGIS data provider plugins found in:
/usr/lib/qgis/plugins

../src/core/qgsproviderregistry.cpp:267 : (init) [0ms] Loaded 6 providers (ept;gdal;memory;mesh_memory;ogr;vectortile) 
../src/core/qgsmessagelog.cpp:29 : (logMessage) [18ms] 2021-02-02T13:41:32 Server[0] Prefix  PATH: /usr
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0] Plugin  PATH: /usr/lib/qgis/plugins
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0] PkgData PATH: /usr/share/qgis
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0] User DB PATH: /home/richard/.local/share/QGIS/QGIS3/profiles/default/qgis.db
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0] Auth DB PATH: /home/richard/.local/share/QGIS/QGIS3/profiles/default/qgis-auth.db
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0] SVG PATHS: /home/richard/bin/qgis_/master/debug/share/qgis/svg/:/home/richard/.local/share/QGIS/QGIS3/profiles/default/resource_sharing/collections:/home/richard/.local/share/QGIS/QGIS3/profiles/default/svg/:/home/richard/bin/geoserver/geoserver-2.15.2/data_dir/styles:/home/richard/git/qgisqt2/build/debug/output/data/svg/:/home/richard/git/qgisqt2/svg/:/home/richard/bin/qgis_/3.10/debug/share/qgis/svg/:/home/richard/git/build-qgisqt-Desktop-Debug/output/data/svg/:/home/richard/git/qgisqt/svg/:/svg/:/home/richard/bin/qgis_/3.16/debug/share/qgis/svg/:/home/richard/git/build-qgisqt2-Desktop-Debug/output/data/svg/:/home/richard/git/build-qgisqt3-Desktop-Debug/output/data/svg/:/home/richard/git/qgisqt3/svg/:/usr/share/qgis/svg/
../src/core/qgsmessagelog.cpp:29 : (logMessage) [19ms] 2021-02-02T13:41:32 No Authentication Methods[1] No QGIS auth method plugins found in:
/usr/lib/qgis/plugins
No authentication methods can be used. Check your QGIS installation
../src/core/auth/qgsauthmanager.cpp:483 : (isDisabled) [0ms] Authentication system DISABLED: QCA's qca-ossl (OpenSSL) plugin is missing
../src/core/qgsmessagelog.cpp:29 : (logMessage) [68ms] 2021-02-02T13:41:32 Server[0] Server initialized
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 ../src/server/qgsserverplugins.cpp[0] load library /usr/lib/qgispython (3.17.0)
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 [1] Couldn't load Python support library: Cannot load library /usr/lib/qgispython: (/usr/lib/libqgispython.so: cannot open shared object file: No such file or directory)
../src/core/qgsmessagelog.cpp:29 : (logMessage) [0ms] 2021-02-02T13:41:32 Server[0] No server python plugins are available


Testing with all this magic:

 FcgidIOTimeout 120
 FcgidInitialEnv LC_ALL "en_US.UTF-8"
 FcgidInitialEnv PYTHONIOENCODING UTF-8
 FcgidInitialEnv LANG "en_US.UTF-8"
 FcgidInitialEnv QGIS_DEBUG 5
 FcgidInitialEnv QGIS_SERVER_LOG_FILE "/tmp"
 FcgidInitialEnv QGIS_SERVER_LOG_LEVEL 5
 #FcgidInitialEnv QGIS_PROJECT_FILE "/usr/lib/cgi-bin/cbsgemeenten2018.qgz"  # with or without this one that project is loaded
 FcgidInitialEnv QGIS_SERVER_LANDING_PAGE_PROJECTS_DIRECTORIES "/tmp/qgisserver"
 FcgidInitialEnv QGIS_OPTIONS_PATH "/tmp"
 FcgidInitialEnv QGIS_SERVER_CACHE_DIRECTORY "."
 FcgidInitialEnv QGIS_SERVER_API_RESOURCES_DIRECTORY "/home/richard/git/qgis/build/output/data/"
 FcgidInitialEnv PYTHONPATH "/home/richard/bin/qgis_/master/debug/share/qgis/python"
 FcgidInitialEnv LD_LIBRARY_PATH "/home/richard/bin/qgis_/master/debug/lib/:/home/richard/bin/gdal/lib"
 FcgidInitialEnv QGIS_PREFIX_PATH "/home/richard/bin/qgis_/master/debug"


Really unsure which ones are needed or used :-(

Regards,

Richard










More information about the QGIS-Developer mailing list