중요

번역은 여러분이 참여할 수 있는 커뮤니티 활동입니다. 이 페이지는 현재 100.00% 번역되었습니다.

11.1. 수업: QGIS 서버 설치하기

이 수업의 목표: 데비안 계열 리눅스에 QGIS 서버 를 설치하는 방법을 배우기. 우분투 및 우분투에서 파생된 리눅스 같은 모든 데비안 기반 배포판에서도 이 방법을 따르면 됩니다. 각 배포판에 따른 차이는 무시해도 될 정도입니다.

참고

우분투에서는 운영자(admin) 권한이 필요한 명령어 앞에 sudo 를 추가하면 일반 사용자도 설치할 수 있습니다. 데비안에서는 sudo 를 사용할 필요가 없는 운영자(root)로 작업하면 됩니다.

11.1.1. ★★☆ 따라해보세요: 패키지로부터 설치하기

이 강의에서는 여기 에 있는 배포판으로만 설치할 것입니다.

다음 명령어를 사용해서 QGIS 서버를 설치하십시오:

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

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

QGIS 서버는 동일한 기기에 (X.Org 서버와 함께 설치되는) QGIS 데스크탑 소프트웨어가 설치되어 있지 않은 환경에서 사용해야 합니다.

11.1.2. ★★☆ 따라해보세요: QGIS 서버 실행 파일

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 서버 환경설정

인터넷 브라우저에서 QGIS 서버 설치본에 접근하기 위해서는 HTTP 서버를 이용해야 합니다. 아파치 HTTP 서버 절에서 아파치 HTTP 서버 설치 과정을 자세히 설명하고 있습니다.

참고

QGIS 서버를 (리눅스 데스크탑에 포함돼 있는) X 서버를 실행하지 않고 설치했는데 GetPrint 명령어도 사용하고 싶다면, 가상 X 서버를 설치해서 QGIS가 이 가상 X 서버를 사용하도록 해야 합니다. Xvfb 설치 과정 을 따라 이 작업을 완료할 수 있습니다.

11.1.4. ★★☆ 따라해보세요: 또다른 가상 호스트 생성하기

QGIS 서버를 가리키는 또다른 아파치 가상 호스트를 생성해봅시다. 여러분이 원하는대로 (coco.bango, super.duper.training, example.com 등등) 어떤 이름이든 선택할 수 있습니다만, 단순화를 위해 myhost 를 쓰도록 하겠습니다.

  • myhost 라는 이름이 로컬호스트(localhost) IP를 가리키도록 해봅시다. /etc/hosts 파일에 127.0.0.1 x 와 같이 로컬호스트 IP와 호스트 이름을 추가해보죠. sh -c "echo '127.0.0.1 myhost' >> /etc/hosts" 명령어를 실행하거나, gedit /etc/hosts 명령어로 해당 파일을 직접 편집하면 됩니다.

  • 터미널에서 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 명령어를 실행하거나, 데비안 기본 브라우저에서 해당 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 라는 이름의 서버를 가리키는 요청에 답해야 한다는 사실을 모릅니다. 가상 호스트를 설정하기 위한 가장 간단한 방법은 /etc/apache2/sites-available 디렉터리에 myhost.conf 파일을 만드는 것이겠죠. 이 파일의 내용은 qgis.demo.conf 파일의 내용과 동일해야 합니다. 단 하나, ServerName 줄이 ServerName myhost 가 되어야 한다는 것만 제외하면 말이죠. 로그를 저장할 위치도 바꿀 수 있는데, 바꾸지 않으면 두 가상 호스트들의 로그가 동일한 위치에 저장될 겁니다. 물론 바꾸지 않아도 됩니다.

  • 이제 a2ensite myhost.conf 명령어로 가상 호스트를 활성화시킨 다음 service apache2 reload 명령어로 아파치 서비스를 다시 불러와봅시다.

  • http://myhost/cgi-bin/qgis_mapserv.fcgi URL에 다시 접근해보면 모든 게 제대로 작동한다는 사실을 알 수 있을 겁니다!

11.1.5. 결론

여러분은 데비안 기반 리눅스 배포판에 여러 버전의 QGIS 서버를 패키지로부터 설치하고 QGIS 서버와 아파치를 환경설정하는 방법을 배웠습니다.

11.1.6. 다음은 무엇을 배우게 될까요?

이제 QGIS 서버를 설치했고 HTTP 프로토콜을 통해 서버에 접근할 수 있으니, 서버가 제공하는 몇몇 서비스에 접근하는 방법을 배워야 합니다. 다음 수업에서는 QGIS 서버 WMS 서비스에 어떻게 접근하는지를 배울 것입니다.