Так уж вышло, один из моих сайтов, из-за уязвимости нулевого дня в одном из плагинов установленных на сайте пострадал и был заражен вирусом. Благодаря панели управления хостингом я выяснил какие файлы заражены, удалил фрагменты кода, но сайт так и не заработал. Было принято решение заморозить “разборки” с этим сайтом до лучших времен, так как на текущий момент сайт не был нужен. Спустя почти два года я решил его реанимировать и весь контент что был на нем размещен. И так, что я имел на момент восстановления:
- файловую копию сайта на wordpress
- копию базы данных сайта
Для начала необходимо было выяснить, что за версия WordPress на восстанавливаемом файле. Для этого достаточно поискать файл version.php и посмотреть его исходный код.
Сам файл лежит в папке КореньСайта/wp-includes/version.php. Внутри файла нас интересует $wp_version
1 2 3 4 5 6 7 |
<?php /** * The WordPress version string * * @global string $wp_version */ $wp_version = '4.5.15'; |
Далее переходим на сайт 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 и проверяем работу сайта.