دروس أباتشي للمبتدئين

⚡ ملخص ذكي

يُشغّل خادم Apache HTTP أكثر من نصف مواقع الويب العامة، ويشرح هذا المورد بالتفصيل بنيته، ومسارات تثبيته، ونماذج الاستضافة الافتراضية، وتعزيز الأمان، والتسجيل، ونشر الإنتاج حتى يتمكن المسؤولون من تشغيله بثقة عبر نظام Linux. Windows أو macOS البيئات.

  • 🌐 تصميم وحدات: يقوم Apache بتحميل الميزات ككائنات مشتركة ديناميكية، مما يسمح للمسؤولين بتمكين ما يتطلبه كل عبء عمل فقط.
  • 🛠️ مسارات تثبيت مرنة: تتيح أدوات إدارة الحزم، وبنيات RPM، وملفات المصدر المضغوطة للفرق مطابقة وقت التشغيل مع احتياجات نظام التشغيل والوحدة النمطية.
  • ⚙️ الاستضافة الافتراضية: يمكن لنسخة واحدة من Apache خدمة العديد من المواقع من خلال توجيهات VirtualHost المستندة إلى الاسم أو المستندة إلى عنوان IP.
  • 🔒 أساسيات التصلب: تعمل ميزات ServerTokens و ServerSignature و mod_security و mod_evasive وحدود الطلبات على تقليل التعرض للهجمات الشائعة على الويب.
  • 📊 إمكانية مراقبة السجلات: توفر تنسيقات السجلات الشائعة والمدمجة، بالإضافة إلى التوجيهات المخصصة، رؤية دقيقة لكل طلب يتعامل معه الخادم.

دروس أباتشي

ما هو اباتشي؟

أباتشي برنامج تطبيقي متميز. وهو أكثر تطبيقات خوادم الويب استخدامًا في العالم، إذ يستحوذ على أكثر من 50% من سوق خوادم الويب التجارية. يُعد أباتشي أكثر تطبيقات خوادم الويب استخدامًا على أنظمة التشغيل الشبيهة بنظام يونكس، ولكنه قابل للاستخدام على جميع المنصات تقريبًا، مثل... Windows، OS X، OS/2، إلخ. كلمة أباتشي مأخوذة من اسم قبيلة أباتشي الأمريكية الأصلية، المشهورة بمهاراتها في الحرب ووضع الاستراتيجيات.

هو تطبيق خادم ويب معياري قائم على العمليات، يُنشئ سلسلة عمليات جديدة مع كل اتصال متزامن. يدعم التطبيق العديد من الميزات، الكثير منها مُجمّع كوحدات منفصلة، ​​ويُوسّع وظائفه الأساسية، مُوفّرًا كل شيء بدءًا من دعم لغات البرمجة من جانب الخادم وصولًا إلى آليات المصادقة. الاستضافة الافتراضية إحدى هذه الميزات، التي تُمكّن خادم ويب أباتشي واحدًا من خدمة عدد من مواقع الويب المختلفة من نفس الجهاز.

Apache

كيفية تثبيت أباتشي

قبل تثبيت أباتشي، من المفيد فهم طرق التثبيت المختلفة المتاحة. توجد طرق عديدة لتثبيت الحزمة أو التطبيق، كما هو موضح أدناه.

  1. واحدة من ميزات هذا مفتوحة تتمثل ميزة تطبيق الويب المصدر في أنه يمكن لأي شخص إعداد برنامج تثبيت لبيئته الخاصة. وقد سمح هذا للعديد من البائعين مثل Debian و Red Hat و FreeBSD و SUSE بتخصيص موقع الملف وتكوين Apache، مع مراعاة التطبيقات الأخرى المثبتة ونظام التشغيل الأساسي.
  2. إلى جانب تثبيته باستخدام برنامج التثبيت الخاص بالشركة المصنعة، يتوفر دائمًا خيار بنائه وتثبيته من الكود المصدري. تثبيت أباتشي من الملف المصدري مستقل عن النظام الأساسي ويعمل على جميع أنظمة التشغيل تقريبًا.

يُعد خادم الويب Apache تطبيقًا معياريًا حيث يمكن للمسؤول اختيار الوظائف المطلوبة وتثبيت وحدات مختلفة حسب الحاجة.

