العودة إلى المدونة

تثبيت Apache Web Server على CentOS 7

تثبيت Apache Web Server على CentOS 7

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

إذا كنت تبحث عن تثبيت Apache على نظام CentOS 7، فإن هذا البرنامج التعليمي مخصص لك. بالإضافة إلى ذلك، ستتعلم كيفية إنشاء مضيفات افتراضية حتى تتمكن من تقديم مواقع ويب متعددة على خادم Apache HTTP واحد يعمل على CentOS.

هذا برنامج تعليمي مفصل يركز على تثبيت Apache فقط. إذا كنت تبحث عن برنامج تعليمي في شكل نقاط حول حزمة LAMP، فلدينا هذا الدليل حول كيفية تثبيت Linux و Apache و MySQL و PHP (LAMP) على CentOS 7 الذي يمكنك الاطلاع عليه. الآن، لنبدأ!

المتطلبات الأساسية

بما أن هذا برنامج تعليمي عملي، يجب أن يتوفر لديك ما يلي:

الخطوة 1: تثبيت خادم Apache HTTP

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

بمجرد تحديث الحزم، أدخل الأمر التالي لتثبيت Apache:

قم بتأكيد التثبيت وانتظر حتى يقوم yum بتثبيت Apache والتبعيات المطلوبة الخاصة به.

إذا اتبعت الخطوات الواردة في البرنامج التعليمي حول إعداد جدار حماية باستخدام FirewallD على CentOS 7 وقم بتفعيل جدار الحماية للمنفذ 80، فأنت جاهز للبدء. Firewalld هو مدير جدار الحماية لنظام CentOS. خلاف ذلك، يمكنك تمكين خدمة http (المنفذ 80) لـ firewalld عن طريق إدخال الأمر التالي:

إذا كنت تخطط لتقديم حركة المرور عبر بروتوكول HTTPS الآمن، فيمكنك تمكين خدمة https (المنفذ 443) لـ firewalld عن طريق إدخال الأمر التالي:

أخيرًا، يجب عليك إعادة تحميل firewalld لتطبيق التغييرات. إليك أمر إعادة التحميل:

عند هذه النقطة، تكون قد قمت بتثبيت وتهيئة Apache لتقديم حركة المرور عبر HTTP أو HTTPS اعتمادًا على ما إذا كنت قد قمت بتشغيل الأوامر المذكورة أعلاه.

الخطوة 2: التأكد من أن خادم ويب Apache يعمل

في CentOS، لا تبدأ عملية Apache تلقائيًا بعد التثبيت. لبدء تشغيل Apache يدويًا، أدخل الأمر التالي:

للتحقق من بدء تشغيل الخدمة بنجاح، تحقق من الحالة عن طريق إدخال الأمر التالي:

إذا كانت الخدمة تعمل، فمن المفترض أن ترى مخرجات مشابهة لقطة الشاشة أدناه. لاحظ الحالة النشطة:

httpd status

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

ستحتاج إلى العثور على عنوان IP العام لخادمك إذا لم يكن لديك بالفعل. عنوان IP هذا هو ما ستستخدمه في شريط عنوان متصفحك لطلب صفحة ويب Apache الافتراضية. يمكنك عرض عناوين شبكة المضيف عن طريق إدخال الأمر التالي:

من قائمة العناوين التي تحصل عليها، يمكنك تجربة كل منها في متصفحك للتأكد من أنها تعمل. اختياريًا، يمكنك استخدام curl للحصول على عنوان IP الخاص بك من icanhazip.com. يعرض الأمر أدناه عنوان IP العام الخاص بك كما يظهر من جهاز كمبيوتر في موقع إنترنت آخر:

بمجرد حصولك على عنوان IP العام لخادمك، قم بنسخه ولصقه في شريط عنوان متصفحك:

يجب أن يقوم متصفحك بتحميل صفحة ويب Apache الافتراضية لنظام CentOS 7:

web server home page

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

الخطوة 3: إدارة خدمة Apache

في هذا القسم، سنعرض لك بعض أوامر إدارة Apache الأساسية. إليك الأمر الذي يوقف خادم الويب:

إليك الأمر لبدء تشغيل خادم الويب:

بعد ذلك، هذا هو الأمر لإعادة تشغيل خادم الويب (إيقاف وبدء):

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

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

لإعادة تمكين الخدمة من البدء عند الإقلاع، أدخل الأمر التالي: 

الخطوة 4: إعداد مضيفي Apache الافتراضيين

بشكل افتراضي، تم تكوين Apache لاستضافة وخدمة موقع ويب واحد. في معظم الحالات، ستحتاج إلى أن يقوم خادم الويب الخاص بك بخدمة واستضافة مواقع ويب متعددة. على سبيل المثال، قد يكون لديك نطاقات فرعية أو قد ترغب في إعداد صفحة مدونة لموقع شركتك/مؤسستك الرئيسي. هنا يأتي دور مضيفي Apache الافتراضيين. يتيح لك مضيفو Apache الافتراضيون تكوين خادم الويب الخاص بك لخدمة مواقع ويب متعددة. مضيفو Apache الافتراضيون هم ما يعادل كتل الخادم في Nginx server

في هذا البرنامج التعليمي، سنوضح لك كيفية إنشاء مضيف افتراضي باستخدام example.com كنطاق لنا. بالطبع، لن يعمل النطاق example.com على الإنترنت، لذا يجب عليك استبداله بنطاقك الفعلي - الخطوات هي نفسها. 

عند تثبيت Apache على CentOS، فإنه يقوم بتثبيت مضيف افتراضي واحد تم تكوينه لخدمة المحتوى من دليل /var/www/html . يعمل هذا التصميم بشكل جيد إذا كنت تستضيف موقعًا واحدًا. ومع ذلك، نريد أن نكون قادرين على استضافة مواقع متعددة. سنترك دليل /var/www/html الافتراضي وبدلاً من ذلك سننشئ دليلاً آخر لنطاق example.com داخل موقع /var/www . السبب وراء ترك الدليل الافتراضي هو أنه يتم استخدامه للخدمة عندما لا تتطابق طلبات العميل مع أي مواقع أخرى قمت بتكوينها باستخدام المضيفين الافتراضيين. علاوة على ذلك، إذا كنت ترغب في تعطيل المضيفين الافتراضيين الذين قمت بإنشائهم، يظل الخيار الافتراضي هو خدمة حركة المرور. 

أولاً، قم بإنشاء دليل داخل /var/www لاسم نطاقك. أنت حر في اختيار اسم من اختيارك. ومع ذلك، يوصى باختيار اسم مشابه لنطاقك لسهولة التذكر عند إنشاء ملف conf الخاص بالمضيف الافتراضي. أدخل الأمر التالي لإنشاء دليل example:

أدخل الأمر التالي لإنشاء مجلد إضافي سيحتوي على ملفات السجل للموقع:

مع وجود أدلة موقع الويب الخاص بك في مكانها، قم بتعيين ملكية الدليل باستخدام متغير $USER البيئي باستخدام الأمر التالي:

قم بتشغيل الأمر التالي للتأكد من أن جذر الويب الخاص بك لديه الأذونات الافتراضية:

الآن، قم بإنشاء صفحة index.html بسيطة باستخدام nano داخل دليل example عن طريق إدخال الأمر التالي:

في محرر nano، أضف مقتطف كود HTML التالي:

بمجرد الانتهاء، احفظ الملف بالضغط على Ctrl O واضغط على ENTER. يمكنك الآن إغلاق المحرر بالضغط على Ctrl X

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

يتم تخزين ملفات المضيف الافتراضي في الدليل /etc/httpd/sites-available. يتم إنشاء روابط رمزية لملفات المضيف الافتراضي النشطة من الدليل /etc/httpd/sites-available إلى الدليل /etc/httpd/sites-enabled . لا يتم إنشاء هذين الدليلين افتراضيًا في CentOS، لذا يتعين عليك إنشاؤهما بنفسك. أدخل الأمر التالي لإنشاء الدلائل:

