Резервное копирование Joomla: разбор на живом примере
Разбираем резервную копию сайта на Joomla 5.x на примере интернет-магазина: что сохранить, какой способ выбрать, как проверить архив и почему копия базы без файлов не спасает после сбоя.

Для интернет-магазина на Joomla 5.x резервная копия должна восстанавливать не только базу данных, но и файлы сайта, изображения, расширения и настройки подключения. На примере магазина с каталогом, заказами и загрузками покупателей разберём три подхода: ручной архив, резервную копию средствами хостинга и Akeeba Backup, а затем проверим, можно ли из копии поднять рабочий сайт.
Сценарий: магазин на Joomla 5.x после неудачного обновления
Возьмём типичную установку: Joomla 5.x, база MySQL или MariaDB, панель управления хостингом и отдельная папка с пользовательскими изображениями. Перед обновлением расширения администратор делает копию. После обновления сайт открывается, но каталог выдаёт ошибку, а в панели управления не загружается список заказов.
В этот момент есть два разных вопроса:
- можно ли вернуть файлы Joomla, шаблон и расширения;
- можно ли вернуть данные, которые появились после последней копии.
Первая задача относится к файлам. Вторая — к базе данных. Архив только одной из частей не даёт полноценного восстановления.
Резервная копия считается рабочей не тогда, когда файл с архивом появился на диске, а когда из него удалось восстановить сайт.
Сноска. Точка восстановления — согласованный набор файлов и данных, к которому можно вернуть сайт. Для Joomla это обычно архив файлов плюс экспорт базы данных, сделанные примерно в один момент.
Что именно нужно сохранить
На примере магазина список выглядит так:
- все файлы Joomla, включая каталог
administrator, системные каталоги, шаблон и установленные расширения; - каталоги с изображениями товаров, документами и пользовательскими загрузками;
- файл
configuration.phpс параметрами подключения к базе и путями к каталогам; - всю базу данных, включая таблицы Joomla и таблицы расширений;
- данные о версии PHP, Joomla, СУБД и установленных расширениях;
- отдельно — задания планировщика, настройки домена, SSL и почтового сервиса, если они нужны для запуска сайта.
Пароли из configuration.php нельзя хранить в открытом доступе. Архив с этим файлом должен лежать за пределами публичного каталога сайта и иметь ограниченные права доступа.
Не включайте в резервную копию временные каталоги, кэш и логи, если выбранный инструмент умеет исключать их. Но сначала убедитесь, что это действительно кэш, а не загружаемые пользователями файлы. Ошибка в исключениях может удалить из будущего восстановления фотографии товаров.
Три способа сделать копию
| Подход | Что сохраняет | Плюсы | Цена и риск |
|---|---|---|---|
| Ручной экспорт | Файлы через SFTP или файловый менеджер и база через phpMyAdmin либо панель хостинга | Не требует расширения, понятен на любом хостинге | Легко забыть каталог или получить несогласованные файлы и базу |
| Резервная копия хостинга | Зависит от тарифа: аккаунт, файлы, база или снимок сервера | Быстро восстанавливается из панели, подходит для аварийного отката | Копия может храниться на том же сервере и исчезнуть вместе с аккаунтом |
| Akeeba Backup | Комплект Joomla-файлов и базы в одном архиве | Удобно повторять по расписанию и переносить сайт | Нужно проверить совместимость расширения с Joomla 5.x и отдельно хранить архив |
Для небольшого сайта ручной способ подходит как разовая проверка. Для магазина с регулярными заказами практичнее автоматизированный инструмент, но только при выгрузке архивов на другой сервер или в объектное хранилище. Снимок хостинга не заменяет внешнюю копию: если недоступен аккаунт, недоступны и снимки внутри него.
Разбор на примере Akeeba Backup
Akeeba Backup — расширение для создания резервных копий Joomla. Для Joomla 5.x устанавливайте релиз, в описании которого прямо указана совместимость с вашей веткой Joomla. Название и доступность отдельных функций зависят от версии расширения, поэтому настройки в панели проверяйте по документации именно этой версии.
1. Подготовьте место для архива
До установки расширения определите внешний каталог или хранилище, куда уйдёт готовый файл. Не оставляйте единственную копию в каталоге сайта: URL, ошибка в настройке веб-сервера или взлом могут сделать архив доступным постороннему.
Проверка: после тестового запуска архив можно скачать с вашего компьютера, а в публичном каталоге сайта нет ссылки, по которой он открывается из браузера.
2. Создайте полную копию
В панели Joomla откройте компонент резервного копирования, выберите полный профиль и запустите процесс. Не закрывайте страницу сразу после нажатия кнопки: большие каталоги могут обрабатываться порциями, а результат появится только после завершения всех шагов.
Проверка: в списке архивов появилась новая запись с датой, размером и статусом успешного завершения. Запись с ошибкой нельзя считать резервной копией.
3. Скачайте архив отдельно от сайта
Скопируйте архив на компьютер администратора и ещё в одно независимое место. Проверьте размер файла: внезапное завершение процесса или ограничение диска часто дают неполный архив, который выглядит как обычный файл, но не распаковывается.
Проверка: архив скачивается целиком, его контрольная сумма совпадает с той, что рассчитана для скачанного файла, если хранилище показывает такую возможность.
4. Зафиксируйте окружение
В журнале резервных копий запишите версию Joomla 5.x, версию PHP, тип и версию базы данных, список критичных расширений и дату создания. Это сокращает поиск причины, если восстановление выполняется на другом хостинге.
Проверка: другой администратор понимает, на какой сервер и с какими ограничениями нужно разворачивать архив, не открывая старый сайт.
Ручной вариант: файлы и база отдельно
Этот подход полезен как контрольная копия и как способ понять состав сайта. Файлы скачиваются через SFTP или файловый менеджер. База экспортируется через инструмент хостинга. Для крупной базы phpMyAdmin может упереться в лимит времени или размера, поэтому используйте доступный на хостинге консольный экспорт либо попросите поддержку выполнить его.
При экспорте базы выберите все таблицы Joomla и расширений, а не только таблицы с префиксом, который вы узнаёте по названию. Префикс таблиц задаётся в конфигурации и может отличаться от стандартного. Если в базе используются процедуры или события, уточните у администратора СУБД, попали ли они в экспорт и нужны ли конкретному проекту.
Файлы и база должны быть максимально близки по времени. Если во время скачивания файлов магазин продолжает принимать заказы, в архиве файлов и базе могут оказаться разные состояния. Для критичного обновления включите техническое обслуживание на время копирования или используйте инструмент, который согласованно создаёт комплект.
Что ломается чаще всего
Архив создался, но не восстанавливается
Причины обычно простые: не хватило места, процесс оборвался по тайм-ауту, архив скачан не полностью или целостность файла не проверена. Повторите создание на сервере с большим запасом диска и скачайте архив заново.
После восстановления сайт показывает ошибку подключения к базе
Проверьте параметры в configuration.php: имя базы, пользователя, пароль, адрес сервера и префикс таблиц. На новом хостинге эти значения часто отличаются. Также убедитесь, что база импортирована полностью, а пользователь имеет права на нужную базу.
Сайт открылся, но пропали изображения
В базу попали записи о файлах, а каталог изображений не был скопирован. Сверьте каталоги images и другие каталоги загрузок конкретного расширения. Их названия нельзя угадывать по базе: проверьте путь в настройках компонента.
После отката не работает вход в панель
Это может быть следствием несогласованных файлов и базы, несовместимой версии PHP или проблем с расширением авторизации. Восстанавливайте полный комплект, а не только отдельный каталог administrator. Журнал ошибок смотрите на сервере, не выводите подробности PHP посетителям.
Автоматическая копия не запускается
Проверьте расписание планировщика, права на каталог архивов, свободное место и лимиты времени выполнения PHP. Запись о созданном задании сама по себе ничего не доказывает: нужен журнал с успешным завершением и размером архива.
Как проверить восстановление без остановки магазина
Проверка выполняется на отдельном поддомене или временном сервере, а не поверх рабочего сайта. Разверните копию в изолированной базе, запретите индексацию и ограничьте доступ паролем на уровне веб-сервера. Не подключайте тестовую копию к боевой почте, платёжному шлюзу и вебхукам: иначе тест может отправить реальный заказ или уведомление клиенту.
- Создайте пустую базу и пользователя с правами только на неё.
- Разверните файлы и импортируйте базу из одной точки восстановления.
- Проверьте главную страницу, вход в панель, карточку товара, поиск и форму заказа.
- Откройте несколько изображений, проверьте загрузку файла и работу критичных расширений.
- Сравните количество товаров и последние заказы с исходным сайтом.
Запишите время восстановления от начала распаковки до рабочей страницы. Без этого показателя невозможно понять, успеете ли вы вернуть магазин в работу после аварии. Если полноценный тест пока невозможен, хотя бы распакуйте архив, импортируйте базу и проверьте, что оба компонента читаются.
Когда какой подход выбирать
- Разовая копия перед обновлением. Подойдёт Akeeba Backup или ручной комплект, если вы сразу скачали архив наружу и проверили его.
- Ежедневные заказы и изменения каталога. Используйте автоматизацию с внешним хранилищем и контролем успешного завершения.
- Поломка сервера или миграция. Нужен полный комплект файлов и базы, а не только снимок панели Joomla.
- Критичный магазин. Держите несколько точек восстановления, проверяйте восстановление на отдельной среде и отдельно храните инструкцию с доступами.
Инвалидация старых копий и выбор срока хранения — отдельная задача. Здесь важно хотя бы не удалять все предыдущие архивы после успешного создания нового.
Что делать дальше
Создайте тестовую копию Joomla 5.x на отдельном поддомене и восстановите туда последний архив. Измерьте три показателя: размер файлов и базы, время создания копии и время восстановления. Затем настройте уведомление о неудачном запуске и правило хранения нескольких архивов вне основного хостинга. После этого резервное копирование станет не кнопкой в панели, а проверяемой процедурой восстановления.
Разбор научной статьи: Сложный текст — понятным языком, с терминами
Спросить за 12 ₽Источники: Joomla Documentation: Backup and Restore FAQ, Akeeba Backup Documentation
Частые вопросы
Достаточно ли сохранить только базу данных Joomla?
Можно ли хранить резервную копию на том же хостинге?
Как понять, что архив действительно рабочий?
Что делать, если после восстановления не хватает заказов?
Можно ли восстановить сайт на другом хостинге?
Нужно ли делать копию перед каждым обновлением расширения?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.