منهج نواة تقنية الجلسة التاسعة عشرة
الهدف من الجلسة
- فهم توجيهات الإعدادات الرئيسية/الأساسية في أباتشي (apache)
- إعداد أباتشي (apache) ليخدم موقع أو أكثر على نفس السيرفر (server)
محتوى الجلسة
- التعريف بأباتشي (apache)
- إعداد أباتشي (apache)
- فهم توجيهات الإعدادات الرئيسية (جذر الخادم ، توجيهات التسجيل ، الخيارات ، الاستماع ، وحدة التحميل ، MPMs...)
- شرح مفهوم السياق وتوجيه السياق
- فهم المضيف الظاهري
- تأريخ المضيف الظاهري
- النهج الحديث للمضيف الظاهري
- إعداد الخادم من البداية
طريقة التقديم
- التعريف بأباتشي (apache)
ما هو أباتشي (apache)؟ وما هو خادم الويب (web server)؟
(إجابة استرشادية) هو خادم الويب الأشهر والأكثر انتشاراً في العالم والذي يخدم كثير من المواقع بدايةً إطلاقه في العام 1995.
خادم الويب هو برنامج يقوم بخدمة المحتوى على السيرفر (server) ،وذلك بإستخدام بروتوكول نقل النص الفائق (Hypertext Transfer Protocol 'HTTP).
إعداد أباتشي (apache configuration)
كيف يتم إعداد أباتشي (apache)؟
(إجابة استرشادية) أولاً بتنصيبه ،ثم تفعيل الخدمة الخاصة به (يتضمن تدريب) ويمكن التعرف على بعض الأوامر الخاصة بإدارة أباتشي (apache) أيضاً ومنها:
تفعيل أباتشي (apache)
Debian # systemctl enable apache2 Redhat # systemctl enable httpd
إلغاء تفعيل أباتشي (apache)
Debian # systemctl disable apache2 Redhat # systemctl disable httpd
إيقاف أباتشي (apache)
Debian # systemctl stop apache2 Redhat # systemctl stop httpd
تشغيل أباتشي (apache)
Debian # systemctl start apache2 Redhat # systemctl start httpd
إعادة تشغيل أباتشي (apache)
Debian # systemctl restart apache2 Redhat # systemctl restart httpd
إعادة تحميل الوحدات الخاصة بأباتشي (apache)
Debian # systemctl reload apache2 Redhat # systemctl reload httpd
حالة أباتشي (apache)
Debian # systemctl status apache2 Redhat # systemctl status httpd
أين تقع ملفات الإعدادات الرئيسية لأباتشي (apache configuration files)؟
(إجابة استرشادية) الإعدادات الإفتراضية تقع تحت المسار
/etc/apache2/ <-- (Debian) /etc/httpd/conf/ <-- (Redhat)
فهم توجيهات الإعدادات الرئيسية (جذر الخادم ، الاستماع ، الخيارات ، توجيهات تأريخ الأحداث ، وحدة التحميل ، MPMs...)
ما هو توجيه جذر الخادم (ServerRoot)؟
(إجابة استرشادية) هو المسار الذي يتم فيه تخزين ملفات الإعدادات (configurations) وتأريخ الأحداث (logs) الخاصة بأباتشي (apache) سواء كانت ملفات فعلية او كانت روابط لملفات أخرى كالحال مع ملفات تأريخ الأحداث (logs).
ما هو توجيه الإستماع (listen)؟
(إجابة استرشادية) يبين المنفذ الذي يستمع من خلاله الخادم الى الطلبات (requests) القادمة له ،الإفتراضي 80 لبروتوكول http و 443 لبروتوكول https. ما هو توجيه الخيارات (options)؟
(إجابة استرشادية) هو التوجيه الذي يتحكم في المزايا المتاحة لمسار معين. على سبيل المثال اتباع الروابط في مسار معين (FollowSymLinks).
ما هي توجيهات تأريخ الأحداث (logging directives)؟
(إجابة استرشادية) هي التوجيهات التي تحدد أين ستخزن تأريخ الأحداث كـ تأريخ الأخطاء (ErrorLog) ، شكل التأريخ (LogFormat) ، درجة التأريخ (LogLevel) ...الخ
ما هو توجيه وحدة التحميل (LoadModule)؟
(إجابة استرشادية) هو التوجيه المسؤول عن تحميل الوحدات التشاركية الديناميكية (Dynamic Shared Objects modules).
ما هي توجيهات (MPMs)؟
(إجابة استرشادية) هي التوجيهات المسؤولة عن إدارة الخصائص الخاصة بمجموعة السيرفر (server-pool).
شرح مفهوم السياق وتوجيه السياق
ما هو السياق (context)؟
(إجابة استرشادية) يرمز إلى الاذون المرتبطة بالمجلد المستعمل من خلال أباتشي (apache).
ما هو توجيه السياق (directive context)؟
(إجابة استرشادية) يرمز إلى أين يكون التوجيه مسموح في ملف إعدادات الخادم.
فهم المضيف الظاهري
ما هو المضيف الظاهري (virtual host)؟
(إجابة استرشادية) هو تشغيل أكثر من موقع (website) على نفس السيرفر (server).
تأريخ المضيف الظاهري
هل كان المضيف الظاهري موجود من قبل؟
(إجابة استرشادية) لا كان السيرفر الواحد يخدم موقع واحد قبل أن تظهر هذه الميزة المميزة وتغير الموازين بشكل أمكن السيرفر الواحد ان يخدم أكثر من موقع وبكفاءة عالية.
النهج الحديث للمضيف الظاهري
ما هو النهج الحديث للمضيف الظاهري (virtual host)؟
(إجابة استرشادية) يوجد شكلان رئيسيان للمضيف الظاهري (virtual host) الآن "على أساس الإسم (name-based)" و "على أساس الـ ip (IP-based)".
يوفر المضيف الظاهري على أساس الإسم (name-based) تفاصيل تقنية مثل العناوين وكيفية إدارتها ولكن يجب على المستفيد (client) إمداد الخادم بالبروتوكول المستخدم للوصول للوجهة الصحيحة.
يستخدم المضيف الظاهري على أساس IP (IP-based) عنوان IP منفصل لكل إسم مضيف ويهذا يتم من خلال أي بروتوكول ولكن يلزم عنوان IP لكل مضيف.
التدريب
إعداد الخادم من البداية
(تطبيق عملي)
<Directory /var/www/html/example1> Require all granted </Directory> <VirtualHost *:80> DocumentRoot "/var/www/html/example1" ServerName www.example.com ServerAlias example.com ServerAdmin root@example.com ErrorLog "/var/log/httpd/error_log_example1" CustomLog "/var/log/httpd/access_log_example1" combined </VirtualHost>