Loading...
X

WordPress: На сайте возникла критическая ошибка — невозможно войти в панель управления (РЕШЕНО)


После обновления плагинов в WordPress на моём VPS сервере, сайт перестал открываться. И даже невозможно было открыть панель управления — при всех попытках показывалось сообщение (скриншот вы можете видеть в шапке данной статьи):

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

Узнайте больше про отладку в WordPress.

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

Упоминаемое письмо на email я не получил — поскольку это экспериментальный VPS и почтовая служба там не настроена (правда главный сайт на этой VPS принёс почти уже столько же денег, как мой флагман на русском языке — это, кстати, к вопросу, как могут затянуться и куда вывести эксперименты веб-мастера, поэтому смотрите статью «Собственные эксперименты – это главный источник знаний веб-мастера»).

В общем, в панель управления невозможно зайти, письмо на почту я не получил, да и если бы я его получил, что я могу сделать, если панель управления недоступна?!

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

Я открыл лог ошибок для данного сайта:

tail -n 50 /var/log/httpd/site.ru-error_log

Но он оказался полностью пустым (возможно, для данного хоста я что-то не донастроил).

Кстати, журналы ошибок Apache на Debian, Linux Mint, Ubuntu, Kali Linux и их производных помещены в файлах /var/log/apache2/*. А логи Apache на Arch Linux и производных помещены в файлах /var/log/httpd/*. Это по умолчанию — на самом деле, журналы могут быть где угодно, смотрите в настройках конкретного виртуального хоста.

Что делать, если невозможно войти в панель управления WordPress

Итак, стратегия следующая:

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

Итак, по умолчанию (это может быть изменено настройками веб-сервера и отдельных виртуальных хостов), файлы веб-сайтов в Debian, Linux Mint, Ubuntu и их производных хранятся в директории /var/www/html/. А у Arch Linux файлы сайтов хранятся по пути /srv/http/.

Итак, перехожу в папку с сайтом:

cd /srv/http/site.ru/

Файлы плагинов расположены в папке wp-content/plugins/, запускаю команду ls (показывает содержимое папки) с опциями -l (вывести список файлов с информацией о файлах) и -t (отсортировать файлы в списке по времени изменения):

ls -lt wp-content/plugins/

И вот что я вижу:

Сегодня, 18 февраля, была изменена только одна папка — sitetree. Решение очень простое — удалить плагин sitetree.

Как удалить плагин WordPress без доступа в панель управления

И устанавливать, и удалять плагины WordPress можно просто распаковывая их содержимое в папку wp-content/plugins. То есть я запускаю команду rm:

rm -rf wp-content/plugins/sitetree/

Опасно орудовать командой rm на рабочем (продакшен) сервере, поэтому вот описание аргументов:


  -f, --force         игнорировать несуществующие файлы и аргументы,
                      ни о чём не спрашивать
  -r, -R, --recursive рекурсивно удалять каталоги и их содержимое

И… проблема решена — веб-сайт работает, вход в панель администрирования WordPress открыт. Единственное изменение — плагин sitetree больше не установлен. Но это не беда, у этого плагина, после долгого периода отсутствия обновлений, уже было одно неудачное обновление, в результате которого на сайтах пропали ссылки из раздела «Все статьи»/«Дерево сайта» и на своих посещаемых сайтах я уже нашёл альтернативу этому плагину. То есть мне нет нужды разбираться, что именно не понравилось этому плагину в моём сервере с PHP 7.4.

WordPress не работает после обновления темы оформления

Кстати, если проблема вызвана обновлением темы, то просмотреть последние изменённые темы можно так:

ls -lt wp-content/themes/

Если проблема вызвана обновлением темы, то можно удалить папку даже с текущей темой, в этом случае, сайт перестанет работать с примерно такой ошибкой:

Каталог темы «…….» не существует.

Но это не особо большая проблема — вход в панель управления WordPress будет всё равно доступен и вы сможете в настройках Внешний вид → Темы выбрать и установить новую тему.

Заключение

Ошибки, вызванные обновлением компонентов веб-сайта или веб-сервера, редко бывают настолько серьёзными, что нужно всё удалять и устанавливать/настраивать заново. Даже если сайт «совсем не работает», достаточно найти причину и исправить её.

Кстати, для пользователей Linux то, что я описывал, то есть команды ls и rm это элементарнейшие вещи, а сама инструкция — советы Капитана Очевидность. Зато для пользователей Windows, возможно, даже после прочтения ничего не понятно. Даже непонятно, куда вводить эти команды smiley Поэтому рекомендую веб-мастерам переходить на Linux, это поможет глуже изучить данную операционную систему. Также смотрите статью «1 год как Linux заменил Windows на моём домашнем компьютере».

UPD: Письмо «На сайте возникли технические проблемы»

Я таки сумел получить email, который упоминается в первой ошибке (обновил этот же плагин на другом сайте laugh):

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

В этот раз WordPress нашел ошибку с одним из плагинов - SiteTree.

Сначала зайдите на ваш сайт (https:/site.ru/) и проверьте все видимые проблемы. Далее, зайдите на страницу, на которой возникла ошибка (https://site.ru/wp-admin/) и проверьте видимые проблемы на ней.

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

Самое главное — в этом сообщении указан плагин, который вызвал проблему. Если есть доступ в админку, то удалите его.

Но, как я описал свою ситуацию, может быть так, что доступа в админку нет, и поэтому вторая часть особенно интересная:

Если ваш сайт сломан и вы не сможете нормально войти в консоль, теперь можно использовать специальный "режим восстановления", который позволит безопасно войти в консоль для дальнейших действий.

https://site.ru/wp-login.php?action=enter_recovery_mode&rm_token=Cc24PdWJ5chCGvpGLGZuSG&rm_key=cx647dVHksN3m4Gk64FBZP

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

Для решения проблемы вам потребуется следующая информация:

Версия WordPress 5.3.2

Текущая тема: Asteroid (версия 1.2.8)

Проблемный плагин: SiteTree (версия 2.1)

Версия PHP 7.2.23

То есть с помощью присланной ссылки есть шанс зайти даже в сломанный WordPress.

Последнее обновление:

Рекомендуется вам:


Leave Your Observation

Ваш адрес email не будет опубликован. Обязательные поля помечены *

wp-puzzle.com logo

Scroll Up