Ошибки WordPress и методы их устранения

14.05.2013

Ошибки Wordpress

Обычно WordPress довольно стабилен и не огорчает владельца ошибками. Но бывают ситуации, когда движок начинает капризничать и выдавать предупреждения, ругаться непонятными для непосвященного человека словами. Давайте рассмотрим самые распространенные ошибки WordPress, разберемся, почему они возникают и как их можно исправить.

Общие рекомендации

Я знаю, что эти советы давно наскучили, что вы знаете об этом и что я нудный тип, который постоянно пишет одно и тоже… Но с завидным постоянством я отвечаю на одни и те же вопросы, 90% которых возникают из-за несоблюдения нескольких довольно простых правил:

  • Не устанавливайте плагины, если не уверены в их надежности. Я знаю два источника, которым могу доверять в определенной мере: репозиторий WordPress и Codecanyon(магазин плагинов и скриптов). Конечно, там тоже хватает сомнительных решений, особенно это касается родного репозитория с плагинами.
  • Обновляйте WordPress. Разработчики не только исправляют ошибки, но и вносят некоторые дополнения, меняют механизмы ядра. Буквально вчера столкнулся с неработающим WooCommerce 2.0.5 на версии WordPress 3.4.1. Стоило обновить движок и все замечательно завелось.
  • Не ставьте экспериментов на работающем сайте. Неважно, три посетителя у вас в день или триста — гораздо разумнее сделать копию сайта и применить изменения на ней. Это убережет ваши нервы от стресса, а ваш сайт от ошибок и неполадок.
  • Делайте резервные копии. Это вообще краеугольный камень не только веб-разработки, но и любой деятельности, связанной с компьютерами.

Белый экран смерти (WSOD)

Знакомое выражение для пользователей Windows, там системная ошибка называется BSOD и отличается синим цветом экрана. Вот только в нашем случае перезагрузкой компьютера проблему не исправить

Обычно, WSOD не возникает на пустом месте и связан, чаще всего, с установкой какого-либо плагина, либо шаблона. Вся неприятность данной ошибки — она блокирует админ-панель и сам сайт. Откатиться можно только при помощи файлового менеджера хостинга или по FTP-протоколу.

Почему возникает WSOD?

  • установка плагина или шаблона, несовместимого с текущей версией движка
  • конфликт плагина с другим расширением или темой
  • обновление старого плагина, вызвавшее ошибку

В любом случае — отследить виновника несложно, если вы только что обновили некий плагин или шаблон. Как быть, если вы обновили одним махом 10-20 плагинов(невероятная ситуация, но все таки возможно и такое)? Очень просто…

  • переименовать каталог с плагинами (plugins1 к примеру) и создать новый с тем же названием, при этом движок перестанет видеть установленные плагины и можно будет включать их по одному, чтобы найти виновника.
  • переименовать текущий используемый шаблон, не забыв предварительно добавить стандартный шаблон (Twenty любой). После переименования WordPress переключится на доступную стандартную тему и можно будет зайти в админ-панель.

500 internal server error

Ошибка довольно неприятная, но редкая. Чаще всего связана с неправильным файлом .htaccess в корневом каталоге сайта. Лечится довольно просто — достаточно удалить его, затем зайти в админ-панель WordPress, перейти в раздел постоянных ссылок и сохранить еще раз желаемую структуру. После сохранения — WordPress создаст новый файл htaccess и с очень большой вероятностью ошибка пропадет.

Кроме этого, есть еще множество других причин возникновения ошибки 500. Лучший способ выяснить причину — открыть файл error_log, который обычно находится в корне сайта(если хостер включил журналирование, конечно).

Есть неплохой стандартный вариант — необходимо включить режим отладки WordPress. Для этого добавьте в файл wp-config.php такую строку:

DEFINE ('WP_DEBUG', TRUE);

и затем уже смотреть журнал ошибок. В таком случае ошибка будет описана более подробно, что облегчит поиск и устранение.

Error establishing a database connection

На мой взгляд — наиболее распространенная ошибка у начинающих. Может возникнуть в следующих случаях:

  • неверный параметр соединения с базой данных. Какой-то из трех параметров подключения (адрес, логин, пароль) неверен, нужно перепроверить файл wp-config.php. Важно! Убедитесь, что каждый из них заключен в одинарные кавычки. 
  • не работает сервер баз данных MySQL. Если у вас VPS — необходимо перезагрузить сервер, если обычный хостинг — обратиться в техподдержку, пускай проверяют.
  • пользователь не имеет доступа к изменению таблиц БД. Для исправления необходимо добавить пользователю права(я ставлю обычно полный доступ к БД), делается это при помощи панели управления хостингом

