كيفية تثبيت خادم الويب Apache على Ubuntu 22.04

مقدمة

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

في هذا الدليل، ستتعلم كيفية تثبيت خادم ويب Apache على خادم Ubuntu 22.04 الخاص بك.

نشر تطبيقاتك من GitHub باستخدام منصة تطبيق DigitalOcean. دع DigitalOcean يركز على توسيع تطبيقك.

المتطلبات المسبقة

قبل البدء في هذا الدليل، ستحتاج إلى خادم Ubuntu 22.04 مُعدّ مسبقًا مع مستخدم غير root يحمل امتيازات sudo وجدار حماية مُمكّن لحظر المنافذ غير الضرورية. يمكنك تعلم كيفية القيام بذلك عبر متابعة دليل إعداد الخادم الأولي لـ Ubuntu 22.04 الخاص بنا.

بمجرد الانتهاء من إعداد هذا، قم بتسجيل الدخول كمستخدمك غير root وتابع إلى الخطوة الأولى.

الخطوة 1 — تثبيت Apache

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

ابدأ بتحديث فهرس الحزم المحلي ليعكس آخر التغييرات الصادرة من المصدر:

  1. sudo apt update

ثم، قم بتثبيت الحزمة apache2:

  1. sudo apt install apache2

بعد تأكيد التثبيت، سيقوم apt بتثبيت Apache وجميع الاعتمادات اللازمة.

الخطوة 2 — ضبط جدار الحماية

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

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

قم بعرض ملفات تعريف التطبيقات ufw عن طريق تشغيل الأمر التالي:

  1. sudo ufw app list

ستكون نتيجتك قائمة بملفات تعريف التطبيقات:

Output
Available applications: Apache Apache Full Apache Secure OpenSSH

كما هو مشار إليه من خلال الناتج، هناك ثلاثة ملفات تعريف متاحة لـ Apache:

  • أباتشي: يفتح هذا الملف الشخصي فقط البورت 80 (حركة مرور الويب العادية غير المشفرة)
  • أباتشي الكامل: يفتح هذا الملف الشخصي كلاً من البورت 80 (حركة مرور الويب العادية غير المشفرة) والبورت 443 (حركة مرور مشفرة ببروتوكول TLS/SSL)
  • أباتشي الآمن: يفتح هذا الملف الشخصي فقط البورت 443 (حركة مرور مشفرة ببروتوكول TLS/SSL)

من المُستحسن تمكين الملف الشخصي الأكثر تقييدًا الذي سيسمح لاحقًا بالحركة التي قمت بتكوينها. نظرًا لعدم تكوين SSL للخادم الخاص بك حتى الآن في هذا الدليل، ستحتاج فقط إلى السماح بالحركة على البورت 80:

  1. sudo ufw allow 'Apache'

يمكنك التحقق من التغيير عن طريق التحقق من الحالة:

  1. sudo ufw status

سيوفر الإخراج قائمة بحركة المرور HTTP المسموح بها:

Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)

كما هو مشار إليه في الإخراج، تم تنشيط الملف الشخصي للسماح بالوصول إلى خادم الويب أباتشي.

الخطوة 3 — التحقق من خادم الويب الخاص بك

في نهاية عملية التثبيت، تقوم أوبونتو 22.04 بتشغيل أباتشي. سيكون خادم الويب قد بدأ بالفعل.

تأكد من تفعيل الخدمة عن طريق تشغيل الأمر لنظام التشغيل systemd:

  1. sudo systemctl status apache2
Output
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese> Active: active (running) since Tue 2022-04-26 15:33:21 UTC; 43s ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 5089 (apache2) Tasks: 55 (limit: 1119) Memory: 4.8M CPU: 33ms CGroup: /system.slice/apache2.service ├─5089 /usr/sbin/apache2 -k start ├─5091 /usr/sbin/apache2 -k start └─5092 /usr/sbin/apache2 -k start

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

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

حاول كتابة ما يلي في سطر الأوامر لخادمك:

  1. hostname -I

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

خيار آخر هو استخدام أداة icanhazip.com المجانية. هذا موقع على الإنترنت يُعيد عنوان IP العام لجهازك كما تم قراءته من موقع آخر على الإنترنت:

  1. curl -4 icanhazip.com

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

http://your_server_ip

