PHP Fatal error: Allowed memory size of xxx bytes exhausted

Грохнулся сайт на Joomla, в логах следующие ошибки:

[error] PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 72 bytes) in /html/libraries/joomla/error/exception.php on line 117
[error] PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 24 bytes) in /html/libraries/joomla/session/session.php on line 136


Самое печальное, что выводимые ошибки напрямую не указывают на истинную причину. Банальное увеличение доступной для PHP памяти приводит, только к изменению «Allowed memory size» в логах. При этом php-скрипты, не использующие базу данных Joomla, работают превосходно.

Косвенное указание на причину ошибки — упоминание в логах session.php. Подключился к MySQL и простой запрос «select * from jos_session limit 1;» вернул приснопамятную «Table ‘jos_session’ is marked as crashed and should be repaired».

Сайт на Joomla вернулся к жизни после единственного sql-запроса «repair table jos_session». Как оказалось, было аварийное отключение MySQL сервера на хостинге, что привело к повреждению таблиц.

Увеличение памяти, доступной PHP-скриптам

Если возникающая у вас ошибка «Allowed memory size of ххх bytes exhausted» не связана с joomla, то приведу способы изменения памяти, выделяемой php-скриптам.

  1. В php.ini прописать
    memory_limit = 128M

    В качестве примера указано 128 мегабайт. Обратите внимание, что это предельное значение выделяемое каждому php-скрипту, запущенному на сервере. Если на сервере виртуального хостинга «крутится» несколько «тяжелых» сайтов, то будут заметные «тормоза.

  2. В .htaccess прописать
    php_value memory_limit 128M

    Это ограничение применяется к скриптам, запускаемым из директории, включая подкаталоги, где находится .htaccess

  3. В скрипте, где необходимо изменить объем выделяемой памяти добавить
    ini_set(‘memory_limit’, ‘128M’);

    Это ограничение применяется только к скрипту в котором указано, в том числе в скриптах подключаемых через require и include.
    Если вернуться к Joomla, то необходимо изменить configuration.php в корне сайта:

http://vorchun.ru/kompyutery/soft/php-fatal-error-allowed-memory-size-of-xxx-bytes-exhausted/
Что еще почитать:

  • Обезьяны с АК-47
  • Месть природы: охотник погиб, пытаясь добить раненого енота
  • Игорь Растеряев – Русская дорога
  • Вы стали обладателем Audi A6 – развод на www.Driveautocorp.com
  • Rally Masters Show 2011
  • Honda CBR 600 vs Hyundai Accent
  • 2 responses to “PHP Fatal error: Allowed memory size of xxx bytes exhausted

    1. В точку! На вордпресс такая ерунда выскочила. Лимит памяти помог!

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

    Ваш e-mail не будет опубликован. Обязательные поля помечены *