كيفية إعداد التخزين المؤقت لـ Redis لـ Nextcloud على Ubuntu 24.04

لا يزال دليل إدارة Nextcloud الحالي يوثق إضافة PhpRedis لتخزين البيانات مؤقتًا باستخدام Redis وقفل الملفات للمعاملات. كما يوثق أيضًا واجهة KeyValueCache الخلفية الأحدث، والتي لا تتطلب إضافة، والتي أُضيفت في Nextcloud 34.0.2. يستخدم هذا الدليل إعدادات PhpRedis المُعتمدة لأن Ubuntu 24.04 يوفر حزمة إضافة Redis لـ PHP 8.3. تُعد الواجهة الخلفية الأحدث خيارًا متاحًا عند دعم إصدار Nextcloud الخاص بك لها، ولكن تختلف مفاتيح التكوين الخاصة بها؛ لذا يُرجى عدم الخلط بين المثالين.

ستكون النتيجة خدمة Redis محلية متاحة فقط لمضيف Nextcloud، مع ذاكرة تخزين مؤقت موزعة مدعومة بـ Redis وقفل الملفات، بالإضافة إلى APCu لتسريع ذاكرة التخزين المؤقت المحلية. هذا ترتيب شائع للخوادم الفردية. إذا كانت خوادم الويب وPHP موزعة على عدة مضيفات، فاستخدم نقطة نهاية Redis مشتركة مع عناصر تحكم الشبكة المناسبة بدلاً من إعدادات المضيف المحلي الموضحة أدناه.

ما هي التغييرات التي يُجريها Redis في تثبيت Nextcloud؟

يُوفر Redis لـ Nextcloud خدمة مفتاح-قيمة لتوزيع إدخالات التخزين المؤقت وتأمين الملفات للمعاملات. تُساعد هذه التأمينات على منع تعارض العمليات عند معالجة الملفات من قِبل طلبات متعددة. لا يحل Redis محل قاعدة بيانات Nextcloud، أو نظام تخزين الملفات، أو PHP OPcache، أو خطة النسخ الاحتياطي. على خادم واحد، يكون APCu أسرع عمومًا للتخزين المؤقت المحلي داخل العملية، بينما يتولى Redis إدارة التخزين المؤقت المشترك والتأمين. كما تُحذر Nextcloud من أن استخدام Redis كذاكرة تخزين مؤقت محلية غير مُوصى به، خاصةً مع وجود عدة خوادم ويب.

يُشير أحدث دليل لـ Nextcloud إلى أن Redis هو نظام خلفي مدعوم، ويُحدد PhpRedis 2.2.6 أو أحدث للطريقة القائمة على الإضافات. يتضمن أرشيف حزم Ubuntu 24.04 حزمًا php8.3-redisو redis-server. قد تتغير إصدارات الحزم مع نشر Ubuntu للتحديثات، لذا يُنصح بالتثبيت من مستودعات Ubuntu المُهيأة بدلاً من تثبيت إصدار منسوخ من دليل قديم. المراجع التي تمت مراجعتها في 6 أكتوبر 2026: وثائق التخزين المؤقت للذاكرة في Nextcloud ، وقائمة حزم PhpRedis في Ubuntu 24.04 ، وقائمة حزم خادم Redis في Ubuntu 24.04 .

قبل أن تبدأ

  • تأكد من مسار تثبيت Nextcloud وبيئة تشغيل PHP المستخدمة من قِبل الموقع. تفترض الأوامر أدناه تثبيتًا قياسيًا لحزمة Ubuntu مع PHP 8.3، وApache أو PHP-FPM، وحساب خدمة الويب www-data.
  • قم بعمل نسخة احتياطية config/config.phpولاحظ كيفية استعادتها. يختلف المسار الدقيق: على سبيل المثال، قد يستخدم تثبيت الحزمة مسارًا معينًا /var/www/nextcloud/config/config.php، بينما قد يكون التثبيت اليدوي في مكان آخر.
  • استخدم نافذة صيانة إذا كان الخادم يتعامل مع عمليات تحميل ملفات نشطة. إعادة تشغيل Apache أو PHP-FPM تُوقف طلبات الويب لفترة وجيزة.

1. قم بتثبيت Redis وPhpRedis وAPCu

قم بتحديث بيانات تعريف الحزمة وتثبيت البرنامج الخفي وامتدادات PHP:

sudo apt update
sudo apt install redis-server php-redis php-apcu

تختار حزمة أوبونتو php-redisالإضافة المناسبة لإصدار PHP المُثبّت. إذا كنت تستخدم إصدارات متعددة من PHP أو مستودع PHP تابعًا لجهة خارجية، فتأكد من تثبيت الإضافة لإصدار PHP المُستخدم تحديدًا لتشغيل Nextcloud. لا يضمن تفعيل وحدة نمطية لوقت تشغيل PHP من سطر الأوامر وحده قدرة Apache أو PHP-FPM على تحميلها.

قم بتمكين Redis عند بدء التشغيل وابدأ تشغيله الآن، ثم تحقق من حالة الخدمة:

sudo systemctl enable --now redis-server
sudo systemctl status redis-server --no-pager
redis-cli ping

استجابة Redis المحلية السليمة للأمر الأخير هي PONG. إذا كانت الخدمة غير نشطة، فتحقق من ذلك sudo journalctl -u redis-server -n 50 --no-pagerقبل تغيير إعدادات Nextcloud.

2. حافظ على مستمع Redis محليًا

في حالة التثبيت على مضيف واحد، لا يحتاج Redis إلى الاستماع على واجهة عامة. عادةً ما يكون تكوين حزمة Ubuntu مصممًا للوصول المحلي والوضع المحمي؛ لذا يُرجى مراجعته /etc/redis/redis.confقبل تغييره.

sudo grep -E '^(bind|protected-mode|port|unixsocket)' /etc/redis/redis.conf

أبقِ Redis مرتبطًا بشبكة محلية (عادةً ما 127.0.0.1تكون الشبكة المحلية هي الشبكة المحلية ::1) واترك الوضع المحمي مُفعّلاً. لا تُعرّض المنفذ 6379للإنترنت أو تربطه بشبكة 0.0.0.0محلية في هذا الإعداد المحلي. بعد أي تغيير في إعدادات Redis، أعد تشغيل الخدمة وكرر العملية redis-cli ping.

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

3. تأكد من أن PHP يمكنها تحميل كلا الامتدادين

تحقق من وحدات PHP الخاصة بسطر الأوامر:

php -m | grep -Ei '^(apcu|redis)$'

يجب أن ترى كلا الاسمين. إذا كان أحدهما مفقودًا، فتحقق من ملفات الوحدات النمطية المُفعّلة، php --iniثم ثبّت الحزمة المطابقة لإصدار PHP لديك. أعد تشغيل معالج PHP الذي يستخدمه الموقع الإلكتروني حتى يتم تحميل الوحدات النمطية الجديدة. بالنسبة لـ Apache مع mod_php، شغّل الأمر التالي sudo systemctl restart apache2. أما بالنسبة لتثبيت PHP-FPM باستخدام PHP 8.3، فشغّل الأمر التالي sudo systemctl restart php8.3-fpm؛ ثم أعد تشغيل خادم الويب أو أعد تحميله حسب متطلبات النشر.

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

4. أضف إعدادات التخزين المؤقت إلى Nextcloud

افتح الملف الحالي config/config.phpباستخدام محرر نصوص. قم بعمل نسخة احتياطية من الملف أولاً، ثم ادمج هذه المدخلات في مصفوفة PHP الحالية قبل إغلاقها );. لا تستبدل الملف بأكمله أو تضيف نسخة ثانية من المفاتيح الموجودة بالفعل.

'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
    'host' => '127.0.0.1',
    'port' => 6379,
],

يتطابق عنوان الاسترجاع الصريح مع خدمة Redis المحلية. إذا كنت تستخدم مقبس Unix، فاستخدم مسار المقبس كمضيف Redis، وقم بضبط إعدادات البرنامج الخفي والأذونات لتتوافق معه. إذا كان Redis يتطلب مصادقة، فأضف اسم المستخدم وكلمة المرور الصحيحين لقائمة التحكم بالوصول (ACL) الخاصة بـ Redis إلى المصفوفة redis، وقم بضبط إعدادات Redis وفقًا لذلك؛ لا تقم أبدًا بلصق كلمة مرور حقيقية في مثال مشترك أو منشور دعم عام.

احتفظ بالإعدادات الحالية مثل instanceidبيانات اعتماد قاعدة البيانات، والنطاقات الموثوقة، ودليل البيانات دون تغيير. يُرجى مراعاة بنية مصفوفات PHP: ضع فواصل بين العناصر وتأكد من ظهور كل إعداد مرة واحدة فقط.

5. التحقق من صحة ذاكرة التخزين المؤقت وقفل الملفات

قم بتشغيل فحص حالة Nextcloud من سطر الأوامر من مجلد التثبيت بصفتك مستخدم خدمة الويب. استبدل المسار المذكور في المثال إذا كان تثبيتك في مكان آخر.

cd /var/www/nextcloud
sudo -u www-data php occ status

تحقق من واجهة الويب ضمن إعدادات الإدارة بحثًا عن تحذيرات الإعداد، وتأكد من أن وحدتي Redis وAPCu مرئيتان لبيئة تشغيل PHP الخاصة بالويب. ثم اختبر عمليات الملفات العادية باستخدام ملف صغير غير حرج: ارفعه، أعد تسميته، نزّله، واحذفه. يجب ألا تُظهر صفحة الإدارة بعد الآن رسالة تفيد بفقدان ذاكرة التخزين المؤقت عند تهيئة ذاكرة التخزين المؤقت المحلية بشكل صحيح.

لا يُثبت نجاح الاختبار PONGسوى استجابة Redis لعميل سطر الأوامر المحلي. يساعد فحص إدارة Nextcloud وعمليات الملفات الروتينية في التحقق من امتداد PHP، وصلاحيات خادم الويب، وإعدادات اتصال Redis، وتكوين التطبيق معًا. لا تعتبر سرعة تحميل الصفحة خلال اختبار واحد دليلًا على تحسن الأداء الفعلي؛ إذ يؤثر كل من حجم العمل، ومساحة التخزين، وقاعدة البيانات، وسعة عامل PHP على وقت الاستجابة.

استكشاف الأخطاء وإصلاحها في المشاكل الشائعة

لا تزال صفحة الإدارة تُشير إلى عدم وجود ذاكرة تخزين مؤقتة.

تحقق من وجود مفتاح ذاكرة تخزين مؤقت مكرر أو به خطأ إملائي، وتأكد من أنه memcache.localيشير إلى APCu، ثم أعد تشغيل خدمة Apache أو PHP-FPM الصحيحة. قد يختلف تثبيت PHP عبر سطر الأوامر فقط عن بيئة تشغيل PHP المستخدمة من قِبل الموقع الإلكتروني.

يعمل Redis، لكن Nextcloud يُبلغ عن أخطاء في الاتصال.

قارن بين ` hostin` portو` config.phplistener` في ` /etc/redis/redis.conf. تأكد من الوصول المحلي باستخدام ` redis-cli -h 127.0.0.1 -p 6379 ping.. راجع سجلات Redis وخادم الويب. إذا كنت تستخدم مقبسًا أو كلمة مرور، فتحقق من تطابق مساره أو بيانات اعتماده على كلا الجانبين.

تفشل عمليات الملفات بعد التغيير

في حال تعطل النظام، استعد النسخة الاحتياطية مؤقتًا config.php، ثم افحص سجلات PHP وخادم الويب. تأكد من علامات الترقيم في المصفوفة، وتأكد من أن خدمة Redis نشطة، وتحقق من عدم وجود جدار حماية أو قائمة تحكم وصول مخصصة لـ Redis تحظر عملية الويب. تجنب مسح بيانات Redis كخطوة أولى لحل المشكلة؛ تحقق من الاتصال والتكوين قبل إزالة ذاكرة التخزين المؤقت أو إدخالات القفل.

ما لا يشمله هذا الإعداد

هذا تكوين لخادم واحد، وليس تصميمًا عالي التوفر لـ Redis. لا يتضمن هذا التكوين نسخ Redis، أو Sentinel، أو TLS، أو مضيف ذاكرة تخزين مؤقتة عن بُعد، أو تخزين الجلسات، أو نشر Nextcloud مُجمّع. يجب أن تشترك عُقد Nextcloud متعددة الخوادم في نفس ذاكرة التخزين المؤقتة الموزعة ونظام القفل الخلفي؛ سيؤدي استخدام localhost على كل عُقدة إلى إنشاء مثيلات Redis منفصلة، ​​مما يُخالف هذا الشرط. بالنسبة للبنية البعيدة أو المُجمّعة، اتبع قسم تكوين Nextcloud المُناسب وقم بتأمين اتصالات Redis لتلك البيئة.

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

