11.1. 课: 安装 QGIS Server
本课目标: 了解如何在 Debian Stretch 安装 QGIS Server 。您也可以在任何基于Debian的发行版 (如Ubuntu及其衍生系统) 中安装与使用,只是有点微不足道的差异。
备注
在Ubuntu中,您可以是普通用户身份,并在使用 sudo
命令时获取管理员权限。在Debian中,您可以作为管理员 (root
) 工作,而无需使用 sudo
。
11.1.1. 跟我做: 从软件包安装
在本课,我们将只从 此处 所示的软件包中进行安装。
安装 QGIS Server 使用:
apt install qgis-server --no-install-recommends --no-install-suggests
# if you want to install server plugins, also:
apt install python3-qgis
QGIS Server 不应与 QGIS Desktop (以及附带的X服务器) 安装在同一台机器的情况下用于生产环境。
11.1.2. 跟我做: QGIS Server 可执行文件
QGIS Server 可执行文件是 qgis_mapserv.fcgi
。您可以通过运行 find / -name 'qgis_mapserv.fcgi'
来检查它的安装位置,应该输出如 /usr/lib/cgi-bin/qgis_mapserv.fcgi
这样的内容。
或者,如果此时要执行命令行测试,可以运行 /usr/lib/cgi-bin/qgis_mapserv.fcgi --version
命令,应该输出如下内容:
QGIS 3.21.0-Master 'Master' (1c70953f1e)
QGIS code revision 1c70953f1e
Qt version 5.15.2
Python version 3.9.5
GDAL/OGR version 3.2.2
PROJ version 7.2.1
EPSG Registry database version v10.008 (2020-12-16)
GEOS version 3.9.0-CAPI-1.16.2
SQLite version 3.34.1
OS Ubuntu 21.04
稍后我们将了解如何发出WMS请求。
11.1.3. HTTP Server 配置
为了从互联网浏览器访问已安装的QGIS服务器,我们需要使用HTTP服务器。Apache HTTP服务器的安装方法在 Apache HTTP Server 一节中有详细说明。
备注
如果安装 QGIS Server 时没有运行 X 服务器 (包含在 Linux Desktop 中),并且还想使用 GetPrint
命令,那么应该安装一个模拟 X 服务器,并告诉QGIS服务器使用它。您可以通过学习 Xvfb安装方法 来实现。
11.1.4. 跟我做: 创建另一个虚拟主机
让我们创建另一个指向QGIS服务器的Apache虚拟主机。可以选择任何您喜欢的名称 (coco.bango
, super.duper.training
, example.com
等等),但为了简单起见,我们将使用 myhost
。
让我们使用以下命令:
sh -c "echo '127.0.0.1 myhost' >> /etc/hosts"
,或手动编辑文件gedit /etc/hosts
,将127.0.0.1 x
添加到/etc/hosts
来设置myhost
名称以指向本地主机IP。可以通过在终端运行
ping myhost
命令来检查myhost
是否指向本地主机,该命令应输出:
qgis@qgis:~$ ping myhost
PING myhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.024 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.029 ms
让我们尝试一下是否可以通过执行以下命令从
myhost
站点访问QGIS服务器:curl http://myhost/cgi-bin/qgis_mapserv.fcgi
或者从 Debian box 浏览器访问URL。您可能会得到:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /cgi-bin/qgis_mapserv.fcgi was not found on this server.</p>
<hr>
<address>Apache/2.4.25 (Debian) Server at myhost Port 80</address>
</body></html>
Apache不知道他应该回答指向名为
myhost
服务器的请求。为了设置虚拟主机,最简单的方法是在/etc/apache2/sites-available
目录中创建一个myhost.conf
文件,其内容与qgis.demo.conf
相同,但ServerName
行应为ServerName myhost
。您还可以更改日志的位置,否则两个虚拟主机的日志将被共享,但这是可选的。现在让我们使用
a2ensite myhost.conf
启用虚拟主机,然后使用service apache2 reload
重新加载Apache服务。如果您再次尝试访问 http://myhost/cgi-bin/qgis_mapserv.fcgi URL,您会注意到现在一切正常!
11.1.5. In Conclusion
您学习了如何从软件包中安装不同的QGIS服务器版本,如何在基于Debian的Linux发行版使用QGIS服务器配置Apache。
11.1.6. What's Next?
现在您已经安装了QGIS服务器,并且可以通过HTTP协议访问,我们需要了解如何访问它可以提供的一些服务。下一课的主题是学习如何访问 QGIS Server WMS 服务。