11.1. الدرس: تثبيت QGIS Server

هدف هذا الدرس: تعلّم كيفية تثبيت QGIS Server على Debian Stretch. ومع اختلافات طفيفة يمكنك اتباعه أيضًا مع أي توزيعة مبنية على Debian مثل Ubuntu ومشتقاتها.

ملاحظة

في Ubuntu يمكنك استخدام مستخدمك العادي، مع إضافة sudo قبل الأوامر التي تتطلب صلاحيات المدير. وفي Debian يمكنك العمل بصفة المدير (root) دون استخدام sudo.

11.1.1. ★★☆ تابع معنا: التثبيت من الحزم

سنقتصر في هذا الدرس على التثبيت من الحزم كما هو موضح هنا .

ثبّت QGIS Server باستخدام:

apt install qgis-server --no-install-recommends --no-install-suggests

# if you want to install server plugins, also:
apt install python3-qgis

يجب استخدام QGIS Server في بيئة الإنتاج دون تثبيت QGIS Desktop (مع خادم X المرافق له) على الجهاز نفسه.

11.1.2. ★★☆ تابع معنا: الملف التنفيذي لـ QGIS Server

الملف التنفيذي لـ QGIS Server هو qgis_mapserv.fcgi. يمكنك التحقق من مكان تثبيته بتشغيل find / -name 'qgis_mapserv.fcgi' الذي يُفترض أن يُخرج شيئًا مثل /usr/lib/cgi-bin/qgis_mapserv.fcgi.

اختياريًا، إذا أردت إجراء اختبار من سطر الأوامر الآن، يمكنك تشغيل الأمر /usr/lib/cgi-bin/qgis_mapserv.fcgi --version الذي يُفترض أن يُخرج شيئًا مثل:

QGIS 3.44.4 'Solothurn' (108203c541e)
QGIS code revision 108203c541e
Qt version 5.15.3
Python version 3.11.10
GDAL/OGR version 3.11.0
PROJ version 9.6.2
EPSG Registry database version v12.013 (2025-05-26)
GEOS version 3.13.0-CAPI-1.19.0
SQLite version 3.49.2
OS Ubuntu 24.04

سنرى لاحقًا كيفية إرسال طلبات WMS.

11.1.3. ★★★ تهيئة خادم HTTP

للوصول إلى خادم QGIS المثبت من متصفح الإنترنت، نحتاج إلى استخدام خادم HTTP. وتُفصَّل عملية تثبيت خادم Apache HTTP في القسم خادم Apache HTTP.

ملاحظة

إذا ثبّت QGIS Server دون تشغيل خادم X (المضمّن في سطح مكتب Linux)، وأردت أيضًا استخدام الأمر GetPrint، فعليك تثبيت خادم X وهمي وإخبار QGIS Server باستخدامه. يمكنك فعل ذلك باتباع عملية تثبيت Xvfb.

11.1.4. ★★☆ تابع معنا: إنشاء مضيف افتراضي آخر

لننشئ مضيفًا افتراضيًا آخر في Apache يشير إلى QGIS Server. يمكنك اختيار أي اسم تريده (coco.bango، super.duper.training، example.com، إلخ.) لكننا سنستخدم myhost للتبسيط.

  • لنضبط الاسم myhost ليشير إلى عنوان IP المحلي (localhost) بإضافة 127.0.0.1 x إلى الملف /etc/hosts باستخدام الأمر التالي: sh -c "echo '127.0.0.1 myhost' >> /etc/hosts" أو بتحرير الملف يدويًا باستخدام gedit /etc/hosts.

  • يمكننا التحقق من أن myhost يشير إلى localhost بتشغيل الأمر ping myhost في الطرفية، والذي يُفترض أن يُخرج:

qgis@qgis:~$ ping myhost
PING myhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.024 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.029 ms
  • لنجرّب ما إذا كان بإمكاننا الوصول إلى QGIS Server من الموقع myhost بتنفيذ: curl http://myhost/cgi-bin/qgis_mapserv.fcgi أو بفتح العنوان من متصفح جهاز Debian. على الأرجح ستحصل على:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /cgi-bin/qgis_mapserv.fcgi was not found on this server.</p>
<hr>
<address>Apache/2.4.25 (Debian) Server at myhost Port 80</address>
</body></html>
  • لا يعرف Apache أن عليه الاستجابة للطلبات الموجهة إلى الخادم المسمى myhost. ولإعداد المضيف الافتراضي، فإن أبسط طريقة هي إنشاء ملف myhost.conf في المجلد /etc/apache2/sites-available يحتوي على المحتوى نفسه الموجود في qgis.demo.conf باستثناء السطر ServerName الذي يجب أن يكون ServerName myhost. ويمكنك أيضًا تغيير مكان حفظ السجلات، وإلا فستكون سجلات المضيفين الافتراضيين مشتركة، لكن هذا اختياري.

  • لنفعّل الآن المضيف الافتراضي باستخدام a2ensite myhost.conf ثم نعيد تحميل خدمة Apache باستخدام service apache2 reload.

  • إذا حاولت مرة أخرى الوصول إلى العنوان http://myhost/cgi-bin/qgis_mapserv.fcgi فستلاحظ أن كل شيء يعمل الآن!

11.1.5. الخلاصة

تعلّمت كيفية تثبيت إصدارات مختلفة من QGIS Server من الحزم، وكيفية تهيئة Apache مع QGIS Server، على توزيعات Linux المبنية على Debian.

11.1.6. ما التالي؟

بعد أن ثبّت QGIS Server وأصبح متاحًا عبر بروتوكول HTTP، علينا أن نتعلم كيفية الوصول إلى بعض الخدمات التي يمكن أن يقدمها. وموضوع الدرس التالي هو تعلّم كيفية الوصول إلى خدمات WMS في QGIS Server.