5. 플러그인

5.1. 플러그인 목록

Plugins can also be installed on QGIS Server.

공식 QGIS 저장소 에서 서버 용으로 설계된 몇몇 플러그인을 찾아볼 수 있습니다.

Install only plugins you need for your own purpose. On QGIS server, plugins are like hooks into QGIS server, they can alter inputs or outputs of QGIS server. They can produce unexpected result if you don’t know how the plugin works. Please refer to their respective documentation or the application that needs QGIS server plugins to know which plugin can be useful for you.

5.2. 플러그인 위치

기본적으로 데비안 기반 시스템 상에서 QGIS 서버는 /usr/lib/qgis/plugins 에 있는 플러그인을 검색할 것입니다. QGIS 서버 구동 시 로그에 기본값을 출력합니다. 웹 서버 환경설정에서 QGIS_PLUGINPATH 환경 변수를 정의해서 사용자 지정 경로를 설정할 수도 있습니다.

5.3. 설치

5.3.1. ZIP 압축 파일로 직접 설치

As an example, to install the HelloWorld plugin for testing the server, using a specific folder, you first have to create a directory to hold server plugins. This will be specified in the virtual host configuration and passed on to the server through an environment variable:

mkdir -p /var/www/qgis-server/plugins
cd /var/www/qgis-server/plugins
wget https://github.com/elpaso/qgis-helloserver/archive/master.zip
unzip master.zip
mv qgis-helloserver-master HelloServer

경고

According to its description, HelloServer plugin is designed for development and demonstration purposes. Do not keep this plugin for production if you don’t need it.

5.3.2. 명령줄 도구로 설치

QGIS 플러그인 저장소에 저장되어 있는 플러그인을 설치하고 정기적으로 업그레이드해야 하는 경우, QGIS-Plugin-Manager 를 이용할 수도 있습니다. QGIS 플러그인 관리자는 명령줄에서 플러그인을 관리할 수 있게 도와주는 도구입니다.

pip 을 이용해서 설치합니다. 가상 환경에 pip을 설치하는 것은 훌륭한 관습이지만 필수는 아닙니다:

pip3 install qgis-plugin-manager

To upgrade the tool:

pip3 install --upgrade qgis-plugin-manager

그 다음, 명령줄에서 qgis-plugin-manager 실행 파일을 이용할 수 있습니다:

cd /var/www/qgis-server/plugins
qgis-plugin-manager list

QGIS server version 3.19.0
List all plugins in /var/www/qgis-server/plugins

------------------------------------------------------------------------------------------------------------------------------------------------------
|  Folder                  |  Name            |  Version  |  Experimental  |  QGIS min  |  QGIS max  |  Author                  |  Action           |
------------------------------------------------------------------------------------------------------------------------------------------------------
|wfsOutputExtension        |wfsOutputExtension|1.6.2      |                |3.0         |            |3Liz                      |                    |
|qgis_server_render_geojson|GeoJson Renderer  |v0.4       |                |3.4         |            |Matthias Kuhn (OPENGIS.ch)|                    |
|DataPlotly                |Data Plotly       |3.7.1      |                |3.4         |3.98        |Matteo Ghetta (Faunalia)  |Upgrade to 3.8.1    |
------------------------------------------------------------------------------------------------------------------------------------------------------

이 도구로 플러그인을 설치하거나 업그레이드하는 방법을 알고 싶다면 README 파일 에 있는 완전한 문서를 읽어볼 것을 권장합니다.

5.4. HTTP 서버 환경 설정

5.4.1. Apache

서버 플러그인을 사용하려면, FastCGI가 어디를 찾아야 하는지 알아야 합니다. 따라서, 아파치 환경 설정 파일을 다음과 같이 수정해서 FastCGI에 QGIS_PLUGINPATH 환경 변수를 알려줘야 합니다.

FcgidInitialEnv QGIS_PLUGINPATH "/var/www/qgis-server/plugins"

이에 더해, 앞에서 소개한 HelloWorld 플러그인을 여러모로 활용하려면 기본 HTTP 인증이 필요합니다. 따라서 마지막으로 아파치 환경 설정 파일을 업데이트해야 합니다:

# Needed for QGIS HelloServer plugin HTTP BASIC auth
<IfModule mod_fcgid.c>
    RewriteEngine on
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

그리고 아파치를 다음과 같이 재시작하십시오:

systemctl restart apache2

5.5. 플러그인 사용법

HelloWorld 플러그인을 통해 서버를 검증해보겠습니다:

wget -q -O - "http://localhost/cgi-bin/qgis_mapserv.fcgi?SERVICE=HELLO"
 HelloServer!

다음과 같은 주소에서 QGIS 서버의 기본 GetCapabilities 응답을 살펴볼 수 있습니다:

http://localhost/cgi-bin/qgis_mapserv.fcgi?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities