Перенесення 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 та ін.). Без цього платежі не будуть оброблятися.