Статьи

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

С ситуацией, когда веб-проект, на который было потрачено много сил и времени, вдруг был потерян из-за ошибки при работе с базой, инсталляцией некачественного компонента, сбоем в работе системы и т.д., знакомы многие. Для того, чтобы минимизировать неизбежные потери, требуется производить резервное копирование данных. Эта процедура позволяет быстро восстановить информацию (документы, программы, настройки и т.д.), если вы по какой-либо причине потеряли рабочую копию.

Введение в резервное копирование сайта
В случае с использованием Joomla необходимо создавать копии базы данных MySQL и файлов системы, но делать это «вручную» чрезвычайно не удобно из-за:

Отдельного копирования данных MySQL базы.
Отдельного копирования файлов сайта.
Использования разных инструментов для операций с разными типами данных.
Синхронизации состояния базы и состояния файлов проекта.
Выделения из резервной копии файлов сайта: папки с временными файлами, папки с кэшируемыми данными (зачем таскать мусор с собой).
Отсутствия на площадке, где размещен сайт, доступа по SSH, FTP, инструментов для работы с базами данных.
Сложности (точнее трудоемкость) держать файлы базы, файлы проекта в одном архиве для обеспечения синхронизации данных.
Да и охота работать в привычной обстановке, т.е. в административной панели Joomla.
Конечно, найти хостинг с поддержкой автоматического резервного копирования не составляет труда, однако описанные выше сложности очень актуальны. Следует добавить, что если резервное копирование осуществляется на тот же диск, площадку, то при серьезной аварии, смене хостинга, эти данные будут не доступны.

Таким образом были определены требования к системе резервного копирования:

Надёжность хранения информации. Осуществляется дублированием информации и заменой утерянной копии другой в случае уничтожения одной из копий. Сохранение копии на другом носителе. Быстрый доступ к резервной копии. Авторизованный доступ к резервной копии.
Простота в использовании — свести к минимуму участие человека.
Быстрое внедрение — лёгкая установка и настройка системы резервного копирования, краткое обучение пользователей.
Совместное хранение файлов базы и файлов проекта.
Интеграция с панелью Администрирования Joomla.
Выборочность — возможность выборки игнорируемых папок проекта.
Восстановимость — простота восстановления исходного состояния системы.
JoomlaPack — инструмент для создания резервных копий
Для этого был локализован и модифицирован компонент JoomlaPack, который соответствует перечисленным выше требованиям и позволяет:

Создавать резервную копию базы данных и файлов проекта в один архив.
Работает в «один клик» мышки.
Сохраняет резервную копию в папку сайта.
Позволяет управлять резервными копиями — удаление, копирование их на ваш жесткий диск.
Производить выборку игнорируемых папок, которые не надо включать в проект.
При создании резервной копии вы можете выбрать режим архивирования или сжатия в один файл (папку).
При создании резервной копии создает установочный дистрибутив джумлы с вашими настройками, т.е. делается полная копия всех файлов и базы данных — для восстановления, просто запустите установку и вы получите полную копию вашего сайта.
Примечание: в качестве установщика используется дистрибутив Joomla! LE 2007, но работать будет на всех версиях 1.0.12.

Режим совместимости с MySQL 4.x — 5.x.
Кроссбраузерность.
Возможность доступа к резервным копиям с любой точки мира.
Работа пользователям любого уровня компетенции.
Настройки сохраняются в файл конфигурации — очень полезно при сбоях базы, или не при желании увеличивать нагрузку.
Множество приятных особенностей, в частности:
Процесс создания резервной копии наглядно показывается на странице.
Не происходит аварийных сбоев по причине тайм-аута сервера.
Не происходит сбоев по причине ограничение размера памяти для скрипта.
Установка компонента JoomlaPack
Заходим в административную панель и выбираем в меню «Установка–Компоненты».
Выбираем компонент для установки и нажимаем кнопку «Загрузить и установить»
Компонент успешно установился. Читаем имена тех, кто локализовал и модифицировал это чудо, обещаем при случае угостить пивом и нажимаем «Продолжить».
Настройка компонента JoomlaPack
После успешной установки выбираем в меню административной панели «Компоненты–JoomlaPack». Затем в панели управления компонентом JoomlaPack выбираем пункт «Базовая конфигурация» и производим базовую настройку компонента. Следим, чтобы надпись «Файл конфигурации» была зеленого цвета — таким образом мы обеспечим сохранение результатов настройки. В противном случае меняем права файла конфигурации configuration.php, в корне Joomla, на 777.