يمكن تجميع جميع الوحدات النمطية كـ الكائنات المشتركة الديناميكية (ملف DSO هو ملف كائن يمكن مشاركته بين تطبيقات متعددة أثناء تشغيلها) وهو موجود بشكل منفصل عن ملف Apache الثنائي الرئيسي. يُنصح بشدة باستخدام طريقة DSO؛ فهي تُسهّل عملية إضافة أو إزالة أو تحديث الوحدات النمطية من إعدادات الخادم.

تثبيت أباتشي: منصة لينكس

على الأنظمة القائمة على Red Hat أو rpm

إذا كنت تستخدم توزيعة لينكس تعتمد على rpm (مدير حزم Red Hat، وهو أداة لتثبيت التطبيقات على أنظمة Linux)، أي Red Hat أو Fedora أو CentOS أو SUSE، فيمكنك تثبيت هذا التطبيق إما عن طريق مدير حزم خاص بالبائع أو عن طريق إنشاء ملف rpm مباشرة من ملف tarball المصدر المتاح.

يمكنك تثبيت Apache عبر مدير الحزم الافتراضي المتوفر في جميع التوزيعات المستندة إلى Red Hat مثل CentOS و Red Hat و Fedora.

[root@amsterdam ~]# yum install httpd

يمكن تحويل ملف Apache المصدر المضغوط إلى ملف rpm باستخدام الأمر التالي.

[root@amsterdam ~]# rpmbuild -tb httpd-2.4.x.tar.bz2

من الضروري تثبيت حزمة -devel على خادمك لإنشاء ملف .rpm من المصدر.

بمجرد تحويل ملف المصدر إلى برنامج تثبيت rpm، يمكنك استخدام الأمر التالي لتثبيت Apache.

[root@amsterdam ~]# rpm -ivh httpd-2.4.4-3.1.x86_64.rpm

بعد التثبيت، لا يبدأ الخادم تلقائيًا. لبدء تشغيل الخدمة، يجب عليك استخدام أي من الأوامر التالية على أنظمة فيدورا، أو سنت أو إس، أو ريد هات.

[root@amsterdam ~]# /usr/sbin/apachectl start

[root@amsterdam ~]# service httpd start

[root@amsterdam ~]# /etc/init.d/httpd start

تثبيت أباتشي من المصدر

إذا لم يتوافق إصدار مدير الحزم مع بيئتك، فإن التثبيت من المصدر يوفر تحكمًا كاملاً. يتطلب تثبيت Apache من المصدر تثبيت حزمة -devel على خادمك. يمكنك العثور على أحدث إصدار متوفر من Apache وتنزيله من صفحة تنزيل أباتشي الرسميةبمجرد تنزيل ملف المصدر، انقله إلى المجلد /usr/local/src.

[root@amserversterdam ~] cd /usr/local/src

[root@amserversterdam ~] gzip -d httpd-2.2.26.tar.gz

[root@amserversterdam ~] tar xvf httpd-2.2.26.tar

[root@amserversterdam ~] httpd-2.2.26

للاطلاع على جميع خيارات التكوين المتاحة لـ Apache، يمكنك استخدام الخيار ‎./configure –help. الخيار الأكثر شيوعًا هو ‎–prefix={اسم دليل التثبيت}.

[root@amserversterdam ~]./configure --help

[root@amserversterdam ~]./configure --prefix=/usr/local/apache --enable-so

[root@amserversterdam ~] make

[root@amserversterdam ~] make install

يوضح المثال أعلاه عملية تجميع برنامج Apache داخل الدليل /usr/local/apache باستخدام خاصية DSO. يسمح الخيار –enable-so بتحميل الوحدات النمطية المطلوبة في Apache أثناء التشغيل عبر آلية DSO بدلاً من إعادة التجميع.

بعد اكتمال التثبيت، يمكنك تصفح الصفحة الافتراضية لخادم الويب باستخدام متصفحك المفضل. إذا كان جدار الحماية مُفعّلاً على خادمك، فيجب عليك إضافة استثناء للمنفذ 80 في جدار حماية نظام التشغيل. يمكنك استخدام الأمر التالي لفتح المنفذ 80.

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

خدمة iptables حفظ

تستطيع أن ترى الافتراضي شاشة الترحيب Apache2 عن طريق تصفح عنوان IP الخاص بخادمك.

تثبيت أباتشي من المصدر

ما هو المضيف الظاهري؟

بمجرد تشغيل خادم Apache، فإن الخطوة المنطقية التالية هي تعلم كيفية استضافة مواقع متعددة على نفس الجهاز. يمكن لخادم ويب Apache استضافة مواقع ويب متعددة على نفسه الخادم. لست بحاجة إلى جهاز خادم منفصل وبرنامج أباتشي لكل موقع ويب. يمكن تحقيق ذلك باستخدام مفهوم استضافة افتراضية or VHost.

أي نطاق ترغب في استضافته على خادم الويب الخاص بك سيكون له إدخال منفصل في ملف تكوين Apache.

استضافة افتراضية

أنواع Apache Virtualhost

  1. المضيف الظاهري القائم على الاسم
  2. مضيف افتراضي قائم على العنوان أو قائم على بروتوكول الإنترنت

المضيف الظاهري القائم على الاسم

تُستخدم الاستضافة الافتراضية القائمة على الاسم لاستضافة مواقع افتراضية متعددة على عنوان IP واحد.

المضيف الظاهري القائم على الاسم

لإعداد الاستضافة الافتراضية القائمة على الاسم، عليك تحديد عنوان IP الذي ستتلقى عليه طلبات Apache لجميع المواقع الإلكترونية المطلوبة. يمكنك القيام بذلك باستخدام توجيه NameVirtualHost ضمن إعدادات Apache، أي ملف httpd.conf أو apache2.conf.

مثال على المضيف الظاهري أباتشي:

NameVirtualHost *:80

<VirtualHost 192.168.0.108:80>

ServerAdmin webmaster@example1.com

DocumentRoot /var/www/html/example1.com

ServerName www.example1.com

</VirtualHost>

<VirtualHost 192.168.0.108:80>

ServerAdmin admin@example2.com

DocumentRoot /var/www/html/example2.com

ServerName www.example2.com

</VirtualHost>

يمكنك إضافة أي عدد من المضيفات الافتراضية حسب متطلبات بيئتك. يمكنك التحقق من ملفات تكوين الويب الخاصة بك باستخدام:

[root@amsterdam ~]#httpd -t
Syntax OK

إذا كان ملف التكوين يحتوي على صيغة غير صحيحة، فسيظهر خطأ:

[root@115 conf.d]# httpd -t

Syntax error on line 978 of /etc/httpd/conf/httpd.conf:

Invalid command '*', perhaps misspelled or defined by a module not included in the server configuration

المضيف الظاهري القائم على IP

لإعداد استضافة افتراضية قائمة على عناوين IP، تحتاج إلى أكثر من عنوان IP مُهيأ على خادمك. لذا، يعتمد عدد المضيفات الافتراضية التي يمكن لـ Apache خدمتها على عدد عناوين IP المُهيأة على خادمك. فإذا كان خادمك يحتوي على 10 عناوين IP، يمكنك إنشاء 10 مضيفات افتراضية قائمة على عناوين IP.

المضيف الظاهري القائم على IP

في الرسم التخطيطي أعلاه، تم تخصيص عناوين IP مختلفة لموقعين إلكترونيين، example1.com و example2.com، وهما يستخدمان الاستضافة الافتراضية القائمة على عناوين IP.

Listen 192.168.0.100:80

<VirtualHost 192.168.10.108:80>

ServerAdmin webmaster@example1.com

DocumentRoot /var/www/html/example1.com

ServerName www.example1.com

</VirtualHost>

<VirtualHost 192.168.10.109:80>

ServerAdmin admin@example2.com

DocumentRoot /var/www/html/example2.com

ServerName www.example2.com

</VirtualHost>

مقارنة سريعة بين أباتشي وإنجينكس

غالبًا ما تتم مقارنة أباتشي مع إنجينكس عند التخطيط لنشر جديد. يلخص الجدول أدناه أهم نقاط اتخاذ القرار.

عامل أباتشي خادم HTTP إنجن إكس
نموذج المعالجة العملية أو الخيط لكل اتصال (العملية المسبقة، العامل، وحدات معالجة الأحداث المتعددة) مدفوع بالأحداث، غير متزامن
الاعداد يدعم النظام تعديلات ملف .htaccess لكل دليل تكوين مركزي، بدون ملف .htaccess
محتوى ديناميكي تقوم وحدة mod_php وغيرها من الوحدات بتضمين أوقات التشغيل داخل العملية خوادم وسيطة لـ PHP-FPM أو خوادم تطبيقات خارجية
معدل نقل الملفات الثابتة قوي، لكن ذاكرة أكبر لكل اتصال ممتاز في ظل التزامن العالي جدًا
نظام الوحدات النمطية كبير جدًا؛ يتم تحميله كـ DSOs في وقت التشغيل وحدات مدمجة أو ديناميكية، نظام بيئي أصغر
حالة الاستخدام النموذجية الاستضافة المشتركة، وسير عمل ملفات .htaccess، والتطبيقات الديناميكية المختلطة Reverse وكيل، تسليم ثابت، نقاط نهاية عالية التزامن

