Как обновить Joomla с версии 2.5 на 3.2
Надоело мне всем знакомым, кто пользуется Joomla, в двадцатый раз объяснять как правильно обновляться на новую версию. Вот и решил написать небольшую шпаргалку. Никаких особенных откровений не ждите, просто немного личного опыта и рассказ о подводных камнях с которыми мне довелось столкнуться.
У меня несколько сайтов. Тематика разная, CMS используются разные, но шесть сайтов на разных версиях Joomla. Что-то из недавнего я сразу делал на 3 версию, а что-то из сделанного давно уже пережило миграцию с 1.5 на 2.5. Правда рассматривать миграцию со столь древней версии я не буду, просто уже забыл какие там были траблы. По этому сейчас речь пойдет только о миграции с Joomla 2.5 на Joomla 3.2. Этим я занимался совсем недавно, например этот сайт перевел на третью версию всего неделю назад, так что еще помню что к чему :) Раньше не переводил потому, что ждал выхода всех необходимых мне (читай - привычных) компонентов, плагинов и модулей под третью версию. И это, кстати, серьезная проблема - несовместимый компонент или плагин может не только выдать белую страницу на фронтенде сайта (лицевая страница сайта, собственно то что видят пользователи как ваш сайт), но и полностью обрушить админку. И тут уж без отката на резервную копию не обойтись. А значит первое, чем вы должны озаботится, это наличием этой самой резервной копии!
{module Баннер2}
Итак, первое что вам нужно сделать перед началом миграции - запастись резервной копией. Для этого существует замечательный компонент Akeeba Backup, который можно найти в Joomla! Extensions Directory http://extensions.joomla.org/extensions/access-a-security/site-security/backup/1606. Как им пользоваться я сейчас расписывать не буду, разберетесь сами, а если кто не разберется, то пущай готовит банку айвового варенья (можно и клубничного), я как Карлсон без горючего не летаю пишу.
В общем ставите себе Akeeba Backup, кстати к нему есть руссификация, настраиваете и делаете резервную копию сайта. От греха подальше выкачиваете ее к себе по FTP на локальный комп, ваш бекап сайта выглядит примерно так www.afx.ru-20140325-005953.zip - имя сайта-год, месяц, день-время. По умолчанию Akeeba Backup создает шифрованные файлы с расширением JAR, но лично мне удобнее использовать обычный ZIP. JAR файлы безопасней, если такой файл вдруг сопрет злоумышленник, то обломается (ну АНБ то расшифрует. И вежливые люди тоже. Говорят, вежливое использование паяльника резко снижает криптостойкость любых кодов). А ZIP... ну это обычный зип-архив, он удобен если вдруг надо вытащить из него какой-то одиночный файл.
Помимо собственно файлов сайта (в архив идет все - от .htaccess до всяких картинок) Akeeba Backup вставляет в архив и копию базы данных. Так что восстанавливая потом сайт из резервной копии вы получаете сразу работающий сайт. Так что настоятельно рекомендую Akeeba Backup всем джумловодам, это крайне полезный и удобный инструмент.
В общем обзавелись вы резервной копией сайта, теперь зайдите в админке в меню Расширения, далее Менеджер Расширений. Там выбираем вкладочку Управление и делаем сортировку по ID так, чтобы самые последние установленные расширения оказались сверху. Так просто удобней контролировать что было изначально при установке джумлы, а что вы добавили потом.
И вот это, добавленное потом, начинаем аккуратно выключать. Удалять нет нужды, но выключить желательно все сторонние компоненты, модули и плагины, которые вы ставили. А аккуратно потому, что некоторые маньяки отключают все-все-все оптом, а потом удивляются, почему вообще ничего на сайте не работает :) Тем кто узнал себя - привет, а остальные просто будьте внимательнее и читайте что выключаете. Шаблоны можно не трогать, но будьте готовы к тому что ваш любимый шаблон для 2.5 в Joomla 3.2 будет работать криво-косо.
Выключив все то, что не относится к Joomla (в смысле не входило в первоначальный дистрибутив, народная примета гласит, что место откуда начинается в списке собственно элементы системы можно узнать по полю Автор, там будет написано Joomla! Project. Выше из нужного только руссификация, а дальше можно уже отключать), мы переходим к следующему этапу. Идем в меню Компоненты. И где-то чуть пониже середины ищем пункт Обновление Joomla!. Нашли? Заходим. На экране красуется надпись "У вас уже установлена последняя версия Joomla!, 2.5.19." Не смущайтесь, справа (нет это лево, куда смотрите! Право оно с другой стороны!) сверху есть кнопочка Настройки. Жмакаем на нее и видим такое довольно пустенькое окошко настроек с выпадающим списочком посередине. В этом списке вам надо выбрать пункт "Дистрибутивы Joomla с краткосрочной поддержкой", затем сохраниться и выйти. Обычно после этого страничка сама меняется, если этого не произошло нажмите обновление странички в браузере (или F5 на клавиатуре).
Если все идет по плану, то вы увидите радостную надпись "Обнаружено обновление Joomla!". Но сразу хочу предупредить, что по плану оно идет далеко не всегда, и система с упрямым упорством твердит, что у вас последняя установленная версия 2.5.19 и ни про какой такой тры-два-тры йа не слишаль! Что делать в такой ситуации я расскажу ниже, а пока текст для тех, у кого все работает как надо.
Итак у вас на экране надпись что найдено обновление, внизу выбор как записывать файлы. Ну бекапом мы запаслись, так что записывать будем напрямую, то есть ничего не меняя просто нажимаем на кнопку. Система начинает радостно что-то качать, распаковывать, процентики менять - в общем работает. Вы тут совершенно не нужны, по этому можете пойти налить себе кофе. В принципе все ставится очень быстро, к тому моменту как вы отыщите свою любимую кружку и докипятите чайник - все уже будет давно закончено.
Вернувшись с кружкой кофе вы увидите админку третьей джумлы. Это если все нормально, тогда вы сможете прихлебывая ароматный напиток (тут могла бы быть реклама вашего сорта кофе! Ну что за олухи, эти маркетологи, такую возможность упускают!) насладиться изучением нового интерфейса и установкой любимых (и заранее скачанных!) плагинчиков, модулей и даже, не побоюсь этого слова, компонентов! Это если все нормально. Если же вы что-то упустили в процессе отключения всего лишнего, то у вас есть вероятность насладиться не только белой страницей, вместо вашего сайта, но и такой же белой админкой. И мне почему то кажется, что даже если вы очень любите белый цвет, то эта картина вас совсем не порадует. Тем не менее и для такого случая есть решение.
Первым делом нам надо выяснить - что именно вызывает у нас ошибку, которая приводит к белому экрану. Самый простой способ это открыть в текстовом редакторе (не MS Word, а что-то типа Notepad) файл configuration.php в корне вашего сайта и найти там стоку public $error_reporting = 'default';. Нашли? Вписываете туда public $error_reporting = 'development'; Теперь вы смогли включить на сайте отображение ошибок PHP. Всякие Strict Standards: Non-static method JApplicationCms::getMenu() или Notice: Undefined property: мы игнорируем, на работу сайта они никак не влияют. То что вам нужно - это Fatal error. Этот коварный эррор будет внизу страницы, последним в списке, собственно после появления фатальной ошибки выполнение скрипта и останавливается. Найдя ошибку надо внимательно поглядеть на то, что именно ее вызывает и где это "что-то" расположено. Вот для примера /home/********/plugins/xmap/com_content/com_content.php on line 12. Звездочками я заменил ненужную информацию полного пути, то что нам надо находится в плагинах. Вычислили? Значит идем в /plugins/ и удаляем папку xmap со всем содержимым. Если ошибку вызывал только этот один плагин, то после его физического удаления все должно заработать. А сам плагин вы потом переустановите уже на новую версию, совместимую с Joomla 3.2.3.
Теперь вернемся к ситуации, когда ваш сайт в упор не хочет видеть новую версию и маниакально твердит, что 2.5.19 это предел мечтаний. Был у меня такой сайт, уж как я там не извращался - и чистил кэш, и подставлял напрямую адрес сервера обновлений, но все впустую. Начав искать решение в недрах интернета, я его нашел! Это Akeeba CMS Update. Что-то знакомое в названии? Да, автор у него тот же что и у Akeeba Backup, и компонент столь же полезен, даже несмотря на свою альфа версию (альфа версия означает, что компонент еще не доделан и только тестируется). Скачать Akeeba CMS Update можно отсюда https://www.akeebabackup.com/downloads/cmsupdate.html, в джумловском репозитории его пока нет, на момент написания статьи последняя версия была 1.0.a3. Тем не менее компонент работает и хорошо работает, с его помощью я смог перетащить непослушный сайт на новую версию без малейших проблем. Так что рекомендую!
Интерфейс компонента прост и лаконичен, он предлагает вам сделать резервную копию сайта (а мы ее уже сделали и так) и выбрать версию Joomla для обновления. То что нам нужно - в середине списка, там где надпись STS и цифирки 3.2.3. Нажимаем на черную кнопочку Install Joomla! 3.2.3 и ... идем пить кофе! (Маркетологи, ау! Третьего шанса не будет! Тут могла бы быть реклама вашего кофе!)
Должен заметить, что простота использования Akeeba CMS Update вовсе не подразумевает, что можно забить на отключение установленных расширений. То есть вы, конечно, можете и забить. Только потом не теребите меня написать вам, как комфортно восстанавливать грохнувшийся сайт из бекапа, это вам встанет не в один литр варенья. Типа я вас предупреждал! Но вообще, если вдруг возникают какие-то проблемы со стандартным обновлением версий, то вот она - палочка-выручалочка.
Вот, в принципе, и все. После обновы вам придется переустановить все любимые примочки к Joomla, допилить или заменить на другой шаблон (я вот лентяй, никак не займусь, от CSS меня бросает в дрожь и хочется громко матюгаться), ну и разобраться в новых возможностях. О, кстати о возможном глюке с новыми возможностями! Про это тоже надо упомянуть.
В третьей версии джумлы, наконец-то, появилась система тегов. Очень удобно, знаете ли, для выстраивания дополнительной навигации и группировки материалов. Разумеется, для этого еще придется пройтись по старым статьям и везде повставлять нужные теги (в третьей джумле есть и возможность пакетной обработки, имейте это в виду!). Зато потом посетителям сайта будет весьма удобно. Причем список тегов можно оформить красиво, вставив в заголовок не только текстовое описание, но и там картинки всякие, слайдшоу, модули и так далее. В общем, придать красивости. Сами теги можно создавать прямо в процессе написания статьи - или вы набираете новый тег, или выбираете из открывшегося списка уже ранее созданный. Но вот редактировать его "начинку" надо через компонент.
Так вот, чтобы попасть в редактирование Тегов надо зайти в меню Компоненты и там отыскать пункт Метки (или Tags). И вот идете вы туда, предвкушая как сейчас украсите свой тег "Стиральные порошки" (маркетологи, я вас предупреждал, что больше шанса не будет!), а в меню никаких Меток или Tags впомине нет. Вначале вы пучите глаза, думая что проглядели. Перечитав весь список пять раз сверху вниз и снизу вверх, вы понимаете, что там и вправду никаких Тегов нет. То есть сайте они есть, в статьях есть, но система делает круглые глаза и уверяет что впервые о таких слышит! Тут вы, коварно ухмыляясь, лезете проверять у Управление Расширениями, уж там-то они точно должны быть. А вот вам распространенный тип индейского жилища! То есть ФИГВАМ! Нету.
Ну нету и нету, но ведь все равно работают и новые добавлять можно. Только вот руки чешутся как-то их украсить. И тут есть один хитрый способ обхода сбоку!
{module Баннер2}
Идете в какой нибудь стандартный компонент, например Контакты. В контактах нажимаете на Настройки в правом верхнем углу (опять полезли влево!). В третьей джумле, теперь, при входе в настройки, вам доступны настройки и всех остальных компонентов. Слева просто список, где вы можете выбрать нужный. Ну ка, поищите там Метки! Нашли? Заходим, можем попутно подстроить их под свои нужды, затем нажимаем Сохранить и выйти или, если ничего не меняли, то просто Отмену. Вышли? А теперь поглядите внимательно где вы оказались :) Да-да, как раз в этом "несуществующем" компоненте тегов. Все, можете править, прописывать ключевые слова для SEO, вставлять красивости и все такое прочее.
У меня такая ситуация случилась только с одним сайтом (как раз с тем, который не хотел обновляться). Может потом займусь поиском решения как проявить компонент и в меню, но сейчас мне вполне хватает и этого найденного мной метода. Если вдруг и у вас такая проблема вылезет, что врядли, но все же, то вы уже знаете готовое решение.
На этом заканчиваю писанину и ухожу заправляться вареньем.
Искренне ваш Dr.Vladson!
Вчера столкнулся с упорно необновляемым сайтом, который постоянно выдавал ошибку 1062 при обновлении Joomla. Долгое копание в причинах проблемы показало вот что - Aceeba Backup при восстановлении сайта затирает в базе данных только те старые таблицы, которые есть у него в самом бекапе. А при неудачной инсталляции инсталятор успевает создать несколько таблиц от третьей версии, в результате затем, после разворачивания бекапа, когда вроде все сторонние компоненты, плагины и модули вычистили, а тем не менее продолжает выдавать ошибку 1062 Joomla.
Решение простое - перед разворачиванием копии сайта из бекапа, не поленитесь зайти в phpMyAdmin и вручную удалите все имеющиеся таблицы в базе сайта. После этого заново разворачиваете бекап, дотошно удаляете ВСЕ сторонние приложения (даже те, которые вроде как должны работать и на 2.5 и на 3, могут вызвать сбой инсталлятора), и дальше уже обновляетесь обычными средствами Joomla. Конечно телодвижений больше, что крайне неприятно, но зато решает проблему. Ну и стоит записать на бумажке что именно там у вас стояло, чтобы потом накатить заново свежие версии.
Комментарии
Продел все, как у вас описано, но получил в итоге белый экран и фразу - Your host needs to use PHP 5.3.10 or higher to run this version of Joomla!
Узнавал, хостинг поддерхивает 3.х версии.
Что можно сделать?
Несколько месяцев не заглядывал на сайт, другими был занят, по этому мой ответ врядли будет актуален, но все таки.
Вы сами можете проверить версию PHP на сайте, для этого достаточно создать в текстовом редакторе простейший файлик типа 111.php в котором будет одна команда phpinfo(); (точка с запятой в конце обязательна!). Закачайте файлик по ФТП в корень сайта и запустите, тут вы и узнаете что на самом деле стоит на сервере.
В худшем варианте, если стоит то что надо, но все равно ничего не показывает, надо выяснять какие дополнительные сервисы отсутствуют в настройках хостера и просить его их включить. Тут уж придется брать документацию на текущую версию Joomla и сравнивать требования с тем что в наличии. По другому никак.
у меня возникла проблема при обновлениии расширений и версии joomla с 2.5.22. Новую показывал 2.5.28. При стандартном обновлении через панель выдает ошибку "-1 - Обнаружена ошибка. Копирование не удалось".
Обновление по прежнему не работает через панель - "-1 - Обнаружена ошибка.
Копирование не удалось". Что делать? Может сталкивались с таким?
Попробуйте откатиться через бекап на старую версию, временно всем файлам и каталогам раздать права 775, и снова обновиться.
Так же может полезным оказаться включение показа ошибок и изучение логов ошибок сервера.
сайт bastille.com.ua/ посмотрите пожалуйста. Суть проблемы при обновлении с 2.58 на 3 просто стает белый экран. Уже 3 раза пробовал и приходилось с резервной копии восстанавливать .
А что используется для компонента магазина?
Вообще чаще всего проблема в сторонних компонентах\мод улях\плагинах. То есть если отключить вообще все, кроме стандартного в Joomla, то обновление проходит без проблем. Но вот меня ваш магазин смущает, как бы не потерять при этом там все данные.