Ошибка Fatal error: Allowed memory size of XXXXX bytes exhausted (tried to allocate XXXX bytes) in path_to_file…» и методы борьбы с ней

Всем привет друзья,  напишу о том, как я столкнулся с этой проблемой при установке wordpress  на новом хостинге, и какие методы для ее решения я предпринял.

Для начала опишу что случилось.
Был достаточно емкий проект, который требовалось перенести на новый домен и хостинг.  Собственно перенес все файлы, сделалы нужные дампы, накатил эти дампы на новом хосте, провел все конфигурационные мероприятия.  Итак, коннект есть,  поехали.  Собственно wordpress сразу предложил мне создать новый wp-config.php. Никаких проблем, создаем. Заполняем все поля,  он пишет все ОК, поехали и после этого я получаю Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 122880 bytes) in  path_to_file…

По тексту ошибки понимаю, что проблема с памятью которую выделяет сервер для Вашего сайта и ее мало :). Простым спосбом аля phpinfo();  в индекс файле проверяю сколько же сервер выделяет памяти обнаруживаю что MEMORY LIMIT=32M.  Всего 32 мб оперативной памяти сервер может выделить по текущим натройкам для работы моего сайта. Заходим на сайт официального комьюнити вордпресс и смотрим что там пишется.  Как утверждают сами разработчики для безболезненного старта и работы  требуется минимум 40мб  орперативной памяти сервера и это при условии что Ваш wordpress запущен пустой. Если у вас установлены какие-то плагины для них требуется дополнительный объем памяти. Хорошо, понятно,  проблема ясна, как бороться?

Вариант 1 (правка php.ini):
Данный самый простой, но только при условии того, что у Вас есть доступ к файлу php.ini.  Обычно хостеры не дают такой возможности, но все вариант решения имеет место жить.
Находим наш файл php.ini (конфигурационный файл интерпретатора PHP), в нем ищем вот такую запись «memory_limit=32M».  Все очень просто, меняем значение 32M на 128M, этого более чем достаточно для работы большинства даже очень «тяжелых» проектов написанных с использованием CMS WordPress.  Обратите внимание, если после этого у Вас продолжает появлятся ошибка, значит проблема не в лимите памяти,  возможно вы правите не тот php.ini или у вас какая-то другая конфигурационная ошибка, которая может вызывать подобные fatal error.

Вариант 2 (.htaccess):
Этот вариант тоже имеет место на жизнь. На самом деле при запуске WordPress мы можем попытаться принудительно задать серверу  значение выделяемого лимита памяти. Но очень часто данное ршение присекается хостерами и если к нему прибегнуть то сервер в ответ может кинуть Вам 500-ую ошибку Iternal Server Error.  Итак сам способ:
Создаем в корневой директории Вашего сайта файл .htaccess и добавлем в него значение  «php_value memory_limit 128M». Заходим на главную страницу, смотрим на реакцию сервера. Если все прошло хорошо, то проблема решена, если вернется 500 (Internal Server Error) тогда этот способ Вам не подходит.

Вариант 3 (Обращение в суппорт хостера):
На самом деле,  это один из главных действующих способов решения это проблемы. Заходим на сайт нашего хостинга, находим контакты или поддержку пользователей и пишем им письмо с просьбой увеличить лимит выделяемой памяти до нужного нам значения.  Как правило хостеры лояльно реагируют на такие просьбы и без каких либо проблем повышают лимит по требованию пользователя.
Кстати тот хостер к которому обращался я (nic.ua)  у него вообще было чуть ли не автоматизированное решение этой проблемы. Вот что мне ответили: «Лимит памяти повышается просто. В корневой директории  public_html  создайте файл .user.ini и в нем добавьте следующю строку — «memory_limit=128M». Выполнив это я проверил и вуаля, мой лимит памяти стал 128M.

Это все что я хотел написать по данной ошибке,  если будут вопросы, задавайте их в комментариях и конечно же удачи на просторах WEB.

Оставьте комментарий

%d такие блоггеры, как: