Как да разрешите PHP фатална грешка: Разрешен е размерът на паметта от 8388608 байта
ini_set ( "memory_limit", "16M");
Това по-скоро ще настрои ограничението на паметта ви на 16 MBповече от 8 MB. Можете и трябва да се сблъскате с това число, така че да е възможно най-ниско, без да повтаряте това съобщение за грешка. Това ще промени само ограничението на паметта за този конкретен PHP файл.
Като алтернатива можете да промените файла си php.ini, за да увеличите лимита на паметта. Това ще се отрази на всички скриптове на вашия сървър. Просто отворете php.ini и намерете реда, който гласи „memory_limit“ и го променете:
memory_limit = 16M
Забелязах в собствения си 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
Това обаче обикновено не е добра идея по очевидни причини.
Забележка: Можете също да използвате реда памет_лимит в страницата си .htaccess.
Сега, не забравяйте, това е само решение. Наистина, вашият PHP скрипт трябва не да е над 8 MB, освен ако не качвате файлове илиправи нещо друго, което очевидно заема много памет. Това, което наистина трябва да правите, е да се опитате да разберете защо скриптът ви използва толкова много памет и се опитайте да го поправите. Един от начините да разберете колко памет използва вашият PHP скрипт е да използвате PHP функцията memory_get_usage (). Просто озвучете го във всеки един момент от вашия скрипт, за да разберете къде шипа вашата памет:
ехо памет_get_usage ();
Ако получавате това съобщение за грешка в Drupal или Joomla, вероятният виновник е нов модул или пакет. Например, в Drupal, страницата администратор / модули се зарежда всеки модул във вашата инсталация Drupal, който може да получитекосмат, ако потребителски модул е бъги, корумпиран или хакнат. Опитайте да деактивирате модули един по един, за да установите коя страна намалява. Също така, някои доставчици на хостинг услуги ще игнорират вашите опити да промените ограниченията на паметта за вашия PHP код, така че може да се наложи да се свържете с вашата хостинг поддръжка, за да ви помогне. Намерих понякога трябва да редактирам файла php.ini и понякога да вмъкна кода във файла .htaccess. Така или иначе, да се надяваме, тази информация тук е достатъчна, за да ви изведе на път!
Оставете коментар