Перенос OpenCart требует особого внимания к двум вещам: конфигурационным файлам с путями и URL, и к таблицам базы данных с заказами и клиентами. Неправильный перенос может нарушить работу магазина и потерять заказы.
Структура файлов OpenCart
| Директория/файл | Что хранит | Важность для миграции |
|---|---|---|
| config.php | Пути и данные БД (корень) | Критически важен |
| admin/config.php | Пути и данные БД (админка) | Критически важен |
| image/ | Изображения товаров | Большой объём, не забыть |
| system/storage/ | Логи, кеш, сессии | Очистить перед миграцией |
| .htaccess | SEO 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 и др.). Без этого платежи не будут обрабатываться.