Requirements before installing Lizmap Web Client
Note
If you want to quickly install and test Lizmap Web Client in a few steps, you can follow those instructions using Docker and Docker-Compose.
QGIS Server
Warning
Before installing the QGIS Server part, it is very highly recommended to use the same version between QGIS Desktop and QGIS Server.
Even if some functions might work, there is a probability that some configuration won’t work if these two versions are different.
The reason is QGIS Server version X might not be able to a QGIS project made with a QGIS Desktop version Y.
Follow the QGIS Documentation how to install QGIS Server : https://docs.qgis.org/latest/en/docs/server_manual/
Using a webserver (Apache or Nginx), you must install QGIS Server. With Nginx, the preferred way is to use
spawn-fcgi
. Do not use the fcgiwrap
, this solution is not efficient.
In the Nginx configuration, it’s good to use the QGIS_OPTIONS_PATH
variable for a folder with write
permissions for www-data
. These is explained in the QGIS Server documentation.
You should also install and configure XVFB
mentioned in the QGIS Documentation.
This is useful for printing PDF. You can only skip this section if you don’t plan to print PDF on the server
side.
After you have setup your web server with QGIS-Server, check that the URL of QGIS Server is working. You probably get a XML like:
<ServerException>Project file error</ServerException>
Keep this URL, we will use it later in the Lizmap admin panel.
Warning
We strongly encourage you to set up QGIS Server on a different virtual host than Lizmap Web Client. QGIS Server URL should stay private, accessible by the Lizmap PHP application only.
Otherwise, especially after the Lizmap plugin on QGIS Server is installed, your user might be able to access private data if they by-pass Lizmap, by using straight QGIS Server URL.
QGIS Server plugins
Some plugins can be added to QGIS Server. This will enable some features in Lizmap. It’s not compulsory but in some situations, it’s better.
Either you should setup the QGIS_PLUGINPATH
environment variable during the installation of QGIS Server
or use the default one provided by QGIS.
https://docs.qgis.org/latest/en/docs/server_manual/config.html#environment-variables
Tip
To manage QGIS Server plugins, we encourage you to use qgis-plugin-manager, a CLI tool to install and upgrade plugins. https://pypi.org/project/qgis-plugin-manager/
AtlasPrint
To enable the PDF based on a QGIS Layout Atlas
Cadastre
French use-case only
Needed for the Lizmap Cadastre module
Lizmap server
Lizmap is not only a PHP application, there is also Python plugin for QGIS Server called Lizmap server.
The plugin is highly recommended, a few features won’t work as expected if the plugin is not installed or not upgraded.
Important, read below for more information the Lizmap QGIS Server plugin. (Lizmap QGIS Server plugin)
WfsOutputExtension
To add new format when exporting vector data
Logging
To log QGIS Servers log and to flush the cache on QGIS Server
This plugin is deprecated.
Lizmap QGIS Server plugin
Adding the Lizmap QGIS Server plugin will add some features on Lizmap Web Client :
retrieve information from QGIS Server.
evaluate QGIS Expressions in forms about :
constraints
default value
group visibility
Read Advanced form.
check User Access Rights (ACL) for features and layers :
filter by polygon
by attribute
use the Form popup, read Form popup.
enable
@lizmap_user
andlizmap_user_groups
variables in QGIS projects
The plugin is not required, but a few features won’t work as expected if the plugin is not installed or not upgraded
The name of the plugin is Lizmap server. Do not install the Lizmap plugin which is the desktop Python plugin.
Installation
QGIS Server side
The Lizmap plugin must be installed in the correct folder for QGIS Server. The environment variable must be set in QGIS Server. The plugin name is Lizmap server.
With QGIS-Plugin-Manager :
# Not correct, this plugin is only for QGIS desktop
# qgis-plugin-manager install Lizmap
# Correct, the plugin designed for QGIS server
qgis-plugin-manager install 'Lizmap server'
Warning
For security reason, to enable all features on the QGIS server side, you must enable the environment variable
QGIS_SERVER_LIZMAP_REVEAL_SETTINGS
with the value True
on QGIS server.
You must be ensured that this API http://your.qgis.server.url/lizmap/server.json
is protected on
your webserver. The best is to restrict the access to QGIS server http://your.qgis.server.url
on a
virtual host, not accessible on the internet. All requests to QGIS server will be sent by Lizmap Web Client.
QGIS server mustn’t be accessible from outside. It was already highly recommended before to protect the QGIS Server
from the internet. Users must use WFS/WMS links provided by Lizmap Web Client, so Lizmap can check user permissions.
This variable will expose server settings such as QGIS server version, which is used by Lizmap Web Client.
Administration panel
You must have the table called “Server information” working correctly in your administration panel before trying a QGIS project.
If your are using QGIS Server with FCGI, the Lizmap API URL must be empty.
Otherwise, if you are using Py-QGIS-Server, the Lizmap API URL must be configured in the administration interface. In Py-QGIS-Server, you must explicitly publish the API as well.
Starting from Py-QGIS-Server version 1.8.4, it’s possible to enable the Lizmap API endpoint with the environment variable QGSRV_API_ENDPOINTS_LIZMAP=yes otherwise, add the configuration below in your configuration file :
[api.endpoints]
lizmap_api=/lizmap
[api.enabled]
lizmap_api=yes
Then, with Py-QGIS-Server, if your URL for OWS is http://map:8080/ows/, it means the URL for the Lizmap API endpoint is http://map:8080/lizmap/.
PostgreSQL
PostgreSQL can be used for three different purposes in Lizmap :
To store GIS data. No configuration is needed on the Lizmap Web Client server side, only the PostgreSQL server must be accessible from the Lizmap Web Client server and QGIS Server. It’s possible to edit layers with Lizmap, but the layer must be stored in PostgreSQL. See Prerequisites.
To store Lizmap Web Client users and user actions. Lizmap uses tables. This setting must be done when installing Lizmap.
To use lizmap_search, see PostgreSQL search. This setting on the Lizmap server can be set when you need it.