Очень часто новички в веб строении сталкиваются с проблемами работы скриптов бесплатных и платных.
Сейчас расскажу как побороть ошибку "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 (расположенного в корне сайта) следующие строчки:
это если хостер не отключил поддержку 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.