Что такое ошибка Fatal error: Allowed memory size of, и как ее грамотно исправить

Всем привет. Очень часто попадается следующая ошибка, которая начинается с текста на английском: “Fatal error: Allowed memory size…“, возникающая при открытии страниц сайтов —  Это ошибка исчерпания лимита памяти.

Что такое ошибка Fatal error: Allowed memory size of, и как ее грамотно исправить

Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes) in /home/example/example.com/www/path/to/script.php on line Z

  • Х — доступный объём памяти, заданный параметром PHP memory_limit, в байтах.
  • Y — объём памяти, который скрипт пытался использовать сверх доступного объёма в момент возникновения ошибки, в байтах.
  • /home/example/example.com/www/path/to/script.php — полный путь к скрипту, при выполнении которого возникла ошибка.
  • Z — номер строки в скрипте, где возникла ошибка.

Сумма значений X + Y не является требуемым значением memory_limit, поскольку Y показывает количество памяти, которого не хватило на момент аварийного завершения скрипта, и в случае дальнейшей работы скрипт может затребовать гораздо больший объем памяти.

Возможные причина ошибки “Fatal error: Allowed memory size”

Чаще всего ошибка возникает в следующих ситуациях:

  • Самая распространённая ситуация, при которой скрипт исчерпывает всю доступную память — это плагины (изредка проблема возникает после обновления версии движка, но как правило в процессе активации, деактивированных перед обновлением WordPress плагинов).
  • это работа с изображениями. Форматы PNG и JPG сжимают изображение, но для работы с ним PHP загружает его в память попиксельно, будто оно сохранено в формате BMP. Это приводит к тому, что скрипту не хватает памяти для обработки изображения. Чтобы ошибка не возникала, стоит уменьшать размеры изображений перед их загрузкой на сайт и не рассчитывать на то, что PHP сам изменит формат изображений в высоком разрешении.
  • Выполнение запросов к базе данных, возвращающих слишком большие объёмы информации, которые не вмещаются в доступную память.
  • Обработка XML-файлов большого объёма.

Как исправить ошибку “Fatal error: Allowed memory size”

Для решения данной задачи предлагаю четыре варианта на выбор в зависимости от прав доступа на сервере и его конфигурации.

Один из этих вариантов вам точно поможет.

Первый способ

Самый простой, но длительный по времени: написать в техподдержку компании, предоставляющей хостинг. Специалисты все исправят и вы вновь у руля. Однако, может случиться, что это поможет на 3-5 дней (как было у меня) и снова та же ошибка памяти. После 3-х писем в техподдержку мне посоветовали сменить CMS. Но я гордый и начал копать дальше.

Второй способ

Внести в файл .htaccess вашего сайта строку:

php_value memory_limit '64M'

Если файла .htaccess у вашего сайта нет, то сделайте его: берем пустой txt файл (файл блокнота) и вносим туда вышеуказанную строку. Затем переносим это дело с помощью FTP клиента на сервер и там переименовываем в .htaccess. Устанавливаем атрибуты 777, проверяем сработало или нет. Опять же зависит всё от хостинга. Если и это не помогло, то…

Третий способ

Похож на второй, только работаем в другими файлами. Открываете index.php в корне вашего сайта и добавляете в него следующий код:

define(‘WP_MEMORY_LIMIT’, ’64M’);

Разрешенный объем оперативки для сайта вырастет до 64 мегабайт.  Для WordPress сайта этот же код вставьте в файл конфигурации wp-config.php. Если хостинг провайдер не выключил в настройках сервера поддержку ini_set, то проблема должна решиться.

Четвертый способ – лучший

Гарантировано избавит вас от ошибки, так как решает саму причину ошибки. Но, возможно, придется пожертвовать плагином. Заходим в админку вкладка «плагины» и начинаем по очереди их деактивировать, проверяя при этом, после каждой деактивации наличие ошибки. Плагин-проказник обязательно найдется, после этого активируйте все плагины, которые не вызывают ошибку.

Если сайт полностью лежит и нет возможности делать манипуляции с админкой, то зайдите на хостинг. Откройте папку wp-content/plugins, скопируйте все плагины к себе на компьютер и поочередно удаляйте один за другим, проверяя – заработал ли сайт.

Кстати, такое решение лечит и другие ошибки.

Если плагин очень нужный и полезный, то следует поиграть версиями: попробовать более свежий или наоборот, более старый. Или найдите аналог. В любом случае нужно придти к консенсусу.

 

 

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все о заработке, SEO, сайтах и интернете
Комментарии: 1
  1. Николай Тихомиров

    Вот вам Альтернатива

    Также оптимизации по памяти можно добиться установкой APC. Он уменьшает потребление памяти в ~1,5-2 раза и ускоряет работу всего сайта в целом. Для нормальной работы Joomla + JBZoo обычно хватает 64 Мб (с серьезным запасом на будущее).

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: