5. الإضافات

5.1. قائمة الإضافات

يمكن أيضًا تثبيت الإضافات على QGIS Server.

يمكن العثور على بعض الإضافات المصممة للخادم في مستودع QGIS الرسمي.

لا تثبّت إلا الإضافات التي تحتاجها لغرضك الخاص. في QGIS Server تعمل الإضافات كخطافات (hooks) داخل الخادم، ويمكنها تعديل مدخلاته أو مخرجاته. وقد تُنتج نتائج غير متوقعة إذا لم تكن تعرف كيف تعمل الإضافة. يرجى الرجوع إلى توثيق كل منها أو إلى التطبيق الذي يحتاج إلى إضافات QGIS Server لمعرفة الإضافات التي قد تفيدك.

5.2. موقع الإضافات

افتراضيًا، في الأنظمة المبنية على Debian، يبحث QGIS Server عن الإضافات الموجودة في /usr/lib/qgis/plugins. تُعرض القيمة الافتراضية في السجلات عند بدء تشغيل QGIS Server. ويمكن تحديد مسار مخصص بتعريف متغير البيئة QGIS_PLUGINPATH في إعدادات خادم الويب.

5.3. التركيب

5.3.1. يدويًا باستخدام ملف ZIP

على سبيل المثال، لتثبيت الإضافة HelloWorld لاختبار الخادم باستخدام مجلد محدد، عليك أولًا إنشاء مجلد لحفظ إضافات الخادم. سيُحدَّد هذا المجلد في إعدادات المضيف الافتراضي (virtual host) ويُمرَّر إلى الخادم عبر متغير بيئة:

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

تحذير

وفقًا لـ وصفها، صُممت الإضافة HelloServer لأغراض التطوير والعرض التوضيحي. لا تُبقِ هذه الإضافة في بيئة الإنتاج إذا لم تكن بحاجة إليها.

5.3.2. باستخدام أداة سطر الأوامر

إذا كنت بحاجة إلى تثبيت إضافات مخزنة في مستودع إضافات QGIS وترقيتها بانتظام، فيمكنك استخدام QGIS-Plugin-Manager. وهي أداة تساعدك على إدارة الإضافات من سطر الأوامر.

يتم التثبيت باستخدام pip. يُعد التثبيت في بيئة افتراضية ممارسة جيدة لكنه غير إلزامي:

pip3 install qgis-plugin-manager

لترقية الأداة:

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 أين يبحث عنها. لذا علينا تعديل ملف إعدادات Apache لتمرير متغير البيئة QGIS_PLUGINPATH إلى FastCGI:

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

علاوة على ذلك، يلزم تفويض HTTP أساسي للتعامل مع الإضافة HelloWorld التي قدمناها سابقًا. لذا علينا تحديث ملف إعدادات Apache مرة أخيرة:

# 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:

systemctl restart apache2

5.5. كيفية استخدام إضافة

اختبر الخادم باستخدام الإضافة HelloWorld:

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

يمكنك الاطلاع على GetCapabilities الافتراضي لخادم QGIS على العنوان:

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