5/5 - (1 голос)

Так уж вышло, один из моих сайтов, из-за уязвимости нулевого дня  в одном из плагинов установленных на сайте пострадал и был заражен вирусом. Благодаря панели управления хостингом я выяснил какие файлы заражены, удалил фрагменты кода, но сайт так и не заработал. Было принято решение заморозить “разборки” с этим сайтом до лучших времен, так как на текущий момент сайт не был нужен. Спустя почти два года я решил его реанимировать и весь контент что был на нем размещен. И так, что я имел на момент восстановления:

  1. файловую копию сайта на wordpress
  2. копию базы данных сайта

Для начала необходимо было выяснить, что за версия WordPress на восстанавливаемом файле. Для этого достаточно поискать файл version.php и посмотреть его исходный код.

Сам файл лежит в папке КореньСайта/wp-includes/version.php. Внутри файла нас интересует $wp_version

Далее переходим на сайт WordPress в раздел загрузок и ищем необходимую нам версию 4.5.15

Скачиваем архив WordPress и заливаем на хостинг сам движок.

Восстанавливаем базу данных через phpMyAdmin хостинга.

После восстановления базы данных, и копирования файлов движка, берем из нашей резервной копии файл wp-config.php и копируем его в директорию сайта*:

*хочу обратить внимание, я восстанавливаю сайт на тоже место, где он и был, по этому мне нет необходимости править что-либо в конфигурационном файле wordpress или же в дампе базы данных.

Теперь можно попытаться войти в админку старого сайта:

и вот мы внутри:

Восстановим шаблон, который использовался у нас на сайте. Для этого переходим в раздел “Внешний вид” – “Темы”. Мы увидим название темы, которая была установлена в качестве основной. Если вы находясь в этом разделе сайта нажмете F5 и обновите страницу, то увидите, что тема по умолчанию изменилась на стандартную.

Нам нужна тема byblos. Переходим в наш FTP менеджер и перекидываем файлы темы byblos из папки wp-content/themes в одноименную папку на сервере:

Обновляем страничку с темами в админке и видим, что тема наша на месте.

Посмотрим, как теперь выглядит сайт:

Проверим работу меню:

Ошибка выскочила, потому-что ссылки, которые использовались ранее, были описаны в файле .htaccess, но сейчас его нет – не беда. Переходим в админке сайта в раздел “Настройки” – “Постоянные ссылки”, там выбираем первое значение оформление ссылок.

Проверяем:

Мы не видим фото контент, так как необходимо его скопировать на хостинг. Копируем контент (обычно этот папка uploads в папке wp-content) и обновляем страничку с сайтом:

Я начинаю копировать из папки с резервной копией плагины.

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

в итоге я вычислил, что плагин nextgen-gallery вываливает сайт в ошибку 500:

Далее возвращаю именам папок плагинов их первоначальное название (кроме папки плагина  Nextgen Gallery) и возвращаюсь в админку сайта для обновления всех компонентов сайта. Обновляю всё последовательно, поштучно.

Обновив плагины, обновляю темы, а затем обновляю и саму платформу WordPress. Обновив платформу до WordPress 5.1 получаю сообщение что необходимо обновить и php на хостинге:

Для желающих почитать, для чего требуется обновление PHPвот ссылка для чтения.

Согласно рекомендациям разработчиков WordPress мы устанавливаем плагин для тестирования совместимости установленных плагинов/тем (как активных, так и нет) с нужной нам версией PHP.

И так мы скачали плагин PHP Compatibility Checker от команды WP Engine и активируем его!

Жмем Start Scan и выбираем необходимые нам настройки. Я для интереса протестировал все плагины и темы, активные и нет.

По завершении работы плагина получаем такой вот отчет:

Я просто удалил не прошедший проверку плагин.

Вот в принципе и всё. Работа с сайтом завершена. На хостинге переключаем версию языка php и проверяем работу сайта.