Миграция Joomla между версиями: типичные ошибки
Переход Joomla 3 на 4 или Joomla 4 на 5 ломается не на кнопке обновления, а на расширениях, шаблоне, PHP и старых настройках. Разбираем рабочий порядок миграции и ошибки, которые стоит поймать до запуска.

Миграция Joomla 3.x на 4.x или Joomla 4.x на 5.x чаще всего заканчивается ошибкой не из-за самой CMS, а из-за несовместимого расширения, шаблона или версии PHP. Рабочий путь выглядит так: копия сайта, проверка окружения, аудит расширений, миграция на тестовом стенде и только потом обновление боевого домена. На небольшом сайте это занимает несколько часов, но исправление неудачной миграции без копии может растянуться на дни.
Сначала определите маршрут миграции
Joomla 3.x и Joomla 4.x отличаются не только внешним видом панели. В Joomla 4 изменились структура шаблонов, набор API и требования к расширениям. Поэтому перенос с 3.x на 4.x — это полноценная миграция. Переход с Joomla 4.x на 5.x обычно ближе к обновлению, но несовместимые расширения всё равно могут остановить процесс.
| Маршрут | Что проверить в первую очередь | Главный риск |
|---|---|---|
| Joomla 3.x → 4.x | Переходную ветку Joomla 3.10.x, расширения, шаблон, PHP | Старый шаблон или компонент не поддерживает новую архитектуру |
| Joomla 4.x → 5.x | Последний доступный релиз Joomla 4.x, совместимость расширений и PHP | Расширение формально устанавливается, но падает при открытии страницы |
| Перенос на новый сервер с одновременным обновлением | Версии PHP, базы данных, веб-сервера и права на файлы | Нельзя понять, что сломало сайт: миграция или новое окружение |
Если сайт работает на Joomla 3.x, не пытайтесь перескочить сразу на Joomla 5.x. Сначала обновите его до актуального состояния ветки 3.10.x и пройдите предусмотренный для этой ветки путь миграции в Joomla 4.x. Для Joomla 4.x сначала установите последний доступный релиз этой ветки, затем проверяйте переход на Joomla 5.x по официальной матрице совместимости.
Главный признак готовности к миграции — не зелёная кнопка обновления, а список расширений, для которых известна совместимая версия.
Расширение — общее название компонентов, модулей, плагинов и шаблонов Joomla. Компонент обычно добавляет отдельный раздел и функции, модуль выводит блок на странице, плагин меняет поведение системы в определённый момент.
Два рабочих подхода
Обновление на копии сайта
Это основной вариант для магазина, корпоративного сайта и проекта с платными расширениями. Вы создаёте копию файлов и базы данных, закрываете её от индексации, выполняете миграцию там и только после проверки повторяете действия на боевом сайте либо переносите готовую копию.
Цена подхода — время на создание стенда и синхронизацию новых заказов или заявок, которые появились на боевом сайте во время тестов. Выигрыш — возможность несколько раз повторить миграцию без риска для посетителей.
Обновление напрямую на боевом сайте
Такой путь допустим только для небольшого сайта, который можно быстро вывести из эксплуатации, и при наличии проверенной резервной копии. Перед началом установите режим обслуживания, сохраните файлы и базу данных отдельно от сервера и убедитесь, что восстановление действительно работает.
Цена — простой процесс. Риск — несколько минут недоступности могут превратиться в длительный простой, если после обновления окажется несовместимым шаблон или платёжный плагин.
| Критерий | Копия сайта | Боевой сайт |
|---|---|---|
| Безопасность проверки | Высокая: ошибки не видят посетители | Низкая: ошибка сразу влияет на сайт |
| Время подготовки | Больше: нужен стенд и план переноса | Меньше, если резервная копия уже готова |
| Подходит для | Магазина, портала, сайта с интеграциями | Небольшого сайта без критичных заявок |
Что проверить до нажатия кнопки обновления
- Зафиксируйте исходное состояние. Запишите версию Joomla, PHP, базы данных, веб-сервера и список установленных расширений. Отдельно сохраните список пользовательских изменений в шаблоне: они не всегда входят в обновление расширения.
- Сделайте две независимые копии. Нужны архив файлов и экспорт базы данных. Храните их не только на том же сервере: сбой диска или неверные права не должны уничтожить и сайт, и резервную копию.
- Проверьте PHP. Сверьте требуемую версию с документацией целевой Joomla и каждого критичного расширения. Не переключайте PHP на боевом сайте одновременно с миграцией, если можете проверить это заранее на копии.
- Проведите аудит расширений. Удалите неиспользуемые компоненты и плагины, а для остальных найдите версии с поддержкой целевой ветки Joomla. Простое отключение старого расширения не всегда достаточно: его таблицы и вызовы могут остаться в базе или шаблоне.
- Проверьте шаблон. Откройте главную страницу, меню, материалы, форму обратной связи, поиск и страницы с нестандартными позициями модулей. Старый шаблон может загрузиться частично, но потерять стили, меню или вывод модулей.
- Повторите миграцию на стенде. После обновления проверьте не только главную страницу, но и вход администратора, создание материала, загрузку изображения, поиск, формы, заказ и уведомления, если это интернет-магазин.
Типичные ошибки и как их разбирать
1. Обновление остановилось на проверке совместимости
Частая причина — компонент или плагин не сообщает Joomla сведения о совместимости с целевой веткой. Иногда проблема возникает из-за старой версии самого расширения, а иногда — из-за отключённого или повреждённого канала обновлений.
Сначала обновите расширение в текущей ветке Joomla, если разработчик это поддерживает. Затем проверьте страницу проекта и журнал обновлений. Не обходите предупреждение удалением записи о расширении из базы: так вы потеряете контроль над его файлами и обновлениями.
2. После обновления появляется белая страница или HTTP 500
Белая страница обычно означает фатальную ошибку PHP, но сама по себе ничего не объясняет. Ищите запись в журнале PHP и журнале веб-сервера, временно включайте отображение ошибок только на тестовой копии и не оставляйте его включённым для посетителей.
Типичные причины — вызов устаревшего класса, несовместимый плагин, изменившийся шаблон или слишком старая версия PHP. Отключайте подозрительные расширения по одному через административную панель или предусмотренный Joomla способ восстановления, затем повторяйте проверку на копии.
3. Админка открывается, а сайт показывает ошибку шаблона
Так бывает, когда административная часть уже работает, но фронтенд использует старый шаблон или переопределение вывода. Временно выберите штатный шаблон целевой версии и проверьте страницы снова. Если ошибка исчезла, переносите пользовательские изменения по одному, а не копируйте старую папку целиком.
4. Пропали меню, модули или материалы
Проверьте не только наличие данных в базе, но и языки, пункты меню, назначение модулей, права доступа и состояние публикации. После миграции может измениться позиция модуля в шаблоне или правило доступа, хотя сам материал никуда не исчез.
5. Миграция завершилась, но не работает форма или оплата
Интеграции ломаются тише всего: главная страница выглядит нормально, а заявка не приходит или платёжный возврат не обрабатывается. Пройдите тестовый сценарий целиком — от заполнения формы до письма и записи в админке. Ключи и настройки не меняйте одновременно с версией CMS, иначе будет трудно найти источник проблемы.
Что часто ломают сами владельцы сайта
- Обновляют Joomla до проверки шаблона и платных расширений.
- Считают архив панели управления полноценной резервной копией, не проверив восстановление.
- Меняют PHP, Joomla, тему и базу данных в один вечер.
- Отключают предупреждение о расширении вместо поиска совместимой версии.
- Проверяют только главную страницу и не тестируют формы, поиск, личный кабинет и заказы.
Если сайт принимает заказы, добавьте в план миграции окно низкой нагрузки и способ временно остановить новые операции. Для информационного сайта важнее заранее проверить индексацию, канонические адреса, меню и редиректы. Резервная копия должна быть не обещанием, а проверенным сценарием отката.
Что делать после успешной миграции
В первые сутки проверьте журнал PHP, журнал веб-сервера, ошибки JavaScript в браузере и статус задач планировщика, если сайт ими пользуется. Сравните несколько важных страниц с копией: URL, заголовки, мета-теги, изображения и формы. Отдельно проверьте скорость ответа и расход памяти на страницах каталога или поиска.
Через несколько дней удалите временный стенд, если он доступен из интернета, и обновите документацию проекта: новую версию Joomla, PHP, список расширений и дату последней проверенной резервной копии. Следующим шагом сделайте не «ещё одно обновление», а регулярный тест восстановления и список критичных пользовательских сценариев.
Гид по Госуслугам и 3-НДФЛ: Пособия, маткапитал, вычеты за лечение, ИИС и квартиру.
Спросить за 15 ₽Источники: Joomla Documentation: upgrading between versions, Joomla Manual: официальная документация для разработчиков и администраторов
Частые вопросы
Можно ли перейти с Joomla 3 сразу на Joomla 5?
Что делать, если после миграции сайт показывает белую страницу?
Нужно ли обновлять PHP одновременно с Joomla?
Можно ли делать миграцию на рабочем сайте ночью?
Что делать, если админка работает, а страницы сайта — нет?
Как понять, что резервная копия действительно пригодна для отката?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.