И начинаем внимательно просматривать поля настройки:

Папка для сохранения резервных копий — куда сохранять резервные копии. По умолчанию стоит joomla/administrator/components/com_jpack/temp. Смените, куда вам удобней. Следует учесть, что она должна быть доступна для записи. Рекомендуется создать папку «copy» в корне сайта и дать на нее права чтения/записи.
Временная папка — куда сохранять временные файлы. По умолчанию стоит joomla/administrator/components/com_jpack/temp. Смените куда вам удобней. Однако, обратите внимание, что эта папка так же должна быть доступна для записи. Рекомендуется создать папку «tmp» в корне сайта и дать на нее права чтения/записи.
Шаблон имени файла — имя файла резервной копии, по умолчанию site-[HOST]-[DATE]-[TIME]. В [] задаются шаблоны переменных. Не надо менять без необходимости, и так неплохо.
Расширенные настройки JoomlaPack

Совместимость при экспорте БД MySQ — выбираем режим совместимости формата экспорта баз данных. Рекомендуется установить режим совместимости с версией 4.х., что позволяет без труда импортировать в версии и выше, но избавит от проблем использования на большинстве серверов.
Политика создания списка файлов — при большом сайте следует выбрать за несколько раз, при небольшом за один раз. Отражается на скорости обработки и стабильности работы.
Политика сохранения БД MySQL — при большом сайте следует выбрать за несколько раз, при небольшом за один раз. Отражается на скорость обработки и стабильность работы.
Сжать архив после создания? — Предлагает сжать резервную копию в один файл ZIP (рекомендуется), не сжимать (точная копия сайта с базой в виде инсталляционной версии), сжимать — сжимает файл в один, но не архивирует.
Настроили? Теперь кликаем «Сохранить» вверху экрана, чтобы все изменения были внесены в конфигурацию компонента. После чего возвращаемся в панель управления компонентом и проверяем состояние JoomlaPack (справа от кнопок панели управления должно быть написано: Готовность. Иначе исправляем настройки. Затем переключаемся на вкладку «Подробно» и проверяем, что там у обоих пунктов состояние: Доступен на запись. В противном случае необходимо либо изменить папки в настройках, либо выставить права на папки.

Создание резервной копии с помощью JoomlaPack
Предподготовка закончена — создаем резервную копию. Для этого в панели управления JoomlaPack нажимаем кнопку «Создать резервную копию». Нас предупреждают, чтобы мы уселись поудобнее, завершили все сторонние процессы с файлами Joomla (если они были) и выразили свое согласие, нажав на кнопку: «Создать резервную копию».


Резервная копия создается. Пожалуйста, не покидайте эту страницу, не останавливайте ее, не обновляйте до завершения операции. В случае ошибки создания резервной копии система постарается сообщить вам что она предпринимает для успешного завершение операции. В случае критической ошибки, такой как выделения места, времени, попробуйте сменить режим работы в настройках — поставьте "проходить несколько раз".

После того, как резервная копия создана, можно перейти в раздел "Управление резервными копиями" и проверить, появилась ли там резервная копия.

Управление резервными копиями в JoomlaPack
Управление резервными копиями осуществляется в специальном разделе компонента JoomlaPack. Чтобы попасть в менеджер резервных копий, требуется в панели управления JoomlaPack кликнуть на «Управление резервными копиями».

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

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

Чтобы указать системе какие папки не стоит добавлять в архив, перейдите в раздел «Исключить из резервной копии» в административной панели компонента. И в предложенном списке отметьте папки, которые вы не хотите добавлять в резервные копии. В частности, выше указанные «copy» и «tmp». После этого JoomlaPack попросит вас подождать, пока изменений вступят в силу.

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

Восстановление данных из резервной копии
При восстановлении системы с резервной копии в режиме установки скопируйте содержимое архива на хостинг, заменив все файлы, и удалите или переименуйте файл «configuration.php». Иначе вы не сможете запустить инсталлятор.

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

Заключение
Все! Теперь наша система готова к возможным проблемам в будущем. Следует сказать, что таким образом можно не только создавать резервную копию, но переносить сайт на хостинг, клонировать сайты, создавать свои сборки. Почему это возможно? Да потому, что создается ПОЛНЫЙ ИНСТАЛЛЯТОР Joomla со всеми вашими настройками, базой данной, установленными дополнениями, всеми файлами вашего сайта.