11.1. Lesson: 安装QGIS服务器

The goal for this lesson: 要了解如何安装 QGIS Server 在Debian延伸上。只需微不足道的变化,您也可以将其用于任何基于Debian的发行版,如Ubuntu及其衍生产品。

备注

在Ubuntu中,您可以使用您的常规用户,前缀 sudo 到需要管理员权限的命令。在Debian中,您可以作为管理员工作 (root ),而不使用 sudo

11.1.1. 适度 Follow Along: Install from packages

在本课中,我们将只执行如下所示的从程序包安装 here

使用以下命令安装QGIS服务器:

apt install qgis-server --no-install-recommends --no-install-suggests

# if you want to install server plugins, also:
apt install python3-qgis

在同一台计算机上未安装QGIS Desktop(附带X服务器)的情况下,应在生产中使用QGIS Server。

11.1.2. 适度 Follow Along: QGIS Server Executable

QGIS服务器可执行文件为 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服务器配置

为了从Internet浏览器访问已安装的QGIS服务器,我们需要使用HTTP服务器。中详细介绍了Apache HTTP服务器的安装过程 阿帕奇HTTP服务器 一节。

备注

如果您在未运行X服务器(包括在Linux Desktop中)的情况下安装了QGIS Server,并且您还希望使用 GetPrint 命令,那么您应该安装一个假的X服务器,并告诉QGIS服务器使用它。您可以通过遵循 Xvfb installation process

11.1.4. 适度 Follow Along: Create another virtual host

让我们创建另一个指向QGIS服务器的Apache虚拟主机。你可以选择任何你喜欢的名字 (coco.bangosuper.duper.trainingexample.com 等)但为了简单起见,我们将使用 myhost

  • 让我们来设置 myhost 通过添加指向本地主机IP的名称 127.0.0.1 x 发送到 /etc/hosts 使用以下命令: sh -c "echo '127.0.0.1 myhost' >> /etc/hosts" 或通过使用手动编辑文件 gedit /etc/hosts

  • 我们可以检查一下 myhost 通过在终端中运行 ping 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 通过以下方式访问站点: 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>
  • 阿帕奇不知道他应该回答指向名为的服务器的请求 myhost 。要设置虚拟主机,最简单的方法是创建 myhost.conf 文件中的 /etc/apache2/sites-available 具有与相同内容的目录 qgis.demo.conf 除了 ServerName 这行应该是 ServerName myhost 。您还可以更改日志的位置,否则两个虚拟主机的日志将被共享,但这是可选的。

  • 现在,让我们使用以下命令启用虚拟主机 a2ensite myhost.conf ,然后使用以下命令重新加载apache服务 service apache2 reload

  • 如果您再次尝试访问http://myhost/cgi-bin/qgis_mapserv.fcgi URL,您会发现现在一切正常!

11.1.5. In Conclusion

您了解了如何从包中安装不同的QGIS Server版本,如何在基于Debian的Linux发行版上使用QGIS Server配置Apache。

11.1.6. What's Next?

现在您已经安装了QGIS服务器,并且可以通过HTTP协议访问它,我们需要了解如何访问它可以提供的一些服务。下一课的主题是学习如何访问QGIS Server WMS服务。