ما الذي يحتاجه Apache لتشغيل ملف Php؟

تشغيل ملفات PHP على خادم Apache يتطلب mod_php تم تفعيل هذه الميزة على خادمك. فهي تسمح لـ Apache بتفسير ملفات .php. تحتوي على معالجات PHP تقوم بتفسير كود PHP في Apache وإرسال HTML إلى خادم الويب الخاص بك.

إذا كانت وحدة mod_php مُفعّلة على خادمك، فسيكون لديك ملف باسم php.conf في الدليل /etc/httpd/conf.d/. يمكنك أيضًا التحقق منه باستخدام الأمر التالي:

httpd -M | grep "php5_module"

سيكون الإخراج مشابهًا لـ:

ما يحتاجه Apache لتشغيل ملف Php

معالجات PHP في أباتشي

  • mod_php
  • CGI
  • FastCGI
  • suPHP

mod_php يُعدّ هذا المعالج الأقدم للغة PHP؛ فهو يجعل PHP جزءًا من Apache ولا يستدعي أي عملية PHP خارجية. يتم تثبيت هذه الوحدة افتراضيًا في جميع مستودعات توزيعات Linux، لذا فإن تفعيلها أو تعطيلها أمر في غاية السهولة.

إذا كنت تستخدم FastCGI باعتبارك معالج PHP الخاص بك، يمكنك تعيين إصدارات متعددة من PHP لاستخدامها بواسطة حسابات مختلفة على الخادم الخاص بك.

أي FastCGI mod_fastcgi، هو امتداد لـ mod_fcgid، حيث mod_fcgid يُعدّ بديلاً عالي الأداء لـ CGI (mod_cgi). فهو يُشغّل عددًا كافيًا من مثيلات CGI للتعامل مع طلبات الويب المتزامنة. كما يستخدم suexec لدعم المستخدمين المختلفين بمثيلاتهم الخاصة من PHP، ويُحسّن أمان الويب.

يتطلب تشغيل ملفات Ruby على خادم Apache تفعيل وحدة mod_ruby. كما يمكن لـ Apache التعامل مع ملفات Ruby عبر FastCGI. ويمكن استخدام إصدارات متعددة من Ruby باستخدام وحدة mod_fcgid، أي FastCGI.

يمكنك أيضًا تثبيت Apache Passenger وتكوين Apache لاستخدامه في خدمة صفحات Ruby.

(راكب فيوجن، المعروف أيضًا باسم "راكب"، هو وحدة خادم ويب مجانية مصممة للتكامل مع Apache و Nginx."

خطوات تثبيت مود_روبي على خادمك:

cd /tmp

wget http://www.modruby.net/archive/mod_ruby-1.2.6.tar.gz

tar zxvf mod_ruby-1.2.6.tar.gz

cd mod_ruby-1.2.6/

./configure.rb --with-apr-includes=/usr/include/apr-1

make

make install

كيفية تشغيل روبي مع أباتشي

علينا إضافة وحدة mod_ruby إلى تكوين Apache، أي /etc/httpd/conf.d/ruby.conf، وإضافة السطر التالي.

LoadModule Ruby_module Modules/mod_ruby.so

إذا كنت ترغب في تمكين أو تعطيل هذه الوحدات، فيجب عليك تعديل ملف تكوين Apache والتعليق على هذه الوحدات أو إلغاء التعليق عليها، بشرط أن يكون خادم الويب قد تم تجميعه بالفعل معها.

قم بتشغيل روبي مع أباتشي

كيفية تأمين خادم الويب Apache

بمجرد أن يبدأ خادم Apache بعرض المحتوى الصحيح، تصبح الأولوية التالية هي تأمينه. يُعدّ تأمين خادم الويب الخاص بك أمرًا بالغ الأهمية؛ فهو يعني السماح للآخرين برؤية المعلومات المقصودة فقط، وحماية بياناتك، وتقييد الوصول إليها.

هذه ممارسات شائعة تعزز أمان خادم الويب Apache الخاص بك.

1) إخفاء معلومات إصدار Apache ونظام التشغيل

