مقدمة
خادم Apache HTTP هو أكثر خوادم الويب استخدامًا في العالم. يوفر العديد من الميزات القوية بما في ذلك وحدات التحميل الديناميكي، والدعم القوي لوسائط الإعلام، والتكامل الواسع مع البرمجيات الشهيرة الأخرى.
في هذا الدليل، ستتعلم كيفية تثبيت خادم ويب Apache على خادم Ubuntu 22.04 الخاص بك.
نشر تطبيقاتك من GitHub باستخدام منصة تطبيق DigitalOcean. دع DigitalOcean يركز على توسيع تطبيقك.
المتطلبات المسبقة
قبل البدء في هذا الدليل، ستحتاج إلى خادم Ubuntu 22.04 مُعدّ مسبقًا مع مستخدم غير root يحمل امتيازات sudo
وجدار حماية مُمكّن لحظر المنافذ غير الضرورية. يمكنك تعلم كيفية القيام بذلك عبر متابعة دليل إعداد الخادم الأولي لـ Ubuntu 22.04 الخاص بنا.
بمجرد الانتهاء من إعداد هذا، قم بتسجيل الدخول كمستخدمك غير root وتابع إلى الخطوة الأولى.
الخطوة 1 — تثبيت Apache
يتوفر Apache داخل مستودعات البرامج الافتراضية في Ubuntu، مما يجعل من الممكن تثبيته باستخدام أدوات إدارة الحزم التقليدية.
ابدأ بتحديث فهرس الحزم المحلي ليعكس آخر التغييرات الصادرة من المصدر:
ثم، قم بتثبيت الحزمة apache2
:
بعد تأكيد التثبيت، سيقوم apt
بتثبيت Apache وجميع الاعتمادات اللازمة.
الخطوة 2 — ضبط جدار الحماية
قبل اختبار Apache، من الضروري تعديل إعدادات جدار الحماية للسماح بالوصول من الخارج إلى منافذ الويب الافتراضية. إذا كنت قد اتبعت التعليمات في المتطلبات الأساسية، يجب أن يكون لديك جدار حماية UFW مكون لتقييد الوصول إلى خادمك.
أثناء التثبيت، يُسجل Apache نفسه مع UFW لتوفير بعض ملفات التعريف التطبيقية التي يمكن استخدامها لتمكين أو تعطيل الوصول إلى Apache من خلال جدار الحماية.
قم بعرض ملفات تعريف التطبيقات ufw
عن طريق تشغيل الأمر التالي:
ستكون نتيجتك قائمة بملفات تعريف التطبيقات:
OutputAvailable applications:
Apache
Apache Full
Apache Secure
OpenSSH
كما هو مشار إليه من خلال الناتج، هناك ثلاثة ملفات تعريف متاحة لـ Apache:
أباتشي
: يفتح هذا الملف الشخصي فقط البورت80
(حركة مرور الويب العادية غير المشفرة)أباتشي الكامل
: يفتح هذا الملف الشخصي كلاً من البورت80
(حركة مرور الويب العادية غير المشفرة) والبورت443
(حركة مرور مشفرة ببروتوكول TLS/SSL)أباتشي الآمن
: يفتح هذا الملف الشخصي فقط البورت443
(حركة مرور مشفرة ببروتوكول TLS/SSL)
من المُستحسن تمكين الملف الشخصي الأكثر تقييدًا الذي سيسمح لاحقًا بالحركة التي قمت بتكوينها. نظرًا لعدم تكوين SSL للخادم الخاص بك حتى الآن في هذا الدليل، ستحتاج فقط إلى السماح بالحركة على البورت 80
:
يمكنك التحقق من التغيير عن طريق التحقق من الحالة:
سيوفر الإخراج قائمة بحركة المرور HTTP المسموح بها:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)
كما هو مشار إليه في الإخراج، تم تنشيط الملف الشخصي للسماح بالوصول إلى خادم الويب أباتشي.
الخطوة 3 — التحقق من خادم الويب الخاص بك
في نهاية عملية التثبيت، تقوم أوبونتو 22.04 بتشغيل أباتشي. سيكون خادم الويب قد بدأ بالفعل.
تأكد من تفعيل الخدمة عن طريق تشغيل الأمر لنظام التشغيل systemd
:
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 الخاص بالخادم الخاص بك، يمكنك الحصول عليه بعدة طرق مختلفة من سطر الأوامر.
حاول كتابة ما يلي في سطر الأوامر لخادمك:
ستتلقى عدة عناوين مفصولة بمسافات. يمكنك تجربة كل منها في متصفح الويب الخاص بك لتحديد ما إذا كانت تعمل.
خيار آخر هو استخدام أداة icanhazip.com
المجانية. هذا موقع على الإنترنت يُعيد عنوان IP العام لجهازك كما تم قراءته من موقع آخر على الإنترنت:
عندما يكون لديك عنوان IP الخاص بالخادم الخاص بك، أدخله في شريط عنوان متصفحك:
http://your_server_ip
سترى صفحة الويب الافتراضية لأوبونتو 22.04 Apache كما في الصورة التالية:
تشير هذه الصفحة إلى أن Apache يعمل بشكل صحيح. كما تتضمن بعض المعلومات الأساسية حول ملفات Apache الهامة ومواقع الدلائل.
الخطوة 4 — إدارة عملية Apache
الآن بعد أن لديك خادم الويب الخاص بك يعمل، دعنا نستعرض بعض الأوامر الأساسية للإدارة باستخدام systemctl
.
لإيقاف خادم الويب الخاص بك، قم بتشغيل الأمر التالي:
لبدء خادم الويب عندما يكون متوقفًا، قم بتشغيل:
لإيقاف الخدمة ثم بدء تشغيلها مرة أخرى، قم بتشغيل الأمر:
إذا كنت تقوم بتغييرات في التكوين فقط، يمكن لـ Apache في كثير من الأحيان إعادة التحميل دون إسقاط الاتصالات. للقيام بذلك، استخدم الأمر التالي:
بشكل افتراضي، يتم تكوين Apache للبدء تلقائيًا عند تشغيل الخادم. إذا لم يكن هذا ما تريده، قم بتعطيل هذا السلوك عن طريق تشغيل:
لإعادة تمكين الخدمة للبدء عند التمهيد، قم بتشغيل:
سيبدأ Apache الآن تلقائيًا عندما يقوم الخادم بالتمهيد مرة أخرى.
الخطوة 5 — إعداد الاستضافة الافتراضية (موصى به)
عند استخدام خادم الويب Apache، يمكنك استخدام الاستضافة الافتراضية (مماثلة لكتل الخادم في Nginx) لتجميع تفاصيل التكوين واستضافة أكثر من نطاق ويب من خادم واحد. سنقوم بإعداد نطاق يسمى اسم_نطاقك، ولكن يجب استبدال هذا باسم النطاق الخاص بك.
معلومات: إذا كنت تقوم بإعداد اسم نطاق مع DigitalOcean، يرجى الرجوع إلى وثائق الشبكات الخاصة بنا.
يأتي Apache على Ubuntu 22.04 بمقطع خادم واحد مفعل افتراضيًا مُكون لخدمة المستندات من الدليل /var/www/html
. بينما يعمل هذا بشكل جيد لموقع واحد، يمكن أن يصبح غير عملي إذا كنت تستضيف مواقع متعددة. بدلاً من تعديل /var/www/html
، قم بإنشاء هيكل مجلدات داخل /var/www
لموقع your_domain، متركًا /var/www/html
في مكانه كدليل افتراضي للخدمة في حالة عدم تطابق طلب العميل مع أي مواقع أخرى.
قم بإنشاء المجلد لـ your_domain كما يلي:
بعد ذلك، قم بتعيين ملكية المجلد للمستخدم الذي تم تسجيل الدخول باسمه حاليًا باستخدام المتغير $USER
في البيئة:
يجب أن تكون صلاحيات جذر الويب الخاصة بك صحيحة إذا لم تقم بتعديل قيمة umask الخاصة بك، التي تحدد صلاحيات الملفات الافتراضية. للتأكد من صحة صلاحياتك والسماح للمالك بقراءة وكتابة وتنفيذ الملفات مع منح صلاحيات قراءة وتنفيذ فقط للمجموعات والآخرين، يمكنك إدخال الأمر التالي:
بعد ذلك، قم بإنشاء صفحة HTML نموذجية باستخدام nano
أو محررك المفضل:
قم بإضافة الكود HTML النموذجي التالي داخله:
احفظ وأغلق الملف عند الانتهاء. إذا كنت تستخدم nano
، يمكنك القيام بذلك عن طريق الضغط على CTRL + X
، ثم Y
و ENTER
.
لكي يخدم Apache هذا المحتوى، من الضروري إنشاء ملف مضيف افتراضي بالتوجيهات الصحيحة. بدلاً من تعديل ملف التكوين الافتراضي الموجود في /etc/apache2/sites-available/000-default.conf
مباشرة، قم بإنشاء ملف جديد في /etc/apache2/sites-available/اسم_نطاقك.conf
:
أضف الكود التالي، الذي يشبه الافتراضي، ولكن بتحديث للدليل واسم النطاق الجديد:
لاحظ أننا قمنا بتحديث DocumentRoot
للدليل الجديد الخاص بنا وServerAdmin
لبريد إلكتروني يمكن لمسؤول موقع اسم_نطاقك الوصول إليه. كما قمنا بإضافة توجيهين: ServerName
، الذي يحدد النطاق الأساسي الذي سيتطابق مع تعريف المضيف الافتراضي هذا، و ServerAlias
، الذي يحدد أسماءً إضافية ستتطابق كما لو أنها الاسم الأساسي.
احفظ وأغلق الملف عند الانتهاء.
الآن قم بتمكين الملف باستخدام أداة a2ensite
:
قم بتعطيل الموقع الافتراضي المحدد في 000-default.conf
:
بعد ذلك، قم بفحص أخطاء التكوين:
يجب أن تتلقى الناتج التالي:
Output. . .
Syntax OK
أعد تشغيل Apache لتنفيذ التغييرات:
سيبدأ 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