Обновление joomla 2.5 до 3.x. Пошаговая инструкция по обновлению движка.
Здравствуйте, уважаемые читатели. Недавно я обновил движок Joomla на одном из своих сайтов с версии 2.5.28 до последней доступной на момент написания статьи версии джумлы 3.3.6. Многих волнуют вопросы типа: нужно ли обновлять джумлу, как обновить Joomla и что нужно для обновления, какие подводные камни могут возникнуть т.д. В этой статье я хочу поделиться с вами опытом по обновлению Joomla с 2.5 до 3.x. Итак поехали.
Нужно ли обновлять движок Joomla с версии 2.5 до 3.x?
Я считаю, что уже пора об этом задуматься, т.к. если вы обновили Joomla 2.5 до последней версии 2.5.28, то не могли не заметить сообщение в административной панели, говорящее о том, что поддержка Joomla 2.5 закончилась 31 декабря 2014 г.
Меня же дополнительно сподвигло на обновление движка необходимость внедрения на сайте системы тегов. Узнав, что у тройки имеется встроенная поддержка системы тегов решил заняться обновлением движка.
Предварительные шаги, которые обязательно нужно пройти для успешного обновления движка Joomla.
1. Первым делом не поленитесь проверить, удовлетворяет ли ваш хостинг системным требованиям для нормальной работы Joomla 3.x. Сейчас уже уважающие себя хостинги удовлетворяют таким требованиям, но лучше проверить, тем более это не долго. Как видно из таблицы требования к апачу у третьей джумлы не изменились (2.x+), а вот требования к PHP и базам данных изменились. Если Joomla 2.5 еще мог работать на PHP 5.2.4+ и на MySQL версии 5.0.4+, то для Joomla 3.x уже нужно как минимум PHP версии 5.3.1 и MySQL версии 5.1.+. Самый быстрый способ проверить версии PHP и MySQL, используемые на вашем хостинге это зайти в админку Joomla, далее в верхнем меню выбрать "Сайт" => "Информация о системе". Мы увидим различную информацию о системе, в том числе текущие версии PHP и MySQL.
Если текущие версии ниже минимальных требований (что с каждым днем становится все маловероятней), то придется менять хостинг.
2. Далее вам нужно убедиться в том, что используемый на вашем сайте шаблон работает на джумле третьей серии. Информацию об этом вы можете узнать на сайте разработчика вашего шаблона. Возможно, разработчик шаблона выпустил отдельную версию под Joomla 3.x. Если нет, то, возможно, вам придется озаботиться поиском шаблона для третьей джумлы, а текущий шаблон, который не поддерживает тройку удалить. Как вариант, можно конечно адаптировать шаблон для джумлы 2.5 для работы в joomla 3.x, чтобы сохранить внешний облик сайта. Что мне и пришлось сделать.
3. Далее обновите версию джумлы 2.5 до последней версии 2.5.28.
После обновления до версии 2.5.28 проверьте на всякий случай обновилась ли схема вашей базы данных до версии 5.2.28. Для этого в верхнем меню выберите Расширения -> Менеджер расширений -> вкладка Базы данных. Если вы увидите примерно такую же картину как на рисунке ниже значит ваша база обновилась нормально.
Если же у вас вместо зеленой галочки нарисован белый "кирпич" в красном круге и выходит сообщение красным шрифтом, что ваша база не обновилась, нажмите на кнопку Исправить в правом верхнем углу.
4. Так-же перед обновлением нужно отключить плагин Система - Запомнить меня. В противном случае может быть проблема со входом в админку после обновления. После обновления данный плагин можно снова включить.
5. Вообще все расширения, которые встроены в дистрибутив joomla 2.5, без проблем будут работать и в джумле 3.x. Проблемы могут возникнуть со сторонними расширениями. Чем больше сторонних расширений, тем сложнее будет переход. Если у вас много сторонних расширений, советую нарисовать на отдельном листке или в файле табличку с двумя столбцами: "Наименование расширения" и "Наличие поддержки джумлы 3.x". Вписать в таблицу наименования всех сторонних расширений (компоненты, плагины, а также модули, установленные через менеджер расширений). Обновляем все найденные расширения до последней версии. При этом надо учитывать, что не все расширения используют механизм автообновления (Расширения -> Менеджер расширений -> вкладка Обновления -> кнопка Найти обновления). Лучше зайти на сайт производителя каждого обновления и посмотреть там наличие последней версии. Далее смотрим, какие из них поддерживают Joomla 3.x. Те расширения, которые не поддерживают тройку придется удалить, в противном случае обновление может закончиться неудачно и сайт может вообще перестать открываться.
Смотрим, возможно у расширений, не поддерживающих тройку, на сайте производителя имеются отдельные дистрибутивы для тройки. В этом случае мы просто установим их сразу после обновления движка. Если же разработчик вообще не выпустил версию для Joomla 3.x, тогда придется искать аналоги данного расширения или можно запросить разработчика будет ли он выпускать версию своего расширения для тройки и в какие сроки.
Возможно, вы в процессе такой инвентаризации обнаружите расширения, которые вы когда-то использовали, но теперь уже не используете. Такие уже ненужные расширения желательно также удалить.
Чтобы увеличить шансы на успешное обновление, можно перед обновлением временно отключить все оставшиеся расширения, которые вы устанавливали сами с момента первоначальной установки. После обновления будем их по очереди включать и проверять работоспособность сайта. Исключение составляют сторонние шаблоны (если они устанавливались), которые в данный момент используются в админке и на сайте. Ведь вы же, как я писал выше, позаботились об установке совместимого с джумла 3.x шаблона. Для отключения заходим в Расширения -> Менеджер расширений -> Управление. Далее сортируем последний столбец ID списка по убыванию. Все расширения, которые вы устанавливали сами, имеют ID начиная от 10000 и выше. Вот их и можно отключить перед обновлением.
Руководство по обновлению версии Joomla c 2.5.28 до 3.x.
Сначала обязательно читаете предыдущий параграф!!!
Я категорически против обновления боевого сайта непосредственно на хостинге. Ведь непонятно как сайт будет функционировать после обновления движка и обновится ли вообще. Я делал следующее.
Снял бэкап своего сайта: базу данных и файлы сайта и закачал к себе на компьютер.
Далее восстановил тестовую копию сайта на локальном вебсервере, например, на денвере.
Далее заходим в админку тестового сайта и выбираем в верхнем меню "Компоненты" => "Обновление Joomla!".
Если вы выполнили все шаги из предыдущего параграфа, то у вас будет сообщение, что у вас уже установлена последняя версия Joomla!, 2.5.28.
Жмем на кнопку "Настройки" в правом верхнем углу.
В появившемся окне напротив поля "Сервер обновления" выбираем из выпадающего списка "Дистрибутивы Joomla с краткосрочной поддержкой"
Нажимаем кнопку "Сохранить и закрыть".
У вас появится уведомление о том, что обнаружено обновление Joomla!
В моем случае система обнаружила обновление 3.3.6.
Жмем на кнопку "Установить обновление".
Если все прошло нормально, то ваш сайт откроется. Проверяем версию движка из админки.
Далее при необходимости устанавливаете шаблон, поддерживающий Joomla 3.x. Расставляете все модули в новом шаблоне, доустанавливаете необходимые расширения и проверяете работу всех компонентов.
Если вы перед обновлением отключали расширения как я писал выше, то включаете по очереди их обратно и проверяете работу сайта.
Если все нормально, заливаете обновленный сайт на хостинг взамен старого.
Если сайт после обновления не открывается.
Если вы проделали все рекомендации, описанные выше, то после обновления до тройки сайт должен открываться. Но если все же главная страница сайта перестала открываться, это означает, что какая то компонента (которую вы пропустили), несовместимая с новым движком, мешает нормальному открытию сайта. Без паники! Обычно сайт все же дает попасть в админку. (Если у вас и админка не открывается, читайте ниже). Смотрим внимательно на выводимое на экране сообщение. Обычно в сообщении указывается путь к проблемному файлу и номер строки с проблемным кодом.
Если путь ведет к файлу в папке вашего шаблона, то скорее всего дело в вашем шаблоне. В этом случае вам нужно его сменить на другой, совместимый с Joomla 3.x (если вы не запаслись шаблоном заранее, можете применить один из встроенных шаблонов) и проблема устранится.
Если в сообщении, выводимом на экране, указывается путь к файлу какого то расширения, то вы можете удалить это расширение из админки. Если нет доступа в админку, то можете попробовать переименовать папку с проблемным расширением.
Если вы не можете определить к какому расширению относится проблемный файл, то открываем данный файл в любом редакторе (я использую notepad ++) и просто удаляем (а лучше комментируем) указанную строку проблемного кода. Далее пробуем обновить главную страницу. После обновления главной страницы сообщение уже может ссылаться на другую строку данного файла или другого файла. Таким образом продолжаете комментировать строки кода в проблемных файлах до тех пор пока сайт не откроется. После этого вы можете задать вопрос на каком нибудь из форумов поддержки joomla или в комментариях к этой статье к какому расширению относятся проблемные файлы, указав путь к ним и удалить данное расширение.
Если админка не открывается после обновления Joomla до версии 3.x.
Если вы не можете попасть в административную панель после обновления сайта, значит вы пропустили какое либо расширение или шаблон, которые не совместимы с третьей джумлой. Как я уже писал выше обычно на экране выводится путь к проблемному файлу, мешающему открытию. Если путь ведет к файлу шаблона, значит нужно его сменить, например, на один из встроенных в джумлу шаблонов: Atomic, Beez5 или Beez_20 . Если путь к файлу ведет в другое место, нужно определить, к какому расширению относится данный файл и удалить данное расширение. Но как удалить расширение или шаблон, если вы не можете попасть в админку? Будем править базу данных. Для этого заходим в phpmyadmin.
Через phpmyadmin мы не можем удалить расширение, но можем его отключить. Этого достаточно, чтобы попасть в админку, а затем уже из админки удалить расширение. Информация о всех установленных расширениях хранится в таблице xxx_extensions, где xxx это префикс таблицы, который у каждого может быть своим.
Для отключения расширения ищем его название в столбце Name таблицы и в столбце Enabled вместо единички ставим нолик.
Для смены шаблона на другой из phpmyadmin открываем таблицу xxx_template_styles. В этой таблице перечислены все шаблоны, установленные на сайте. Столбец client_id показывает, для какой части сайта предназначен шаблон (0 - для публичной части, 1 - для админки). Столбец Home показывает, какой шаблон сейчас используется по умолчанию (стоит единичка).
Из рисунка выше, видно, что для админки могут использоваться шаблоны bluestork, hathor, isis, т.к. у них у всех в стобце client_id стоит единичка. По умолчанию используется шаблон isis, т.к. у него в столбце home стоит единичка. Таким образом, меняя значения в столбце home мы можем сменить используемый шаблон.
PS: Как всегда буду рад вашим комментариям.
Вы можете помочь проекту, рассказав о нем в социальных сетях:
Спасибо!
Комментарии
Расширения => Менеджер расширений => Поиск => жмешь кнопку Найти (вверху справа) => отмечаешь галочкой Обновление Joomla! => жмешь Установить. Все
Вчера решила обновить Джумлу с 2,5 на 3,4. Обновление прошло успешно. Но при просмотре сайта выдал ошибку «500 JHtmlBehavior::mootools». Не зная что с этим сделать выполнила бэкап, но ситуация не изменилась, вернее теперь выдает ошибку «500 — JHtmlBehavior: :mootools не поддерживается». Помогите пожалуйста исправить положение. спасибо.теперь и в ПУ Джумлой зайти не могу. Выдает Ошибка сервера 500
Самый простой способ решения вашей проблемы это откатиться назад и еще раз пройтись по всем вашим расширениям.
Галина, при восстановлении из бэкапа, который был создан до выполнения вами обновления сайта, никаких ошибок быть не должно. Сайт должен вернуться в исходное состояние. Если у вас после восстановления из бэкапа все равно выходят ошибки, значит вы или не из того бэкапа восстановили или как то не полностью откатились назад. Имейте в виду, что нужно откатывать не только базу но и все файлы сайта.
Если же у вас нет другого бэкапа, то попробуйте поискать во всех файлах сайта вхождения строки JHTML::_('behavior.mootools');
и заменить его на
JHtml::_('behavior.framework');
Поиск в файлах можно сделать при помощи тотал командера или при помощи notepad++.
Дело в том что я теперь и в админку выйти не могу, и сайт не работает
А уже затем после отката сайта тестировать с обновлением, но не на хостинге, а на своем компьютере. Я об этом писал в статье. Никогда не делайте никаких обновлений сразу на хостинге, не протестировав предварительно в тестовой среде на своем компьютере.
2. Для уменьшения размера файла архива в менеджере файлов вашего хостинга создайте вручную архив файлов вашего сайта за исключением следующих папок : images, cache, tmp, logs, multimedia. Возможно без этих папок ваш архив будет гораздо меньше по объему и вы сможете его закачать.
Вы наверное пытаетесь закачать архив через браузер. Нужно закачивать через ftp клиент (например Mozilla). Насколько у вас медленный интернет? С вечера поставили бы на закачку - к утру бы уж наверное закачалось
даже до 2,5,28 не предлагает
настройки менял, кэш чистил и у браузера тоже - все равно "версия самая новая"
Ну а почитать как 2,5,8 обновить до 2,5,28 нельзя? Скачивается архив с официального сайта для обновления, закачиваются файлы по фтп и все, новая версия. Здесь статья о повышении версии с 2,5,28 до 3. Остальное уже на соответствующих темах. Обновлятор полезен когда с 2,5,28 на 3 переходит. Тут по другому уже сложнее. Только на этой неделе им перевел несколько сайтов. это чудо, а не инструмент.
Пробовал этот момент на локальном сервере и на хостинге
1. (В админке Joomla):Меню Расширения - Менеджер расширений - Обновление — КНОПКА Очистить кэш.
2. (В браузере на примере Хрома) Настройки > Показывать дополнительные настройки > Кнопка Очистить историю > Поставить везде галки и нажать на кнопку Очистить историю.
Если не помогло, то cкачиваете архив, в названии которого имеется "Upgrade Package" (например, Joomla! 3.5.1 Upgrade Package (.zip)). Кстати штатная функция обновления джумлы предлагает обновиться именно до версии 3.5.1, хотя уже вышла версия 3.6.5.
Затем заливаете полученные файлы через FTP.
Перед этим нужно выполнить все требования, описанные в статье.
Возможно после этого вы получите ошибку типа:
Fatal error: Call to a member function getInt() on a non-object in ...\www\administrator\componen ts\com_login\controller.php on line 36.
Для того, чтобы это обойти, нужно переименовать папку \libraries\cms\controller. Она в Joomla 3.x не используется.
После этого вас пустит в админку. Далее нужно будет пофиксить базу. Для этого в админке идем Расширения ->Менеджер расширений -> вкладка База данных -> жмем кнопку обновить.
Вы обнаружите, что у вас пропала возможность устанавливать расширения.
Система при этом выводит сообщение:
"No installation plugin has been enabled. At least one must be enabled to be able to use the installer."
Для решения этой проблемы идем Расширения ->Менеджер расширений -> вкладка Поиск. По очереди устанавливаем плагины
Installer - Install from Folder
Installer - Install from Upload
Installer - Install from URL
а также другие расширения, которые имеются в этой вкладке.
После установки из этого списка шаблона Isis для админки можете перейти на него. Он специально разработан для тройки и используется а нем по умолчанию.
Далее обновите джумлу штатными средствами до последней версии.