Резервное копирование сайта на Drupal с модулем Backup and Migrate

alexei03/04/2016 - 10:38

Часто, когда приходится делать резервное копирование файлов сайта и для этого вы открываете FTP клиент, подспудно возникает смутное чувство какого-то обмана. Будто есть ненулевой шанс, что результаты вашей работы могут оказаться фальсификатом. Все становится гораздо хуже, когда дело доходит до резервного копирования базы данных. Как правило для этого используются инструменты вроде phpMyAdmin, которые всегда оставляют вероятность возникновения трагических ошибок. И уж совсем не хочется испытывать то ужасное чувство утопающего, когда пытаешься восстановиться из "битой" резервной копии.

Вы точно знаете, что все это означает?

База данных в phpMyAdmin

Если нет, то пришло время найти более простое решение.

Чтобы значительно облегчить создание резервной копии вашего сайта на системе Drupal, существует набор специальных модулей. Одна из самых отличнейших вещей при использовании этих модулей состоит в том, что резервное копирование можно осуществлять прямо из административной панели сайта. А значит, про то время, когда для создания резервных копий приходилось использовать панель хостинга, можно забыть. Сегодня мы поговорим о некоторых возможностях модуля Backup and  Migrate. При этом стоит обратить внимание, что для полноценного функционирования данного модуля Drupal могут потребоваться некоторые модули Apache. Это означает, что у вас должен быть прямой доступ к серверу. Тем не менее, большинство основных функций модуля Backup and Migrate доступны сразу "из коробки".

Перед началом — один совет

Как обычно, установите и активируйте модуль Backup and Migrate. Теперь, прежде чем продолжить, сделайте одну вещь. Создайте полную резервную копию корневого каталога вашего сайта. Для этого вы должны подключиться по FTP к своему сайту и скопировать на локальный диск все файлы и подкаталоги, относящиеся к вашему сайту. Если хотите, заархивируйте их в ZIP/RAR/TAR, и поместите в безопасное место. Это будет ваша мастер-копия сайта со всеми файлами ядра, модулями, темами и т. д. и т. п. Модуль Backup and Migrate творит чудеса, но всегда стоит иметь мастер-копию сайта на случай непредвиденных сбоев.

Ручное создание резервной копии базы данных

Для резервного копирования файлов многие предпочитают использовать инструменты панели хостинга или FTP-клиенты. Поэтому для начала давайте рассмотрим базовую реализацию модуля Backup and Migrate. Активируйте этот модуль и перейдите в его меню управления Configuration -> System -> Backup and Migrate (Конфигурация -> Система -> Резервное копирование и миграция). Возможно вы увидите предупреждение, что у вас не задан каталог частных файлов, однако пока это сообщение можно проигнорировать. Важное здесь то, что для начала резервного копирования никаких дополнительных настроек делать не нужно. Просто нажмите на кнопку "Backup now" (Начать резервное копирование) и сохраните на локальном диске копию базы данных вашего сайта. И все.

Быстрое резервное копирование

Восстановление базы данных

Случилось страшное, и вы потеряли половину контента? Никаких проблем. Нажмите на вкладку Restore (Восстановить) и загрузите сделанную ранее резервную копию базы данных. Чтобы все прошло еще более гладко, нажмите на "Advanced settings" (Дополнительные параметры) и поставьте галочку напротив пункта "Take site offline" (Перевести сайт в режим офф-лайн), и затем нажмите на кнопку "Restore Now" (Восстановить). И все!

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

Резервное копирование файлов

Второй ключевой компонент резервного копирования сайта на Drupal – это содержимое подкаталога sites/default/files. Именно здесь хранится весь пользовательский контент, загруженный на сервер. Чтобы создать резервную копию файлов, необходимо убедиться, что на вашем хостинговом сервере установлены библиотеки PEAR и archive_tar. Если эти библиотеки на сервере установлены, то вам повезло, устанавливайте модуль Backup and Migrate Files и активируйте его. После этого вам остается сделать совсем немногое — во время создания резервной копии дополнительно к обычной функции резервного копирования базы данных у вас появится возможность выбрать подкаталог для архивирования.

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

