يعد Apache حاليًا خادم الويب الأكثر استخدامًا في العالم. وهو برنامج مفتوح المصدر تتم صيانته بواسطة The Apache Software Foundation. اعتبارًا من سبتمبر 2020، تشير التقديرات إلى أنه يخدم 36% من إجمالي حركة مرور مواقع الويب في العالم. يفضله المطورون لسرعته وأمانه وموثوقيته وقوته. وتتيح سهولة تخصيصه تلبية احتياجات العديد من البيئات من خلال تثبيت الامتدادات والوحدات.
يأتي Apache بنظام مطابقة يمكنك استخدامه لاستضافة نطاقات أو مواقع متعددة باستخدام تثبيت واحد لخادم Apache على عنوان IP واحد. يتم إعداد النطاقات أو المواقع في أحد ملفات تكوين Apache المحددة كمضيفين افتراضيين.
يحتوي كل نطاق على تعريف مضيف افتراضي واحد مع دليل محدد يوجه إليه. عندما يزور مستخدم نطاقًا ما، يفحص الخادم كل مضيف افتراضي مطابق ويختار المضيف الذي سيستخدمه لتلبية طلب الزائر اعتمادًا على اسم المضيف الذي أدخله. إذا لم يتم العثور على اسم مضيف مطابق، يستخدم الخادم أول مضيف افتراضي محدد في ملف التكوين (conf) كخيار احتياطي. سيصل الزائر إلى صفحة الويب التي طلبها دون معرفة أن الخادم نفسه يخدم مواقع أخرى. اعتمادًا على الموارد المتاحة لديك على خادمك ومقدار حركة المرور التي يمكنه التعامل معها، يمكنك استضافة أي عدد تريده من النطاقات.
في هذا البرنامج التعليمي، سنرشدك خلال إعداد المضيفين الافتراضيين على خادم Ubuntu 20.04.
الأشياء الأولى أولاً
لمتابعة هذا البرنامج التعليمي، يجب أن يكون لديك تثبيت لـ Ubuntu 20.04. تحتاج أيضًا إلى إنشاء مستخدم ليس له صلاحيات جذر (non-root) وتسجيل الدخول باستخدامه.
تتطلب الخطوات الواردة في هذا البرنامج التعليمي أيضًا تثبيت Apache. إذا لم تكن قد قمت بذلك بالفعل، يمكنك تثبيته باستخدام الأوامر أدناه. يمكنك اتباع دليلنا لـ إعداد حزمة LAMP – برنامج تعليمي لـ Linux Apache MySQL PHP للحصول على دليل إعداد أكثر تفصيلاً.
|
1 2 |
sudo apt update sudo apt install apache2 |
يجب أن يكون لديك أسماء نطاقات مجانية أو مدفوعة مسجلة من مسجل نطاقات من اختيارك. تأكد من توجيه النطاقات إلى خادمك من خلال تكوين سجلات DNS. ومع ذلك، لا يزال بإمكانك استخدام التكوينات الخاصة بنا لمتابعة الخطوات في هذا البرنامج التعليمي. سنستخدم example.dev و mydomain.com في هذا البرنامج التعليمي. أنت حر في استبدالهما بنطاقاتك الخاصة. إذا قررت استخدام نطاقات الاختبار، فيجب تعديل ملفات المضيفين (hosts) على Apache للتعامل مع النطاقات. سنغطي كيفية القيام بذلك لاحقًا في هذا البرنامج التعليمي.
الخطوة 1 - إعداد أدلة الموقع الإلكتروني
هذه هي الأدلة التي تحتوي على بيانات الموقع التي سيصل إليها زوار موقعك الإلكتروني. عادةً ما يكون جذر مستندات Apache الذي يمكن الوصول إليه من الإنترنت في /var/www. هذا هو المكان الذي سننشئ فيه الأدلة للنطاقات الفردية التي نريد استضافتها. في كل دليل من الأدلة، سنضيف دليل public_html للاحتفاظ بملفات الموقع الفعلية. يشير المضيف الافتراضي إلى دليل public_html. يمنحك هذا مرونة حيث يمكنك الاحتفاظ بملفات الموقع الهامة خارج public_html ووضع الملفات العامة فقط بالداخل.
بعد ذلك، أدخل الأوامر أدناه لإنشاء الأدلة. تذكر دائمًا استبدال نطاقات الاختبار بنطاقاتك الفعلية للإعدادات اللاحقة:
|
1 2 |
sudo mkdir -p /var/www/example.dev/public_html sudo mkdir -p /var/www/mydomain.com/public_html |
الخطوة 2 - تغيير أذونات القراءة والكتابة
أنشأت الأوامر السابقة بنية الدليل ولكنها أبقت الملكية للمستخدم الجذر (root). نريد أن يحصل مستخدمنا غير الجذر على أذونات قراءة وكتابة كاملة للأدلة. نريد أيضًا أن يحصل الويب العام على أذونات القراءة.
أولاً، قم بتغيير الملكية إلى المستخدم غير الجذر عن طريق إدخال الأمر التالي:
|
1 2 |
sudo chown -R $USER:$USER /var/www/example.dev/public_html sudo chown -R $USER:$USER /var/www/mydomain.com/public_html |
المتغير $USER هو متغير يأخذ بيانات اعتماد المستخدم المسجل دخوله حاليًا. يمتلك المستخدم العادي الآن ملكية public_html. بعد ذلك، تحتاج إلى منح أذونات القراءة لشبكة الويب العامة. يسمح الأمر التالي بالمنح لجميع الملفات في الدليل لضمان تقديم صفحات الويب بشكل صحيح:
|
1 |
sudo chmod -R 755 /var/www |
من خلال تشغيل الأوامر الثلاثة السابقة، يمكن لموقع الويب الخاص بك الآن تقديم المحتوى. بالإضافة إلى ذلك، يمكن للمستخدم الخاص بك أيضًا إنشاء محتوى ليتم تقديمه في الأدلة المحددة. هنا يمكنك العثور على مزيد من المعلومات حول أذونات Ubuntu.
الخطوة 3 - إنشاء صفحات تجريبية في الأدلة لكل مضيف افتراضي
مع وجود هيكل الدليل في مكانه، حان الوقت للقيام ببعض البرمجة النصية. سنستخدم HTML ومحرر النصوص nano لإنشاء بعض صفحات الويب الأساسية. أدخل الأمر التالي لفتح nano وإنشاء ملف index.html في الدليل للنطاق الأول:
|
1 |
vim /var/www/example.dev/public_html/index.html |
في المحرر، ضع الكود البرمجي النموذجي التالي الذي سيظهر عندما نصل إلى النطاق:
|
1 2 3 4 5 6 7 8 |
<html> <head> <title>مرحبًا بك في to Example.dev!</title> </head> <body> <h1>نجاح! ! المضيف الافتراضي لـ example.dev virtual host يعمل working!</h1> </body> </html> |
بمجرد لصق السطور أعلاه، اضغط على “!wq” لحفظ الملف والخروج منه.
أنشئ صفحة index.html للنطاق الثاني باستخدام محرر nano عن طريق إدخال الأمر التالي:
|
1 |
vim /var/www/mydomain.com/public_html/index.html |
بعد ذلك، في المحرر، الصق كود HTML التالي، ثم احفظ واخرج:
|
1 2 3 4 5 6 7 8 |
<html> <head> <title>مرحبًا بك في to Mydomain.com!</title> </head> <body> <h1>نجاح! ! المضيف الافتراضي لـ mydomain.com virtual host يعمل working!</h1> </body> </html> |
الآن، لديك الصفحات لاختبار المضيفين الافتراضيين اللذين سنقوم بإنشائهما في الخطوة التالية.
الخطوة 4 - إنشاء ملفات المضيف الافتراضي لأسماء النطاقات
تحتوي ملفات المضيف الافتراضي على تكوينات لكل مضيف افتراضي. وهي تحدد كيفية تقديم اسم النطاق. يأتي التثبيت الجديد لـ Apache مع ملف مضيف افتراضي افتراضي يسمى 000-default.conf والذي يمكننا استخدامه وتكييفه مع نطاقاتنا. كما ترى، فإنه ينتهي بامتداد .conf، وهو ما يتوقعه Ubuntu لملفات التكوين.
توجد ملفات تكوين Apache في الدليل /etc/apache2/sites-available. هناك سنقوم بتخزين ملفات المضيف الافتراضي الخاصة بنا. يمكننا نسخ ملف conf الافتراضي وتعديله عند الضرورة.
-
أنشئ ملف المضيف الافتراضي الأول لنطاق example.dev
أدخل الأمر التالي لإنشاء example.dev.conf عن طريق نسخ ملف conf الافتراضي:
|
1 |
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.dev.conf |
بعد ذلك، افتح الملف الذي تم إنشاؤه باستخدام محرر nano بصلاحيات sudo باستخدام الأمر التالي:
|
1 |
sudo nano /etc/apache2/sites-available/example.dev.conf |
يبدو ملف conf الافتراضي مثل لقطة الشاشة أدناه. التعليقات مخصصة لإرشادك. يمكننا إزالتها وترك الملف النظيف فقط مع خطوط التكوين الفعلية:

