عندما يتعطل WordPress أو إضافة ما بسبب خطأ استنفاد الذاكرة، يكون الحل هو رفع حد ذاكرة PHP، وفي KapsuleHost يتم ذلك عبر قائمة منسدلة في KPanel بدلاً من تعديل ملف. يغطي هذا الدليل معنى الخطأ، وكيفية تغيير الحد، والقيمة التي يجب اختيارها، وما يجب فعله عندما لا تُجدي زيادة الذاكرة نفعًا.
كيف يبدو الخطأ
أوضح صورة لهذا الخطأ هي خطأ فادح يُطبع على الصفحة أو يُكتب في سجل الأخطاء الخاص بك:
Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 20480 bytes)
اقسم رقم البايت على 1,048,576 لقراءته بالميغابايت: 268435456 تساوي 256 ميغابايت، و134217728 تساوي 128 ميغابايت.
لا يُعلن هذا الخطأ عن نفسه دائمًا بهذا الوضوح. نفس المشكلة الأساسية قد تظهر على شكل:
- صفحة بيضاء فارغة تمامًا دون أي رسالة، غالبًا في شاشة واحدة محددة.
- تحميل لوحة تحكم WordPress بشكل طبيعي بينما تتعطل صفحة إدارية واحدة فقط (الإضافات، المنتجات، صحة الموقع).
- رفع وسائط أو عملية استيراد تتوقف في المنتصف.
- خطأ 500 يظهر فقط تحت الضغط العالي.
قبل أن تغيّر أي شيء، تأكد أن المشكلة فعلًا متعلقة بالذاكرة. افتح الإعدادات الخاصة بالموقع، ثم تبويب PHP، وانتقل للأسفل إلى سجل أخطاء PHP، وانقر على تحميل السجل. سيُظهر لك ذلك آخر 200 إدخال مع إمكانية تصفية حسب المستوى. يظهر خطأ استنفاد الذاكرة باعتباره Fatal. إذا كان السجل فارغًا، فالمشكلة في مكان آخر: جرّب الشاشة البيضاء في WordPress وقراءة سجلات الأخطاء الخاصة بك.
تغيير الحد في KPanel
- سجّل الدخول إلى KPanel وانقر على المواقع في الشريط الجانبي الأيسر.
- انقر على الموقع الذي تريد تغييره.
- في قائمة الموقع الخاصة به، افتح الإعدادات، ثم PHP.
- ابحث عن بطاقة إعدادات PHP وصف حد الذاكرة.
- اختر قيمة من القائمة المنسدلة:
128M،256M،512M،1024Mأو2048M. - انقر على حفظ الإعدادات.

لا حاجة لإعادة التشغيل ويبقى الموقع يعمل طوال العملية. تُكتب إعداداتك في ملف .user.ini عند جذر موقعك، والذي يديره KPanel نيابةً عنك.
القيمة الجديدة لا تكون دائمًا فعّالة فور تحميل الصفحة التالية. يخزّن الخادم .user.ini مؤقتًا لمدة تصل إلى خمس دقائق، لذا إذا استمر ظهور الحد القديم، انتظر بضع دقائق وتحقق مرة أخرى قبل أن تفترض أن التغيير لم يُطبّق.
تتحكم نفس البطاقة في أربع قيم أخرى غالبًا ما تحتاج إلى تعديل بالتوازي مع الذاكرة:
| الإعداد | الخيارات | ارفعه عندما |
|---|---|---|
| حد الذاكرة | 128M إلى 2048M | أخطاء ذاكرة فادحة، شاشات إدارية بيضاء |
| أقصى وقت تنفيذ | 30 إلى 600 ثانية | عمليات الاستيراد والتصدير وإنشاء التقارير التي تتوقف في المنتصف |
| أقصى حجم للتحميل | 16M إلى 256M | يتم رفض ملف قالب مضغوط أو فيديو باعتباره كبيرًا جدًا |
| أقصى متغيرات الإدخال | 1000 إلى 10000 | قوائم كبيرة، نماذج ضخمة، منتجات بعدد كبير من المتغيرات |
لا يُعرض الحد الأقصى لحجم الطلب (Post max size) لأن KapsuleHost يضبطه تلقائيًا، دائمًا بزيادة 1 ميغابايت فوق حد الرفع لديك، بحيث يظل النموذج الذي يحمل ملفًا عند الحد الأقصى مناسبًا.
أي قيمة تختار
يبدأ كل موقع في KapsuleHost بقيمة 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، باستخدام المحرر المدمج في الإعدادات، ثم مدير الملفات، أو عبر 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 البطيئة أو التي تنتهي مهلتها مزيجًا من الذاكرة ووقت التنفيذ. ارفع أقصى وقت تنفيذ إلى 120 ثانية في نفس الوقت، وفكّر في خيارات التخزين المؤقت الموضحة في إعداد WooCommerce.
تحقق من إصدار PHP أيضًا
إذا بدأت أخطاء الذاكرة مباشرة بعد تغيير في PHP، فقد يكون الإصدار نفسه متورطًا: فإضافة قديمة قد تستهلك الذاكرة بشكل سيئ على بيئة تشغيل أحدث. تُظهر بطاقة إصدار PHP الموجودة أعلى نفس التبويب الإصدار الذي يعمل عليه الموقع، وتتيح لك التنقل بين PHP 8.4 و8.3 و8.2 و8.1.
يؤدي تغيير الإصدار إلى إعادة تشغيل مجموعة PHP الخاصة بالموقع، لذا توقع بضع ثوانٍ من التوقف. التفاصيل الكاملة موجودة في تغيير إصدار PHP الخاص بك.
عندما لا تحل زيادة الذاكرة المشكلة
إذا رفعت الحد مرتين دون أي تحسّن، فهذا يعني أن شيئًا ما يستهلك ذاكرة لا ينبغي له ذلك. اتبع هذه الخطوات بالترتيب:
- خذ نسخة احتياطية. أخذ نسخة احتياطية أولًا، في كل مرة.
- حدد الإضافة. عطّل الإضافات على دفعتين بدلًا من واحدة تلو الأخرى: أوقف نصفها، أعد الاختبار، ثم قسّم النصف الذي ما زال يفشل. يمكنك أيضًا استخدام وضع الإضافات الآمن في تبويب WordPress، ثم Plugins، الذي يوقف كل إضافة دفعة واحدة دون حذف أي بيانات لها.
- اختبر القالب. انتقل مؤقتًا إلى قالب WordPress افتراضي. القالب الذي يُشغّل استعلامات ثقيلة في كل تحميل للصفحة يُنتج هذا النمط تحديدًا.
- انظر إلى العملية، لا إلى الموقع. إذا كانت عمليات الاستيراد فقط هي التي تفشل، فالمشكلة في وقت التنفيذ وحجم الدفعة، وليس في الذاكرة. استورد على دفعات أصغر.
- اقرأ السجل. يذكر سجل أخطاء PHP في تبويب PHP اسم الملف والسطر الذي نفدت فيه الذاكرة، وهذا عادة ما يحدد الإضافة فورًا.
إذا ظللت عالقًا بعد تجربة 512M واختبار نظيف للإضافات، أرسل بريدًا إلكترونيًا إلى support@kapsulehost.com مع نطاق الموقع، وسطر الخطأ الفادح بالضبط، وما كنت تفعله عند حدوثه.