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.