تحتاج إلى تخصيص هذا الملف لاسم النطاق الخاص بك ومسار الدليل الذي قمت بحفظ ملفات موقع الويب فيه. بالإضافة إلى ذلك، سنقوم بتحديث وإضافة العديد من التوجيهات إلى الملف. يحتوي بالفعل على توجيه ServerAdmin، والذي يحتوي على عنوان البريد الإلكتروني الذي سيتلقى عليه مسؤول الخادم رسائل البريد الإلكتروني. يحتوي أيضًا على توجيه DocumentRoot، والذي يشير إلى الدليل الذي قمت بتخزين ملفات موقع الويب فيه.
نحتاج إلى إضافة توجيهين جديدين: ServerName و ServerAlias. يحدد ServerName اسم النطاق الأساسي. وهو المكان الذي تضع فيه نطاقك. يحدد ServerAlias الأسماء الأخرى التي يجب أن يطابقها Apache كما لو كانت اسم النطاق الأساسي. يتيح لك مطابقة المضيفين مثل www.
قم بتحديث الملف ليظهر كما هو موضح أدناه:
|
1 2 3 4 5 6 7 8 |
<VirtualHost *:80> ServerAdmin admin@example.dev ServerName example.dev ServerAlias www.example.dev DocumentRoot /var/www/example.dev/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
بعد ذلك، قم بتحديث نطاقاتك وبريدك الإلكتروني بشكل مناسب. بمجرد الانتهاء، اضغط على CTRL + O ثم ENTER لحفظ الملف. للخروج من المحرر، اضغط على CTRL + X.
-
إنشاء ملف المضيف الافتراضي الأول لنطاق mydomain.com
يمكننا فقط نسخ المضيف الافتراضي للنطاق الأول وتحديثه عند الضرورة للنطاق الثاني. استخدم الأمر التالي لنسخ الملف:
|
1 |
sudo cp /etc/apache2/sites-available/example.dev.conf /etc/apache2/sites-available/mydomain.com.conf |
ثم افتحه في محرر nano باستخدام الأمر:
|
1 |
sudo nano /etc/apache2/sites-available/mydomain.com.conf |
ابحث عن التوجيهات وقم بتحديثها بشكل مناسب بحيث يبدو الملف كما هو موضح أدناه:
|
1 2 3 4 5 6 7 8 |
<VirtualHost *:80> ServerAdmin admin@mydomain.com ServerName mydomain.com ServerAlias www.mydomain.com DocumentRoot /var/www/mydomain.com/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
بمجرد الانتهاء، احفظ الملف واخرج من المحرر.
الخطوة 5 - تمكين ملفات المضيف الافتراضي
في الخطوة الرابعة، قمنا بإنشاء ملفات المضيف الافتراضي. ومع ذلك، فهي لا تعمل حتى تقوم بتمكينها. يمتلك Apache أداة تسمى a2ensite سنستخدمها لتمكين المضيفين الافتراضيين.
أدخل الأمرين التاليين لتمكين المضيفين الافتراضيين:
|
1 2 |
sudo a2ensite example.dev.conf sudo a2ensite mydomain.com.conf |
مخرجات الأوامر المذكورة أعلاه هي كما هو موضح أدناه:

