👀 Блогу Zegeberg намедни стукнуло 6,5 лет, а движок был, хоть и адаптированный, но старый и требовал постоянной штопки. Миграция с Joomla 1.5 стучалась в двери всеми частями тела, но сложность заключалась в том, что мигрировать через перенос базы данных был не вариант. Почему? Много страниц требовало корректировки или достойных похорон – битые ссылки и видео, мусор в коде и потерявшая актуальность информация требовали внимания рук.
Мной выбран нервный, но единственный вариант – ручная миграция с Joomla 1.5 на последнюю версию движка 3.6. Ниже я расскажу, какие телодвижения мной производились, результат же работы у вас на глазах - 660 страниц мигрировало.
Что входит в ручную миграцию
Времени на миграцию потребовалось 3 недели по 2 часа в день, а работа включала в себя:
- Установку Денвера,
- Создание меню,
- Создание идентичной структуры разделов,
- Перенос фото,
- Настройку и корректировку стилей + компоненты,
- Ручной перенос материалов с правкой,
- Техническую настройку сайта,
- Перенос файлов и БД на хостинг,
- Переключение директории и БД блога.
Задачи миграции
У миграции блога было несколько главных задач, кроме обновления движка, как такового. Я сам от себя требовал:
- Сохранения адресов страниц и разделов,
- Максимально возможное сохранение дизайна,
- Дополнение старого функционала новыми фишками.
С url всё понятно – нет смысла изменять адреса и заново зеленеть в ожидании трафика, сложнее с дизайном, так как шаблон с Joomla 1.5 перенести нельзя – надо максимально близко вывести новый шаблон. Я работал с Protostar, частично переделав его под себя.
Структура и фото
☝ Про установку Денвера я скромно промолчу, предположим, он уже стоит, поэтому начинаю с создания структуры и перемещения фото. Сначала создаём меню, что не вызывает вопросов – полная зеркальность со старым движком, после этого переходим к категориям и разделам. На Joomla 1.5 структура:
Раздел – категория – материал
На Joomla 3.6:
Категория – подкатегория – материал.
Помним золотое правило – сохранение урл, поэтому тупо открываем старую админку, копируем урлы, описание и название разделов и создаём аналогичные на Денвере. Сначала, дабы избежать винегрета, я создал зеркальные разделам категории, затем идентичные подкатегории. Работа чисто техническая – копируем, вставляем, проверяем корректность адреса и отображения.
Отсутствие фото на Денвере больно бьёт по интересу, поэтому переносим все фото со старого сайта на Денвер. Сохраняем все пути картинок, при необходимости переносим полностью с папками. Если на движке 1.5 фото не были оптимизированы, то рекомендую софт Irfan View. Сжимайте фото по пути:
File – Batch – галочка Include – указываете откуда брать фото и куда пережимать – Start.
Рекомендую пропустить через Irfan все изображения старого сайта, включая системные. С форматами разберётесь легко, это не самая сложная часть миграции.
Также под категории создайте метки – они расширят удобство навигации по сайту, не всадив кинжал в спину былых достоинств структуры.
Стили и компоненты
Это можно было сделать и первым делом, но большой разницы нет – теперь выбираете и подгоняете под себя шаблон, корректируете стили и устанавливаете компоненты. Я выбрал шаблон Protostar и настроил его:
- Создал новое горизонтальное меню (можете использовать исходное, но мне оно не по душе),
- Подкорректировал ширину контейнера для разных разрешений,
- Поиграл с цветами и шрифтами,
- Переиграл шапку.
По линии компонентов я сторонник минимализации, но совсем без них не обойтись. На Joomla 3.6 я установил:
- XMAP,
- News Show Pro GK5,
- JComments Latest,
- Optimized FB Like Box,
- mod_myextpagetitle,
- AutoToC,
- Sj Related News,
- 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.
Остаётся проверить работу сайта после миграции. Рекомендую пробить на:
- Битые ссылки,
- Ответы HTTP,
- Редирект с www,
- Валидность,
- Отображение в разных разрешениях,
- Дубли (используйте Spider).
✔ Финальное нажатие на клавишу – это переключение на PHP 7, что сократит время ответа сервера и сделает сайт шустрее.
«Долгий путь проделал Миклухо-Маклай, чтобы выйти к океану».