플러그인

설치

서버 검증 용 HelloWorld 예시 플러그인을 설치하려면, 먼저 서버 플러그인을 담을 디렉터리를 생성해야 합니다. 다음과 같이 가상 호스트 환경 설정에 이 디렉터리를 지정하고 환경 변수를 통해 서버에 넘겨줄 것입니다:

$ sudo mkdir -p /opt/qgis-server/plugins
$ cd /opt/qgis-server/plugins
$ sudo wget https://github.com/elpaso/qgis-helloserver/archive/master.zip
# In case unzip was not installed before:
$ sudo apt-get install unzip
$ sudo unzip master.zip
$ sudo mv qgis-helloserver-master HelloServer

HTTP 서버 환경 설정

Apache

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

FcgidInitialEnv QGIS_SERVER_LOG_FILE /tmp/qgis-000.log
FcgidInitialEnv QGIS_SERVER_LOG_LEVEL 0
FcgidInitialEnv QGIS_PLUGINPATH "/opt/qgis-server/plugins"

Moreover, a basic HTTP authorization is necessary to play with the HelloWorld plugin previously introduced. So we have to update the Apache configuration file a last time:

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

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

$ sudo a2ensite 001-qgis-server
$ sudo service apache2 restart

참고

수많은 노드를 가지고 있는 피처를 작업하는 경우, 해당 피처를 수정하거나 새 피처를 추가할 때 오류가 발생할 것입니다. 이런 경우 001-qgis-server.conf 파일에 다음 코드를 삽입해서 해결할 수 있습니다:

<IfModule mod_fcgid.c>
FcgidMaxRequestLen 26214400
FcgidConnectTimeout 60
</IfModule>

플러그인 사용법

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