بعد ذلك، يجب عليك تعطيل ملف التكوين الافتراضي، ونحن نستخدم أداة Apache a2dissite لتعطيل المواقع. أدخل الأمر التالي:
|
1 |
sudo a2dissite 000-default.conf |
كما يتضح من المخرجات، يجب عليك إعادة تشغيل Apache لتطبيق التكوينات. استخدم الأمر التالي:
|
1 |
sudo systemctl restart apache2 |
ثم، تحقق من حالة Apache باستخدام الأمر التالي:
|
1 |
sudo systemctl status apache2 |
توضح المخرجات أن خادمك يعمل بشكل صحيح، وأنه قادر على خدمة الموقعين الإلكترونيين.

الخطوة 6 – تعديل ملفات المضيفين المحليين بنطاقات تجريبية
إذا لم تكن قد سجلت نطاقًا فعليًا ولكنك كنت تستخدم نطاقات تجريبية بدلاً من ذلك، فسيتعين عليك تحديث ملفات المضيف المحلي (hosts) الخاصة بك. يجب عليها اعتراض حركة المرور وتوجيهها إلى دليل موقع الويب الخاص بك عند الانتقال إلى أي من النطاقات المحددة في ملفات المضيف الافتراضي. تذكر أن هذا سيعمل فقط على جهاز الكمبيوتر المحلي الخاص بك. إذا كان جهاز الكمبيوتر المحلي الخاص بك يعمل بنظام التشغيل Windows، فقم بـ اتباع التعليمات لإعداد ملفات المضيفين على هذا الرابط.
إذا كنت تستخدم جهاز Mac أو Linux، فإن ملف hosts يقع في دليل /etc. سنستخدم محرر nano لفتح وإضافة نطاقاتنا التجريبية. أولاً، ابحث عن عنوان IP الخاص بخادم VPS الخاص بك عن طريق إدخال الأمر التالي:
|
1 |
curl -4 icanhazip.com |
أدخل الأمر التالي لفتح الملف وتحديثه بعنوان IP الخاص بخادمك:
|
1 |
sudo nano /etc/hosts |
|
1 2 3 4 |
127.0.0.1 localhost 127.0.1.1 ComputerName your_server_IP example.dev your_server_IP mydomain.com |
بعد ذلك، احفظ الملف وأغلقه. عندما تقوم بإدخال اسم نطاق في متصفحك، يتم فحص ملف host أولاً. إذا تم العثور على اسم النطاق، يتم توجيه حركة المرور إلى عنوان IP المحدد. وإذا لم يتم العثور عليه، يتم استخدام نظام DNS للتوجيه العالمي. بالنسبة لنطاقاتنا التجريبية، سيتم توجيه حركة المرور إلى عنوان IP المحدد.
الخطوة 7 – اختبار المضيفين الافتراضيين
بعد إعداد أسماء النطاقات، يمكنك اختبار ما إذا كانت تعمل عن طريق التحقق منها في المتصفح/الطرفية:
|
1 |
curl http://example.dev |
يجب أن تعرض المخرجات شيئًا كهذا:

|
1 |
http://mydomain.com |

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