جديدالجمعة السوداء: خصم ٥٠٪ على دفعتك الأولى
استكشاف أخطاء ووردبريس

حجم الذاكرة المسموح به استنفدت

وصلت 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.

  1. اقرأ الحد الذي تصل إليه بالفعل

    هناك نوعان: PHP الخاصة ، و WordPress الخاصة على رأس ذلك.

    php -i | grep '^memory_limit'
    wp config get WP_MEMORY_LIMIT
  2. رفعه بما فيه الكفاية لتحميل الموقع مرة أخرى

    هذا هو الفرز. يشتري لك لوحة القيادة مرة أخرى حتى تتمكن من القيام بالخطوة التالية.

    wp config set WP_MEMORY_LIMIT '256M'
    wp config set WP_MAX_MEMORY_LIMIT '512M'
  3. قياس الخيارات المحملة تلقائيا

    كل طلب يدفع ثمن هذا قبل أن يفعل أي شيء آخر.

    wp db query "SELECT ROUND(SUM(LENGTH(option_value))/1024/1024, 2) AS mb FROM \$wpdb->options WHERE autoload='yes';"
  4. العثور على أكبر المجرمين بالاسم

    أعلى هذه القائمة عادة ما يكون مكون إضافي واحد يخزن شيئًا لا ينبغي.

    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;"
  5. تأكيد الإصلاح تحت الحد الأصلي

    ضع الحد مرة أخرى إلى حيث كان وإعادة تحميل الصفحة التي فشلت. إذا استمر ، يمكنك إصلاح السبب بدلاً من الأعراض.

    wp config set WP_MEMORY_LIMIT '128M'
على MagicWP

ما تتولاه المنصة عنك.

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

الأسئلة الشائعة

الأسئلة الشائعة.

كم عدد الذاكرة التي يحتاجها WordPress؟
Core وحده متواضع. ما الذي يقرر الرقم هو الإضافات الخاصة بك ، وأحجام الصور وأكبر شاشة مشرف - وهذا هو السبب في أن الإجابة الصادقة هي قياس الموقع بدلاً من نسخ رقم من مكان آخر.
لماذا تذكر الرسالة تخصيص صغير؟
لأن هذا التخصيص كان هو الذي لم يصلح. إنها القشة ، وليس الحمل. الرقم المثير للاهتمام هو الحد وما ملأه ، لا تخبرك الرسالة بأي منهما.
هل يمكنني رفع الحد إلى الأبد؟
يمكنك رفعه ، ولكن الحد هو الشيء الذي يوقف طلبًا هاربًا واحدًا يسقط المسبح بأكمله. يؤدي إزالته إلى تحويل صفحة واحدة فاشلة إلى جهاز يقوم بالمقايضة.
لماذا يحدث هذا فقط في wp-admin؟
تقوم شاشات المشرف بتحميل المزيد لكل طلب - شيكات التحديث وجداول القوائم ورمز إعدادات كل مكون إضافي. تطلب الصفحة الأمامية التي تأتي من ذاكرة التخزين المؤقت جزءًا صغيرًا منها.
أخطاء مرتبطة

إن لم يكن هذا هو السبب.

قد تبدو هذه الأخطاء متشابهة في المتصفح.