👀 Блогу Zegeberg намедни стукнуло 6,5 лет, а движок был, хоть и адаптированный, но старый и требовал постоянной штопки. Миграция с Joomla 1.5 стучалась в двери всеми частями тела, но сложность заключалась в том, что мигрировать через перенос базы данных был не вариант. Почему? Много страниц требовало корректировки или достойных похорон – битые ссылки и видео, мусор в коде и потерявшая актуальность информация требовали внимания рук.

Мной выбран нервный, но единственный вариант – ручная миграция с Joomla 1.5 на последнюю версию движка 3.6. Ниже я расскажу, какие телодвижения мной производились, результат же работы у вас на глазах - 660 страниц мигрировало.

Что входит в ручную миграцию

Времени на миграцию потребовалось 3 недели по 2 часа в день, а работа включала в себя:

  1. Установку Денвера,
  2. Создание меню,
  3. Создание идентичной структуры разделов,
  4. Перенос фото,
  5. Настройку и корректировку стилей + компоненты,
  6. Ручной перенос материалов с правкой,
  7. Техническую настройку сайта,
  8. Перенос файлов и БД на хостинг,
  9. Переключение директории и БД блога.

Задачи миграции

У миграции блога было несколько главных задач, кроме обновления движка, как такового. Я сам от себя требовал:

  1. Сохранения адресов страниц и разделов,
  2. Максимально возможное сохранение дизайна,
  3. Дополнение старого функционала новыми фишками.

С url всё понятно – нет смысла изменять адреса и заново зеленеть в ожидании трафика, сложнее с дизайном, так как шаблон с Joomla 1.5 перенести нельзя – надо максимально близко вывести новый шаблон. Я работал с Protostar, частично переделав его под себя.

Структура и фото

☝ Про установку Денвера я скромно промолчу, предположим, он уже стоит, поэтому начинаю с создания структуры и перемещения фото. Сначала создаём меню, что не вызывает вопросов – полная зеркальность со старым движком, после этого переходим к категориям и разделам. На Joomla 1.5 структура:

Раздел – категория – материал

На Joomla 3.6:

Категория – подкатегория – материал.

структура меню

Помним золотое правило – сохранение урл, поэтому тупо открываем старую админку, копируем урлы, описание и название разделов и создаём аналогичные на Денвере. Сначала, дабы избежать винегрета, я создал зеркальные разделам категории, затем идентичные подкатегории. Работа чисто техническая – копируем, вставляем, проверяем корректность адреса и отображения.

Отсутствие фото на Денвере больно бьёт по интересу, поэтому переносим все фото со старого сайта на Денвер. Сохраняем все пути картинок, при необходимости переносим полностью с папками. Если на движке 1.5 фото не были оптимизированы, то рекомендую софт  Irfan View. Сжимайте фото по пути:

File – Batch – галочка Include – указываете откуда брать фото и куда пережимать – Start.

Рекомендую пропустить через Irfan все изображения старого сайта, включая системные. С форматами разберётесь легко, это не самая сложная часть миграции.  

Также под категории создайте метки – они расширят удобство навигации по сайту, не всадив кинжал в спину былых достоинств структуры.

Стили и компоненты

Это можно было сделать и первым делом, но большой разницы нет – теперь выбираете и подгоняете под себя шаблон, корректируете стили и устанавливаете компоненты. Я выбрал шаблон Protostar и настроил его:

  1. Создал новое горизонтальное меню (можете использовать исходное, но мне оно не по душе),
  2. Подкорректировал ширину контейнера для разных разрешений,
  3. Поиграл с цветами и шрифтами,
  4. Переиграл шапку.

стили списка li

По линии компонентов я сторонник минимализации, но совсем без них не обойтись. На Joomla 3.6 я установил:

  1. XMAP,
  2. News Show Pro GK5,
  3. JComments Latest,
  4. Optimized FB Like Box,
  5. mod_myextpagetitle,
  6. AutoToC,
  7. Sj Related News,
  8. SmartResizer и No Doubles.

😢 Сильно компонентами не увлекайтесь, если планируете подключать PHP 7, то тем более, так как много модулей и плагинов ещё криво работают на последней версии PHP.  По факту берите всё необходимое со старого движка, но используйте только последние версии. Если компонент не работает с Joomla 3.6, то ищите ему альтернативу.

На финише этого этапа на Денвере должно быть всё нужное, кроме материалов.

Перенос материалов

Мат и плевки в монитор преследовали меня в начале миграции и корректировки материалов, так как в старых темах было столько мусора, что мама, не горюй. Одновременно исправлял битые ссылки и видео, убирал мусор из кода, правил заголовки, изменял ссылки на важные источники и т д.

С технической стороны фантазии места не было – копируются на старом сайте url, meta, title и текст и вставляются в окно редактирования на новом движке. Обязательно следите за ID материалов – они должны быть идентичны, иначе изменится урл. Как изменить ID материала в базе данных на Денвере рассказано тут.

Можно тупо перенести БД, сделав небольшую её коррекцию с учётом особенностей движка, но так перенесётся и мусор, поэтому только ручная миграция помогла мне достичь цели (сплошной пафос).

На этапе чаще проверяйте адреса новые страниц – они от корня должны быть идентичными старым. Особое внимание посадочным страницам!

Техническая настройка

После миграции материалов дело можно считать на 95% завершённым. Остаётся через БД перенести комментарии (там ручная миграция не нужна), проверить работу плагинов и компонентов, отображение и т д. Я сразу установил новый robots, настроил htaccess и поставил запрет на визиты в админку с левых IP.

Просматривайте старый сайт и смотрите, чего важного не хватает и можно архивировать файлы и делать дамп БД для переноса на хостинг.

Установка Joomla 3.6 на хостинг

👍 Я при переносе сайта сразу старый не заменял – создал на хостинге отдельную директорию и новую базу данных. В директорию перенёс файлы, в БД дамп из Денвера. Так переключить сайт в настройках домена с одного движка на другой можно за 10 секунд, что пригодится, если что-то пойдёт не так и потребуется доработка нового движка.

Подключение директории на хостинге

После переноса БД и файлов подправьте файл конфигурации:

public $host = хост

public $user = Пользователь БД

public $password = пароль к БД

public $db = тут имя БД

По ходу также укажите путь к папкам logs и tmp.

Остаётся проверить работу сайта после миграции. Рекомендую пробить на:

  1. Битые ссылки,
  2. Ответы HTTP,
  3. Редирект с www,
  4. Валидность,
  5. Отображение в разных разрешениях,
  6. Дубли (используйте Spider).

✔ Финальное нажатие на клавишу – это переключение на PHP 7, что сократит время ответа сервера и сделает сайт шустрее.

 «Долгий путь проделал Миклухо-Маклай, чтобы выйти к океану».