WordPress

زيادة حد ذاكرة WordPress

When WordPress or a plugin dies with a memory exhaustion error, the fix is to raise the PHP memory limit, and on Kapsule that is a dropdown in KPanel rather than a file edit. This guide covers what…

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

شكل الخطأ

الشكل الأوضح هو خطأ فادح يُطبع على الصفحة أو يُكتب في سجل الأخطاء:

Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 20480 bytes)

اقسم قيمة البايت على 1,048,576 لقراءتها بالميجابايت: 268435456 يساوي 256 MB، و134217728 يساوي 128 MB.

لا يعلن الخطأ عن نفسه بوضوح دائماً. تظهر المشكلة الأساسية ذاتها كـ:

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

قبل تغيير أي شيء، تأكد من أن المشكلة فعلاً تتعلق بالذاكرة. افتح Advanced، ثم تبويب PHP، مرر للأسفل إلى PHP error log، وانقر على Load log. سيعرض آخر 200 إدخال مع مرشح المستوى. يظهر خطأ استنزاف الذاكرة كـ Fatal. إذا كان السجل فارغاً، المشكلة في مكان آخر: جرب WordPress White Screen وReading Your Error Logs.

تغيير الحد في KPanel

  1. سجل الدخول إلى KPanel وانقر على Websites في الشريط الجانبي الأيسر.
  2. انقر على الموقع الذي تريد تغييره.
  3. في قائمة الموقع الخاصة، افتح Advanced، ثم PHP.
  4. ابحث عن بطاقة PHP settings وصف Memory limit.
  5. اختر قيمة من القائمة المنسدلة: 128M، 256M، 512M، 1024M أو 2048M.
  6. انقر على Save Settings.

PHP settings on a site in KPanel

لا يلزم إعادة تشغيل والموقع يبقى متصلاً طوال الوقت. يتم كتابة الإعدادات الخاصة بك في ملف .user.ini في جذر موقعك، والذي يديره KPanel لك.

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

تتحكم البطاقة ذاتها في أربع قيم أخرى غالباً ما تحتاج إلى تعديل جنباً إلى جنب مع الذاكرة:

الإعدادالخياراتارفعه عندما
Memory limit128M إلى 2048Mأخطاء ذاكرة فادحة، شاشات إدارة فارغة
Max execution time30 إلى 600 ثانيةالاستيراد والتصدير وبناء التقارير التي تتوقف جزئياً
Max upload size16M إلى 256Mملف zip للمظهر أو فيديو يتم رفضه كبير جداً
Max input variables1000 إلى 10000قوائم كبيرة، نماذج كبيرة، منتجات بعدد كبير من الاختلافات

Post max size غير معروض لأن Kapsule يعينه تلقائياً، دائماً 1 MB أعلى من حد الرفع الخاص بك، لذلك النموذج الذي يحمل ملفاً عند الحد يظل يناسب.

اختيار القيمة المناسبة

كل موقع Kapsule يبدأ بـ 256M، وهو بالفعل ضعف القيمة الافتراضية لـ WordPress وكافٍ لأغلبية المواقع. انتقل للأعلى فقط عندما يكون لديك خطأ فعلي.

الموقعحد مقترح
موقع كرويات أو مدونة على مظهر خفيف256M كافٍ
موقع على مظهر بناء الصفحات مع 20 مكون إضافي أو أكثر256M، ثم 512M إذا استمرت الأخطاء
متجر WooCommerce، كتالوج متواضع256M
WooCommerce مع الاشتراكات، عدد كبير من الاختلافات، أو مكونات إضافية للمخزون الثقيل512M
شبكة متعددة المواقع أو موقع عضوية كبير512M إلى 1024M

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

تعيين حد في wp-config.php

القائمة المنسدلة في KPanel تعيين سقف الخادم. WordPress له ثابتان خاصان يطلبان ذاكرة حتى ذلك السقف، وبعض الوثائق ستخبرك بتعيينهما:

define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );

WP_MEMORY_LIMIT ينطبق على الواجهة الأمامية. WP_MAX_MEMORY_LIMIT ينطبق على منطقة الإدارة، والتي عادة تحتاج إلى المزيد. أضفهما فوق سطر /* That's all, stop editing! */ في wp-config.php، باستخدام المحرر المدمج على Files، ثم File Manager، أو عبر SFTP.

