Внимание, статья устарела! Алгоритм обновления Joomla 2.5 до 3, описанный в ней, сейчас не работает. Актуальная инструкция: И снова миграция сайта с Joomla 2.5.28 на Joomla 3.8.3!

Вероятно, это не первая статья на данную тему, которую вы читаете, поэтому я не буду писать никаких развернутых предысторий о прекращении поддержки Joomla 2.5 и то, чем это грозит. Нет обновлений для 2.5, нет заплаток - уязвимости остаются открытыми, с каждым месяцем все больше и больше угроза взлома сайта. Вы решили перейти на более новую и актуальную версию Joomla 3 - и правильно сделали.

Обманчивая простота

Переход с Joomla 2.5 на Joomla 3 теоретически может быть осуществлен парой кликов мыши. Нужно лишь зайти в настройки обновления и выбрать "Обновления с короткой поддержкой". После этого система с радостью предлагает нам автоматически обновиться с версии 2.5.* до версии 3.*.*.

1. В основном разделе Панели управления, выбираем выделенный на рисунке пункт.

Если ваша версия Joomla "не самая новая", обновите ее до версии 2.5.28, а затем зайдите в меню настроек обновлений и выберите пункт "Дистрибутивы Joomla с короткой поддержкой".

После этого Joomla "одумается" и при закрытии этого окна предложит обновиться до версии 3.*.

Не делайте этого ни в коем случае!!! Рискуете так "уронить" сайт, что потом его поднять будет очень непросто, особенно, если ваш хостинг-провайдер не делает регулярных бэкапов (это, кстати, стоит выяснить заранее).

Обновление "с лету" сработает только в том случае, если оно ставится на "девственно чистый" сайт Joomla 2.5, на который не устанавливалось никаких расширений и плагинов, что на практике бывает крайне редко. 

Что происходит с сайтом на Joomla во время обновления?

Сайт на Joomla в общем и целом состоит из четырех компонентов - сам движок, база данных, расширения и полезный контент.

С контентом при обновлении движка ничего не происходит - он лежит как бы "отдельно" и что бы не произошло с файлами движка (хоть полностью их удалить), контент останется невредимым. Исключение - папка /images, в ней лежат картинки из статей. Не удаляйте ее!

Когда мы запускаем процесс обновления, запускается сценарий, который выполняет следующие действия:

  • Перезапись файлов движка (файлы Joomla 2.5 заменяются на файлы Joomla 3)
  • Обновление структуры базы данных (чтобы привести ее в соответствие с требованиями Joomla 3)

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

Самое большое количество подводных камней таится в расширениях, которые были установлены на сайт - комментарии, фотогалерея, гостевая книги, лайки, виджеты, модули и т.д. Даже если в описании расширения указано, что оно совместимо с Joomla 3, на вашем старом сайте стоит версия для Joomla 2.5 и оно поведет себя на обновленном движке в полном соответствии с законом Мерфи "если неприятность может случиться - она обязательно случится!"

Именно поэтому перед процессом обновления движка нужно безжалостно снести все расширения, плагины и модули, которые вы когда-то устанавливали. Это делается через меню "Расширения" - "Менеджер расширений". Рекомендую выбрать тип расширений "Пакет", чтобы удалять компоненты не по одному, а сразу "пачками".

Сохраняем названия пакетов расширений, например, копируем их в текстовый файл в Блокноте - чтобы потом иметь список расширений, которые нужно будет скачать и установить уже на Joomla 3.

Помечаем все расширения, которые устанавливали и нажимаем кнопку "Деинсталлировать". После процесса деинсталляции меню "Компоненты" должно выглядеть так (чистый сайт на Joomla 2.5):

Теперь мы почти готовы к обновлению Joomla. Проверяем еще раз, что нужно было сделать:

1. Перенести сайт с удаленного на локальный хостинг (например, Денвер) и запустить его.

2. Снести все установленные дополнительные компоненты (на локальном хосте).

3. Выбрать в настройках источников обновления "Дистрибутивы с короткой поддержкой".

Чтобы подготовиться к обновлению окончательно, нужно убедиться, что настройки PHP в Денвере дадут возможность загрузить апдейт и обеспечить достаточное время ожидания, пока выполнится скрипт обновления. Обычно в Денвере стоит ограничение объема закачиваемого файла в 2 мегабайта, а максимальное время исполнения скрипта - 30 секунд. Эти ограничения нужно снять. Делается это следующим образом. В каталоге x:\usr\local\php5 (x: - буква виртуального диска Денвера) найти файл php.ini. Его надо открыть в редакторе и внести следующие правки:

max_execution_time = 300

upload_max_filesize = 200M

post_max_size = 200M

Параметры ищутся простым поиском (Ctrl+F) и им прописываются новые значения. В приведенном выше случае - с большим запасом (я просто ноликов добавил). Чтобы параметры вступили в силу нужно перезапустить Denwer.

Заключительным аккордом является очистка кэша Joomla, чтобы старые и неактуальные данные не стали помехой при обновлении. 

Только после этого запускаем обновление Joomla. Ждем, пока система сначала скачивает файл апдейта, а потом выполняет сценарий обновления. При этом на экране будет отображаться индикатор прогресса:

Пока система не обновится, браузер не закрываем! После завершения обновления в браузере появится форма входа в админку Joomla 3.

Процесс обновления завис?

Обновление идет как по маслу, если мы работаем с "чистым" сайтом, на котором немного контента. Процесс обновления занимает не больше минуты. Но мне недавно довелось переводить на Joomla 3 сайт, на котором было несколько сотен статей. При том, что было сделано все перечисленное выше, индикатор прогресса стоял на месте минут 15 и, вероятно, стоял бы дольше, если бы я не вышел из терпения и не закрыл данную вкладку. Что самое странное, ничего плохого с сайтом не случилось - все так же открывались страницы, работала админка Joomla 2.5. Никаких признаков неудачного апдейта не было.

Я пошел другим путем. Скачал дистрибутив Joomla 3 по предложенной системой обновления ссылке и запустил установку через менеджер расширений (как обычный плагин). Процесс пошел, причем, компьютер стал подавать признаки активной деятельности - "напрягся" кулер, затарахтел жесткий диск. И, наконец, о чудо! Joomla обновилась! После захода в админ-панель я увидел долгожданное сообщение!

Самое главное дело сделано - движок обновлен. Теперь дело за малым - скачать языковой пакет и свежие версии расширений, которые были когда-то на сайте и установить их. То же самое, возможно, придется сделать с шаблоном оформления. Но это уже мелочи жизни, с которыми, я уверен вы справитесь самостоятельно. 

Не получается! Что делать?

К сожалению, далеко не всегда переход идет "как по маслу". Вроде бы, все делаем как надо, но процесс спотыкается на каком-то этапе, сайт "падает" и единственный способ его воскресить - откатить до предыдущего удачного состояния через админку хостинг-провайдера.

Если вы перепробовали все, но перевод с Joomla 2.5 на Joomla 3 так и не удался, можете Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.

Я в своей практике уже несколько раз сталкивался со сложными случаями в практике и каждый раз успешно решал эти задачи. Попробую решить и вашу за умеренное вознаграждение! :)