Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Оглавление

Обновление магазина

Обновление заменяет файлы ядра более новым выпуском: исправления безопасности, исправления ошибок, новые возможности. В этот момент окупается правило всего курса — всё своё лежит в extension/, а ядро не тронуто. Магазин с изменёнными файлами ядра нельзя обновить, не потеряв эти изменения.

Что меняет обновление

ЧастьЧто происходит
catalog/, admin/, system/Файлы заменяются новыми
extension/opencart/Встроенные дополнения заменяются
extension/acme_hello/Остаётся как есть
config.php, admin/config.phpОстаются как есть
image/, папка хранилищаОстаются как есть
База данныхСценарий обновления добавляет новые таблицы и столбцы

Шаг 1. Резервная копия

Прежде всего сохраните файлы и базу:

mysqldump -u root -p shop > shop-before-update.sql
tar -czf shop-before-update.tar.gz /var/www/shop

Первая команда сохраняет базу, вторая упаковывает папку сайта в архив. Копию базы можно сделать и в панели: System → Maintenance → Backup / Restore.

Шаг 2. Тестовая копия

Разверните резервную копию по отдельному адресу, например http://test.shop.test/, как в уроке о публикации. Обновление сначала делают там, а на работающем магазине — только после проверки.

Шаг 3. Новые файлы

Скачайте архив нового выпуска и скопируйте содержимое его папки upload поверх файлов магазина. Файлы config-dist.php не копируйте поверх своих файлов настроек — это отдельные файлы, ваши остаются на месте. Если папка admin была переименована, содержимое новой admin копируйте в папку с вашим именем.

Шаг 4. Сценарий обновления

Базу приводит к новой структуре сценарий обновления. Его запускают, открыв адрес папки install, пришедшей с новыми файлами, — http://test.shop.test/install/: установщик видит существующий магазин и предлагает обновление вместо установки. В некоторых выпусках обновление доступно и из панели, в разделе System → Maintenance. Следуйте инструкции по обновлению из архива своего выпуска — шаги различаются между выпусками.

Когда сценарий закончит работу, снова удалите папку install.

Шаг 5. Проверка

Что проверитьГде
Витрина и панель открываютсяОба адреса
Версия измениласьПодвал панели
Ваши дополнения работаютИх страницы настроек и блоки на витрине
События на месте и включеныExtensions → Events
Пробный заказ проходит до концаВитрина, затем Sales → Orders
Журнал ошибок пустSystem → Maintenance → Error Logs

Между выпусками 4.0 и 4.1 менялись сигнатуры методов и ключи массивов — места, отмеченные в этом курсе как зависящие от выпуска, проверяйте в своём коде первыми.

Частая ошибка

Правку вносят прямо в файл ядра — «там же одна строчка». Через полгода выходит обновление с исправлением уязвимости, и поставить его нельзя: никто не помнит, что и где менялось. Всё своё держите в extension/ и подключайте через события — тогда обновление сводится к копированию файлов и запуску одного сценария.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.