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

إعداد خادم Redis كمعالج جلسات لـ PHP على Ubuntu 20.04

إعداد خادم Redis كمعالج جلسات لـ PHP على Ubuntu 20.04

Redis هو نظام تخزين مؤقت وتخزين في الذاكرة مفتوح المصدر، ويُشار إليه أيضًا باسم خادم بنية البيانات. وهو يقدم دعمًا متقدمًا للعديد من أنواع البيانات، مثل جداول التجزئة (hashes)، والقوائم، والمجموعات، وخرائط البت (bitmaps)، وغيرها الكثير. وبسبب أدائه الممتاز، يحظى Redis بشعبية كبيرة في الصناعات الرائدة والشركات الكبرى متعددة الجنسيات.

فوائد Redis

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

أدناه، سنقوم بتفصيل الخطوات لمساعدتك في تثبيت Redis على نظام التشغيل Ubuntu 20.04. في هذا البرنامج التعليمي، ستحصل على جميع المعلومات التي تحتاجها بدءًا من التثبيت وحتى تكوين خادم Redis خارجي ليتم استخدامه كمعالج جلسة (session handler) لتطبيق PHP يعمل على Ubuntu 20.04.

البدء

لتطبيق الخطوات، ستحتاج إلى خادمي قاعدة بيانات مختلفين (droplets) يقعان في نفس مركز البيانات مع تمكين الشبكة الخاصة. وتشمل هذه:

  • خادم ويب PHP يعمل بنظام LAMP و LEMP على Ubuntu 20.04 – سنشير إلى هذا الخادم باسم web.

  • خادم Ubuntu 20.04 ثانٍ ونظيف حيث سيتم تثبيت Redis – سنشير إلى هذا الخادم باسم redis.

الخطوة 1 — تثبيت خادم Redis

خطوتنا الأولى هي تثبيت خادم Redis على Ubuntu 20.04. بمجرد الانتهاء، تأكد من أن الخادم يعمل بشكل صحيح على redis Droplet الخاص بنا.

في هذا البرنامج التعليمي، سنستخدم أرشيفات الحزم الشخصية (PPAs). نوصي بشدة باستخدام PPAs لأسباب أمنية. مقارنة بالمستودعات الخارجية الأخرى، فإن PPAs مستقرة وسهلة التثبيت، وقبل كل شيء، تم تصميم المستودع لمستخدمي Ubuntu. يتيح لك PPA الحصول على أحدث إصدار متاح من البرامج، حتى بالنسبة للبرامج التي لا تجدها في مستودعات Ubuntu الرسمية.

إن استخدام PPAs من مصدر غير مصرح به أمر غير مقبول تمامًا. تأكد من الحصول على PPAs من مصادر موثوقة ومعتمدة فقط. يمكنك إضافة مستودع PPA باستخدام الأمر:

اضغط على مفتاح Enter للتأكيد. بعد التأكيد، سنقوم بتحديث ذاكرة التخزين المؤقت لمدير الحزم باستخدام الأمر التالي:

بعد ذلك، سنقوم بتثبيت Redis باستخدام الأمر:

بمجرد تنفيذ الأمر، سيتم تثبيت Redis على خادمك. دعنا نختبر التثبيت باستخدام الأمر:

بمجرد إدخال الأمر، سترى مثيل Redis يعمل على localhost على المنفذ 6379. وأيضًا، سيكون هناك استجابة باسم PONG. إذا رأيت هذا، فهذا يعني أنك أكملت الخطوة الأولى بنجاح. للحصول على دليل مفصل حول تثبيت وتأمين Redis، يمكنك إلقاء نظرة على برنامجنا التعليمي كيفية تثبيت وتأمين Redis على Ubuntu 18.04.

بعد ذلك، دعنا ننتقل إلى الخطوة التالية - تكوين Redis.

الخطوة 2 — تكوين Redis لقبول الاتصالات الخارجية

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

أولاً، احصل على نظرة مفصلة على واجهات الشبكة الخاصة بك باستخدام الأمر ifconfig :

ستحصل على المخرجات أدناه:

في واجهة eth1، ستجد inet_addr. هنا لدينا 10.133.14.9. سنستخدم عنوان IP هذا في الخطوات القادمة لتوصيل خادم redis من خادم web.

الخطوة 3 — ربط المضيف المحلي (Localhost)

أنت حر في استخدام محرر الأكواد الذي تختاره (Atom و Visual Studio Code هما الأكثر شعبية).

الآن، افتح الملف /etc/redis/redis.conf وابحث عن السطر الذي يحتوي على تعريف bind. يجب عليك إضافة عنوان IP الخاص بشبكتك الخاصة إلى السطر:

قد ترى localhost، بدلاً من 127.0.0.1. لا تقلق، ما عليك سوى إضافة عنوان IP الخاص بك. بعد ذلك، أعد تشغيل خدمة Redis لتطبيق التغييرات. استخدم الأمر أدناه لإعادة تشغيل خادم redis :

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

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

الخطوة 4 — إعداد كلمة مرور خادم Redis

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

قم بإلغاء تعليق السطر الذي يحتوي على requirepass، وقم بتعيين كلمة مرور قوية:

أعد تشغيل خدمة Redis لتطبيق التغييرات التي أجريتها. استخدم الأمر لإعادة التشغيل:

الخطوة 5 — اختبار اتصال Redis والمصادقة

في هذه الخطوة، سنتصل بخدمة Redis من داخل جهاز redis للتأكد من أن جميع التغييرات التي تم إجراؤها تعمل بسلاسة كما هو متوقع. للاتصال، استخدم الأمر أدناه:

هنا، حتى لو تخطيت ذكر اسم المضيف، فسيظل يعمل. هدفنا الأساسي هو التأكد من أن خدمة Redis تقبل الاتصالات بسلاسة:

من الممكن أن تظهر لك رسالة خطأ AUTH عند محاولة الوصول إلى البيانات باستخدام كلمة المرور المحددة:

سيبدو المخرج الخاص بك مشابهًا لهذا:

للمصادقة، قم بتشغيل الأمر AUTH مع نفس كلمة المرور التي حددتها في ملف /etc/redis/redis.conf:

بعد ذلك، قم بتشغيل الأمر مرة أخرى:

هذه المرة، ستحصل على استجابة OK بدلاً من الخطأ. ستحصل على المخرجات كما يلي:

المخرجات قائمة أو مجموعة فارغة تعني أن خادم Redis فارغ. وذلك لأننا لم نقم بعد بتهيئة خادم الويب كمعالج للجلسات.

ملاحظة: قبل أن نمضي قدمًا، تأكد من فتح جلسة SSH واتصالها بـ redis-cli. في الخطوات القادمة، سنعود إلى موجه redis-cli للتحقق مما إذا كانت بيانات الجلسة قد تم تخزينها بشكل صحيح بعد إجراء التغييرات اللازمة على خادم الويب .

الخطوة 6 — تثبيت امتداد Redis على خادم الويب

يجب تنفيذ الخطوات التالية على خادم الويب . نحتاج إلى تثبيت امتداد PHP Redis لكي يتمكن PHP من الاتصال بخادم Redis.

أولاً، قم بتحديث ذاكرة التخزين المؤقت لمدير الحزم عن طريق تشغيل الأمر:

بعد ذلك، قم بتثبيت حزمة php5-redis:

أنت الآن جاهز تمامًا للاتصال بـ Redis.

الخطوة 7 — إعداد Redis كمعالج الجلسة الافتراضي على خادم الويب

يحتوي PHP على معالج جلسة افتراضي. في هذه الخطوة، سنقوم بتحرير ملف php.ini على خادم الويب لتغيير الإعدادات الافتراضية. يعتمد موقع ملف php.ini على الحزمة الحالية:

  • بالنسبة لحزمة LAMP على Ubuntu 20.04، استخدم: /etc/php5/apache2/php.ini.

  • بالنسبة لحزمة LEMP على Ubuntu 20.04، عادةً ما يكون المسار هو /etc/php5/fpm/php.ini.

إذا لم تكن متأكدًا من موقع ملف php.ini الرئيسي، فاستعن بالدالة phpinfo(). ضع الكود التالي في ملف باسم info.php داخل دليل جذر الويب الخاص بك:

عندما تحاول الوصول إلى السكربت من متصفحك، ابحث عن الصف الذي يحتوي على "Loaded Configuration File". ستجد الموقع الدقيق لملف php.ini الرئيسي الذي تم تحميله. تأكد من إزالة ملف info.php لأنه يحتوي على جميع المحتويات الحساسة لبيئتك.

بعد ذلك، افتح ملف php.ini وابحث عن السطر الذي يحتوي على session.save_handler. ستكون القيمة الافتراضية هي files، تأكد من تغييرها إلى redis.

في بيئات LAMP:

في بيئات LEMP:

بعد ذلك، قم بإلغاء تعليق session.save_path وقم بتعديل القيمة لتشمل سلسلة اتصال Redis. يجب أن يتبع المحتوى التنسيق أدناه:

استخدم كلمة المرور التي قمنا بإعدادها في الخطوة 4. في حال لم تكن تستخدم كلمة المرور المحددة، فقم بتقديم المعلمة auth عند تهيئة Redis. الآن، احفظ الملف وأعد تشغيل php الخدمة على كلا البيئتين.

على LAMP بيئات:

على LEMP بيئات:

الخطوة 8 — اختبار معالجة جلسات Redis

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

أنشئ ملفًا باسم demo.php على خادم web واحتفظ به داخل مجلد جذر المستندات الخاص بك:

ثم، قم بتغيير /usr/share/nginx/html ليعكس مسار جذر المستندات الخاص بك:

بعد ذلك، عليك توجيه متصفحك إلى http://web/demo.php للوصول إلى البرنامج النصي. سيقوم البرنامج بزيادة الرقم في كل مرة تقوم فيها بإعادة تحميل الصفحة.

الآن سيكون لديك معلومات الجلسة مخزنة على خادم Redis. للتحقق، عليك العودة إلى جلسة SSH الخاصة بك على جهاز redis باستخدام redis-cli. احصل على المحتوى مرة أخرى باستخدام keys *:

سترى المخرجات أدناه:

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

الخاتمة

Redis هي قاعدة بيانات NoSQL تتيح تخزين العديد من البيانات غير المنظمة. عدد قليل جدًا من قواعد البيانات يمكن مقارنتها بوظائف وبساطة خادم redis . شعبيتها المتزايدة تجعلها باستمرار أمرًا لا بد منه مع وجود بدائل قليلة مقارنة بميزاتها الواسعة.

لمزيد من تعميق معرفتك بتطبيقات PHP وكيفية استخدامها، يمكنك إلقاء نظرة على البرامج التعليمية التالية من مدونتنا:

حوسبة سعيدة!

author

Shreyas Patil

المؤلف · CloudSigma

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

التعليقات

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