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

Полная резервная копия магазина OpenCart обычно занимает от 20 минут до нескольких часов: всё зависит от размера каталога, базы данных и доступа к серверу. В результате у вас должны быть два независимых набора файлов — архив сайта и дамп базы данных, — а также понятная инструкция, как вернуть их на сервер.
Что нужно подготовить до начала
Инструкция подходит для OpenCart 3.x и 4.x. Названия пунктов в административной панели могут отличаться между версиями и сборками, поэтому для надёжной копии лучше не полагаться только на кнопку Backup в админке.
- Доступ к панели хостинга или SSH с правами чтения файлов магазина.
- Доступ к базе данных через phpMyAdmin, Adminer или консольный клиент.
- Свободное место под архив файлов и дамп базы. Для безопасной работы закладывайте не меньше размера исходных данных, а лучше — два таких объёма.
- Точную версию OpenCart и версию PHP. Они понадобятся при восстановлении на другом сервере.
- Список подключённых расширений, платёжных модулей, служб доставки и задач cron.
Не храните единственную копию в той же папке, где работает магазин. Если злоумышленник получит доступ к сайту или хостинг выйдет из строя, архив рядом с файлами тоже может исчезнуть.
Резервная копия считается рабочей не тогда, когда архив создался, а тогда, когда из него удалось поднять магазин.
Сноска. Дамп базы данных — текстовый файл с командами и данными, из которых можно заново создать таблицы OpenCart. Архив файлов базы не заменяет: в нём нет заказов, товаров, клиентов и настроек, хранящихся в MySQL или MariaDB.
Шаг 1. Определите, что именно нужно сохранить
У OpenCart данные распределены между базой и файловой системой. Минимальный комплект состоит из четырёх частей.
- База данных. В ней находятся товары, категории, заказы, клиенты, настройки, SEO-URL и данные расширений.
- Файлы магазина. Это код OpenCart, темы, изображения, загрузки и установленные модули.
- Каталог storage. В OpenCart 3.x его часто выносят за пределы публичной директории. Там могут находиться логи, кэш, временные файлы и пользовательские данные.
- Конфигурации. В корне обычно лежит
config.php, а в административной части —admin/config.php. В них записаны параметры подключения к базе и пути к каталогам.
Расположение storage и административной папки может быть изменено при установке или настройке безопасности. Не предполагайте, что путь всегда называется admin. Проверка: вы нашли корневой каталог магазина, фактический путь к storage, файл config.php, файл конфигурации админки и имя базы данных.
Шаг 2. Зафиксируйте версии и настройки
Запишите версию OpenCart, PHP, MySQL или MariaDB, имя темы и список расширений. Если магазин работает на PHP 8.1, а восстановить его пытаются на PHP 7.4, сама копия может быть исправной, но сайт не запустится.
Сохраните отдельно:
- версию OpenCart и PHP;
- версию MySQL или MariaDB;
- домен и SSL-настройки;
- пути к public-каталогу и storage;
- список cron-задач;
- названия нестандартных модулей и тему оформления.
Пароли из конфигурационных файлов не переносите в заметки и переписку. Они попадут в архив вместе с файлами, поэтому место хранения копии должно быть защищено не слабее самого сайта. Проверка: у вас есть отдельная карточка окружения без паролей, токенов и ключей, но с версиями и путями.
Шаг 3. Подготовьте магазин к копированию
Активные заказы, импорт товаров и фоновые задачи могут менять базу во время создания дампа. Для небольшого магазина выберите короткое окно низкой нагрузки. На это время включите режим обслуживания или временно ограничьте оформление заказов, а также остановите импорт, синхронизацию остатков и связанные cron-задачи.
Полностью очищать кэш перед копированием не обязательно. Кэш можно создать заново, но удалять его вслепую на рабочем сайте не стоит: некоторые расширения хранят рядом с временными файлами данные, которые потребуются для работы.
Проверка: новые заказы и фоновые операции временно остановлены либо вы записали точное время начала и окончания копирования, чтобы понимать, какие изменения могли попасть в дамп.
Шаг 4. Скачайте файлы магазина
В панели хостинга откройте файловый менеджер, найдите каталог магазина и создайте архив. В него включите весь корень OpenCart, папку изображений, загрузки, тему, модификации и фактический каталог storage. Архив лучше создать за пределами публичной директории и скачать на компьютер или в отдельное защищённое хранилище.
Если у вас есть SSH и Linux, для файлов в публичном каталоге можно использовать стандартную команду. Пути замените на свои, а каталог /home/USER/backups создайте за пределами web-root.
tar -czf /home/USER/backups/opencart-files.tar.gz -C /home/USER/public_html .
Эта команда не захватит storage, если он вынесен из public_html. В таком случае добавьте его отдельным архивом или включите оба каталога в резервную процедуру. Не помещайте создаваемый архив внутрь каталога, который архивируете, иначе он начнёт копировать сам себя. Проверка: архив открывается, в нём есть config.php, административная часть, изображения, файлы темы и отдельный каталог storage, если он используется.
Шаг 5. Создайте дамп базы данных
Через phpMyAdmin или Adminer выберите именно базу магазина и используйте экспорт SQL. Формат — SQL, кодировка — UTF-8 или UTF-8MB4, если такая настройка доступна. Не экспортируйте только выбранные таблицы: расширения часто добавляют собственные таблицы с непредсказуемыми именами.
При доступе по SSH подойдёт mysqldump для MySQL 8.0 или совместимой версии MariaDB:
mysqldump --single-transaction --routines --triggers --default-character-set=utf8mb4 -h DB_HOST -u DB_USER -p DB_NAME > /home/USER/backups/opencart-database.sql
После запуска команда запросит пароль интерактивно. Не вставляйте пароль прямо в команду и не сохраняйте его в истории shell. Параметр --single-transaction снижает риск блокировок для таблиц InnoDB, но не делает снимок абсолютно всех внешних операций. Если в базе остались таблицы другого типа или идут сложные фоновые записи, безопаснее оставить магазин в режиме обслуживания до окончания экспорта.
Проверка: SQL-файл не пустой, его размер не равен нескольким килобайтам, а в начале и конце файла есть команды и данные, а не сообщение об ошибке доступа.
Шаг 6. Проверьте копию до удаления исходных данных
Сначала посчитайте контрольную сумму архивов и сохраните её рядом. При повторном скачивании сравните значения: это помогает обнаружить повреждение файла, но не подтверждает, что восстановление пройдёт успешно.
Минимальная проверка состоит из трёх действий:
- Откройте архив файлов и найдите в нём конфигурации, изображения, тему и установленные расширения. Проверка: архив распаковывается без сообщения о повреждённом файле.
- Откройте SQL-дамп как текст и найдите названия таблиц с префиксом OpenCart, например таблицу настроек и таблицу заказов. Префикс может быть изменён при установке. Проверка: в файле есть команды создания таблиц и вставки данных.
- Создайте тестовую копию на отдельном домене или локальном сервере с той же версией PHP и базы. Импортируйте SQL, распакуйте файлы, проверьте пути в двух конфигурациях и откройте витрину и админку. Проверка: загружается главная страница, открывается карточка товара, вход в админку работает, а тестовый заказ проходит до выбранного этапа.
Если не получилось
- «Access denied for user». У пользователя базы не хватает прав или указаны неверные имя, хост и пароль. Сверьте значения с конфигурацией OpenCart и настройками базы в панели хостинга.
- «mysqldump: command not found». Клиент не установлен или недоступен в PATH. Используйте экспорт через phpMyAdmin либо попросите хостинг выполнить дамп.
- Архив не создаётся: «No space left on device». На сервере не хватает места для временного архива. Удалите безопасные старые копии, сохраните архив напрямую на компьютер через панель или увеличьте дисковый объём.
- После восстановления «Error: Could not load database file» или белая страница. Проверьте пути в
config.phpи административной конфигурации, доступы к storage, версию PHP и наличие расширений PHP, требуемых OpenCart. - Витрина открывается, но нет изображений или заказов. Скорее всего, восстановлена только база либо только публичный каталог. Верните полный storage, каталог изображений и весь SQL-дамп, а не отдельные таблицы.
Что делать дальше
После первой успешной проверки задайте расписание резервного копирования: отдельно для базы и файлов, с несколькими поколениями копий. Храните хотя бы одну копию вне хостинга и периодически проверяйте восстановление на тестовом домене. Перед обновлением OpenCart, PHP или крупного расширения создавайте дополнительную ручную копию и фиксируйте версии, с которых начинали.
Следующий показатель, который стоит контролировать, — не только дата последнего архива, но и дата последнего успешного восстановления. Именно она показывает, можно ли вернуть магазин после сбоя, несовместимого обновления или ошибки администратора.
Логотип и фирменный стиль: Три концепции разного характера, палитра с обоснованием, проверка на читаемость в малом размере и в один цвет.
Спросить за 60 ₽Источники: OpenCart — официальный репозиторий, MySQL 8.0 Reference Manual: mysqldump
Частые вопросы
Достаточно ли нажать Backup в админке OpenCart?
Нужно ли копировать config.php и admin/config.php?
Можно ли делать дамп без режима обслуживания?
Что делать, если у меня другая версия OpenCart?
Можно ли хранить архив в public_html?
Как понять, что резервная копия действительно рабочая?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.