Оберіть свою мову

Про сайт

Featured

Оновлення Joomla 3 до 4 на прикладі сайту Aleksius.com

 

У планах розробників Джумла 3-я версія повинна була підтримуватись до 17 серпня 2023 року. Думаю, що більшість розробників сторонніх шаблонів і розширень теж дотримуватимуться приблизно цих термінів. У зв'язку з цим я вже розглядав це питання у статті «Коли, навіщо та як потрібно оновлювати сайт. На прикладі Joomla».

Свій основний сайт Aleksius.com, та два інших (Aleksius.biz і Magazin.aleksius.com) вже оновив Joomla 4 і продовжую вести роботи, пов'язані з усуненням різних «проблем». Сайт Magazin.aleksius.com працював на VirtueMart 3 зараз оновлений до VirtueMart 4.

У статті поділюся основними етапами, які пройшов під час оновлення сайту Aleksius.com. Здебільшого, це теоретична стаття без покрокових конкретних інструкцій, що застосовуються до всіх сайтів. Статтю написано 10.12.2022, а оновлено 28.10.2023.

А у статті «Як оновити Joomla 4 до 5. На прикладі сайту Aleksius.biz» є відео з покроковим оновленням. А у цій статті показано процес оновлення Джумла 5 до 6.

У мене вже є досвід поновлення клієнтських сайтів з Joomla 2.5 до 3 і з 3 до 4. Кожен сайт «унікальний». На ньому встановлено свою версію Joomla у поєднанні зі своїми розширеннями різних версій, з різними налаштуваннями, на різних хостингах з різними версіями серверного програмного забезпечення. На деяких сайтах є самописні розширення або змінені розширення. Тому щоразу процес оновлення багато в чому відрізняється.

Коротка передісторія сайту

Сайт Aleksius.com був викладений в інтернет у січні 2010. Спочатку він був зроблений на Joomla 1.5 із шаблоном, який зроблено в Artisteer. З самого початку на сайті було встановлено компонент коментарів Ccomment (тоді він називався Compojoom comment ).

Потім створив нову версію сайту на Joomla 1.6 і вручну переніс усі матеріали, коментарі, тощо. Простого оновлення не було, а про сторонні розширення для міграції тоді ще не знав. Плюс, контенту було мало, а вільного часу та бажання вчитися працювати з Джумлою багато.

Після «ручного оновлення» з 1.5 до 1.6 регулярно проводив оновлення усередині версій та з версії на версію до 1.7, 2.5, 3.0, 3.1 і до Joomla 3.10 (на кінець 2022). У 2015 році (Joomla 3.4) перейшов із «саморобного» шаблону Artisteer на готовий шаблон JM Job Listings від Joomla-monster.com (зараз це Dj-extensions.com). З цим шаблоном сайт працював приблизно до листопада 2022 року.

Паралельно з оновленнями Joomla на сайті з'являлися, оновлювалися та змінювалися різні розширення (це основні з них):

  • AcyMailing. E-mail розсилання.
  • Akeeba Backup. Резервне копіювання.
  • Attachments. Вкладення файлів.
  • Ccomment. Коментарі.
  • DJ-MegaMenu. Меню.
  • JCH Optimize. Оптимізація швидкості завантаження сайту.
  • JChatSocial Enterprise. Чат.
  • JM Job Listings. Шаблон
  • JSitemap PRO. Карта сайту.
  • RSFirewall. Захист від злому.
  • SEO Glossary. Глосарій.
  • sh404SEF. Генерація URL-адрес та SEO.

В середньому проводив від 6 до 20 «великих» оновлень сайту на рік. Спочатку у мене було менше досвіду, більше часу і я оновлював Joomla та її розширення майже одразу після їх появи на сайтах розробників. З досвідом зрозумів, що оновлення можуть призвести до проблем, причому таких, які можуть бути виявлені через кілька днів. Поступово відпрацював «безпечну», але не швидку методику оновлення, якою користуюся досі.

До оновлення

У Joomla 3.10 вбудований інструмент перевірки сумісності з 4-ю Джумлою. До запуску цього інструмента перевірив сайти всіх розробників розширень та шаблонів, які використовував. З деякими розробниками довелося списуватись особисто. З'ясував, що ряд розширень їх розробники не планують адаптувати до роботи з Joomla 4. Наприклад:

  • Attachments
  • JM Job Listings .
  • sh404SEF.

На сайті у мене було близько 920 файлів у 170 матеріалах у вигляді вкладень. Всі вони були додані на сайт за допомогою компонента Attachments. Проаналізувавши альтернативи, вирішив перейти на Dropfiles. На жаль, довелося вручну перенести всі файли з Attachments в Dropfiles. На це, а також налаштування нового компонента було витрачено близько 20 годин роботи. Це я зробив ще на Joomla 3.

Замість шаблону JM Job Listings був обраний Binv. На пошук, порівняння, налаштування та написання CSS стилів для шаблону та всіх розширень сайту, для їх більш гармонійного поєднання було витрачено близько 30 годин. І це з урахуванням того, що частина «унікальних» стилів скопіювала з попереднього шаблону. Також не варто забувати про ціну річної ліцензії – 59$ (на момент покупки шаблону). Досі я знаходжу і виправляю стилі, щоб сайт виглядав так, як хочу (це вже на Joomla 4.4).

Найбільше тестів та роздумів було із заміною sh404SEF. Його розробник повністю переписав це розширення, розділивши його на 4SEO та 4SEF. Замість SEO опцій, доступних у sh404SEF, вирішив використовувати 4SEO, а 4SEF вирішив не використовувати взагалі. Натомість залишив «рідний» роутер Joomla. У нових версіях Джумли з'явилася можливість вимкнення вставки ID в URL матеріалів. На 90% мене це влаштувало. Без sh404SEF змінилися адреси сторінок термінів глосарію та пагінації. Для глосарію я написав перенаправлення у файл «.htaccess», а URL пагінації взагалі закрив від індексації за допомогою правила у 4SEO та в «robots.txt». Довелося написати аліаси для термінів глосарію та провести ще низку робіт та тестів. На це все витратив близько 20 години роботи. Це було вже на Joomla 4.

Також повністю відмовився від деяких не дуже важливих чи більш не актуальних розширень.

Оновлення

У зв'язку з професійним інтересом я провів близько 10-15 тестових оновлень Joomla 3 до 4. Пробував вбудований інструмент оновлення, MigrateMe 4 та перенесення таблиць бази даних у «чисту» Joomla 4. Дійшов висновку, що вбудований інструмент оновлення дав кращий результат. На другому місці MigrateMe 4. А от із ручним перенесенням таблиць бази даних виявилося дуже багато проблем. Можливо, мені просо не вистачило навичок. На це пішло близько 25 години.

У процесі оновлення довелося відключити деякі розширення (за порадою інструменту перевірки), оновити всі розширення до останньої версії, а потім запустити процес оновлення. Сайт уже працював на PHP 8.0. Оновлення проходило на локальному сервері Open Server Panel. Довелося збільшити час виконання скрипту в налаштуваннях сервера. На це пішло близько однієї години.

Після оновлення Joomla

Після оновлення Джумли взявся за оновлення всіх розширень, які потрібно було оновити, але вже на 4 версії CMS. Виконав міграцію деяких налаштувань, встановив шаблон та почав тестувати.

Під час тестів виявилася проблема з Ccomment. Після міграції не додавали нових коментарів. Рішення знайшлося на форумі розробника. Також було знайдено та вирішено масу дрібних «проблемок». Завдяки вирішеним на попередньому етапі проблемам з Attachments, знайденою заміною всіх розширень, експериментам з оновленнями, а також знанням «історії» сайту, не зіткнувся з великими проблемами.

Проводив ряд тестів із вже відпрацьованої «методики», знаходив і виправляв помилки і так кілька ітерацій.

Потім переніс сайт на хостинг, але тестовий домен. Знову провів тестування, а переніс вручну пару десятків коментарів та кілька статей із сайту на Joomla 3. Це було потрібно, оскільки з моменту створення копії сайту на 3-й версії Джумла до її оновлення та перенесення на основний домен пройшло кілька тижнів.

Потім переніс сайт на Джумла 4 на основний домен, а сайт на Джумла 3 - тестовий (він закритий від індексації). Після перенесення знову провів тестування та виправив знайдені недоліки. На все це без урахування часу, зазначеного вище в розділах «До оновлення» та «Оновлення», пішло близько 10 годин.

На 28.10.2023 новий сайт вже близько десяти місяців працює на основному домені. Він активно індексується пошуковими роботами Google та Bing. Я постійно з ним працюю, записую в список те, що потрібно зробити, і періодично вношу виправлення. Процес триває…

Витрати за часом, грошима та підсумки оновлення

У результаті мої загальні витрати за часом склали приблизно 106 годин (не враховуючи час після перенесення сайту на робочий домен). Можна було б скоротити час тестування варіантів оновлення з 25 до 2-3 годин, але в іншому відчутних скорочень за часом я б не досяг. Принаймні, залишивши той самий підхід до вибору нових розширень та багаторазового тестування всього сайту. Але вибір розширень – це робота на перспективу. А ітераційне тестування мінімізує, але не виключає, ризик виявлення проблем на вже робочому сайті.

Незважаючи на багаторазове тестування, без проблем після перенесення сайту на основний домен не обійшлося. Виявилося дворазове перевищення лімітів на процесорні хвилини мого хостинг облікового запису через моє неправильне налаштування плагіна «Система - HTTP Headers». Рішення було досить простим – залишити налаштування за замовчанням (а я їх змінював ще на локальному сервері).

Так як у мене вже були підписки на всі потрібні мені розширення, витрати за грошима склали всього 59$ за шаблон (на перший рік підписки).

За перші півтора місяці роботи оновленого сайту змін позицій чи відвідуваності сайту не спостерігав. Також не спостерігав змін середнього часу сеансів користувачів, глибини перегляду сайту та інших аналогічних показників у Google Analytics або Google Search Console .

У Google Search Console та Bing Webmaster з'явилися різні дані, що свідчать про те, що пошукові системи бачать зміни в деяких URL-адресах, заборона на індексування неіснуючих сторінок та інша подібна інформація. Повідомлень про значні помилки не спостерігав.

На даний момент, вважаю, що процес пройшов дуже вдало. Якщо у вас є запитання, пишіть їх у коментарях.

Автор статті – Хорошевський Олексій
Хорошевський Олексій

Кандидат технічних наук, викладач Харківського національного університету радіоелектроніки, веб-майстер та SEO-оптимізатор із досвідом роботи понад 15 років. Спеціаліст зі створення сайтів на Joomla та WebSite X5. Автор наукових публікацій, відеокурсів та навчального контенту з веб-розробки та SEO. Веде блог та YouTube-канал, де ділиться своїми знаннями та практичним досвідом.
Надає послуги зі створення, доопрацювання, супроводу та просування сайтів. Докладніше про автора…

Соціальні мережі:

Публікації та робота:

Схожі матеріали

Завантаження коментаря... Коментар буде оновлено через 00:00.
Напишіть коментар...
- символів залишилося.
або залишити коментар як гість