Марат-блог
Услуги по продвижению и разработке сайта
Отправить заявку
Заказать обратный звонок

Спасибо, Ваша заявка принята.

В ближайшее время менеджер свяжется с Вами.

Главная Веб разработки Что означает "Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate ....."
Что означает Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate .....
Веб разработки
208
11 сентября 2014

Что означает "Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate ....."

Сейчас расскажу как побороть ошибку "Fatal error: Allowed memory size of ...."

Примерно она такого вида:
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 2298 bytes) in /home/username/public_html/administrator/components/com_virtuemart/classes/class.img2thumb.php on line 151

Эта ошибка взята из скрипта Joomla.

Что это означает ?

Эта ошибка означает, что ваш скрипт (а в контексте Joomla это или сама система или один из ее элементов) для выполнения требует памяти больше, чем разрешено в настройках PHP на сервере хостера. Т.е. запрашиваемое значение превышает максимальное количество оперативной памяти предоставляемого пользовательскому аккаунту виртуальным хостингом. На разных хостингах это значение может отличаться.

Чаще всего данная ошибка возникает в файле /includes/domit/xml_domit_parser.php при обработке xml-файлов (например при просмотре списка компонентов, модулей или мамботов.

Если у вас возникает такая проблема, то можно сделать следующее:

1. Попробовать самостоятельно изменить это значение, добавив в самое начала index.php (расположенного в корне сайта) следующие строчки:

<?php ini_set("memory_limit", "32M"); ?>

это если хостер не отключил поддержку ini_set в настройках сервера

2. Положить в корень сайта файл .htaccess следующего содержания:

Код:
php_value memory_limit 32M

лимит можно изменять самостоятельно, можно поставить и 64M но не наглеть :)

Если же такой файл уже есть в корне сайта — просто добавьте в него приведенную выше строку.

Если у хостера PHP работает ка PHP-CGI через suPHP, то это может вызвать ошибку 500, значить использовать директивы php_flag, php_value в файле .htaccess невозможно!

3. Некоторые хостеры поддерживают работу php.ini у клиента, т.е. вы можете самостоятельно делать свои настройки PHP для своей учетной записи.

а значить создайте файл php.ini в корне сайта

и добавте следующий код:

memory_limit = 32M

4. Если это не помогло — обратитесь к администратору хостинга и попросите увеличить количество доступной памяти для PHP.