يعرض برنامج Apache إصداره واسم نظام التشغيل في الأخطاء، كما هو موضح في لقطة الشاشة أدناه.

إخفاء إصدار Apache ومعلومات نظام التشغيل

يمكن للمهاجم استخدام هذه المعلومات لشن هجوم باستخدام الثغرات الأمنية المتاحة للعامة في إصدار معين من الخادم أو ��ظام التشغيل.

لمنع أباتشي من عرض هذه المعلومات، يجب تعديل خيار "توقيع الخادم" الموجود في ملف إعدادات أباتشي. وهو مُفعّل افتراضيًا، لذا يجب تعطيله.

vim /etc/httpd/conf/httpd.conf
ServerSignature Off

ServerTokens Prod

لقد قمنا أيضًا بتعيين "ServerTokens Prod" الذي يخبر خادم الويب بإرجاع Apache فقط وإخفاء الإصدار الرئيسي والثانوي لنظام التشغيل.

بعد تعديل ملف التكوين، يجب عليك إعادة تشغيل أو إعادة تحميل خادم الويب Apache الخاص بك لجعل التغيير فعالاً.

service httpd restart

إخفاء إصدار Apache ومعلومات نظام التشغيل

2) تعطيل قائمة الدليل

إذا لم يكن لدى دليل جذر المستند الخاص بك ملف فهرس، فسيعرض خادم الويب Apache الخاص بك افتراضيًا جميع محتويات دليل جذر المستند.

تعطيل قائمة الدليل

يمكن إيقاف تشغيل هذه الميزة لدليل معين من خلال توجيه "Options" المتاح في ملف تكوين Apache.

<Directory /var/www/html>

    Options -Indexes

</Directory>

تعطيل قائمة الدليل

3) تعطيل الوحدات غير الضرورية

من الممارسات الجيدة تعطيل جميع الوحدات غير الضرورية التي لا يتم استخدامها. يمكنك الاطلاع على قائمة الوحدات المفعّلة في ملف إعدادات Apache.

[root@amsterdam ~]#httpd -M

perl_module (shared)

php5_module (shared)

proxy_ajp_module (shared)

python_module (shared)

ssl_module (shared)

يمكن تعطيل العديد من الوحدات النمطية المدرجة، مثل mod_imap و mod_include و mod_info و mod_userdir و mod_autoindex، لأنها نادراً ما تستخدم من قبل أي خوادم ويب إنتاجية.

vi /etc/httpd/conf/httpd.conf

#LoadModule auth_digest_module modules/mod_auth_digest.so

بعد تعطيل الوحدة النمطية، احفظ الملف.

أعد تشغيل خدمات Apache باستخدام الأمر التالي.

/etc/init.d/httpd restart

4) تقييد الوصول إلى الملفات خارج الدليل الجذر للويب

إذا كنت ترغب في ضمان عدم إمكانية الوصول إلى الملفات الموجودة خارج دليل جذر الويب، فيجب عليك التأكد من تقييد الدليل باستخدام خياري "السماح" و "الرفض" في ملف تكوين خادم الويب الخاص بك.

<Directory/>

Options None

AllowOverride None

Order deny,allow

Deny from all

</Directory>

بمجرد تقييد الوصول خارج دليل جذر الويب، لن تتمكن من الوصول إلى أي ملف موجود في أي مجلد آخر على خادم الويب الخاص بك؛ وستحصل على رمز إرجاع 404.

تقييد الوصول إلى الملفات الموجودة خارج دليل جذر الويب

5) استخدام mod_evasive للرد على هجمات حجب الخدمة

لحماية خادم الويب الخاص بك من هجمات حجب الخدمة (DoS)، يجب تفعيل وحدة mod_evasive. هذه الوحدة هي إضافة خارجية تكشف هجمات حجب الخدمة وتمنعها من إحداث الضرر الذي قد تُسببه إذا تُركت دون رادع. يمكنك تحميلها من الرابط أدناه.

قم بت��ميل الملف أعلاه

6) استخدام وحدة mod_security لتعزيز أمان Apache

تعمل هذه الوحدة كجدار حماية لخادم أباتشي، وتتيح لك مراقبة حركة البيانات في الوقت الفعلي. كما أنها تحمي خادم الويب من هجمات التخمين العشوائي. يمكن تثبيت وحدة mod_security باستخدام مدير الحزم الافتراضي لتوزيعتك.

استخدام mod_security لتعزيز أمان Apache

7) الحد من حجم الطلب

لا يفرض خادم Apache أي قيود على الحجم الإجمالي لطلب HTTP، مما قد يؤدي إلى هجوم حجب الخدمة (DoS). يمكنك تحديد حجم الطلب باستخدام توجيه Apache "LimitRequestBody" داخل وسم <Directory>. يمكن ضبط القيمة من 0 إلى 2 جيجابايت (2147483647 بايت) حسب حاجتك.

<Directory "/var/www/html/uploads">

   LimitRequestBody 512000

</Directory>

تنسيق سجل اباتشي

بعد تعزيز أمان الخادم، يصبح تحليل سجلات النظام الأداة الرئيسية لاكتشاف المشاكل. توفر سجلات أباتشي معلومات تفصيلية تساعد في الكشف عن المشاكل الشائعة في الخادم.

لإنشاء سجلات الوصول، يجب تفعيل وحدة mod_log_config.

تتوفر ثلاثة توجيهات في ملف تكوين Apache

  • TransferLog: إنشاء ملف سجل.
  • LogFormat: تحديد تنسيق مخصص.
  • CustomLog: إنشاء ملف سجل وتنسيقه.

يتوفر توجيه TransferLog في ملف تكوين Apache، وهو يقوم بتدوير ملفات سجل المضيف الظاهري وفقًا للمعلمات المحددة.

<VirtualHost www.example.com>

  ServerAdmin webmaster@example.com

  DocumentRoot /usr/www/example/httpd/htdocs/

  ServerName www.example.com

  ServerAlias example.com www.example

  ErrorLog /usr/www/example/httpd/logs/error_log

  TransferLog /usr/www/example/httpd/logs/accesslog

  CustomLog /usr/www/example/httpd/logs/accesslog combined

</VirtualHost>

نوعان من تنسيق سجل Apache

  • تنسيق السجل المشترك
  • تنسيق السجل المجمع

يمكنك تفعيلها عن طريق تعديل ملف تكوين Apache، أي apache2.conf (Debian/Ubuntu) أو httpd.conf (الأنظمة القائمة على rpm).

تنسيق السجل المشترك

LogFormat "%h %l %u %t \"%r\" %>s %b" common

CustomLog logs/access_log common

السجل المشترك الذي تم إنشاؤه بواسطة Apache

[Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test

تنسيق السجل المجمع

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined

CustomLog log/access_log combined

هنا،

  • %h هو المضيف البعيد.
  • %l هي هوية المستخدم التي تم تحديدها بواسطة identd.
  • %u هو اسم المستخدم الذي يتم تحديده بواسطة مصادقة HTTP.
  • %t هو الوقت الذي انتهى فيه الخادم من معالجة الطلب.
  • %r هو سطر الطلب من العميل. ("الحصول على / HTTP/1.0")
  • %>s هو رمز الحالة المرسل من الخادم إلى العميل (500، 404، إلخ).
  • يمثل %b حجم الاستجابة للعميل (بالبايت).
  • الصفحة المُحيلة هي الصفحة التي أدت إلى هذا الرابط URL.
  • وكيل المستخدم هو سلسلة تعريف المتصفح.

السجل المدمج الذي تم إنشاؤه بواسطة Apache:

199.187.122.91 - - [06/Mar/2014:04:22:58 +0100] "GET /robots.txt HTTP/1.1" 404 1228 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)"

يقوم سجل الأحداث المخصص بإنشاء ملف سجل منفصل لكل مضيف افتراضي على خادمك. يجب تحديده في قسم المضيف الافتراضي في ملف التكوين.

يمكنك الاطلاع على تكوين المضيف الظاهري أدناه؛ سيكون السجل المُنشأ مخصصًا لهذا المضيف الظاهري وسيتم دمج التنسيق.

السجل المشترك الذي تم إنشاؤه بواسطة Apache

قم بإعداد أول خادم ويب إنتاجي خاص بك

بعد تغطية جوانب التكوين والأمان والتسجيل، فإن الجزء الأخير هو دمج كل ذلك معًا في بيئة جاهزة للإنتاج.

1. لكي يكون لديك خادم ويب إنتاجي قيد التشغيل، فأنت بحاجة إلى خادم مخصص العقدة (مثيل مادي أو افتراضي أو سحابي) يعمل بنظام لينكس أو يونكس، Windows, macOS، الخ.

2. يجب أن يحتوي خادم الويب على اتصال الشبكة المباشر و عنوان IP ثابت تكوينه عليه.

3. يجب أن يحتوي على كل نماذج مطلوب لتشغيل صفحات الويب. إذا كان خادم الويب يعالج صفحات PHP، فإنه يحتاج إلى تفعيل وحدة PHP.

تكوين خادم ويب الإنتاج

  1. كما أنه يحتاج إلى جيد الحماية من الفيروسات تم تكوين التطبيق وتشغيله لحماية خادم الويب من هجمات البرامج الضارة أو الفيروسات. أنت بحاجة أيضًا إلى آلية لـ تحديث قم بتكوين تطبيق مكافحة الفيروسات أو مكافحة البرامج الضارة بشكل منتظم دون أي تدخل يدوي من أجل الحصول على أقصى فائدة.
  2. إذا كان لديك مئات النطاقات التي ترغب في استضافتها على خادم الويب الخاص بك، فيجب عليك تنفيذ القيود المفروضة على حصة نظام الملفات لكل نطاق، وعدد قواعد البيانات التي يمكن لكل نطاق إنشاؤها، وعدد حسابات البريد الإلكتروني لكل نطاق، وما إلى ذلك.
  3. إذا تم إعداد خادم الويب الخاص بك لـ في خدمات الاستضافة المشتركة، يجب تقييد المستخدمين على خادم الويب الخاص بكينبغي أن يتمتع مستخدم الاستضافة المشتركة بأقل قدر من صلاحيات المستخدم حتى لا يتسبب في تلف الملفات المهمة أو تعطيل الخادم بالكامل. لا يوفر خادم أباتشي هذه الخاصية، ويتطلب الأمر تطبيقات خارجية مختلفة وتخصيص نظام التشغيل لتحقيق ذلك.
  4. إذا كنت تقوم بإضافة أ مجال جديد يتطلب الأمر على خادم الويب الخاص بك تعديل مئات من إدخالات التكوين لتمكين جميع الميزات للنطاق المضاف.
  5. إذا كان أحد المجالات المستضافة يتطلب إعدادات PHP المختلفة مقارنةً ببقية المجالات، فإ�� تطبيق هذا في Apache الأساسي أمر معقد للغاية ويتطلب تخصيصًا واسع النطاق لخادم الويب الخاص بك.
  6. يحتاج خادم الويب الخاص بالإنتاج إلى جدار الحماية لحظر حركة المرور غير المرغوب فيها التي قد تتسبب في زيادة الحمل على خادمك. تنفيذ IPTABLE تُعدّ قواعد جدار الحماية عبر سطر الأوامر معقدة، إذ تتطلب خبرة في بيئات لينكس أو يونكس الأساسية ل��تابة قواعد فعّالة لحجب حركة البيانات غير المرغوب فيها. يعتمد IPTABLE على وحدة netfilter، وهو جدار حماية على مستوى نظام التشغيل يسمح للمسؤول بإنشاء قواعد لحركة البيانات الواردة والصادرة على الخادم.
  7. يتطلب خادم الويب الإنتاجي عدة تطبيقات مختلفة مثل البريد الإلكتروني, FTP لتحميل الملفات، و نظام اسم المجال بالنسبة للنطاقات المتوقفة. تتطلب إدارة كل هذه التطبيقات على نظام Linux أو Unix أساسي خبرة في التقنيات المعنية.

لذا، يمكن القول إن إدارة خادم ويب لعدة نطاقات مهمة معقدة للغاية، وتتطلب تعديل مئات ملفات التكوين وتخصيص كل تطبيق لتحقيق النتيجة المرجوة. وسيكون تشخيص أي خلل في التكوين صعبًا للغاية على المبتدئين.

الحل باستخدام Cpanel أو برامج مشابهة

توفر لوحة التحكم cPanel طريقة رسومية لإدارة خادم الويب الخاص بكيهدف cPanel إلى توفير خدمات استضافة جماعية سهلة الاستخدام والتكوين. وقد ساهم في تذليل العقبات التقنية أمام دخول عالم الاستضافة وإدارة خوادم الويب. فهو يُسهّل المهام المعقدة، ويوفر العديد من واجهات الويب المفيدة وسهلة الاستخدام التي تُنفّذ مهام إدارة النظام الشائعة اللازمة لتشغيل خادم الويب.