Warning: Cannot modify header information — headers already sent by …

Довольно частая ошибка, которая легко решается. Движок сам говорит, в каком файле проблема, а мы попробуем исправить ее. Для этого скачайте файл, который вызывает ошибку, это будет файл с расширением PHP.
Используя ваш любимый текстовый редактор удалите все пробелы и пустые строки перед <?php и ?>, После чего перезапишите файл на сервере — с вероятностью в 99,9% проблема будет решена.
headers

Довольно часто эта ошибка возникает при сохранении файла в формате UTF-8 с BOM, как правильно заметили в комментариях. Для решения необходимо выбрать формат сохранения без BOM. Для опытных пользователей WP это само собой разумеющаяся вещь, а вот новички иногда очень мучаются

An automated WordPress update has failed to complete

Ошибка довольно редкая, но иногда встречается. Чаще всего возникает, когда мощности хостинга не хватает для завершения автоматического обновления. Я бы рекомендовал бежать от такого хостера Но если альтернативы нет, поможет обновление движка вручную в таком порядке:

  • Качаем последнюю версию с ru.wordpress.org (ну или на вашем родном языке) и распаковываем
  • Отключаем все плагины на сайте, если это возможно
  • По FTP заходим в корневую папку сайта и удаляем директории wp-includes и wp-admin
  • Копируем эти папки из распакованного дистрибутива WP
  • Заменяем файлы в корневой папке на содержимое корня дистрибутива
  • Важно! Не трогайте папку wp-content, надеюсь понятно, почему


Briefly unavailable for scheduled maintenance. Check back in a minute.

Простая до безобразия ошибка, решающаяся удалением файла .maintenance из корня сайта. Возникает из-за неправильно завершившегося автоматического обновления. Если это так — вам поможет пункт выше. Но чаще всего просто автоматически не удаляется этот файл, только и всего.

FATAL ERROR: ALLOWED MEMORY SIZE OF —- BYTES EXHAUSTED

Эта ошибка WordPress возникает из-за недостатка памяти, выделенной для процесса PHP. Все, что вам нужно сделать, это увеличить количество памяти, если это возможно. Есть несколько способов сделать это:

  • Если вы можете редактировать файл php.ini, добавьте к нему строчку memory_limit = 64M(ну или найдите существующую и смените значение) и перезапустите сервер.
  • Отредактируйте .htaccess файл, расположенный в корневом каталоге, добавьте php_value memory_limit 64M.
  • Измените файл wp-config.php, добавьте DEFINE (‘WP_MEMORY_LIMIT, ’64M’);
  • Создаем php.ini файл внутри папки wp-admin c таким содержимым: memory_limit = 64M;

Какой-то из способов должен сработать Стоит заметить, что некоторые хостеры выделяют максимальный предел памяти на уровне 8-16М и не дают менять это значение. В таком случае я бы советовал замену хостинга.

Connection time out

Это классический симптом перегруженности сервера. Это означает, что сервер перегружен и не может завершить запрос, отправленный пользователем. Если это происходит довольно часто, то мой совет — менять хостинг. Если же возможности нет — нужно снижать нагрузку:

  • увеличиваем лимит памяти (читаем выше)
  • по возможности — деактивируем не совсем нужные плагины
  • переход на стандартный шаблон, вроде Twenty Twelve

Maximum execution time of 30 seconds exceeded

Каждый файл PHP имеет максимальное время своего выполнения. Если он не «укладывается» в отведенные настройками рамки, возникает эта ошибка. Чаще всего проблема возникает из-за неправильного функционирования дополнений (функция замыкается в цикле, к примеру). Для решения попробуйте сбросить каталог плагинов и текущий шаблон. Если это не сработает, значит ваш хостинг недостаточно мощный для вашего проекта, с соответствующими выводами.

Как вариант, можно попытаться увеличить максимальное время выполнения:

  • измените .htaccess в корневом каталоге WordPress, добавьте строку: php_value max_execution_time 60
  • измените, если есть возможность, файл php.ini, добавьте строку: max_execution_time = 60;

Ошибки, связанные со структурой БД

Я сталкивался только с двумя ошибками MySQL, возможно вариантов больше. Если у вас есть информация — поделитесь в комментариях, я дополню статью.

  • Ошибка 145. Это значит, что структура БД повреждена и нуждается в восстановлении. При помощи phpMyAdmin или любого другого менеджера БД можно провести repair (восстановление стандартными средствами) Не забывайте про предварительный бэкап вашей базы
  • Ошибка 28. Не связаннная с WordPress ошибка, которая относится к самому MySQL. Решается при помощи техподдержки хостинга.

Вроде ничего не забыл и самые распространенные ошибки WordPress описал. Если что-то осталось неясным или у вас возникла ситуация, которая тут не описана — пишите в комментариях, я попробую вам помочь.

Удачного дня

, ,

Комментариев: 28

  1. Ольга

    Большинство ошибок движка возникает из за того что темы или плагины не всегда совместимы с последней версией движка. Эти траблы устраняются просто удалением папки с кривым плагином или темой. При этом сам движок откатывается к теме по умолчанию и все в порядке.

    Ответить
  2. Зенков Андрей

    Не нужно ставить плангины, которые не внушают доверия, чтобы избежать ошибки. Не каждая версия WordPress с ними дружить. Ну а если на то пошло, то нужно обновить до последней версии

    Ответить
  3. Виталий

    Ребят, проблема с контактной формой. Я ее заполняю и нажимаю отправить а при отправке пишет » Ваше сообщение не было отправлено из за внутренней ошибки.» Подскажите в чем ошибка пожалуйста.

    Ответить
  4. Инга

    Да, с шаблоном всегда проблемы, лучше стандартные использовать + немного переработать

    Ответить
  5. Сергей

    Здравствуйте! У меня при запросе к несуществующей странице отдается неверный статус код, (т.е. вместо ошибки 404 выдает код 500) как это исправить на WP?

    Ответить
  6. Андрей

    По поиску нашел эту статью про ошибки WordPress.
    К сожалению не нашел описание своей ошибки.
    Но на всякий случай спрошу, может кто знает.
    У меня шаблон с упрямством достойным лучшего применения в корне сайта создает папку год-месяц
    Из за этого перестают работать ссылки перемещения в архиве записей по месяцам. Ошибка выдается.
    Где то в шаблоне ошибочно определяется где нужно создавать эту папку. При этом в папке uploads такая же папка создается нормально, без проблем.
    Никто не сталкивался с таким? Не подскажете где искать ошибку?

    Ответить
  7. Елена

    Спасибо за статью, много полезной информации, которая обязательно когда-нибудь пригодится! Но я недавно столкнулась со странной проблемой. После установки новой версии WordPress при вводе комментария не высвечивается фраза премодерации о том, что комментарий скоро будет одобрен, а человека перебрасывает на эту же страницу, но без каких-либо сообщений от сайта. Раньше всё работало, но в какой момент произошла эта ошибка, сложно отследить — возможно, она появилась даже раньше обновления CMS. Откатила версию вордпресс — безрезультатно. Как вы думаете, в чём в этом случае может быть корень зла? Если честно, не знаю, что делать. Буду благодарна за любые советы.

    Ответить
  8. Константин

    Спасибо. Разобрался сам. Поустанавливал плагинов всяких ненужных вот и тупить стал шаблон))) Так что ребята не устанавливайте лишние — ненужные плагины это плохо :))

    Ответить
  9. Константин

    Добрый день. У меня не стандартная ошибка. Я сделал сайт на движке вордпресс, всё вроде шло нормально. Но в один прекрасный день просыпаюсь, захожду на сайт, а у меня мой шаблон установлен два раза (т.е. 2 раза повторяется при прокрутке вниз). Помогите решить проблему. Надеюсь на вашу поддержку. Заранее спасибо.

    Ответить
  10. Элина

    Здравствуйте!Помогите пожалуйста!Вчера после установки плагина jivosite на вордпресс,сначала заблокировался админ, то есть не могу зайти через свой логин пароль, выдает ошибку 121, и при попытке просто зайти на сайт,тоже выходит строка с той же ошибкой.Что мне делать?это вообще подлежит восстановлению?

    Ответить
  11. Юрий

    добрый вечер.я уже и не знаю что мне делать начитался, жуть… но все равно выдает ошибку.дело вот в чем: установил денвер, потом вордпрес, сделал базу данных, пользователя, но войти в админку не могу пишет «Одна или несколько таблиц базы данных недоступны» поченить…. поченить. и все дело стало показало что только две базы исправны, а остальные нет.как это испраить, что сделать не знаю. подскажите.
    создал таблицы с теми именами что не хватает,… поченить… ченить. все прошл успешно… удалите строчку в wp-config.php удалил и все сначала. попробывал ченить и отимизировать некоторые базы не смогло оптимизировать. что делать? в чем проблема? помогите.только что попробывал все стер и заново, все стало коректно, но в конце когда должна открыться станица с входом в вордрес высвечует просто белый фон с логотипом самого вордпреса и все.

    Ответить
  12. Федор

    Из всех ошибок у меня кажется только три. Ошибка 500, 404, Белый экран смерти тоже был и проблему решил, просто переустановив wordpress, Из всех проблем самая ощутимая эта ошибка 404 ео она кажется возникает после того как неправильно будешь переустанавливать постоянные ссылки.

    Ответить
  13. Tit

    На сайте у меня,иногда есть такие ошибки: не могу загрузить изображений на пост и не может предворительный смотреть. Я деактировал все плагин и потому актировал еще раз но не получился. Потом я нечего не делал,и он сам решил проблему . Вообще не понятно!

    Ответить
  14. Владимир

    Уже второй день бьюсь с хостерами, но не как не договоримся… Не один плагин не хочет обновляться… И плагины отключал, и тему менял, даже ради интереса сайт на свой локальный сервер переносил (на локальном всё летает)… Как ещё заставить хостеров чесаться? Я же им целый год проплатил и в первый же месяц косяки…

    Ответить
    • GerinG

      Отказаться от их услуг, другого ничего не предложу. Что это за хостер такой, что не могут обновиться плагины?

      Ответить
  15. Марина

    Может вы мне поможете. В админке вордпресса начались какие то глюки. Стоит что-то изменить или выбрать просмотр записи например, как открывается окно и выдает
    Firefox не может найти сервер -..
    а в адресной строке вот что и потом название статьи.
    в чем может быть причина? Плагины отключала не помогает.

    Ответить
  16. Роман Рей

    У меня стала вылезать ошибка такого рода: пишешь комментарий — он принимается, а потом белый экран и надпись: ошибка, добавьте комментарий. При этом адрес страницы: «ваш сайт»/wp-comment.php

    Ответить
  17. Сайт на WordPress

    Друзья, а вот 403 ошибка не встречалас в шаблонах WP? Понимаю что немного не в тему, это уже шаб, но всё же. У меня уже 2 раза она вылетала.

    Шаб подключает какие-то файты из вне в хедер и если их нет на том серваке, то вылетает 403 ошибка. Вот сейчас делаем сайт http://sarcredit.ru/ а у нас эта ошибка и не можем найты что убрать.

    Хостер сказал что с правами у них все нормально, это шаб, а конкретно:

    «анную ошибку генерирует не наш сервер. Где-то в коде, я так и не нашел где, скрипт обращается к другому серверу, получает ошибку и вставляет ее в шаблон. В шаблоне заголовка есть функция wp_head(), вызывающая ту функцию, которая обращается на удаленный сервер и получает ошибку. Но где именно эта часть кода, найти сложно.
    Я рекомендую Вам обратиться к разработчикам данной темы. Наверняка они знают для чего происходит такое внешнее обращение и где его искать.»

    Может кто что подскажет?

    Ответить
  18. федор

    а у меня вот такая ошибка при входе во внуторь статьи Fatal error: Unknown: Cannot use output buffering in output buffering display handlers in Unknown on line 0 ???

    Ответить
  19. Нюта

    Знаю, что офтоп, но сложно промолчать — gering111 входит в число немногих сайтов, которые очень хорошо смотрятся на большом экране. Спасибо за такую вёрстку и диз)

    Ответить
  20. Maxim Gol

    Спасибо, Виктор!
    Хорошая статья, мне помог пункт «Почему возникает WSOD?», а именно, несовместимость шаблона с версией ВП 3.5.1. Галерея работ просто перестала функционировать. К моему великому сожалению, я так и не нашел причины несовместимости Просто откатился на 3.4.2

    Ответить
  21. Дмитрий

    Что может вызывать appсrush IE7 при заходе на сайт? WordPress + шаблон Immersion, на главной слайдер.

    Ответить
  22. akkad

    Отличная и полезная статья! Давно не был у Вас на блоге, вижу всё работает ещё лучше)
    Warning: Cannot modify header information — одних пробелов мало. Кажется Вы забыли добавить, чтобы кодировка была без BOM: в блокноте эти символы не видно, но фактически они есть.
    Насчёт памяти, насколько знаю, Вордпрессу 16 Мб мало. 32 — минимум, а то ошибок таких не миновать. Конечно важно чем напичкан блог, но даже чистый 20 сжирает.

    Ответить
    • GerinG

      Спасибо, Иван
      Да, совершенно забыл про ВОМ, добавил в статью.
      С памятью довольно любопытно получается, на самом деле. Очень зависит от посещаемости и настроенной статики. У меня один клиентский проект замечательно на 16М крутится. Обычная визитка, но все же.

      Ответить