مع وجود الدلائل في مكانها، وجه Apache للبحث عن المضيفين الافتراضيين في الدليل sites-enabled. ستقوم بذلك عن طريق تعديل ملف التكوين الرئيسي لـ Apache. أدخل الأمر التالي لفتح الملف في محرر nano:

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

احفظ الملف بالضغط على Ctrl O واضغط على ENTER. يمكنك الآن إغلاق المحرر بالضغط على Ctrl X. الخطوة التالية هي إنشاء ملف المضيف الافتراضي داخل الدليل sites-available. أدخل الأمر التالي لإنشاء الملف الجديد وفتحه باستخدام محرر nano:

في الملف المفتوح، أضف كتلة التكوين التالية. تذكر استبدال example.com باسم مجالك الفعلي، وإذا استخدمت اسم دليل مختلف في /var/www/example، فقم أيضًا بتحديث ذلك بشكل مناسب:

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

بمجرد أن يكون لدينا ملف المضيف الافتراضي داخل الدليل sites-available، فإن الخطوة التالية هي تمكين الملف عن طريق إنشاء رابط رمزي إلى الدليل sites-enabled . أدخل الأمر التالي لإنشاء الرابط الرمزي:

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

الخطوة 5: ضبط أذونات SELinux للسماح بالمضيفات الافتراضية

توزيعات Linux بما في ذلك Fedora و RHEL و CentOS تأتي مع SELinux بشكل افتراضي. SELinux (Security Enhanced Linux) هي بنية أمنية لأنظمة Linux تقيد وتحدد كيفية معالجة الخادم للطلبات، وكيفية تفاعل المستخدمين مع المقابس (sockets)، ومنافذ الشبكة، والأدلة الأساسية.

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

يجعل SELinux من CentOS خادمًا آمنًا للغاية. لذلك، لا نوصي بتعطيله تمامًا. نظرًا لأن SELinux يسمح لك بتخصيص مستوى الأمان الخاص بك بطرق مختلفة، فمن المستحسن تحديث السياسات أو تعيينها فقط بناءً على احتياجات بيئتك.

لديك خياران لتحديث سياسات Apache: إما عالميًا أو لكل دليل محدد. يعد تحديث السياسات الخاصة بدليل معين أكثر أمانًا. وبالتالي، فهو الخيار الموصى به.

  • تحديث سياسات Apache عالميًا

يمكنك تعديل سياسة Apache عالميًا مما سيوجه SELinux لمعاملة جميع عمليات Apache بشكل متطابق باستخدام قيمة httpd_unified المنطقية (Boolean). ضع في اعتبارك أن تعديل سياسات Apache عالميًا لن يمنحك نفس مستوى التحكم مثل القيام بذلك لكل دليل بطريقة محددة. ومع ذلك، فهو أكثر ملاءمة عندما يتعلق الأمر بالصيانة. قم بتشغيل الأمر التالي لتحديث سياسات Apache عالميًا:

دعنا نحدد ما تفعله القيم في هذا الأمر:

  • setsebool – يقوم بتحديث قيم SELinux المنطقية (boolean).
  • -P علامة – يقوم بتحديث القيمة عند وقت التمهيد (boot-time) بحيث يستمر هذا التغيير عبر عمليات إعادة التشغيل.
  • httpd_unified – القيمة المنطقية التي ستوجه SELinux لمعاملة جميع عمليات Apache على أنها من نفس النوع. استخدام القيمة 1 يتيح ذلك.
  • ضبط سياسات Apache على دليل

إذا كنت تريد مزيدًا من التحكم في الأدلة، فإن ضبط سياسات Apache لكل دليل هو الطريق الصحيح. ومع ذلك، فإنه يأتي مع عبء إضافي يتطلب المزيد من الصيانة. هذا لأن السياسة ليست عامة. وبالتالي، ستحتاج إلى تعيين نوع السياق يدويًا لأي أدلة سجلات جديدة تحددها في ملفات تكوين (conf) المضيف الافتراضي الخاص بك.

قبل تحديث السياسة، تحقق أولاً من نوع السياق الذي خصصه SELinux لـ /var/www/example/log باستخدام الأمر التالي:

سيخرج الأمر شيئًا مثل ما يلي، وهو في الأساس سياق SELinux للدليل:

httpd_sys_content_t هو السياق الحالي، والذي يخبر SELinux أن عملية Apache مسموح لها فقط بقراءة الملفات التي تم إنشاؤها في هذا الدليل. نظرًا لأننا نريد من Apache، من خلال تكوينات المضيف الافتراضي لدينا، الكتابة في ملفات السجل في الدليل /var/www/example/log، فسنقوم بتعديل هذه السياسة للسماح لـ Apache بإنشاء ملفات سجل تطبيقات الويب والإضافة إليها. السياق الذي يسمح بذلك هو httpd_log_t. إليك الأمر لتحديث السياق:

لتطبيق التغييرات من الأمر أعلاه وجعلها تستمر عبر عمليات إعادة التشغيل، قم بتنفيذ الأمر التالي:

دعنا نحدد ما يفعله الأمر:

  • restorecon – يطبق التغييرات ويضمن استمرارها عبر عمليات إعادة التشغيل.
  • علامة -R – ستقوم بتشغيل الأمر بشكل متكرر، مما يؤدي إلى تحديث أي ملفات موجودة لاستخدام السياق الجديد.
  • علامة -v – تطبع تغييرات السياق بعد تشغيل الأمر. ستعرض مخرجات مثل هذا:
لعرض تغييرات السياق، يمكنك تشغيل الأمر التالي مرة أخرى:
يجب أن تشاهد نوع السياق المحدث في المخرجات:
بعد تحديث سياسات دليل SELinux للسماح لـ Apache بالكتابة في دليل السجل، يمكننا الآن اختبار المضيف الافتراضي.

الخطوة 6: اختبار تكوين المضيف الافتراضي

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

بعد ذلك، قم بسرد محتويات دليل السجل باستخدام الأمر التالي:

يجب أن يعرض شيئًا كهذا، مما يوضح أن Apache قد أنشأ ملفات السجل:

list log files web server

إذا كنت قد اتبعت الخطوات حتى هذه النقطة، فيجب أن يكون Apache الآن قادرًا على تقديم صفحة HTML النموذجية عند زيارة اسم النطاق الخاص بك كما هو محدد في ملف المضيف الافتراضي الخاص بك. إذا كنت ترغب في ذلك، يمكنك تكرار الخطوتين 4 و5 لإعداد نطاقات إضافية وتحديث أذونات SELinux الخاصة بها بشكل مناسب.

الخاتمة

في هذا البرنامج التعليمي، قمنا بتثبيت Apache، وتعلمنا كيفية تحديث سياسات SELinux للسماح لـ Apache بالكتابة في ملفات سجل مخصصة، وأخيرًا اختبرنا التكوين الخاص بنا للتأكد من أنه يعمل بشكل صحيح. باستخدام هذه الخلفية، يجب أن تكون قادرًا على البناء عليها وتقديم تطبيقات أفضل بتجارب أكثر ثراءً.

إذا كنت ترغب في استكشاف حزمة ويب كاملة، فراجع برنامجنا التعليمي حول كيفية تثبيت حزمة LAMP على CentOS 7

حوسبة سعيدة!

author

Akshay Nagpal

المؤلف · CloudSigma

Preslav Dobrev هو مصمم إبداعي في CloudSigma، يركز على هوية أعمال متسقة باستخدام قنوات التسويق التقليدية والمبتكرة. هو بارع في دمج الرؤية الفنية مع التسويق الاستراتيجي لخلق سرد قصصي مؤثر للعلامة التجارية.

التعليقات

لا توجد تعليقات بعد. كن أول من يعلق.