الحل باستخدام Cpanel أو البرامج المشابهة

تقوم cPanel بتجميع نسختها الخاصة من البرنامج.

إذا كنت بحاجة إلى إعادة تجميع خادم الويب (أباتشي) على نظام لينكس عادي، فسيتعين عليك تحديد الوحدات المطلوبة أو البحث عنها يدويًا. يوفر cPanel وظيفة EasyApache، وهي طريقة لتجميع خادم الويب تعتمد على البرامج النصية.

الحل باستخدام Cpanel أو البرامج المشابهة

فهو لا يوفر لك خدمات الويب فحسب، بل يوفر لك أيضًا Mail، ونظام أسماء النطاقات (DNS)، وبروتوكول نقل الملفات (FTP)، والعديد من الخدمات الأخرى المطلوبة لتطبيق الويب الخاص بك.

المهام التي تتطلب خبرة في أنظمة الاستضافة الأساسية القائمة على Linux أو Unix، مثل تثبيت شهادات SSL، وإعادة تجميع Apache باستخدام وحدات PHP مختلفة، وتحديث أمان الويب، وتكوين قواعد IPTABLE الفعالة، وإضافة مستخدمي FTP، وإنشاء حسابات بريد لكل نطاق، وفحص جذر المستندات الخاص بك باستخدام برنامج مكافحة الفيروسات، وإنشاء قواعد البيانات، يسهل إكمالها باستخدام cPanel.

يوفر الكثير من البرامج النصية التي تقوم بإصلاح وتثبيت واستكشاف أخطاء المهام الإدارية الشائعة.

يوفر cPanel وظائف النسخ الاحتياطي والاستعادة، مما يُغني عن الحاجة إلى نسخ الملفات يدويًا إلى وحدة التخزين الاحتياطية. عند نسخ نطاقك احتياطيًا، يقوم cPanel بإنشاء ملف tar يحتوي على مجلد الجذر، وحسابات البريد الإلكتروني ورسائله، وحسابات FTP، وقواعد البيانات، وسجلات DNS، والتطبيقات الأخرى.

كما يوفر وثائق قوية ولديه مجتمع كبير جداً من المستخدمين حيث يمكنك مناقشة مشاكلك والحصول على حلول لها.

لذلك ، يمكن للمرء أن يقول ذلك وحة التحكم يُعدّ هذا التطبيق أداةً قويةً لإدارة خادم الويب الخاص بك، إذ يضمّ الميزات المطلوبة. كما يوفر واجهةً سهلة الاستخدام لإدارة نطاقك، وآليةً لتجنب تعقيدات إدارة خادم الويب الأساسي.

هناك العديد من المنتجات المنافسة لـ cPanel، مثل Plesk و ISPConfig و Ajenti و Kloxo و Open Panel و ZPanel.

الأسئلة الشائعة

اختر Apache للاستضافة المشتركة، وتعديل ملفات .htaccess، ودمج PHP عبر mod_php. أما Nginx فهو مناسب للتسليم الثابت عالي التزامن أو للوكيل العكسي.

يشير الرمز 403 إلى وجود أذونات محظورة أو قيود على الدليل، والرمز 404 يشير إلى مورد مفقود، والرمز 500 يشير إلى خطأ في الخادم، والرمز 503 يعني وجود نظام خلفي مثقل أو غير متاح.

mod_rewrite لـ URL القواعد، mod_ssl لـ HTTPS، mod_headers لضبط الاستجابة، mod_deflate للضغط، و mod_proxy لعكس توجيه خوادم التطبيقات.

نعم. يمكن للمساعدين الذين يعملون بالذكاء الاصطناعي مراجعة مقتطفات من ملف httpd.conf، وشرح قواعد mod_rewrite، واقتراح إصلاحات VirtualHost، وتحليل إدخالات error_log للكشف عن الأسباب الجذرية المحتملة.

تستخدم الفرق الذكاء الاصطناعي للتنبؤ بذروات حركة المرور، وضبط عدد عمال MPM، وتحديد أنماط السجلات الشاذة، والتوصية بتعديلات التخزين المؤقت أو الضغط بناءً على مزيج الطلبات المرصودة.

تلخيص هذه التدوينة بـ: