Короткі зауваження щодо процесу оновлення сайту на Magento
В даній статті ми розглянемо основні моменти, на які слід звернути свою увагу при оновленні двигуна Мадженто з однієї версії на іншу (в межах версій 1.4 – 1.9.x).
Мета цієї статті полягає в тому, щоб показати ручний спосіб оновлення, а також звернути увагу на деякі проблеми, які можуть статися при спробі оновлення.
Процес ручного оновлення
Перед оновленням інтернет-магазину на Magento вам необхідно перевірити кастомні модулі, а також якість коду. Від цього залежить не тільки час виконання оновлення, а й взагалі сама можливість такої процедури. Якщо, наприклад, у вас багато користувацьких модулів, велика ймовірність того, що при оновленні з більш старої версії на новішу, виникнуть конфлікти в коді. А це може унеможливити саму процедуру оновлення платформи.
- Оцініть якість коду модулів
Найперше, що потрібно перевірити, — чи використовувалося при розробці магазина редагування файлів ядра. Хоча так і не потрібно робити, цілком ймовірно, що файли ядра змінювалися програмістом. Найоптимальнішим засобом для виконання цієї процедури є порівняння коду, щоб виявити наявність/відсутність відмінностей в коді файлів ядра. Перевіряти треба одну і ту ж версію двигуна (використовувану магазином, і з репозиторію).
Якщо змін немає, тоді подивіться в локальних модулях, чи не було там перевизначень функцій ядра.
- Зробіть повний бекап сайту
Ніколи не намагайтеся робити оновлення на сайті, який розміщений на хостингу і доступний он-лайн. Для цієї мети у вас повинен бути або тестовий піддомен, або локальний веб-сервер. Щоб убезпечити себе і прикрити тил, перед процесом оновлення робіть повний бекап діючого магазину (і бази даних, і всіх файлів двигуна). Використання локального сервера дозволить вам приділити достатньо часу тестуванню нової версії після успішного оновлення.
Після цього завантажте нову версію платформи і розмістіть всі її файли на тестовому сервері.
- Перенесіть всі основні файли зі старої версії в нову
Після розміщення файлів нової версії двигуна Мадженто на локальному веб-сервері, вам потрібно буде перенести (скопіювати) всі файли шаблону, модулів і макетів зі старої версії. Зазвичай до цих файлів відносяться:
app/etc/modules
(всі модулі середовища community і local)app/code/community
(всі файли і папки модулів сторонніх розробників)app/code/local
(всі файли і папки локальних модулів)app/design/adminhtml
(будь-які користувацькі шаблони для Панелі адміністрування)app/design/frontend
(всі файли користувацьких тем)skin/adminhtml
(всі файли користувацького дизайну для Панелі адміністрування)skin/frontend
(всі файли користувацького дизайну)media
(практично всі файли з цієї папки потрібно переносити; в основному тут містяться картинки товарів)- користувацькі файли в корені сайту (наприклад,
robots.txt
,sitemap.xml
та подібні)
Врахуйте, що цей перелік може бути не повним, тому звертайте увагу на особливості вашого власного магазину.
- Імпортуйте в тестове середовище стару базу даних
Після перенесення всіх файлів на локальний сервер, вам потрібно створити нову базу даних на тестовому сервері та імпортувати дамп (бекап) бази даних, який ви зберегли з вашого старого інтернет-магазину.
- Переконайтеся, що після п.4 нова версія сайту працює
Отже, тепер у вас повинна бути нова версія Magento, яка використовує стару тему. На цьому етапі складно провести комплексне тестування платформи, оскільки все ще використовується база даних зі старої версії, але можна виявити найтиповіші помилки сумісності.
- Видаліть файл
local.xml
в папціapp/etc
На цьому етапі видаліть файл local.xml
. Мета цього полягає в тому, щоб система думала, що ми намагаємося запустити нову інсталяцію. На тестовому сервері видаліть, або ж просто перейменуйте файл app/etc/local.xml
.
Також ви можете не видаляти цей файл, а оновити в ньому дані підключення до бази даних. Це також повинно запустити процес оновлення без необхідності проходити заново процес встановлення.
- Запуск процесу оновлення з новими файлами і старою базою даних
Тут відбувається основне диво. Нові файли ядра містять всі MySQL сценарії, які дозволять запустити процес оновлення для всіх core функцій Magento. Все, що потрібно зробити, щоб розпочати оновлення, — це оновити головну сторінку магазину на локальному сервері.
- Дочекатися завершення процесу оновлення
Процес оновлення платформи на цьому етапі залежить від величини відмінностей між старою і новою версіями. Якщо ви оновлюєтеся з версії, наприклад, 1.7 на версію 1.9, тоді цей процес може тривати і годину.
Якщо під час процедури оновлення виникають помилки, ви можете або спробувати знову з новою (чистою) базою даних, або оновити інсталяцію – вона повинна продовжитися з того місця, де була зупинена.
- Пошук та усунення несправностей
Після успішного завершення процесу оновлення потрібно буде виконати пошук і усунення несправностей. Для початку очистіть кеш. Якщо ви не можете увійти до Панелі адміністрування, перейменуйте папку /var/cache
і тоді система Magento сама створить цю папку та повністю очистить власний кеш.
Після цього виконайте реіндекс всіх даних, оскільки під час оновлення записи в базі даних могли бути зіпсовані.
Тепер потрібно ретельно протестувати сайт і перевірити ще раз правильність роботи всіх типів сторінок в магазині. Тут проблеми можуть виникати, наприклад, через зміну інструкцій у файлах макета в core шаблоні.
Нарешті, коли ви будете повністю задоволені роботою нової версії двигуна, замініть всі файли на діючому сайті, файлами з новою версією із локального веб-сервера. Також не забудьте замінити і базу даних.