إدارة مدونتي على Drupal باستخدام Raspberry Pi

خادم ويب Raspberry Pi

قمت بإعداد Raspberry Pi للعمل كخادم ويب لاستضافة مدونتي الشخصية على Drupal.

مثل الكثير من الأشخاص الذين يستمتعون بالتلاعب بالتكنولوجيا لدي الآن مجموعة صغيرة ولكنها متزايدة من صناديق Raspberry Pi حول منزلي. لقد استخدمتها في العديد من المشاريع: مانع إعلانات شبكة PiHole وخادم طباعة OctoPi ثلاثي الأبعاد وخادم Minecraft من بين أشياء أخرى.

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

تطور المشروع بشكل كبير منذ بدايته لذلك اعتقدت أنه سيكون من المثير للاهتمام مشاركته.

للمزيد اقرأ: إدارة Raspberry Pi الخاص بك باستخدام Ansible

لماذا تشغيل خادم الويب الخاص بي؟

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

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

باختصار، أردت تشغيل الخادم الخاص بي لأنه سيكون مجانيًا بمعنى حرية التعبير.

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

في مقال سابق ناقشت سبب اختيار دروبال لموقعي الخاص بي. بينما أعتقد أنه حل قوي ومرن بلا حدود، فإن الخطوات أدناه، تنطبق إلى حد كبير على أي نظام إدارة محتوى قائم على PHP أو إطار تطوير قد ترغب في إضفائه.

خادم ويب Raspberry Pi: المرحلة الأولى

اشتريت Raspberry Pi 4 مع 4 جيجابايت من ذاكرة الوصول العشوائي للمشروع. لقد رأيت بعض الوثائق التي تفيد بأن جودة بطاقة MicroSD التي تستخدمها مع Pi، تُحدث فرقًا كبيرًا في الأداء، لذلك حاولت أيضًا الحصول على بطاقة مناسبة. أخيرًا ربما كنت أقترب من 100 دولار أمريكي بما في ذلك علبة ومحول طاقة.

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

ثم حان الوقت لإعداد Pi للعمل كخادم ويب. أعرف بعض الأشخاص الفائقين DevOps الذين يفضلون استخدام Nginx كخادم ويب لمشاريعهم، لكنني كنت أكثر دراية بـ Apache. أيضًا يطبق Drupal بعض عناصر التحكم في الأمان باستخدام ملفات .htaccess ، لذلك إذا كنت تستخدم Nginx فستحتاج إلى إدارة القيود المكافئة في تكوين الخادم. لكن الحقيقة هي أنني أردت أكثر من أي شيء آخر، أن أذهب مع الإبليس الذي عرفته.

لحسن الحظ، يمكن أن يعرض البحث السريع، مجموعة متنوعة من البرامج التعليمية حول كيفية تثبيت الأجزاء المتبقية من حزمة LAMP على CentOS (أو نكهتك المفضلة في Linux). والأفضل من ذلك، أن مديري الحزم الحديثين مثل Yum يجعلون العملية سهلة نسبيًا. لدى دروبال أيضًا بعض متطلبات PHP الخاصة بها، لذلك كانت هناك خطوة إضافية للتأكد من تلبية هذه المتطلبات. أخيرًا، أود استخدام APCu كذاكرة تخزين مؤقت للبيانات الأصلية لـ PHP للمساعدة في تسريع تسليم مواقع PHP، لذلك تأكدت من تثبيتها وتمكين امتداد PHP.

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

إدارة مدونتي على Drupal بإستخدام Raspberry Pi

تثبيت دروبال (Drupal) على Raspberry Pi

يعد تثبيت Drupal نفسه، أمرًا سهلاً جدًا، في حين كنت تعرف العملية المقصودة. إذا لم تكن قد قمت بذلك بالفعل، فقم بتثبيت مدير تبعية Composer PHP. ثم يمكنك تثبيت دروبال في خطوتين:

composer create-project drupal/recommended-project my_site_name_dir

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

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

قررت إنشاء الموقع على الكمبيوتر المحمول الخاص بي، ثم دفع كود الموقع إلى Git repo على GitLab وسحبه إلى الخادم من هناك، لكن هذا ليس ضروريًا تمامًا، إذا كنت تبحث فقط عن تجربة Drupal على Pi الخاص بك.

إخراج الكلمة (من الشبكة)

لدي الآن Raspberry Pi الخاص بي، يعمل كخادم ويب وموقع Drupal الخاص بي، يعمل جيدًا عليه. رائع! لكن لا أحد خارج شبكتي يمكنه الوصول إليها.

ذهبت إلى واجهة مستخدم الويب لجهاز التوجيه الخاص بي واستخدمت إعادة توجيه المنفذ للتأكد من توجيه طلبات الويب الواردة (المنفذين 80 و 443) إلى Pi. لقد فعلت ذلك في دقيقتين، لكن كيف سيجد المستخدمين الموقع الخاص بي؟

