حجم الذاكرة المسموح به استنفدت
وصلت PHP إلى السقف الذي أعطيت وتوقفت. الرقم في الرسالة هو الحد الأقصى ، وليس المبلغ الذي يحتاجه موقعك.
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes)
رفع الحد الكافي للحصول على الموقع مرة أخرى ، ثم العثور على ما يستهلكه. يتم رفع الحد الذي تم رفعه دون تلك الخطوة الثانية مرة أخرى في الشهر المقبل ، ولا يخبرك الرقم الموجود في الرسالة بأي رمز مسؤول.
الأسباب الأرجح أولًا.
افحص القائمة بالترتيب. يتيح لك كل فحص تأكيد السبب أو استبعاده قبل تغيير أي شيء، لأن الحلول تختلف والتخمين يكلّف أكثر من تنفيذ أمر للتحقق.
| السبب | كيفية التحقق | الإصلاح |
|---|---|---|
| صورة يجري تغيير حجمها | يظهر الخطأ عند التحميل أو على شاشة مكتبة الوسائط ، والملف المعني كبير. | امنح حجم الذاكرة الكافي أو تغيير الحجم قبل التحميل. قد تحتاج الكاميرا JPEG إلى عدة مرات حجم ملفها لفك الضغط. |
| استعلام تحميل كل شيء في صفيف | الخطأ يهبط على أرشيف أو تصدير أو تقرير - في أي مكان posts_per_page هو - 1. | Paginate الاستعلام. جلب كل صف لحسابها هو الإصدار الأكثر شيوعًا من هذا في رمز البرنامج المساعد. |
| خيارات التحميل التلقائي نمت كبيرة | يتم قياس حجم التحميل التلقائي بالميغابايت. كل طلب يدفعه ، لذلك يمكن أن يظهر الخطأ في أي مكان. | نقل أكبر الخيارات من التحميل التلقائي. الإضافات التي تخزن السجلات أو المخابئ في wp_options هي السبب المعتاد. |
| الحد هو ببساطة منخفضة. | تسمي الرسالة حدًا أقل من 256M على موقع به مجموعة ملحقات عادية. | رفع WP_MEMORY_LIMIT إلى شيء حديث. الافتراضي 40M هو عقد من الزمن. |
| استيراد عقد كل صف | تتسلق الذاكرة بثبات من خلال وظيفة طويلة الأمد بدلاً من أن تتصاعد في الحال. | عملية في قطع وتحرير كل دفعة. الذاكرة التي تنمو فقط من أي وقت مضى هي وظيفة لا تطلق أبدا ما قرأته. |
الإصلاح خطوة بخطوة.
تفترض الأوامر توفر WP-CLI والوصول إلى سطر الأوامر. إن لم يتوفرا، تشرح كل خطوة الإجراء كي تنفذه من لوحة التحكم أو عبر SFTP.
اقرأ الحد الذي تصل إليه بالفعل
هناك نوعان: PHP الخاصة ، و WordPress الخاصة على رأس ذلك.
php -i | grep '^memory_limit' wp config get WP_MEMORY_LIMIT
رفعه بما فيه الكفاية لتحميل الموقع مرة أخرى
هذا هو الفرز. يشتري لك لوحة القيادة مرة أخرى حتى تتمكن من القيام بالخطوة التالية.
wp config set WP_MEMORY_LIMIT '256M' wp config set WP_MAX_MEMORY_LIMIT '512M'
قياس الخيارات المحملة تلقائيا
كل طلب يدفع ثمن هذا قبل أن يفعل أي شيء آخر.
wp db query "SELECT ROUND(SUM(LENGTH(option_value))/1024/1024, 2) AS mb FROM \$wpdb->options WHERE autoload='yes';"
العثور على أكبر المجرمين بالاسم
أعلى هذه القائمة عادة ما يكون مكون إضافي واحد يخزن شيئًا لا ينبغي.
wp db query "SELECT option_name, ROUND(LENGTH(option_value)/1024, 1) AS kb FROM \$wpdb->options WHERE autoload='yes' ORDER BY LENGTH(option_value) DESC LIMIT 10;"
تأكيد الإصلاح تحت الحد الأصلي
ضع الحد مرة أخرى إلى حيث كان وإعادة تحميل الصفحة التي فشلت. إذا استمر ، يمكنك إصلاح السبب بدلاً من الأعراض.
wp config set WP_MEMORY_LIMIT '128M'
ما تتولاه المنصة عنك.
يتم قياس الذاكرة من الخطة بدلاً من الافتراضي المشترك ، وبالتالي فإن نقطة البداية هي رقم حديث بدلاً من رقم عمره عقد من الزمان ، وهي تنتمي إلى الحاوية وحدها. تعرض لوحة التحكم الذاكرة التي يستخدمها الموقع فعليًا مقابل ما لديه ، وهو القياس الذي يحول هذا الخطأ من تخمين إلى قرار.
الأسئلة الشائعة.
كم عدد الذاكرة التي يحتاجها WordPress؟
لماذا تذكر الرسالة تخصيص صغير؟
هل يمكنني رفع الحد إلى الأبد؟
لماذا يحدث هذا فقط في wp-admin؟
إن لم يكن هذا هو السبب.
قد تبدو هذه الأخطاء متشابهة في المتصفح.