Ми використовуємо cookie-файли
Для оптимізації роботи нашого сайту ми використовуємо cookie-файли. Продовжуючи використовувати сайт, Ви погоджуєтеся з використанням cookie-файлів.
Новий дизайн
Панель керування
  • Русский
  • Українська
  • English
  • UAH
  • USD
  • RUB
  • EUR
  • 0-800-307-307 Гаряча лінія
  • +38 (044) 392-74-33 Київ
  • +38 (057) 728-39-00 Харків
  • +38 (056) 794-38-31 Дніпро
  • +38 (032) 229-58-93 Львів
  • +38 (048) 738-57-70 Одеса
  • +38(093) 170-15-42  Life
  • +38 (067) 400-88-44 Київстар
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7 (499) 348-28-61 Москва

2.20.8. Помилка Fatal error: Allowed memory size

Помилка «Fatal error: Allowed memory size»Означає, що скрипт в процесі своєї роботи перевищив значення параметра PHP memory_limit поточного тарифного плану.

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 показує кількість пам'яті, якого не вистачило на момент аварійного завершення скрипта, І в разі подальшої роботи скрипт може зажадати набагато більший обсяг пам'яті.

Найчастіше помилка виникає в наступних ситуаціях:

  • Найпоширеніша ситуація, при якій скрипт вичерпує всю доступну пам'ять, це робота з зображеннями. Формати PNG і JPG стискають зображення, але для роботи з ним PHP завантажує його в пам'ять попиксельно, ніби воно збережено в форматі BMP. Це призводить до того, що скрипту не вистачає пам'яті для обробки зображення. Щоб похибка не виникала, варто зменшувати розміри зображень перед їх завантаженням на сайт і не розраховувати на те, що PHP сам змінить формат зображень з високою роздільною здатністю.
  • Виконання запитів до бази даних, які повертають занадто великі обсяги інформації, які не вміщаються в доступну пам'ять.
  • Обробка XML-файлів великого обсягу.
  • Запуск вимогливих до ресурсів або просто неоптимізованих скриптів і модулів.

Рішенням проблеми може бути:

  • Зміна значення memory_limit в настройках PHP, Якщо встановлено не максимально доступне за поточним тарифом значення.
  • Якщо на сайті використовуються скрипти морально застарілих версій, обов'язково перевірте, чи відповідає встановлена для сайту версія PHP рекомендованої розробником сайту. Якщо немає, змініть її на потрібну і перевірте роботу сайту приблизно через 10-15 хвилин.
  • Зменшення розміру оброблюваних скриптом файлів, аналіз роботи і оптимізація самого скрипта або модуля з метою зменшення споживання їм пам'яті.
  • Зміна тарифу на інший, з великим значенням memory_limit.
  • Для архівних тарифів з memory_limit 64 або 128 МБ - за допомогою Turbo Boost можна тимчасово (на 2 години) збільшувати memory_limit до 256 МБ. Використовується для короткочасного перевищення обмежень тарифного плану при завантаженні товарів в інтернет-магазини, установки різних тем і інших ресурсоємних завдань.

Примітка для WordPress: Якщо розмір фактично виділеної пам'яті (значення Х) Менше значення PHP memory_limit використовуваного тарифного плану, необхідно в файл wp-config.php додати рядок:

define('WP_MEMORY_LIMIT', 'xxxM');

Де xxx - значення memory_limit тарифного плану.