Перенос интернет-магазина OpenCart на новый сервер

Миграция · 19.04.2026
Перенос интернет-магазина OpenCart на новый сервер

Перенос OpenCart требует особого внимания к двум вещам: конфигурационным файлам с путями и URL, и к таблицам базы данных с заказами и клиентами. Неправильный перенос может нарушить работу магазина и потерять заказы.

Структура файлов OpenCart

Директория/файлЧто хранитВажность для миграции
config.phpПути и данные БД (корень)Критически важен
admin/config.phpПути и данные БД (админка)Критически важен
image/Изображения товаровБольшой объём, не забыть
system/storage/Логи, кеш, сессииОчистить перед миграцией
.htaccessSEO URL, правила ApacheВажен для Nginx

Шаг 1: Подготовка — очистить мусор

# Перед созданием бэкапа очистить временные файлы
rm -rf /var/www/opencart/system/storage/cache/*
rm -rf /var/www/opencart/system/storage/logs/*.log
rm -rf /var/www/opencart/system/storage/session/*

Шаг 2: Бэкап файлов и базы данных

# Архив файлов
tar -czf opencart-files.tar.gz /var/www/opencart/

# Дамп БД (со всеми данными: товары, заказы, клиенты)
mysqldump -u ocuser -p ocdb   --single-transaction   --routines   --triggers > opencart-db.sql

Шаг 3: Перенос и восстановление

# Перенести на новый сервер
rsync -avz /var/www/opencart/ root@new-server:/var/www/opencart/

# Восстановить БД
mysql -u newocuser -p newocdb < opencart-db.sql

Шаг 4: Обновление config.php (оба файла!)

# /var/www/opencart/config.php
define('HTTP_SERVER', 'https://www.new-domain.com/');
define('HTTPS_SERVER', 'https://www.new-domain.com/');
define('DIR_OPENCART', '/var/www/opencart/');
define('DIR_APPLICATION', '/var/www/opencart/catalog/');

define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', 'newocuser');
define('DB_PASSWORD', 'NewPass123');
define('DB_DATABASE', 'newocdb');

# /var/www/opencart/admin/config.php
define('HTTP_SERVER', 'https://www.new-domain.com/admin/');
define('HTTPS_SERVER', 'https://www.new-domain.com/admin/');
define('HTTP_CATALOG', 'https://www.new-domain.com/');
define('DIR_OPENCART', '/var/www/opencart/');
define('DIR_CATALOG', '/var/www/opencart/catalog/');

Шаг 5: Обновление URL в базе данных

# При смене домена обновить настройки магазина
mysql -u newocuser -p newocdb <<'SQL'
UPDATE oc_setting
SET value = 'https://www.new-domain.com/'
WHERE `key` = 'config_url';

UPDATE oc_setting
SET value = 'https://www.new-domain.com/'
WHERE `key` = 'config_ssl';
SQL
SEO URL на Nginx: OpenCart использует .htaccess для SEF URL. На Nginx добавьте в конфиг:
location / {
    try_files $uri $uri/ @opencart;
}
location @opencart {
    rewrite ^/(.+)$ /index.php?_route_=$1 last;
}

Чеклист проверки после переноса

  • Главная страница и категории открываются
  • Страница товара с изображениями отображается
  • Добавить товар в корзину и оформить тестовый заказ
  • Войти в /admin — убедиться что все разделы работают
  • Проверить историю заказов — все ли на месте
  • Проверить email-уведомления о заказах
  • Убедиться что платёжные модули настроены на новый домен
Платёжные системы: После смены домена обязательно обновите callback URL в личных кабинетах платёжных систем (ЮKassa, LiqPay, Stripe и др.). Без этого платежи не будут обрабатываться.
← Назад в базу знаний Задать вопрос поддержке