Как восстановить сайт, разработанный на Joomle, имея только файловый бекап сайта?

Восстановление сайта на Joomla

Создание сайта на CMS Joomla!

В этой статье мы рассмотрим восстановление сайта под управлением Joomla 2.5 из резервной копии созданной, компонентом Akeeba Backup. Для восстановления сайта нам потребуются: последняя резервная копия и скрипт Akeeba Kickstart с сайта Akeeba Backup. Нам не нужно заново устанавливать Joomla, всё уже есть в резервной копии. О том, как настроить резервное копирование сайта на Joomla 2.5 можно узнать из предыдущей статьи «Резервное копирование Joomla 2.5».

Возможны три ситуации, требующие восстановления сайта: повреждены или отсутствуют только файлы сайта, повреждена только база данных сайта и повреждены и файлы и база данных.

Первый случай самый простой. Нужно распаковать архив резервной копии и заменить полученными файлами и папками, файлы и папки на сервере. Для распаковки архива понадобится архиватор eXtract Wizard. Это программа кроссплатформенная, есть версия для Windows, Linux, MacOS. С сайта Akeeba Backup скачиваем и устанавливаем версию для той операционной системы, в которой работаем. Версия для Windows — здесь. На момент написания статьи был доступен стабильный релиз eXtract Wizard 3.3. Распаковываем архив резервной копии в какую-нибудь локальную директорию. При этом в распакованном архиве будет дополнительная папка, которая называется «Installation». Это папка инсталлятора для восстановления из полной резервной копии. Внимание, не копируйте эту папку на сервер! Выбираем нужные нам файлы и папки и передаём их на сервер, используя протокол SFTP. Всё, файлы восстановлены!

Теперь рассмотрим случай, когда повреждена только база данных сайта. Для восстановления базы данных лучше и проще воспользоваться её резервной копией. Т. е. если делалась отдельно резервная копия базы данных, то легче восстановить из неё. А если отдельно база данных не бэкапилась? Здесь нам опять пригодится распакованный архив резервной копии, а точнее вышеупомянутая папка «Installation». Нет, мы не будем её копировать, нам понадобится несколько файла, находящиеся в подпапке sql. У меня их три. Один файл с расширением .sql, другой с расширением .s01 и третий файл – databases.ini. Но прежде чем приступить к восстановлению базы данных из этих файлов, нужно эти файлы немного изменить. Открываем файл databases.ini и копируем значение prefix без кавычек. Обратите внимание на информацию, хранящуюся в этом файле! Далее, поочерёдно открываем файлы с расширением .sql и .s01 в текстовом редакторе и производим замену символов #__ (решётка и два подчёркивания) на скопированное нами значение. Если этого не сделать, то после восстановления мы получим не работающий сайт. Будет выдаваться примерно такая ошибка: «Table ‘_session’ doesn’t exist SQL=INSERT INTO». При восстановлении из отдельной копии базы данных такой ошибки не будет, потому что в ней (копии) сразу вписаны «правильные» префиксы таблиц.

Заходим в phpMyAdmin, переходим на вкладку «Базы данных», выделяем нашу повреждённую базу и нажимаем «Удалить».

Подтверждаем удаление и на этой же вкладке создаём новую базу данных с тем же именем и той же кодировкой.

Переходим на вкладку «Импорт». Теперь, если есть отдельная резервная копия базы данных, тогда импортируем только её, а если есть два файла из полной резервной копии, то один за другим импортируем их.

Всё, база данных восстановлена!

Теперь рассмотрим восстановление сайта из полной резервной копии. Качаем Akeeba Kickstart. На момент написания статьи последняя стабильная версия скрипта была 3.3.2. Освобождаем корневую директорию сайта от файлов и папок, а затем любым доступным способом переносим в неё архив или все части архива (если резервная копия делилась) резервной копии. Туда же переносим распакованный архив Akeeba Kickstart или, если позволяет хостинг, то распаковываем архив со скриптом прямо на сервере.

Набираем в адресной строке http://yoursite/kickstart.php и читаем предупреждение о том, что:

  1. Kickstart не инсталлятор. Это средство для распаковки архива. Настоящий инсталлятор был вложен в архив во время резервного копирования.
  2. Kickstart не только распаковывает архив. Вы можете использовать Akeeba eXtract Wizard и загрузить распакованные файлы, используя FTP.
  3. Работа Kickstart зависит от конфигурации сервера. Так, он может не работать на некоторых серверах.
  4. Вы должны скачать и загрузить вашу архивную копию сайта с помощью FTP в двоичном режиме передачи. Любой другой метод может привести к повреждению резервной копии и ошибкам при восстановлении.
  5. Ошибки в работе сайта после восстановления, как правило, вызваны файлом .htaccess или директивами php.ini. Вы должны понимать, что пустые страницы, 404 и 500 ошибки обычно можно обойти путём редактирования вышеупомянутых файлов. Это не наша работа, чтобы возиться с файлами конфигурации, так как это может быть опасно для вашего сайта.
  6. Kickstart перезаписывает файлы без предупреждения. Если вы не уверены, что у вас всё в порядке с этим, не продолжайте.
  7. Попытка восстановить сайт по временному URL панели хостера (cPanel) (например, http://1.2.3.4/~username) приведёт к провалу, и ваш сайт будет, по всей видимости, не работоспособным.
  8. Вы должны прочитать документацию перед использованием этого программного обеспечения. Большинство проблем можно избежать или легко обойти, имея представление, как это программа работает.
  9. Этот текст не означает, что уже обнаружена проблема. Это стандартный текст, который отображается при каждом запуске Kickstart.

Переходим по ссылке.

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

Нажимаем «Запустить инсталлятор». Откроется новое окно или вкладка в зависимости от браузера и его настроек, в котором запустится мастер установки, а язык диалога станет английским. Это окно/вкладка инсталлятора. На первой странице — «Check» будут отображены результаты проверки соответствия хостинга требованиям установки Joomla 2.5.

Так же как и при «чистой» установке Joomla 2.5 обязательные требования (верхняя таблица) должны быть выполнены. Если требования выполнены, а так же существуют директории для кэша, временных файлов и журналов, то нажимаем кнопку «Next» и переходим к странице «DB Restore».

В группе «Connection parameters» (параметры подключения) проверяем или заполняем следующие поля. В поле «Database type» устанавливаем тип базы данных – в нашем примере mysql. В поле «Database server host name» вписываем имя сервера с базой данных, в поле «User name» — имя пользователя (администратора) БД, а в следующем поле – его пароль. В поле «Database name» вводим имя базы данных. Все остальные параметры на этой странице можно оставить со значениями по умолчанию. Переходим к следующей странице, нажав кнопку «Next» и если всё заполнено правильно, то видим окно восстановления базы данных. Нажимаем «ОК» и переходим к странице «SiteInfo».

В группе «Site Parameters» (Параметры сайта) заполняем поля «Site Name» (Название сайта), «Site e-mail address» (Адрес эл. почты сайта), «Site e-mail sender name» (Имя отправителя эл. почты сайта). Обращаем внимание на опцию «Override tmp and log paths» (Переопределить пути к временным файлам и журналам). Галочку не ставим. В группе «Super Administrator settings» (Настройки Суперадминистратора) выбираем из списка пользователя с правами суперадминистратора, вводим его пароль с подтверждением, а точнее новый пароль. Т. е. если не заполнить поля для ввода пароля, то пароль останется прежним. А так же вводим адрес его электронной почты. Проверяем путь к директории для временных файлов и путь к файлам журналов. Нажимаем «Next», после чего начинается восстановление сайта. По окончании восстановления мы попадём на страницу «Finish».

Теперь можно закрыть окно или вкладку инсталлятора и перейти к окну или вкладке Kickstart, которое теперь выглядит так.

Запускаем очистку и получаем следующее приглашение.

Помните, что у нас вы можете не только купить готовый сайт или заказать его разработку, но и подобрать подходящий тариф поддержки сайта, заказать продвижение сайта в поисковых системах, а так же зарегистрировать домен в одной из двухсот доменных зон и выбрать недорогой тариф хостинга! Айтишник РУ

Об авторе:

Меня зовут Андрей Золкин. Из более, чем пятнадцати лет работы в сфере информационных технологий, десять лет работаю с системами, базирующимися на открытом исходном коде. На страницах сайта Aitishnik.Ru веду блоги по CMC Joomla и Debian GNU/Linux.

Ещё статьи о Joomla 2.5

    • Материалы в Joomla 2.5. Медиа-менеджер

      В этой статье я продолжаю знакомить читателя с материалами в Joomla 2.5. В предыдущих статьях мы познакомились с понятием материала, а так же научились управлять категориями и статьями. Можно было бы приступить к размещению информации (контента) на…

    • Резервное копирование сайта на Joomla 2.5…

      Одной из задач администрирования сайта является его постоянное резервное копирование. Конечно, многие хостеры ежедневно проводят резервное копирование клиентских сайтов, но как говорится «На Бога надейся, а сам не плошай». К тому же…

    • Шаблоны на Joomla, коренные отличия от аналогов…

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

    • Яндекс карта и карта Гугл в Joomla 2.5

      В разделе «Контакты» многих сайтов присутствует карта или схема проезда до нужного объекта. Зачастую, карты присутствуют не только в контактах и не только в единичном количестве. Раньше роль карт играли статические изображения этих самых…

    • Восстановление сайта на Joomla 2.5

      В этой статье мы рассмотрим восстановление сайта под управлением Joomla 2.5 из резервной копии созданной, компонентом Akeeba Backup. Для восстановления сайта нам потребуются: последняя резервная копия и скрипт Akeeba Kickstart с сайта…

    • Joomla 2.5

      Здравствуйте, дорогие читатели и читательницы! Это первая статья посвящённая созданию сайтов на Joomla. И в ней я хочу рассказать о CMS Joomla!, о том для чего она нужна, о преимуществах Joomla 2.5 и об её отличиях от предыдущих версий….

Резервное копирование сайта на Joomla и его восстановление

[Всего голосов: 3    Средний: 5/5]

Чуть-чуть лирики, или почему я обратился к этой теме?

Скачивал из разных источников новые шаблоны Joomla
и примерял их на свой сайт, не проверяя архивы на вирусы, короче, вообще не глядя. Итогом такого безрассудства стала поимка вирусов, действие которых выразилось в появлении посторонних навязчивых баннеров сверху, снизу и даже сбоку страницы. Устранил этот вирус с помощью Касперского
(KIS, лицензионный). Далее, на компьютере обнаружил установку посторонних программ, типа, игровых браузеров и ещё какой-то лабуды. Снова лечение с перезагрузкой. Даже браузер Хром очистил сам себя от двух вредоносных программ.

Казалось бы, нужно остановиться, но я продолжил искать подходящий мне шаблон. В итоге, при установке очередного шаблона получил полный коллапс в CMS Joomla
. При попытке открытия админ-панели и сайта, в браузере появлялась неприятная строка с оповещением об критической или фатальной ошибке. Честно говоря, я не думал, что в последней (на тот момент) 3.4.8 версии Joomla
такое возможно.

Все мои попытки восстановления сайта путем замены файлов в папках из скачанной «девственной» Джумлы не дали результатов. Но, к счастью, накануне я случайно сделал резервную копию сайта и, как оказалось, весьма кстати. Она меня так здорово выручила! Я восстановил свой проект на Joomla
за несколько минут и остался доволен тем, что у меня получилось. Поэтому и возникло желание написать эту статью, в которой хочется поделиться с вами некоторым приобретенным опытом.

Создание резервной копии

Для резервного копирования в Joomla
одним из лучших вариантов является применение расширения Akeeba Backup
 — безоговорочного лидера в сегменте этого направления.Akeeba
 создает архив всех файлов сайта и копию базы данных. С его помощью можно создавать как резервные копии сайта, так и восстанавливать сайт из резервной копии на своем или другом домене или сервере, подходящем для Джумлы.

Установка компонента Akeeba

Установка расширения Akeeba
 и его обновления происходят обычным образом по стандартной отработанной схеме. На этом, думаю, не стоит останавливаться. Скачать расширение можно с сайта https://www.akeebabackup.com/

Настройки резервного копирования

Akeeba
позволяет производить настройки копирования данных, предоставляя пользователю возможность выбора каталогов и файлов, подлежащих копированию, а также включение или исключение из бэкапа БД (базы данных). Войти в настройки Akeeba
можно из верхнего меню админ-панели, пройдя по пути: Компоненты
 → Akeeba Backup
 → Настройка
.

Настроек много, но нет необходимости регулировать их все. Целесообразно остановиться на нескольких, даже на двух основных:

  1. Папка для сохранения резервных копий.
     Можно оставить по умолчанию или указать корневую папку на сервере. Почему корневую? Потому, что так удобнее восстанавливать сайт на своем же домене — архив будет уже находиться в нужном месте.
  2. Двигатель архивирования.
    Есть два формата — JPA
    и ZIP
    .  Если рекомендуют JPA
    , выбирайте лучше его. По крайней мере из этого формата я восстановил свой сайт успешно, быстро и без всяких заморочек.

Остальные настройки можно оставить без изменения.

Можно воспользоваться услугами Мастера настройки 
(Настройки → Мастер настройки). Он автоматически определит наиболее подходящие параметры для копирования именно вашего сайта.

Процесс создания резервной копии

В правом верхнем углу панели управления Akeeba
 оповещает Вас, что система готова к резервному копированию. Значит можно начинать копирование. Жмите кнопку Начать резервное копирование
и следуйте указаниям системы, главным образом, не закрывая окно панели управления до полного окончания процесса. Сам процесс занимает рекордно малое количество времени, так как применяется технология AJAX
.

По окончанию процедуры будет создана резервная копия сайта, детали которой Вы сможете просмотреть, нажав кнопку Управление резервными копиями
.

Как я уже говорил, по умолчанию копия сайта находится на сервере по адресу:

/логин на хостинге/domains/ваш домен/administrator/components/com_akeeba/backup

Чтобы удалить устаревшую резервную копию, на странице управления копиями нужно выделить копию, поставив маркер в чекбоксе и нажать кнопку Удалить
вверху панели управления.

В менеджере резервных копий, архив сайта (почти 670 мб) можно скачать на свой компьютер:

Восстановление сайта из резервной копии

Прежде всего, нужно отметить, что резервная копия, созданная в Akeeba
, позволяет восстановить сайт на любой локальный или виртуальный сервер, так как она содержит в себе полный набор данных о сайте и копии базы данных.Есть несколько способов восстановления, но я приведу всего один, который испробовал сам. Это использование скрипта распаковки архива — 
Akeeba Kickstart
. Этот скрипт позволяет распаковать архив сайта непосредственно на сервере, что очень удобно. Распишу процесс пошагово:

1

. Скачайте архив со скриптом с сайтаhttps://www.akeebabackup.com/download/official/akeeba-kickstart.html
, распакуйте в папку на компьютере.

2.

Закачайте из содержимого папки kickstart-core-4.1.4

только файл скрипта и русификатор
 в корневую папку сайта. Туда же поместите архив резервной копии — JPA.

В итоге, в корневой папке должны находиться только три файла (все остальное, если было в корне — удалить!):

  1. архив JPA
  2. kickstart.php
  3. ru-RU.kickstart.ini

3.

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

4.

Запустите скрипт, набрав в адресной строке используемого вами браузера:http://domen.ru/kickstart.php
где domen.ru
— это адрес вашего сайта.

Нажмите Enter
. Начнется процесс восстановления. На этом этапе нужно просто выполнять все пункты восстановления, предлагаемые скриптом. Если происходит перенос на новый хостинг, нужно будет вводить данные:

  • Имя хоста, обычно это localhost
  • Имя базы данных
  • Имя пользователя базы данных
  • Пароль пользователя базы данных

Восстановление происходит на удивление быстро и качественно. Я лично даже не ожидал, что так удачно получится.

Если мастер не находит архив с резервной копией сайта, но у вас сделано все правильно, нужно изменить права доступа на этот архив. Установите 755. Если возникают ошибки при разархивации, обратитесь в техподдержку вашего хостинга.

Желаю Вам стабильной работы сайта, делайте постоянно резервные копии. Удачи! Ваш Л.М.

Поделиться в соц. сетях

Похожие статьи:

Добавляем изображение в статью сайта на Joomla
Увеличение изображений при клике мышкой в Joomla
Как добавить новую позицию в шаблон Joomla?
Как скрыть от индексирования внешние ссылки в Joomla?

Восстановление сайта после взлома

Как восстановить сайт Joomla после взлома
, 4.3
из 5

основанный на 4
голосах.

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

В первую очередь замените пароль

  • к панели управления хостингом;
  • FTP доступу к файлам CMS;
  • и к базе данных, стоит заменить имя пользователя к ней и префикс таблиц (если использовался стандартный jos_).

Пароль должен быть сложным, лучше всего состоять из двух-трех слов. Оставьте английскую раскладку клавиатуры, а смотрите на русские буквы и пишите «менямилыйнецелует». Получится пароль «vtyzvbksqytwtketn». Каждый может придумать сложный и легко запоминающийся пароль, а пишут — «12345». Еще есть любители галочки «Сохранить в списке паролей». Забудьте про нее.

Восстановление из резервной копии (бакапа)

Предпочтительный способ восстановить работоспособность сайта – восстановить его из резервной копии, сделанной до взлома.

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

Распакуйте копию из бакапа. Базу данных не заменяйте. С большой долей вероятности она осталась нетронутой.

В конфигурационном файле configuration.php замените имя пользователя и пароль к базе данных новыми: public $user = ‘Новое_имя’; public $password = ‘Новый_пароль’. Зайдите в административную панель сайта, замените имя пользователя администратора и пароль доступа к CMS.

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

По окончанию восстановительных работ установите плагин BotsGo404.

Восстановление без резервной копии

Сделайте копию взломанной версии в отдельной директории. Базу данных сохранять не надо. С большой долей вероятности она осталась нетронутой.

Скачайте последнюю версию CMS Joomla, распакуйте ее и удалите путем сравнения из взломанной версии сайта все файлы, имеющиеся в скаченной версии.

Далее посмотрите на оставшиеся папки. У вас останутся все установленные дополнительные расширения и шаблон. Найдите и скачайте их инсталляционные пакеты. Аналогичным образом удалите дубли файлов.

Не забудьте, в шаблоне у вас могут быть измененные вами файлы стилей CSS, иконка favicon.ico, configuration.php, не удаляйте их.

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

  • наличие перенаправления в файлах .htaccess (они могут быть во внутренних директориях)
  • файлы с датой модификации, близкой к дате обнаружения взлома
  • посторонние файлы, залитые злоумышленником
  • код, записанный нескончаемой строкой, либо без форматирования
  • код, закодированный с использованием функций шифрования, компрессии и замены: base64_decode, gzuncompress, gzinflate, str_rot13, preg_replace
  • код с динамическим исполнением: eval, assert, create_function
  • код, подгружаемый со сторонних ресурсов: file_get_contents, curl_exec

Далее просмотрите коды картинок, в них так же могут содержаться фрагменты кода с динамическим исполнением и шифрованием. 

Все ненужные файлы необходимо удалить, в оставшихся файлах удалить инжектированный вредоносный код.

Настала пора восстановления. Скопируйте оставшиеся директории с файлами в дистрибутив CMS Joomla, удалив из него папку installation. В конфигурационном файле configuration.php замените имя пользователя и пароль к базе данных на новые: public $user = ‘Новое_имя’; public $password = ‘Новый_пароль’. Восстановите прежнюю структуру папок плагинов, модулей и компонентов из скаченных дистрибутивов. Не забудьте скопировать в папки /language и /administrator/language файлы с текстовыми константами локализации.

Зайдите в административную панель сайта, замените имя пользователя и пароль доступа к CMS и посмотрите, не заменен ли e-mail SuperUsers (злоумышленник может воспользоваться функцией восстановления забытого пароля). Внимательно посмотрите права всех пользователей. Не исключена возможность заведения злоумышленником еще одного администратора. 

По окончанию восстановительных работ установите плагин BotsGo404.

Пример удаления вредоносного кода с сайта
Если эта статья показалась вам полезной, пожалуйста, проголосуйте за нее. Это поможет другим быстрее найти эту статью из множества других менее полезных.
( 4 Голосов )

 

Ссылка на основную публикацию
Похожие публикации