كيفية حل خطأ فادح PHP: حجم الذاكرة المسموح به 8388608 بايت استنفدت

أحد أكثر الأخطاء شيوعًا وإحباطًانصها مُشفِّرات PHP: "خطأ فادح: حجم الذاكرة المسموح به 8388608 بايت منهك ..." متبوعًا بشيء مثل "(حاول تخصيص بايتات XXXX) في /home/www/file.module على السطر 12." هذا الخطأ الفادح في PHP لأنه ، بشكل افتراضي ، يحتوي PHP على حد استخدام للذاكرة يبلغ 8 ميغابايت لأي برنامج نصي محدد. هذا أمر جيد ، في الواقع ، لأنك لا ترغب في قيام برنامج نصي PHP مارق بإسقاط الخادم عن طريق تخزين جميع الذاكرة. ولكن في بعض الأحيان ، سيكون لديك برنامج نصي PHP يتجاوز عادة الحد المسموح به وهو 8 ميغابايتمثلا ، لاستيراد أو تحميل). للتغلب على "خطأ فادح: حجم الذاكرة المسموح به 8388608 بايت تم استنفادها ..." ، قم ببساطة بإدراج سطر التعليمات البرمجية هذا في البرنامج النصي في الأعلى:

ini_set ( "memory_limit"، "16M")؛

memory_limit

سيؤدي هذا إلى تعيين حد الذاكرة إلى 16 ميغابايت ، بدلاً من ذلكمن 8 ميغابايت. يمكنك ، بل ويجب ، العبث بهذا الرقم بحيث يكون منخفضًا قدر الإمكان دون تكرار رسالة الخطأ هذه. سيؤدي هذا فقط إلى تغيير حد الذاكرة لملف PHP المحدد.

بالتناوب ، يمكنك تغيير ملف php.ini الخاص بك إلى الحد الأقصى للذاكرة. سيؤثر هذا على جميع البرامج النصية على الخادم الخاص بك. ببساطة افتح php.ini وابحث عن السطر الذي يقرأ "memory_limit" وقم بتغييره:

memory_limit = 16M

خطأ فادح: تم استنفاد حجم الذاكرة المسموح به وهو 134217728

لقد لاحظت في PHP الخاصة بي.ملف INI أن بلدي الافتراضي هو أعلى من ذلك بكثير في 128M. إذاً ، إذا تلقيت رسالة الخطأ هذه ، فستقرأ: "خطأ فادح: تم استنفاد حجم الذاكرة المسموح به وهو 134217728 بايت ..." ومن الواضح أنه سيكون مشكلة أكبر من ذلك بكثير. ولكن لديها نفس الحل كـ "خطأ فادح: حجم الذاكرة المسموح به من 8388608 بايت استنفدت ..." أو "خطأ فادح: حجم الذاكرة المسموح به 16777216 بايت استنفدت ..." أو أي شيء. على ما يبدو ، تم رفع القيمة الافتراضية لـ memory_limit من 8M إلى 16M في PHP 5.2.0 وهي الآن 128M لـ PHP 5.3.0 ، مما يفسر سبب عدم حصولك على رسالة الخطأ هذه على الإطلاق.

يمكنك أيضًا تعطيل حد الذاكرة عن طريق تعيين memory_limit على –1 في PHP.ini.

memory_limit = -1

هذه ليست عادة فكرة جيدة ، لأسباب واضحة.

ملاحظة: يمكنك أيضًا استخدام سطر memory_limit في صفحة .htaccess الخاصة بك.

الآن ، تذكر ، هذا مجرد حل بديل. حقا ، ينبغي النصي PHP الخاص بك ليس يتجاوز 8 ميجابايت ، ما لم تكن ملفات التحميل أوقم بعمل شيء آخر يستهلك الكثير من استخدام الذاكرة. ما يجب عليك فعله حقًا هو محاولة معرفة سبب استخدام البرنامج النصي للذاكرة كثيرًا ومحاولة إصلاحه. تتمثل إحدى الطرق لمعرفة مقدار الذاكرة التي يستخدمها البرنامج النصي لـ PHP في استخدام دالة memory_get_usage () PHP. ما عليك سوى أن أردده في أي وقت في البرنامج النصي لمعرفة أين يتصاعد استخدام الذاكرة:

echo memory_get_usage () ؛

إذا تلقيت رسالة الخطأ هذه في Drupal أو Joomla ، فإن الجاني المحتمل هو وحدة نمطية أو حزمة جديدة. على سبيل المثال ، في Drupal ، يتم تحميل صفحة admin / modules كل وحدة في تثبيت دروبال الخاص بك ، والتي يمكن الحصول عليهاشعر إذا كانت وحدة مخصصة للعربات التي تجرها الدواب ، الفاسدة أو اختراق. جرِّب تعطيل الوحدات النمطية واحدة تلو الأخرى لتحديد ما يؤدي إلى سقوط الطرف. أيضًا ، سيتجاهل بعض مزودي الاستضافة محاولاتك لتعديل حدود الذاكرة لرمز PHP الخاص بك ، لذا قد تحتاج إلى الاتصال بدعم الاستضافة لمساعدتك. لقد وجدت أحيانًا أنني بحاجة إلى تعديل ملف php.ini وأحيانًا ضع الشفرة في ملف htaccess. وفي كلتا الحالتين ، نأمل أن تكون هذه المعلومات هنا كافية للحصول على طريقك!

0

مقالات مماثلة

اترك تعليقا