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

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

في وثائق إدارة Nextcloud 35 الحالية، يُعامل OPcache كطبقة أداء PHP مهمة. تشير Nextcloud إلى أن لوحة التحكم الخاصة بها تُظهر تحذيرًا عند تجاوز حجم OPcache 90% من سعته المخصصة. كما تتطلب الحفاظ على تعليقات التعليمات البرمجية المخزنة مؤقتًا. يوثق دليل PHP التوجيهات ذات الصلة وقيمها الافتراضية. تُتيح لك هذه المعلومات طريقة أكثر أمانًا لضبط OPcache: زيادة الموارد المحدودة فقط، والحفاظ على السلوك المطلوب مُفعلاً، وتجنب التغييرات التي تُعقّد التحديثات إلا إذا كان لديك سبب وجيه لذلك.

نظرة عامة على إدارة Nextcloud تُظهر تحذيرًا بشأن تكوين PHP OPcache بالقرب من أعلى الصفحة.
ينبغي التعامل مع التحذير كدليل تشخيصي: حدد قيد OPcache المحدد قبل تغيير حدود الذاكرة أو عدد الملفات.

ما الذي يعنيه تحذير Nextcloud OPcache عادةً

يخزن OPcache بايت كود PHP المُجمّع في ذاكرة مشتركة، مما يُغني PHP عن تحليل وتجميع ملفات التطبيق نفسها في كل طلب. تُعرّف Nextcloud هذه الميزة بأنها مُحسّنة للأداء، وقد دمجت PHP مكتبة Zend OPcache في بنيتها الأساسية منذ الإصدار 5.5.

قد يظهر التحذير لأكثر من سبب. من أكثر الأسباب شيوعًا: اقتراب سعة ذاكرة التخزين المؤقت OPcache من الامتلاء، أو تعطيلها لواجهة برمجة تطبيقات الويب SAPI، أو تغيير سلوك مطلوب مثل حفظ التعليقات. ينص دليل ضبط Nextcloud الحالي على ظهور تحذير بشأن الحجم عندما يتجاوز حد حجم ذاكرة التخزين المؤقت OPcache 90% من سعتها المخصصة، ويشترط ذلك صراحةً opcache.save_comments = 1.

المراجع الرسمية: ضبط خادم Nextcloud وإرشادات OPcache ، وملاحظات تكوين PHP لـ Nextcloud ، وتكوين وقت تشغيل PHP OPcache .

اختر الحل بناءً على التحذير، وليس بناءً على حل واحد يناسب الجميع.

الموقفأفضل فرصة أولىالتنازل عن ميزة ممن أجل الحصول على أخرى
تجاوزت ذاكرة OPcache عتبة التحذير الخاصة بـ Nextcloudزيادة opcache.memory_consumptionمعتدلةيستخدم المزيد من ذاكرة الوصول العشوائي المشتركة، ولكنه يقلل من تغيير ذاكرة التخزين المؤقت
السلاسل المخزنة ممتلئة تقريبًايزيدopcache.interned_strings_bufferيستهلك ذاكرة مشتركة إضافية؛ ولا يُحقق رفع الحدود غير ذات الصلة أي فائدة.
مساحات تخزين الملفات/البرامج النصية المخزنة مؤقتًا تقترب من الامتلاءيزيدopcache.max_accelerated_filesيستهلك جدول التجزئة الأكبر حجمًا ذاكرة أكبر
تم تعطيل OPcacheتم ضبط opcache.enable=1إعدادات PHP للويبالوضع الطبيعي والموصى به لـ Nextcloud؛ تحقق من صحة SAPI
opcache.save_commentsكان معاقًاتعيينopcache.save_comments=1لا يوجد سبب وجيه خاص بـ Nextcloud لتعطيله؛ يتطلب Nextcloud الاحتفاظ بالتعليقات

تُحدد لغة PHP حاليًا قيمًا افتراضية تبلغ 128 ميجابايت لـ opcache.memory_consumption، و8 ميجابايت لـ opcache.interned_strings_buffer، و10000 ميجابايت لـ opcache.max_accelerated_files. هذه القيم الافتراضية هي نقاط مرجعية، وليست أهدافًا عامة لـ Nextcloud. قد يكون خادم شخصي صغير مناسبًا لهذه القيم، بينما قد يحتاج نظام أكبر يحتوي على العديد من التطبيقات إلى مساحة أكبر.

الخطوة 1: تأكد من إعدادات PHP التي يستخدمها Nextcloud فعليًا

هذه الخطوة تمنع العديد من محاولات الإصلاح الفاشلة. تشير وثائق Nextcloud إلى أن خادم الويب وواجهة سطر الأوامر PHP يمكنهما تحميل ملفات تكوين مختلفة. في أنظمة Debian وUbuntu، تشمل المسارات الشائعة ما يلي /etc/php/<version>/fpm/php.ini: /etc/php/<version>/apache2/php.iniو و /etc/php/<version>/cli/php.ini.

قم بتشغيل الأمر php --iniلعرض إعدادات واجهة سطر الأوامر، ولكن لا تفترض أنها نفس الملفات المستخدمة من قِبل PHP-FPM أو Apache. بالنسبة لواجهة برمجة تطبيقات الويب (SAPI)، استخدم phpinfo()صفحة مؤقتة فقط إذا كان بإمكانك حمايتها وإزالتها فورًا، أو افحص إعدادات مجموعة/خدمة PHP-FPM وملفات الوحدات النمطية الخاصة بالتوزيعة.

التوصية: إذا كان Nextcloud يعمل خلف Nginx أو Apache مع PHP-FPM، فعدّل إعدادات OPcache الخاصة بـ FPM. إذا كان Apache يستخدم mod_php، فعدّل إعدادات PHP الخاصة بـ Apache. حافظ على توافق إعدادات سطر الأوامر (CLI) عندما تتطلب العمليات الخلفية نفس السلوك، ولكن تذكر أن تحذير المتصفح ناتج عن مسار طلب الويب.

الخطوة الثانية: تعديل أصغر مجموعة من توجيهات OPcache التي تحل المشكلة

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

يُعرض أدناه مثالٌ مُتحفظ لخادمٍ متوسط ​​الإمكانيات. اعتبر القيم العددية نقاط انطلاق، وليست ضمانات.

[opcache]
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.save_comments=1

إذا أشار Nextcloud تحديدًا إلى أن ذاكرة OPcache تقترب من الامتلاء، فإن زيادة حجمها من 128 ميجابايت إلى 256 ميجابايت تُعدّ زيادةً معقولةً عند توفر ذاكرة وصول عشوائي (RAM) كافية على الخادم. أما إذا كان التحذير يشير إلى سلاسل نصية مُخزّنة داخليًا أو نصوص برمجية مُخزّنة مؤقتًا، فيُفضّل زيادة هذا الحد بدلًا من زيادة حجم الذاكرة فقط. على خادم افتراضي خاص (VPS) ذي ذاكرة محدودة، قد يؤدي الانتقال مباشرةً إلى 512 ميجابايت إلى تقليل ذاكرة الوصول العشوائي المتاحة لعمال PHP-FPM، وقاعدة البيانات، وRedis، ونظام التشغيل.

ماذا عن إعدادات إعادة التحقق؟

يشير دليل ضبط Nextcloud الحالي إلى أن PHP يتحقق افتراضيًا من وجود تغييرات في البرامج النصية المخزنة مؤقتًا كل ثانيتين، ولا يُوصي بتغيير هذا الإعداد الافتراضي للجميع. opcache.revalidate_freqقد يُقلل رفع مستوى التحقق من نظام الملفات من عمليات التحقق، ولكن على حساب الأداء: قد تستغرق ترقيات التطبيقات وتعديلاتها config.phpوقتًا أطول للظهور. يُعد تعطيل التحقق من الطابع الزمني بالكامل إجراءً أكثر صرامة، وقد يُبقي التعليمات البرمجية القديمة نشطة حتى يتم مسح ذاكرة التخزين المؤقت OPcache يدويًا أو إعادة تشغيل PHP.

بالنسبة لمعظم المسؤولين الذين يحاولون فقط إزالة التحذير، اتركوا opcache.validate_timestampsالنظام opcache.revalidate_freqيعمل بشكل طبيعي ما لم تفهموا آلية النشر. يحذر Nextcloud تحديدًا من أن السلوك غير المعتاد بعد التحديثات قد ينتج عن وجود رمز مخزن مؤقتًا قديم عند تغيير عملية إعادة التحقق.

الخطوة 3: أعد تشغيل خدمة PHP الصحيحة

بعد تعديل ملف INI، أعد تشغيل عملية PHP التي تُشغّل Nextcloud. ومن الأمثلة الشائعة systemctl restart php8.2-fpmعلى ذلك PHP-FPM أو إعادة تشغيل Apache عند استخدام mod_php. استبدل رقم الإصدار واسم الخدمة بما يُشغّله نظامك فعليًا.

تزداد أهمية هذا الأمر إذا قمت بتغيير سلوك إعادة التحقق. تضمن إعادة تشغيل الخدمة الصحيحة تحميل إعدادات OPcache الجديدة، وتزيل أي لبس بشأن التعليمات البرمجية القديمة.

الخطوة الرابعة: تحقق من القيم، ولكن تحقق أيضًا من واجهة برمجة تطبيقات الويب (SAPI).

يعرض الطرفية مخرجات php --ini و php -i OPcache مع حالة التمكين وقيم التكوين الرئيسية.
تعتبر عمليات التحقق من واجهة سطر الأوامر مفيدة للعثور على ملفات INI وتأكيد بناء الجملة، ولكن يمكن لواجهة برمجة تطبيقات الويب (SAPI) تحميل تكوين مختلف.

تتضمن عمليات التحقق المفيدة عبر سطر الأوامر ما يلي:

php --ini
php -i | grep -i opcache

تؤكد هذه الأوامر أن PHP يتعرف على التوجيهات، لكنها تثبت فقط إعدادات واجهة سطر الأوامر. إذا استمر تحذير Nextcloud، قارن إعدادات SAPI المُحمّلة مع نتيجة واجهة سطر الأوامر. يُعد هذا الأمر بالغ الأهمية، خاصةً في الأنظمة التي تحتفظ بملفات منفصلة لـ cliو fpmو apache2INI.

الخطوة 5: إعادة التحقق من الإدارة > نظرة عامة

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

قم بتحديث نظرة عامة على إدارة Nextcloud بعد إعادة تشغيل خدمة PHP. إذا اختفى التحذير، فهذا يعني أن واجهة برمجة التطبيقات (SAPI) تقرأ الإعدادات بشكل صحيح، وأن الحد المُبلغ عنه لم يعد يتم تجاوزه.

إذا استمرت المشكلة، فلا تستمر في زيادة القيم عشوائيًا. تحقق من أربعة أمور بالترتيب: هل عدّلت ملف INI الصحيح؟ هل يوجد ملف INI آخر تم تحميله لاحقًا يلغي إعداداتك؟ هل أُعيد تشغيل خدمة PHP المعنية؟ وهل يشير التحذير إلى مورد OPcache مختلف عن المورد الذي قمت بزيادته؟

ما مقدار ذاكرة OPcache التي يجب تخصيصها؟

لا توجد قيمة مثالية واحدة. الهدف الأمثل هو توفير مساحة كافية في ذاكرة التخزين المؤقت لضمان عدم اقترابها باستمرار من حدودها القصوى، دون التأثير سلبًا على أداء باقي مكونات النظام. بالنسبة للخوادم الافتراضية الخاصة الصغيرة، يُنصح بالبدء بقيمة متحفظة ومراقبة ضغط الذاكرة. أما في حالة الخوادم التي تحتوي على العديد من التطبيقات أو حجم كبير من أكواد PHP، فقد يكون تخصيص 256 ميجابايت أو أكثر مبررًا عندما يُظهر استخدام OPcache الفعلي أن 128 ميجابايت غير كافية. على الخوادم الكبيرة، يجب مراعاة حجم الذاكرة بالتزامن مع عدد عمليات PHP-FPM والخدمات المشتركة الأخرى.

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

أخطاء شائعة تؤدي إلى استمرار التحذير

  • تحرير CLI PHP فقط: لا يزال المتصفح يستخدم PHP-FPM أو mod_php.
  • رفع الحد الخاطئ: زيادة الذاكرة لا تحل مشكلة امتلاء جدول الملفات المعجلة.
  • تجاهل إعادة التشغيل: قد لا تزال عملية PHP قيد التشغيل تحتوي على قيم INI القديمة.
  • تعطيل opcache.save_comments: يتطلب Nextcloud الاحتفاظ بالتعليقات.
  • نسخ أجزاء الضبط القديمة: قد توصي الأدلة القديمة بإعدادات إعادة التحقق العدوانية التي تخلق مشاكل في الترقية.

النهج الموصى به حسب نوع الخادم

خادم Nextcloud شخصي صغير: احتفظ بالإعدادات الافتراضية لإعادة التحقق، واحتفظ بالتعليقات، وقم بزيادة الحد فقط بما يتجاوز العتبة الفعلية. هذا يقلل من استخدام ذاكرة الوصول العشوائي والمفاجآت التشغيلية.

خادم متعدد المستخدمين ذو استخدام مكثف: راقب استهلاك ذاكرة التخزين المؤقت OPcache، ووفر مساحة إضافية عند ظهور تحذير من المسؤول يشير إلى وجود ضغط. نسّق ذاكرة OPcache مع حجم عامل PHP-FPM بحيث لا يؤدي تحسين واحد إلى تبديل الذاكرة على مستوى النظام.

الاستضافة المُدارة أو صورة الحاوية: حدد أولاً مكان تعديل إعدادات PHP. قد يختفي تعديل ملف داخل حاوية مؤقتة بعد إعادة النشر، بينما قد يُتيح مُزوّد ​​الخدمة قيم INI مُخصصة من خلال لوحة التحكم أو إعدادات البيئة.

الفحص النهائي

يتألف الحل الصحيح من ثلاثة أجزاء: تفعيل OPcache في عملية PHP الخاصة بموقع Nextcloud، opcache.save_comments=1والحفاظ على السلوكيات المطلوبة، وتوفير مساحة كافية لمورد OPcache المحدد الذي كان على وشك الامتلاء. بمجرد تحقق هذه الشروط وإعادة تحميل PHP، سيختفي التحذير دون الحاجة إلى تخصيص مفرط للذاكرة أو إجراء تغييرات محفوفة بالمخاطر على التحقق من صحة ذاكرة التخزين المؤقت.

اترك تعليقاً

حل مشكلة ارتفاع استهلاك وحدة المعالجة المركزية في تطبيق 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 لإعادة الاتصال بدقة، وتعيين مطالبات المستخدم، واختبار تسجيل الخروج.