في المقالة التالية سوف نلقي نظرة على Apache Virtual Hosts. بادئ ذي بدء ، من الضروري شرح ذلك المضيف الظاهري هو توجيه تكوين Apache سيسمح لنا بتشغيل أكثر من موقع ويب على خادم واحد. حقيقة أنها تعمل على نفس الخادم الفعلي ليست واضحة للمستخدم النهائي.
باستخدام Virtual Hosts ، سنكون قادرين على تحديد جذر الموقع (الدليل الذي يحتوي على ملفات موقع الويب) ، وإنشاء سياسة أمان منفصلة لكل موقع ، واستخدام شهادات SSL مختلفة وغير ذلك الكثير.
سنرى في السطور التالية كيفية تكوين Apache Virtual Hosts على Ubuntu 20.04، ولهذا يجب علينا تلبية المتطلبات التالية قبل المتابعة ؛ واحد أو أكثر من أسماء المجالات التي تشير إلى IP الخاص بخادمك العام و Apache مثبت على Ubuntu.
إنشاء هيكل الدليل
جذر المستند هو الدليل الذي يتم فيه تخزين ملفات موقع الويب الخاصة باسم المجال وتقديمها استجابةً للطلبات. يمكننا تحديد الجذر في الموقع الذي يهمنا. كل مجال مستضاف على خادم اباتشي سيتم تعيين جذر المستند الخاص به إلى / var / www / domain-name / public_html.
فاموس أ ابدأ بإنشاء الدليل الجذر للنطاقين الذي سأستخدمه في هذا المثال:
sudo mkdir -p /var/www/dominio1.com/public_html sudo mkdir -p /var/www/dominio2.com/public_html
أيضا سنقوم بإنشاء ملف index.html و ضمن دليل جذر المستند لكل مجال. سيظهر هذا عندما نزور المجال من المتصفح:
sudo vim /var/www/dominio1.com/public_html/index.html
داخل الملف ، سنقوم بلصق المحتوى التالي:
<!DOCTYPE html> <html lang="es"> <head> <meta charset="utf-8">dominio1</title> </head> <body> <h1>Home del dominio1</h1> </body> </html>
بالنسبة للمجال الثاني ، سنقوم بتحرير ملف index.html الخاص به وإضافته المحتوى التالي:
sudo vim /var/www/dominio2.com/public_html/index.html
<!DOCTYPE html> <html lang="es"> <head> <meta charset="utf-8">dominio2</title> </head> <body> <h1>Home del dominio2</h1> </body> </html>
نظرًا لأن الأوامر المذكورة أعلاه يتم تشغيلها باستخدام sudo ، فإن الملفات والأدلة التي تم إنشاؤها حديثًا مملوكة لجذر. لتجنب مشاكل الإذن ، سنقوم بتغيير ملكية الدليل الجذر للنطاقات وجميع الملفات داخل هذه الأدلة إلى مستخدم apache (www-data):
sudo chown -R www-data: /var/www/dominio1.com sudo chown -R www-data: /var/www/dominio2.com
إنشاء مضيفين افتراضيين
على أنظمة أوبونتو ، توجد ملفات تكوين Hosts الظاهرية لـ Apache في الدليل / الخ / apache2 / مواقع متاحة. يمكن تمكينهم من خلال إنشاء روابط رمزية إلى الدليل / الخ / apache2 / مواقع تمكين، الذي يقرأه Apache أثناء بدء التشغيل.
يمكننا تسمية ملفات التكوين كما نريد. ولكن أفضل ممارسة هي استخدام اسم المجال كاسم ملف تكوين المضيف الظاهري. سنقوم الآن بفتح محرر النصوص المفضل لدينا وإنشاء ملفات التكوين الأساسية. في المثال سأقوم فقط بعرض رمز المجال 1:
sudo vim /etc/apache2/sites-available/dominio1.com.conf
في الداخل سنضيف شيئًا مثل التالي ، لكن بالنسبة لـ domain2 ، سيتعين علينا تغيير domain1 إلى domain2 في الكود التالي:
<VirtualHost *:80> ServerName dominio1.com ServerAlias www.dominio1.com ServerAdmin webmaster@dominio1.com DocumentRoot /var/www/dominio1.com/public_html <Directory /var/www/dominio1.com/public_html> Options -Indexes +FollowSymLinks AllowOverride All </Directory> ErrorLog ${APACHE_LOG_DIR}/dominio1.com-error.log CustomLog ${APACHE_LOG_DIR}/dominio1.com-access.log combined </VirtualHost>
- اسم الخادم → ستشير إلى المجال الذي يجب أن يتطابق مع تكوين المضيف الظاهري هذا. شرق يجب أن يكون اسم المجال.
- ServerAlias → الكل المجالات أو المجالات الفرعية الأخرى التي يجب أن تتطابق مع هذا المضيف الظاهري، مثل www.
- جذر المستند → هنا سيشير إلى الدليل الذي سيخدم Apache الملفات منه.
- خيارات → هذا التوجيه يتحكم في وظائف الخادم المتوفرة في دليل معين.
- الفهارس → تجنب قوائم الدليل.
- FollowSymLinks → عند تفعيل هذا الخيار ، سيتبع Apache الروابط الرمزية.
- السماح بالتجاوز → ستحدد ماذا يمكن للتوجيهات المعلنة في ملف htaccess تجاوز توجيهات التكوين.
- ErrorLog ، CustomLog → هنا سوف تحدد مواقع ملف السجل.
بمجرد حفظ الملفات ، لتمكين ملف المضيف الظاهري الجديد ، سنذهب إلى إنشاء ارتباط رمزي من ملف المضيف الظاهري إلى الدليل الممكّن بالموقع. سنفعل هذا باستخدام البرنامج النصي a2ensite:
sudo a2ensite dominio1.com
الخيار الآخر هو إنشاء ارتباط رمزي يدويًا كما هو موضح في الآتي:
sudo ln -s /etc/apache2/sites-available/dominio1.com.conf /etc/apache2/sites-enabled/
بمجرد أن يتم ذلك ، يمكننا اختبر التكوين بحثًا عن أخطاء في بناء الجملة مع:
sudo apachectl configtest
إذا لم تكن هناك أخطاء ، فسنرى في الجهاز نتيجة مثل ما يلي:
نواصل إعادة تشغيل خدمة Apache لتصبح التغييرات سارية المفعول:
sudo systemctl restart apache2
أخيرًا ، للتحقق من أن كل شيء يعمل على النحو المتوقع ، سنفتح URL http://dominio1.com في المتصفح وسنرى محتوى صفحة index.html الخاصة بـ domain1:
باستخدام Virtual Hosts ، يمكننا استضافة مجالات متعددة على خادم Ubuntu واحد. يمكننا تكرار الخطوات الموضحة في الأسطر السابقة لإنشاء مضيفات افتراضية إضافية لجميع نطاقاتنا.
ما تم الكشف عنه في هذه المقالة هو مجرد شرح أساسي حول Virtual Host وتكوينه في Ubuntu. يمكن الحصول على مزيد من المعلومات في موقع اباتشي.
مرحبًا ، لقد ساعدني كثيرًا في أن أكون قادرًا على إنشاء مضيفات افتراضية ، ولكن عند تشغيل apachectl confitest ، تلقيت الخطأ التالي: "AH00558: apache2: تعذر تحديد اسم المجال المؤهل بالكامل للخادم بشكل موثوق ، باستخدام 127.0.1.1. قم بتعيين التوجيه "ServerName" بشكل عام لمنع هذه الرسالة
بناء الجملة جيد »
لا أعرف ما الخطأ الذي يمكن أن يكون