سترى صفحة الويب الافتراضية لأوبونتو 22.04 Apache كما في الصورة التالية:

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

الخطوة 4 — إدارة عملية Apache

الآن بعد أن لديك خادم الويب الخاص بك يعمل، دعنا نستعرض بعض الأوامر الأساسية للإدارة باستخدام systemctl.

لإيقاف خادم الويب الخاص بك، قم بتشغيل الأمر التالي:

  1. sudo systemctl stop apache2

لبدء خادم الويب عندما يكون متوقفًا، قم بتشغيل:

  1. sudo systemctl start apache2

لإيقاف الخدمة ثم بدء تشغيلها مرة أخرى، قم بتشغيل الأمر:

  1. sudo systemctl restart apache2

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

  1. sudo systemctl reload apache2

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

  1. sudo systemctl disable apache2

لإعادة تمكين الخدمة للبدء عند التمهيد، قم بتشغيل:

  1. sudo systemctl enable apache2

سيبدأ Apache الآن تلقائيًا عندما يقوم الخادم بالتمهيد مرة أخرى.

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

معلومات: إذا كنت تقوم بإعداد اسم نطاق مع DigitalOcean، يرجى الرجوع إلى وثائق الشبكات الخاصة بنا.

يأتي Apache على Ubuntu 22.04 بمقطع خادم واحد مفعل افتراضيًا مُكون لخدمة المستندات من الدليل /var/www/html. بينما يعمل هذا بشكل جيد لموقع واحد، يمكن أن يصبح غير عملي إذا كنت تستضيف مواقع متعددة. بدلاً من تعديل /var/www/html، قم بإنشاء هيكل مجلدات داخل /var/www لموقع your_domain، متركًا /var/www/html في مكانه كدليل افتراضي للخدمة في حالة عدم تطابق طلب العميل مع أي مواقع أخرى.

قم بإنشاء المجلد لـ your_domain كما يلي:

  1. sudo mkdir /var/www/your_domain

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

  1. sudo chown -R $USER:$USER /var/www/your_domain

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

  1. sudo chmod -R 755 /var/www/your_domain

بعد ذلك، قم بإنشاء صفحة HTML نموذجية باستخدام nano أو محررك المفضل:

  1. sudo nano /var/www/your_domain/index.html

قم بإضافة الكود HTML النموذجي التالي داخله:

/var/www/your_domain/index.html
<html>
    <head>
        <title>Welcome to Your_domain!</title>
    </head>
    <body>
        <h1>Success!  The your_domain virtual host is working!</h1>
    </body>
</html>

احفظ وأغلق الملف عند الانتهاء. إذا كنت تستخدم nano، يمكنك القيام بذلك عن طريق الضغط على CTRL + X، ثم Y و ENTER.

لكي يخدم Apache هذا المحتوى، من الضروري إنشاء ملف مضيف افتراضي بالتوجيهات الصحيحة. بدلاً من تعديل ملف التكوين الافتراضي الموجود في /etc/apache2/sites-available/000-default.conf مباشرة، قم بإنشاء ملف جديد في /etc/apache2/sites-available/اسم_نطاقك.conf:

  1. sudo nano /etc/apache2/sites-available/your_domain.conf

أضف الكود التالي، الذي يشبه الافتراضي، ولكن بتحديث للدليل واسم النطاق الجديد:

/etc/apache2/sites-available/your_domain.conf
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName your_domain
    ServerAlias www.your_domain
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

لاحظ أننا قمنا بتحديث DocumentRoot للدليل الجديد الخاص بنا وServerAdmin لبريد إلكتروني يمكن لمسؤول موقع اسم_نطاقك الوصول إليه. كما قمنا بإضافة توجيهين: ServerName، الذي يحدد النطاق الأساسي الذي سيتطابق مع تعريف المضيف الافتراضي هذا، و ServerAlias، الذي يحدد أسماءً إضافية ستتطابق كما لو أنها الاسم الأساسي.

احفظ وأغلق الملف عند الانتهاء.

الآن قم بتمكين الملف باستخدام أداة a2ensite:

  1. sudo a2ensite your_domain.conf

قم بتعطيل الموقع الافتراضي المحدد في 000-default.conf:

  1. sudo a2dissite 000-default.conf

بعد ذلك، قم بفحص أخطاء التكوين:

  1. sudo apache2ctl configtest

يجب أن تتلقى الناتج التالي:

Output
. . . Syntax OK

أعد تشغيل Apache لتنفيذ التغييرات:

  1. sudo systemctl restart apache2

سيبدأ Apache الآن في خدمة اسم النطاق الخاص بك. يمكنك اختبار ذلك من خلال التنقل إلى http://اسم_نطاقك، حيث سترى شيئًا مشابهًا لما يلي:

الخطوة 6 – التعرف على الملفات والمجلدات المهمة في Apache

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

المحتوى

  • /var/www/html: المحتوى الويب الفعلي، الذي بشكل افتراضي يتكون فقط من الصفحة الرئيسية الافتراضية لـ Apache التي رأيتها سابقًا، يتم تقديمه من خلال المجلد /var/www/html. يمكن تغيير هذا عن طريق تعديل ملفات تكوين Apache.

تكوين الخادم

  • /etc/apache2: مجلد تكوين Apache. جميع ملفات تكوين Apache تتواجد هنا.
  • /etc/apache2/apache2.conf: الملف الرئيسي لتكوين Apache. يمكن تعديله لإجراء تغييرات على التكوين العالمي لـ Apache. هذا الملف مسؤول عن تحميل العديد من الملفات الأخرى في مجلد التكوين.
  • /etc/apache2/ports.conf: تحدد هذه الملفات المنافذ التي ستستمع إليها Apache عليها. بشكل افتراضي، يستمع Apache على المنفذ 80 وبشكل إضافي يستمع أيضًا على المنفذ 443 عند تمكين وحدة توفير إمكانيات SSL.
  • /etc/apache2/sites-available/: المجلد حيث يمكن تخزين مضيفين افتراضيين لكل موقع. لن يستخدم Apache ملفات التكوين الموجودة في هذا الدليل ما لم يتم ربطها بالمجلد sites-enabled. بشكل عام، يتم إجراء جميع تكوينات كتلة الخادم في هذا الدليل ثم تمكينها عن طريق الربط بالدليل الآخر باستخدام الأمر a2ensite.
  • /etc/apache2/sites-enabled/: المجلد حيث يتم تخزين المضيفين الافتراضيين لكل موقع المفعّلين. عادةً ما يتم إنشاؤها بواسطة ربط ملفات التكوين الموجودة في المجلد sites-available باستخدام a2ensite. يقرأ Apache ملفات التكوين والروابط الموجودة في هذا الدليل عند بدء التشغيل أو إعادة التحميل لتجميع تكوين كامل.
  • /etc/apache2/conf-available/، /etc/apache2/conf-enabled/: لهذه المجلدات نفس العلاقة كمجلدي sites-available و sites-enabled ولكنها تستخدم لتخزين شظايا التكوين التي لا تنتمي إلى مضيف افتراضي. يمكن تمكين الملفات في مجلد conf-available باستخدام الأمر a2enconf وتعطيلها باستخدام الأمر a2disconf.
  • /etc/apache2/mods-available/، /etc/apache2/mods-enabled/: تحتوي هذه الدلائل على الوحدات المتاحة والممكّنة على التوالي. تحتوي الملفات التي تنتهي بامتداد .load على شظايا لتحميل الوحدات المحددة، في حين تحتوي الملفات التي تنتهي بامتداد .conf على تكوين تلك الوحدات. يمكن تمكين وتعطيل الوحدات باستخدام الأوامر a2enmod و a2dismod.

سجلات الخادم

  • /var/log/apache2/access.log: بشكل افتراضي، يتم تسجيل كل طلب إلى خادم الويب الخاص بك في هذا الملف السجل ما لم يتم تكوين Apache للقيام بغير ذلك.
  • /var/log/apache2/error.log: بشكل افتراضي، يتم تسجيل جميع الأخطاء في هذا الملف. تحدد التوجيهة LogLevel في تكوين Apache مقدار التفاصيل التي ستحتويها سجلات الأخطاء.

الاستنتاج

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

إذا كنت ترغب في بناء كومة تطبيقية أكثر اكتمالًا، يمكنك قراءة هذه المقالة حول كيفية تكوين كومة LAMP على Ubuntu 22.04

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-the-apache-web-server-on-ubuntu-22-04