لقد اشتريت اسم مجال وكان لأمين السجل الخاص بي، الأداة المساعدة الخاصة به لنظام DNS الديناميكي وهو أمر رائع، لأن عيب استخدام اتصال الإنترنت في منزلك هو أن المستخدمين المنزليين ليس لديهم عادةً عنوان IP ثابت. بعد تثبيت الأداة المساعدة الخاصة بهم وانتظار حل إعداد DNS، يمكن للمستخدمين الوصول إلى موقع الويب الجديد الخاص بي على mandclu.com.

بالطبع احتاج الموقع أيضًا إلى السماح بالاتصالات الآمنة، لذلك احتجت أيضًا إلى إضافة شهادة SSL. كان هذا يعني شراء شهادة كانت ستكلف أكثر من Pi نفسها ودفعها مرة أخرى كل عام عند التجديد. لحسن الحظ، تحقق Let’s Encrypt نتيجة مماثلة مجانًا. يمكنك حتى تثبيت certbot لتجديد الشهادة تلقائيًا.

خادم الويب Raspberry Pi الخاص بي

كنت سعيدا حقا بالنتيجة. هل كانت بأسرع تكلفة استضافة على مستوى المؤسسات؟ لا. لكن يمكنني استضافة موقعي الخاص بي مجانًا (أو بشكل أكثر دقة مقابل تكلفة الكهرباء لتشغيل Pi) وكان لدي الحرية الكاملة في تكوين الخادم بالطريقة التي أريدها.

يبدو أن الموقع بدأ يظهر تباطؤًا عرضيًا بمرور الوقت، لكنه كان سريعًا بما يكفي لحركة المرور الضئيلة التي كنت أحصل عليها (لا شيء تقريبًا)، لذا فقد لبى احتياجاتي.

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

لقد قمت بنقل المنزل في نهاية عام 2020 (آخر يوم في العام تحديدا). أحد الجوانب السلبية لاستضافة موقع الويب الخاص بك من Pi box في غرفة المعيشة الخاصة بك، هو أن منزلك المتحرك يعني أن موقع الويب الخاص بك، قد توقف لفترة من الوقت. في حالتي لم تكن بضعة أسابيع منذ إعادة تشغيل موقع الويب الخاص بمشروع الحيوانات الأليفة على الإنترنت أولوية رئيسية.

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

تسريع خادم الويب الخاص بي

قررت أن الوقت قد حان لإعادة بناء الخادم، لذلك قمت بإجراء العديد من التغييرات. بالنسبة للمبتدئين اشتريت 8GB Pi 4 لاستخدامه كخادم Minecrafter ولكن بعد ذلك قل اهتمام ابني باللعبة، لذلك قررت استخدام هذا الجهاز للإصدار الجديد. بدلاً من MicroSD للتخزين، اشتريت NVMe SSD منخفض السعة وعلبة USB 3 لها. من المحتمل أن يكلف هذان العنصران نفس المبلغ الذي أنفقته سابقًا على Pi وبطاقة MicroSD ومصدر الطاقة والحالة لكن الخادم لا يزال يعمل بشكل جيد بعد عام تقريبًا.

بدلاً من مجرد نسخ كل شيء، قمت بتثبيته مسبقًا وقررت إعادة تثبيت البرنامج. يعني الانتقال إلى 8GB Pi 4 أنني بحاجة إلى نظام تشغيل 64 بت مما يعني أن خادم Ubuntu كان خياري الأفضل. هناك المزيد من الخيارات اليوم، لكنني سعيد حقًا بـ Ubuntu على الرغم من وجود منحنٍ تعليمي جديد. توجد بعض الدلائل في أماكن مختلفة. اضطررت إلى التعود على Apt بدلاً من Yum لتثبيت حزم جديدة وما إلى ذلك. لكن العملية الكلية كانت هي نفسها حقًا مع بعض الاختلافات الطفيفة في الخطوات نفسها.

كان التغيير المهم الآخر الذي قررت إجراؤه أثناء إعادة البناء، هو إضافة Cloudflare كشبكة توصيل محتوى (CDN) لتسريع تسليم الموقع. في أبسط أشكالها تعمل CDN على تسريع تسليم موقع الويب عن طريق الاحتفاظ بنسخ مخبأة من ملفات الموقع في نقاط تواجد محلية مختلفة (PoP) موزعة في جميع أنحاء العالم. لحسن الحظ، لدى Cloudflare خطة مجانية، لذلك قررت أن أضعها أمام موقع الويب المضاف على Pi.

النتائج

يعمل الإصدار الذي تمت ترقيته من خادم الويب Pi بسرعة.

إدارة مدونتي على Drupal بإستخدام Raspberry Pi

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

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

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

قم ببناء خادم Raspberry Pi الخاص بك

إذا كنت ترغب في تجربة Drupal لمشروع ويب شخصي وخاصة إذا كان لديك غبار إضافي لـ Raspberry Pi، فأتمنى أن تحاول إعداد الخادم الخاص بك.

المصدر

منشور ذات صلة
خادم Tableau 5 Minutes

هندسة Tableau ومكونات الخادم

جاسم ناظري

تم تصميم خادم Tableau بطريقة لربط العديد من طبقات البيانات. يمكنه توصيل العملاء من سطح المكتب والجوال والويب. Tableau Desktop هي أداة قوية لتصور البيانات.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

السلة