Автоматическое создание резервных копий

Давайте сделаем еще один шаг вперед и попробуем смягчить необходимость делать резервные копии вручную. Для этого нажмите вкладку "Schedules" (Расписание) и нажмите на "Add a schedule" (Добавить расписание). Нажмите на переключатель, чтобы активировать настройку расписания и выберите время между созданием резервных копий. Дополнительно к этому можно установить требуемое количество резервных копий. Если вы считаете, что в определенный момент место на сервере может закончиться, то данная опция поможет предотвратить чрезмерное раздувание подкаталога файлов.

Автоматическое создание резервной копии

Сохранение резервных копий на сторонних серверах

Помните, что резервное копирование надежно настолько насколько надежна машина, на которой хранятся резервные копии. Если вы храните резервные копии на исходном сервере, то если этот сервер в какой-то момент выйдет из строя, вместе с ним в небытие последуют и все ваши резервные копии. Чтобы снизить такую вероятность, можно воспользоваться некоторыми дополнительными модулями и сервисами. Один из наиболее простых способов это включить резервное копирование по электронной почте. Для этого под вкладкой "Destinations" (Места назначений) нажмите на "Add destination" (Добавить место назначение) и выберите "E mail" (По электронному адресу).

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

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

По умолчанию у модуля есть встроенная поддержка сервиса NodeSquirrel, принадлежащий авторам модуля Backup and Migrate. Всего за $5 в месяц вы получаете место для хранения резервных копий одного сайта. Для использования данного сервиса необходимо просто ввести ключ в соответствующее поле и выбрать NodeSquirrel в качестве места назначения.

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

Кроме этого есть и другие варианты офф-лайнового сохранения резервных копий, например, Dropbox.

А что насчет миграции?

Как правило прямолинейная миграция базы данных сайта на Drupal с одного хостинга на другой или с локального сервера на рабочий редко бывает успешной. Разница между версиями PhpMyAdmin по отношению к настройкам по умолчанию способны стать причиной возникновения длинного списка сообщений об ошибках, либо вообще появления ужасного и обескураживающего "белого экрана смерти". В этом случае вас ожидает несколько "веселых" дней поиска и исправления возникших проблем. В качестве альтернативы для перемещения базы данных вашего сайта вы можете воспользоваться возможностями модуля Backup and Migrate, который работает в этом случае просто безупречно.

При этом процесс миграции будет выглядеть следующим образом:

  1. Создаем резервную копию текущих файлов сайта;
  2. При помощи модуля Backup and Migrate создаем резервную копию базы данных сайта;
  3. Копируем файлы сайта на новый хостинг;
  4. Устанавливаем на новом хостинге Drupal;
  5. На вновь установленном сайте заходим в административную панель, переходим на панель "Modules" (Модули) и активируем модуль Backup and Migrate;
  6. Восстанавливаем при помощи Backup and Migrate базу данных из резервной копии.

Получаем сайт, работающий так, как на прежнем хостинге. Единственное, может потребоваться очистить все кэши при помощи команды Configuration -> Performance (Конфигурация -> Производительность). Никогда еще миграция сайта не была настолько простой!

Безопасность

По сообщениям разработчиков модуля Backup and Migrate он поддерживает модуль AES, однако эта поддержка все еще находится в экспериментальной стадии. Если для вас безопасность резервного копирования базы данных и файлов сайта является приоритетной, то вам стоит обратить серьезное внимание на этот модуль. Для большинства же пользователей для обеспечения приемлемого уровня безопасности будет достаточно соблюдать элементарные правила работы с FTP и Drupal аккаунтами. При этом всегда следует помнить, что во время резервного копирования на рабочем сервере требуется прямой доступ к частным файлам Drupal, а этот подкаталог никогда не должен быть доступен из сети. Если же вместо резервного копирования на рабочий сервер делать резервное копирование на сторонний сервер, то это даст дополнительный слой безопасности в том случае, если ваше FTP соединение будет скомпрометировано. Всегда пользуйтесь разными паролями для всего. Использование одного пароля для доступа к базе данных, FTP и Drupal аккаунтам может привести к определенным проблемам.