ثابت WordPress لا يمكن أن يتجاوز حد الخادم. تعيين WP_MEMORY_LIMIT إلى 1024M بينما تقول القائمة المنسدلة في KPanel 256M يعطيك 256M وإحساس زائف بأنك أصلحتها. ارفع قيمة KPanel أولاً دائماً.

بالنسبة لمعظم الناس الثوابت غير ضرورية. عيّن قيمة KPanel واترك wp-config.php وحدها.

ملاحظات WooCommerce

المتاجر هي السبب الأكثر شيوعاً للذهاب بعد 256M. تحقق من رؤية المتجر الخاصة به للحد على WooCommerce، ثم Status في wp-admin: تطبع تقرير System Status حد ذاكرة PHP الذي يمكنه رؤيته، وهي طريقة جيدة للتأكد من وصول تغييرك في KPanel فعلاً.

ارفع إلى 512M إذا كنت تشغل أي مما يلي:

  • منتجات متغيرة بعشرات الاختلافات لكل منها.
  • WooCommerce Subscriptions أو امتداد الحجوزات.
  • مكونين أو أكثر من مكونات بوابة الدفع نشطة في نفس الوقت.
  • مزامنة مخزون أو محاسبة تعمل في الخلفية.

صفحات إدارة WooCommerce البطيئة أو المنتهية هي عادة مزيج من الذاكرة ووقت التنفيذ. ارفع Max execution time إلى 120 ثانية في نفس الوقت، وفكر في خيارات التخزين المؤقت في Setting Up WooCommerce.

تحقق من إصدار PHP الخاص بك أيضاً

إذا بدأت أخطاء الذاكرة مباشرة بعد تغيير PHP، قد يكون الإصدار ذاته متضمناً: مكون إضافي قديم يمكنه تسرب بشكل سيء على وقت تشغيل أحدث. بطاقة PHP version في أعلى التبويب ذاته تظهر ما يعمل عليه الموقع وتسمح لك بالتنقل بين PHP 8.4، 8.3، 8.2 و8.1.

يؤدي تغيير الإصدار إلى إعادة تشغيل مجموعة PHP الخاصة بالموقع، لذا توقع بضع ثوان من التوقف. التفاصيل الكاملة موجودة في Changing Your PHP Version.

عندما لا تصلح زيادة الذاكرة

رفع الحد مرتين بدون تحسن يعني أن شيء ما يستهلك ذاكرة لا يجب أن يستهلكها. اعمل من خلال هذا بالترتيب:

  1. أنشئ نسخة احتياطية. Taking a Backup أولاً، في كل مرة.
  2. ابحث عن المكون الإضافي. قم بإلغاء تنشيط المكونات الإضافية على دفعات بدلاً من واحد في المرة: أطفئ النصف، أعد الاختبار، ثم قسّم أي نصف يفشل لا يزال. يمكنك أيضاً استخدام Plugin safe mode على تبويب WordPress، ثم Plugins، الذي يطفئ كل مكون إضافي في وقت واحد بدون حذف أي بيانات مكون إضافي.
  3. اختبر المظهر. انتقل إلى مظهر WordPress الافتراضي مؤقتاً. مظهر يشغل استعلامات ثقيلة على كل تحميل صفحة ينتج بالضبط هذا النمط.
  4. انظر إلى العملية، وليس الموقع. إذا فشلت الاستيرادات فقط، المشكلة هي وقت التنفيذ وحجم الدفعة، وليس الذاكرة. استورد في أجزاء أصغر.
  5. اقرأ السجل. PHP error log على تبويب PHP يذكر الملف والسطر الذي نفدت منه الذاكرة، والذي عادة يعرّف المكون الإضافي على الفور.

إذا كنت لا تزال عالقاً بعد 512M واختبار مكون إضافي نظيف، أرسل بريداً إلى support@kapsulehost.com يتضمن نطاق الموقع، سطر الخطأ الفادح الدقيق، وما كنت تفعله عندما حدث.

هل تحتاج إلى مساعدة إضافية؟

راسلنا على البريد الإلكتروني support@kapsulehost.com أو افتح محادثة في KPanel.

فتح KPanel
زيادة حد ذاكرة WordPress