6. 高度な構成
6.1. ログを記録する
サーバーに送られたリクエストを記録するには、次の環境変数を設定しなければなりません:
次の変数によって、ログの記録を更にカスタマイズすることができます:
6.2. 環境変数
環境変数 を設定することによってQGIS Serverのいくつかの側面を設定することができます。
HTTP サーバーと QGIS Server の実行方法に応じて、これらの変数を定義する方法がいくつかあります。詳しくは Apache HTTP サーバー を参照してください。
名前 |
説明 |
デフォルト |
サービス |
---|---|---|---|
QGIS_OPTIONS_PATH |
設定のあるディレクトリへのパスを指定します。QGIS アプリケーションの |
'' |
All |
QGIS_PLUGINPATH |
サーバーにPythonプラグインを使用している場合に便利です。Pythonプラグインを検索するフォルダを設定します。 |
'' |
All |
QGIS_PROJECT_FILE |
プロジェクトファイル PostgreSQLに保存されているプロジェクトを示すこともできます。例 |
'' |
All |
QGIS_SERVER_ALLOWED_EXTRA_SQL_TOKENS |
地物フィルタの構成要素として使用できる追加の SQL トークンを表す、カンマで区切られた文字列のリスト。 |
'' |
WMS |
QGIS_SERVER_API_RESOURCES_DIRECTORY |
すべてのOGC API(OAPIF/WFS3など)の静的リソース(HTMLテンプレート、CSS、JSなど)のベースディレクトリ |
パッケージに依存します |
OAPIF/WFS3 |
QGIS_SERVER_API_WFS3_MAX_LIMIT |
OAPIF/WFS3 地物リクエストにおける |
10000 |
OAPIF/WFS3 |
QGIS_SERVER_CACHE_DIRECTORY |
ファイルシステム上のネットワークキャッシュディレクトリを指定します。 |
プロファイルディレクトリの |
All |
QGIS_SERVER_CACHE_SIZE |
ネットワークキャッシュの大きさをMBで設定します。 |
50 MB |
All |
QGIS_SERVER_DISABLE_GETPRINT |
これは、レイアウトの読み込みを無効にすることで、プロジェクトの読み込み時間を短縮するためのプロジェクトレベルのオプションです。 このオプションを有効にすると、QGIS WMS GetPrint 要求が無効になります。レイアウトを読み込まないようにするには、このQGISプロジェクトフラグを設定します。 |
false |
WMS |
QGIS_SERVER_FORCE_READONLY_LAYERS |
全てのレイヤを読み取り専用モードで開くようQGIS Serverに強制します |
false |
All |
QGIS_SERVER_IGNORE_BAD_LAYERS |
「不良」レイヤとは、読み込むことができないレイヤのことです。QGIS Server のデフォルトの動作では、不良レイヤが含まれている場合、そのプロジェクトは利用できないとみなします。 この変数を |
false |
All |
QGIS_SERVER_LANDING_PAGE_PREFIX |
ランディングページのベースURLのパス要素のプレフィックス |
"" |
All |
QGIS_SERVER_LANDING_PAGE_PROJECTS_DIRECTORIES |
ランディングページサービスが.qgs及び.qgzプロジェクトを見つけるのに使うディレクトリ群 |
"" |
All |
QGIS_SERVER_LANDING_PAGE_PROJECTS_PG_CONNECTIONS |
ランディングページサービスがプロジェクトを見つけるのに使うPostgreSQL接続文字列 |
"" |
All |
QGIS_SERVER_LOG_FILE |
パスとファイル名を指定します。サーバーがファイルへの書き込みに適切なパーミッションを持っていることを確認してください。ファイルは自動的に作成されるはずなので、サーバーに要求を送るだけです。ファイルがない場合は、パーミッションを確認してください。 警告 QGIS_SERVER_LOG_FILEはQGIS 3.4以降で非推奨です。代わりにQGIS_SERVER_LOG_STDERRを使用してください。ファイルロギングのサポートはQGIS 4.0で削除される予定です。 |
'' |
All |
QGIS_SERVER_LOG_LEVEL |
必要なログレベルを指定します。使用可能な値は以下のとおりです:
|
0 |
All |
QGIS_SERVER_LOG_PROFILE |
詳細なプロファイル情報をログに追加します。QGIS_SERVER_LOG_LEVEL=0のときだけ有効です |
false |
All |
QGIS_SERVER_LOG_STDERR |
stderrへのロギングを有効にします。この変数は
|
false |
All |
QGIS_SERVER_MAX_THREADS |
並列レンダリングが有効な場合に使用するスレッド数。値が |
-1 |
All |
QGIS_SERVER_OVERRIDE_SYSTEM_LOCALE |
QGIS serverで使用するLOCALEを設定します。デフォルト値は空です(上書きしない)。 例: |
'' |
All |
QGIS_SERVER_PARALLEL_RENDERING |
WMS GetMap リクエストの並列レンダリングを有効にします。デフォルトでは無効 (
|
false |
WMS |
QGIS_SERVER_PROJECT_CACHE_CHECK_INTERVAL |
キャッシュ無効化の周期的戦略間隔を制御します。 |
All |
|
QGIS_SERVER_PROJECT_CACHE_STRATEGY |
プロジェクト・キャッシュを無効にする方法を定義します。利用可能な戦略は以下のとおりです:
|
filesystem |
All |
QGIS_SERVER_SERVICE_URL |
サービスURLがプロジェクトに存在しない場合に設定するオプションです。 サービスURLは、(優先順位の高い順に)以下から定義されます:
最後の4つのケースでは、得られるサービスURLはクエリ文字列で提供された |
'' |
All |
QGIS_SERVER_SHOW_GROUP_SEPARATOR |
(GetFeatureInfoレスポンスなどで)数値にグループセパレータ(3桁ごとの区切りなど)を使用するかどうかを定義します。デフォルト値は
|
false |
WMS |
QGIS_SERVER_TRUST_LAYER_METADATA |
これは、プロジェクトのメタデータで定義されているベクタレイヤ範囲を使用し、PostgreSQL/PostGISレイヤの主キーの一意性チェックを無効にすることで、プロジェクトの読み込み時間を改善する、プロジェクトレベルのオプションです。 この変数を プロジェクトの使用中にレイヤの範囲が固定されない場合は使用しないでください。 |
false |
All |
QGIS_SERVER_WCS_SERVICE_URL |
これはサービスURLがプロジェクトに存在しない場合に設定するオプションです。詳しくは QGIS_SERVER_SERVICE_URL を参照してください。 |
'' |
WCS |
QGIS_SERVER_WFS_SERVICE_URL |
これはサービスURLがプロジェクトに存在しない場合に設定するオプションです。詳しくは QGIS_SERVER_SERVICE_URL を参照してください。 |
'' |
WFS |
QGIS_SERVER_WMS_MAX_HEIGHT / QGIS_SERVER_WMS_MAX_WIDTH |
WMSリクエストの最大高さ/幅。この値とプロジェクトの値の間で最も保守的な値が使用されます。値が |
-1 |
WMS |
QGIS_SERVER_WMS_SERVICE_URL |
これはサービスURLがプロジェクトに存在しない場合に設定するオプションです。詳しくは QGIS_SERVER_SERVICE_URL を参照してください。 |
'' |
WMS |
QGIS_SERVER_WMTS_SERVICE_URL |
これはサービスURLがプロジェクトに存在しない場合に設定するオプションです。詳しくは QGIS_SERVER_SERVICE_URL を参照してください。 |
'' |
WMTS |
QUERY_STRING |
通常ウェブサーバから渡されるクエリ文字列。この変数はコマンドラインからQGISサーバのバイナリをテストする際に役立ちます。 例えば、pg_service.confファイルで定義されたPostgreSQL接続も必要とするプロジェクトに対して、コマンドラインでGetCapabilitiesリクエストをテストする場合: PGSERVICEFILE=/etc/pg_service.conf \
QUERY_STRING="MAP=/home/projects/world.qgs&SERVICE=WMS&REQUEST=GetCapabilities" \
/usr/lib/cgi-bin/qgis_mapserv.fcgi
結果は、GetCapabilities レスポンスの内容か、何か問題がある場合はエラーメッセージのいずれかになります。 |
'' |
All |
6.3. 設定の要約
QGIS Serverを起動すると、環境変数により設定可能なパラメータの概要が表示されます。さらに、現在使用されている値と出所も表示されます。
spawn-fcgi を使う例:
export QGIS_OPTIONS_PATH=/home/user/.local/share/QGIS/QGIS3/profiles/default/
export QGIS_SERVER_LOG_STDERR=1
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_STDERR / '' (Activate/Deactivate logging to stderr): '1' (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_SERVER_MAX_THREADS と QGIS_SERVER_PARALLEL_RENDERING 値は、QGIS_OPTIONS_PATH ディレクトリにあるiniファイル(環境変数により定義されます)から読み込まれることが分かります。iniファイルの対応するエントリは /qgis/max_threads と /qgis/parallel_rendering で、それらの値は true と 4 スレッドです。
6.4. サービスファイルへの接続
PostgreSQLのサービス・ファイルのApacheが認識できるようにするために( PGサービスファイル セクションを参照) *.conf
ファイルのようなを見て、確認する必要があり:
SetEnv PGSERVICEFILE /home/web/.pg_service.conf
<Directory "/home/web/apps2/bin/">
AllowOverride None
.....
6.5. お使いのLinuxサーバーにフォントを追加
他のマシン上のデフォルトでは存在しないかもしれないフォントを指すQGISプロジェクトを使用するかもしれないことに注意してください。これは、プロジェクトを共有する場合(フォントがターゲットマシン上に存在しない場合)、それは他のマシン上で異なって見える可能性があることを意味します。
これが起こらないようにするために、単にターゲットマシン上で不足しているフォントをインストールする必要があります。デスクトップシステム上でこれを行うのは通常は自明です(フォントをダブルクリック)。
Linuxに対しては、デスクトップ環境をインストールしていない(または、コマンドラインを好む)場合、する必要があります:
Debianのベースのシステム:
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
Fedoraのベースのシステム:
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