18.2.4. 고급 환경 설정¶
18.2.4.1. 로그 작업¶
서버로 전송된 요청의 로그를 기록하려면, 다음 환경 변수를 설정해야 합니다:
QGIS_SERVER_LOG_LEVEL
QGIS_SERVER_LOG_FILE
QGIS_SERVER_LOG_STDERR
이들의 의미를 이해하고 싶다면 환경 변수 를 살펴보세요.
18.2.4.2. 환경 변수¶
환경 변수 를 설정해서 QGIS 서버의 일부 환경을 설정할 수 있습니다.
HTTP 서버 및 사용자가 QGIS 서버를 어떻게 실행하느냐에 따라, 이런 변수들을 여러 방법으로 정의할 수 있습니다. HTTP 서버 환경설정 에서 그 방법들을 자세히 설명하고 있습니다.
명칭 |
설명 |
기본값 |
서비스 |
---|---|---|---|
QGIS_OPTIONS_PATH |
설정 파일이 있는 디렉터리를 가리키는 경로를 지정합니다. QGIS 응용 프로그램의 |
〈〉 |
모두 |
QUERY_STRING |
일반적으로 웹 서버가 전송하는 쿼리 문자열을 정의합니다. 이 환경 변수는 명령 줄 인터페이스에서 QGIS 서버 파일을 검증하는 데 유용합니다. 예를 들어 다음은 PGSERVICEFILE=/etc/pg_service.conf \
QUERY_STRING="MAP=/home/qgis/projects/world.qgs&SERVICE=WMS&REQUEST=GetCapabilities" \
/usr/lib/cgi-bin/qgis_mapserv.fcgi
이 요청에 대한 결과는 |
〈〉 |
모두 |
QGIS_PROJECT_FILE |
일반적으로 (MAP 을 보유한) 쿼리 문자열 내에서 파라미터로 전송되는 PostgreSQL에 저장된 프로젝트를, 예를 들어 |
〈〉 |
모두 |
QGIS_SERVER_LOG_FILE |
경로 및 파일명을 지정합니다. 서버가 파일을 작성하기 위한 적절한 권한을 가지고 있는지 확인하십시오. 서버에 요청을 보내기만 하면 파일을 자동적으로 생성할 것입니다. 파일이 생성되지 않을 경우, 권한을 확인해보십시오. QGIS_SERVER_LOG_FILE 환경 변수는 QGIS 3.4 버전부터 사용하지 않게 되었습니다. 파일 로그 작업은 QGIS 4.0 버전에서 지원하지 않게 될 것입니다. |
〈〉 |
모두 |
QGIS_SERVER_LOG_STDERR |
〈stderr〉 로의 로그 작업을 활성화합니다.
|
false |
모두 |
MAX_CACHE_LAYERS |
캐시되는 레이어의 최대 개수를 지정합니다. (기본값은 |
100 |
모두 |
QGIS_PLUGINPATH |
사용자가 서버 용 파이썬 플러그인을 사용하고 있는 경우 유용합니다. 이 환경 변수는 파이썬 플러그인을 검색할 폴더를 설정합니다. |
〈〉 |
모두 |
QGIS_SERVER_LOG_LEVEL |
원하는 로그 수준을 지정합니다. 다음 수준 가운데 하나를 선택할 수 있습니다:
|
0 |
모두 |
QGIS_SERVER_PARALLEL_RENDERING |
WMS GetMap 요청에 대해 병렬 렌더링을 활성화합니다. 기본적으로 비활성화(
|
false |
WMS |
QGIS_SERVER_MAX_THREADS |
병렬 렌더링을 활성화한 경우 사용할 스레드의 개수를 지정합니다. 값이 |
-1 |
모두 |
QGIS_SERVER_CACHE_DIRECTORY |
파일 시스템 상에 네트워크 캐시 디렉터리를 지정합니다. |
|
모두 |
QGIS_SERVER_CACHE_SIZE |
네트워크 캐시의 용량을 MB 단위로 설정합니다. |
50 MB |
모두 |
QGIS_SERVER_OVERRIDE_SYSTEM_LOCALE |
QGIS 서버가 사용할 LOCALE을 설정합니다. 기본값은 비어 있습니다(무시하지 않습니다). 예시: |
〈〉 |
모두 |
QGIS_SERVER_SHOW_GROUP_SEPARATOR |
숫자 값에 대해 (예를 들어
|
false |
WMS |
QGIS_SERVER_IGNORE_BAD_LAYERS |
《불량(bad)》 레이어란 불러올 수 없는 레이어입니다. 프로젝트가 불량 레이어를 담고 있는 경우 해당 프로젝트를 사용할 수 없다고 인식하는 것이 QGIS 서버의 기본 습성입니다. 이 환경 변수를 |
false |
모두 |
QGIS_SERVER_WMS_MAX_HEIGHT / QGIS_SERVER_WMS_MAX_WIDTH |
WMS 요청에 대한 최대 높이/너비입니다. 이 값과 프로젝트 값 사이에 가장 보수적인 값을 사용합니다. 값이 |
-1 |
WMS |
QGIS_SERVER_API_RESOURCES_DIRECTORY |
(OAPIF/WFS3 같은) OGC API의 모든 정적 리소스(HTML 템플릿, CSS, JS 등등) 용 기본 디렉터리 |
패키지에 따라 다름 |
WFS |
QGIS_SERVER_API_WFS3_MAX_LIMIT |
피처 요청에서 |
10000 |
WFS |
18.2.4.3. 설정 요약¶
QGIS 서버 실행 시, 환경 설정할 수 있는 모든 파라미터의 요약을 환경 변수 덕분에 볼 수 있습니다. 게다가, 현재 사용되는 값과 그 기원까지 표시됩니다.
예를 들어 〈spawn-fcgi〉 의 경우:
export QGIS_OPTIONS_PATH=/home/user/.local/share/QGIS/QGIS3/profiles/default/
export QGIS_SERVER_LOG_FILE=/home/user/qserv.log
export QGIS_SERVER_LOG_LEVEL=2
spawn-fcgi -f /usr/lib/cgi-bin/qgis_mapserv.fcgi -s /tmp/qgisserver.sock -U www-data -G www-data -n
QGIS Server Settings:
- QGIS_OPTIONS_PATH / '' (Override the default path for user configuration): '/home/user/.local/share/QGIS/QGIS3/profiles/default/' (read from ENVIRONMENT_VARIABLE)
- QGIS_SERVER_PARALLEL_RENDERING / '/qgis/parallel_rendering' (Activate/Deactivate parallel rendering for WMS getMap request): 'true' (read from INI_FILE)
- QGIS_SERVER_MAX_THREADS / '/qgis/max_threads' (Number of threads to use when parallel rendering is activated): '4' (read from INI_FILE)
- QGIS_SERVER_LOG_LEVEL / '' (Log level): '2' (read from ENVIRONMENT_VARIABLE)
- QGIS_SERVER_LOG_FILE / '' (Log file): '/tmp/qserv.log' (read from ENVIRONMENT_VARIABLE)
- QGIS_PROJECT_FILE / '' (QGIS project file): '' (read from DEFAULT_VALUE)
- MAX_CACHE_LAYERS / '' (Specify the maximum number of cached layers): '100' (read from DEFAULT_VALUE)
- QGIS_SERVER_CACHE_DIRECTORY / '/cache/directory' (Specify the cache directory): '/root/.local/share/QGIS/QGIS3/profiles/default/cache' (read from DEFAULT_VALUE)
- QGIS_SERVER_CACHE_SIZE / '/cache/size' (Specify the cache size): '52428800' (read from INI_FILE)
Ini file used to initialize settings: /home/user/.local/share/QGIS/QGIS3/profiles/default/QGIS/QGIS3.ini
이 특정한 경우에서, (환경 변수를 통해 정의한) QGIS_OPTIONS_PATH 디렉터리에서 찾은 .ini
파일로부터 QGIS_SERVER_MAX_THREADS 및 QGIS_SERVER_PARALLEL_RENDERING 값을 읽어왔다는 사실을 알 수 있습니다. .ini
파일의 대응 항목들은 /qgis/max_threads 및 /qgis/parallel_rendering 이며 그 값은 각각 true 와 스레드 4 개입니다.
18.2.4.4. 레이어, 그룹 및 프로젝트를 위한 약칭¶
많은 요소가 <Name>
과 <Title>
을 보유하고 있습니다. Name 은 사물통신에 쓰이는 텍스트 문자열인 반면 Title 은 사람이 읽고 이해하기 위한 문자열입니다.
예를 들어, 어느 데이터셋이 《최대 기온(Maximum Atmospheric Temperature)》이란 서술적 제목을 보유한 동시에 약칭 《ATMAX》를 사용한 요청을 받을 수도 있습니다. 사용자는 이미 레이어, 그룹 및 프로젝트를 위한 제목을 설정할 수 있습니다.
OWS 명칭은 레이어 트리에서 사용되는 명칭을 기반으로 합니다. 이 명칭은 사물통신을 위한 명칭이라기보다는 사람을 위한 라벨에 더 가깝습니다.
QGIS 서버는 다음을 지원하고 있습니다:
레이어 속성에서 약칭을 편집할 수 있습니다. 레이어를 오른쪽 클릭한 다음
을 선택하면 변경할 수 있습니다.레이어 트리 그룹의 WMS 데이터 대화창 (약칭, 제목, 요약)
레이어 그룹을 오른쪽 클릭한 다음 Set Group WMS data 메뉴 옵션을 선택하면 다음 대화창이 열립니다:
그림 18.15 그룹 WMS 데이터 대화창 설정하기¶
프로젝트 속성에서 약칭을 편집할 수 있습니다. 정적 방식(static method)으로 접근할 수 있는 약칭 편집 란에 정규 표현식 유효성 검사 문자(validator)
"^[A-Za-z][A-Za-z0-9\._-]*"
를 추가하십시오.정적 방식(static method)으로 접근할 수 있는 약칭 편집 란에 정규 표현식 유효성 검사 문자(validator)
"^[A-Za-z][A-Za-z0-9\._-]*"
를 추가하십시오.메뉴 옵션을 선택하면 프로젝트 루트를 위한 약칭을 선택할 수 있습니다.
fullProjectSettings
에TreeName
항목을 추가할 수 있습니다.
레이어, 그룹 또는 프로젝트를 위한 약칭을 설정했다면, QGIS 서버가 해당 약칭을 레이어명으로 사용할 것입니다.
18.2.4.5. 서비스 파일에 연결¶
Apache가 PostgreSQL 서비스 파일(PostgreSQL 서비스 연결 파일 참조)을 인지하도록 하려면, 사용자의 *.conf
파일을 다음과 같이 추가해야 합니다:
SetEnv PGSERVICEFILE /home/web/.pg_service.conf
<Directory "/home/web/apps2/bin/">
AllowOverride None
.....
18.2.4.6. 사용자 리눅스 서버에 글꼴 추가¶
사용자의 QGIS 프로젝트가 가리키는 글꼴이 다른 시스템 상에는 기본적으로 존재하지 않을 수도 있다는 사실을 기억하고 있어야 합니다. 즉 프로젝트를 공유하는 경우, (대상 컴퓨터에 해당 글꼴이 없다면) 다른 컴퓨터에서는 다르게 보일 수도 있다는 뜻입니다.
이런 일이 일어나지 않도록 보장하려면, 대상 컴퓨터에 빠진 글꼴을 설치하기만 하면 됩니다. 데스크탑 시스템인 경우 보통 이 작업은 어렵지 않습니다. (글꼴 파일을 더블클릭하면 됩니다.)
리눅스의 경우, 데스크탑 환경이 설치되지 않았다면 (또는 사용자가 명령 줄 인터페이스를 선호한다면) 다음 명령어를 실행하면 됩니다:
데비안 기반 시스템인 경우:
sudo su mkdir -p /usr/local/share/fonts/truetype/myfonts && cd /usr/local/share/fonts/truetype/myfonts # copy the fonts from their location cp /fonts_location/* . chown root * cd .. && fc-cache -f -v
페도라 기반 시스템인 경우:
sudo su mkdir /usr/share/fonts/myfonts && cd /usr/share/fonts/myfonts # copy the fonts from their location cp /fonts_location/* . chown root * cd .. && fc-cache -f -v