6. 高级配置
6.1. 日志记录
要记录发送到服务器的请求,您必须设置以下环境变量:
通过以下变量,可以进一步定制日志记录:
6.2. 环境变量
您可以通过设置来配置QGIS服务器的某些方面 environment variables 。
根据HTTP服务器和您运行QGIS服务器的方式,有几种方法可以定义这些变量。有关这一点,请参阅 阿帕奇HTTP服务器 。
名字 |
描述 |
默认 |
服务 |
---|---|---|---|
QGIS_OPTIONS_PATH |
指定带有设置的目录的路径。它的工作方式与QGIS应用程序相同 |
‘’ |
全 |
QGIS_PLUGINPATH |
如果您使用的是服务器的Python插件,这将设置搜索Python插件的文件夹,这很有用。 |
‘’ |
全 |
QGIS_PROJECT_FILE |
这个 请注意,您也可以指明存储在PostgreSQL中的项目,例如 |
‘’ |
全 |
QGIS_SERVER_ALLOWED_EXTRA_SQL_TOKENS |
以逗号分隔的字符串列表,表示作为功能筛选器组件接受的允许的额外SQL令牌。 |
‘’ |
WMS |
QGIS_SERVER_API_RESOURCES_DIRECTORY |
所有OGC API(如OAPIF/WFS3)静态资源(HTML模板、CSS、JS等)的基本目录 |
取决于包装 |
OAPIF/WFS3 |
QGIS_SERVER_APPLICATION_NAME |
要使用的应用程序的名称,例如在连接到数据库以标识所连接的QGIS服务器实例时 |
QGIS3服务器 |
全 |
QGIS_SERVER_API_WFS3_MAX_LIMIT |
的最大值 |
10000 |
OAPIF/WFS3 |
QGIS_SERVER_CACHE_DIRECTORY |
指定文件系统上的网络缓存目录。 |
|
全 |
QGIS_SERVER_CACHE_SIZE |
以MB为单位设置网络缓存大小。 |
50 MB |
全 |
QGIS_SERVER_CAPABILITIES_CACHE_SIZE |
要缓存的项目功能的最大数量。 |
40 |
全 |
QGIS_SERVER_DISABLE_GETPRINT |
这是项目级别的一个选项,可通过禁用布局加载来缩短项目读取时间。 激活此选项将禁用QGIS WMS GetPrint请求。将此QGIS项目标志设置为不加载布局。 |
错误 |
WMS |
QGIS_SERVER_FORCE_READONLY_LAYERS |
强制QGIS服务器以只读模式打开所有图层 |
错误 |
全 |
QGIS_SERVER_IGNORE_BAD_LAYERS |
“Bad”层是指无法加载的层。QGIS Server的默认行为是,如果项目包含错误的层,则认为该项目不可用。 通过将此变量设置为,可以覆盖默认行为 |
错误 |
全 |
QGIS_SERVER_LANDING_PAGE_PREFIX |
登录页面基本URL的路径组件的前缀 |
“” |
全 |
QGIS_SERVER_LANDING_PAGE_PROJECTS_DIRECTORIES |
登录页服务用于查找.qgs和.qgz项目的目录 |
“” |
全 |
QGIS_SERVER_LANDING_PAGE_PROJECTS_PG_CONNECTIONS |
登录页面服务用于查找项目的PostgreSQL连接字符串 |
“” |
全 |
QGIS_SERVER_LOG_FILE |
指定路径和文件名。确保服务器具有写入文件的适当权限。文件应该是自动创建的,只需向服务器发送一些请求。如果不在那里,请检查权限。 警告 QGIS_SERVER_LOG_FILE从QGIS 3.4起已弃用,请改用QGIS_SERVER_LOG_STDERR。QGIS4.0中将不再支持文件日志记录。 |
‘’ |
全 |
QGIS_SERVER_LOG_LEVEL |
指定所需的日志级别。可选值为:
|
0 |
全 |
QGIS_SERVER_LOG_PROFILE |
将详细的配置文件信息添加到日志中,仅当QGIS_SERVER_LOG_LEVEL=0时有效 |
错误 |
全 |
QGIS_SERVER_LOG_STDERR |
激活到stderr的日志记录。此变量在以下情况下不起作用
|
错误 |
全 |
QGIS_SERVER_MAX_THREADS |
激活并行渲染时要使用的线程数。如果值为 |
-1 |
全 |
QGIS_SERVER_OVERRIDE_SYSTEM_LOCALE |
设置QGIS服务器要使用的区域设置。默认值为空(无替代)。 示例: |
‘’ |
全 |
QGIS_SERVER_PARALLEL_RENDERING |
激活WMS GetMap请求的并行呈现。它被禁用了 (
|
错误 |
WMS |
QGIS_SERVER_PROJECT_CACHE_CHECK_INTERVAL |
控制缓存失效的定期策略间隔 |
全 |
|
QGIS_SERVER_PROJECT_CACHE_STRATEGY |
定义使项目缓存无效的方法。可用的策略包括:
|
文件系统 |
全 |
QGIS_SERVER_SERVICE_URL |
这是一个选项,用于设置项目中不存在的服务URL。 服务URL定义自(按优先顺序):
在后四种情况下,生成的服务URL基于 |
‘’ |
全 |
QGIS_SERVER_SHOW_GROUP_SEPARATOR |
定义组分隔符(例如,千位分隔符)是否应用于数值(例如,在GetFeatureInfo响应中)。缺省值为
|
错误 |
WMS |
QGIS_SERVER_TRUST_LAYER_METADATA |
这是项目级别的一个选项,可通过使用项目元数据中定义的矢量图层范围并禁用检查PostgreSQL/PostGIS图层主关键字唯一性来缩短项目读取时间。 通过将此变量设置为,可以强制信任图层元数据 如果在项目使用过程中没有固定图层范围,请不要使用它。 |
错误 |
全 |
QGIS_SERVER_WCS_SERVICE_URL |
这是一个选项,用于设置项目中不存在的服务URL。看见 QGIS_SERVER_SERVICE_URL 以获取更多信息。 |
‘’ |
WCS |
QGIS_SERVER_WFS_SERVICE_URL |
这是一个选项,用于设置项目中不存在的服务URL。看见 QGIS_SERVER_SERVICE_URL 以获取更多信息。 |
‘’ |
WFS |
QGIS_SERVER_WMS_MAX_HEIGH/QGIS_SERVER_WMS_MAX_WIDTH |
WMS请求的最大高度/宽度。在这个和项目1之间使用的是最保守的。如果该值为 |
-1 |
WMS |
QGIS_SERVER_WMS_SERVICE_URL |
这是一个选项,用于设置项目中不存在的服务URL。看见 QGIS_SERVER_SERVICE_URL 以获取更多信息。 |
‘’ |
WMS |
QGIS_SERVER_WMTS_SERVICE_URL |
这是一个选项,用于设置项目中不存在的服务URL。看见 QGIS_SERVER_SERVICE_URL 以获取更多信息。 |
‘’ |
WMTS |
QUERY_STRING |
查询字符串,通常由Web服务器传递。在从命令行测试QGIS服务器二进制文件时,此变量非常有用。 例如,要在命令行上测试对也需要在pg_service.conf文件中定义的PostgreSQL连接的项目的GetCapability请求: PGSERVICEFILE=/etc/pg_service.conf \
QUERY_STRING="MAP=/home/projects/world.qgs&SERVICE=WMS&REQUEST=GetCapabilities" \
/usr/lib/cgi-bin/qgis_mapserv.fcgi
结果应该是GetCapability响应的内容,或者如果出现问题,则是一条错误消息。 |
‘’ |
全 |
6.3. 设置摘要
当QGIS服务器启动时,您可以根据环境变量获得所有可配置参数的摘要。此外,还会显示当前使用的值和来源。
例如,使用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
在这个特殊的案例中,我们知道 QGIS_SERVER_MAX_THREADS 和 QGIS_SERVER_PARALLEL_RENDERING 值是从位于 QGIS_OPTIONS_PATH 目录(通过环境变量定义)。Ini文件中的相应条目为 /qgis/max_threads 和 /qgis/parallel_rendering 他们的价值观是 true 和 4 线。
6.4. 连接到服务文件
为了使Apache了解PostgreSQL服务文件(请参阅 PostgreSQL服务连接文件 部分)您需要使您的 *.conf
文件如下所示:
SetEnv PGSERVICEFILE /home/web/.pg_service.conf
<Directory "/home/web/apps2/bin/">
AllowOverride None
.....
6.5. 将字体添加到您的Linux服务器
请记住,您可以使用指向其他计算机上默认不存在的字体的QGIS项目。这意味着,如果您共享项目,它在其他计算机上可能看起来不同(如果目标计算机上不存在字体)。
为了确保这种情况不会发生,您只需在目标计算机上安装缺少的字体。在桌面系统上执行此操作通常很简单(双击字体)。
对于Linux,如果您没有安装桌面环境(或者您更喜欢使用命令行),则需要:
在基于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
在基于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