اترك تعليقاً

حل مشكلة ارتفاع استهلاك وحدة المعالجة المركزية في تطبيق Jitsi Meet على متصفحات المستخدمين

حل مشكلة ارتفاع استهلاك وحدة المعالجة المركزية في تطبيق Jitsi Meet على متصفحات المستخدمين

قم بتشخيص ارتفاعات وحدة المعالجة المركزية في متصفح Jitsi Meet وقلل من حمل العميل عن طريق فحص مربعات الفيديو وتأثيرات الكاميرا ورسومات المتصفح وإعدادات المضيف.

كيفية مراقبة مقاييس Jitsi Videobridge باستخدام Prometheus و Grafana

كيفية مراقبة مقاييس Jitsi Videobridge باستخدام Prometheus و Grafana

تتبع حالة Jitsi Videobridge، وحمل المؤتمرات، وحركة المرور باستخدام نقطة نهاية Prometheus المدمجة، ثم استكشف البيانات وارسمها بيانيًا في Grafana.

كيفية إعداد اسم نطاق مخصص لـ Jitsi Meet Docker

كيفية إعداد اسم نطاق مخصص لـ Jitsi Meet Docker

قم بتكوين نطاق مخصص لـ Jitsi Meet Docker باستخدام DNS و PUBLIC_URL و HTTPS و Let's Encrypt ومنافذ جدار الحماية وإعدادات NAT والتحقق من طرف إلى طرف.

حل مشكلة عدم العثور على لوحة تحكم Zimbra الإدارية (404) بعد تجديد شهادة SSL

حل مشكلة عدم العثور على لوحة تحكم Zimbra الإدارية (404) بعد تجديد شهادة SSL

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

إصلاح تحذير Nextcloud "لم يتم تكوين PHP OPcache بشكل صحيح"

إصلاح تحذير Nextcloud "لم يتم تكوين PHP OPcache بشكل صحيح"

تعرف على كيفية تشخيص وإصلاح تحذير تكوين PHP OPcache الخاص بـ Nextcloud عن طريق التحقق من إعدادات PHP SAPI النشطة، وحدود الحجم، والتعليقات، وإعادة التحقق.

إصلاح أخطاء ترحيل قاعدة بيانات Kopano بعد ترقية إصدار MySQL

إصلاح أخطاء ترحيل قاعدة بيانات Kopano بعد ترقية إصدار MySQL

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

كيفية إعداد مصادقة LDAP و Active Directory في Nextcloud

كيفية إعداد مصادقة LDAP و Active Directory في Nextcloud

قم بتوصيل Nextcloud بـ LDAP أو Active Directory باستخدام النقل الآمن، وفلاتر المستخدم والمجموعة، وسمات تسجيل الدخول، وعملية نشر تم اختبارها.

إصلاح إشعارات Element لنظام Android بدون خدمات Google: دليل UnifiedPush

إصلاح إشعارات Element لنظام Android بدون خدمات Google: دليل UnifiedPush

إصلاح إشعارات Element Android على الهواتف التي تم إلغاء خدمة Google منها عن طريق تكوين UnifiedPush، وأذونات Android، وإعدادات البطارية، واختبارات التحقق الموثوقة.

إصلاح تحذير Nextcloud "قاعدة البيانات تفتقد بعض الفهارس"

إصلاح تحذير Nextcloud "قاعدة البيانات تفتقد بعض الفهارس"

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

كيفية إعداد تسجيل الدخول الموحد (SSO) باستخدام Keycloak في Element Web

كيفية إعداد تسجيل الدخول الموحد (SSO) باستخدام Keycloak في Element Web

قم بتكوين Keycloak SSO لـ Element Web عن طريق ربط OIDC بـ Synapse، وتعيين عنوان URL لإعادة الاتصال بدقة، وتعيين مطالبات المستخدم، واختبار تسجيل الخروج.