Что означает 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.