WordPress: На сайте возникла критическая ошибка — невозможно войти в панель управления (РЕШЕНО)
18.02.2020
После обновления плагинов в 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, возможно, даже после прочтения ничего не понятно. Даже непонятно, куда вводить эти команды Поэтому рекомендую веб-мастерам переходить на Linux, это поможет глуже изучить данную операционную систему. Также смотрите статью «1 год как Linux заменил Windows на моём домашнем компьютере».
UPD: Письмо «На сайте возникли технические проблемы»
Я таки сумел получить email, который упоминается в первой ошибке (обновил этот же плагин на другом сайте ):
Начиная с версии 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.
Билеты на автобусы, паромы и поезда, в том числе стыковочные маршруты:
Авиабилеты на международные и местные направления по минимальным ценам:
Отели:
Связанные статьи:
- Как в WordPress разрешить использовать WebP (77.6%)
- Автор премиум тем WordPress вышел из бизнеса и открыл их для свободного скачивания (74.7%)
- 1 год как Linux заменил Windows на моём домашнем компьютере (74.5%)
- Как перезагрузить сервер в DigitalOcean (74.5%)
- Как в WordPress отключить замену тире. Настройки автозамены символов и слов в WordPress (71.4%)
- Как дешевле и проще получить загранпаспорт (RANDOM - 50%)