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.bango
, super.duper.training
, example.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服务。