Обновление Joomla и возможные ошибки. Обновление CMS MaxSite


26 апреля 2017 года разработчики популярной CMS Joomla порадовали нас новой версией системы управления контентом 3.7. Многие, в том числе и я поспешили обновить движок Joomla, дабы проверить наличие долгожданных пользовательских полей. Именно процессу обновления и будет посвящен данный урок, а так же выявлению и устранению ошибок возникающих в процессе обновления.

Как обновить CMS Joomla

Обновить Joomla можно несколькими способами – обновиться через панель управления либо записать файлы новой версии напрямую на сервер. Рассмотрим все способы по порядку.

Автоматическое обновление Joomla через панель управления

Когда выходит новая версия Joomla в панели управления мы сразу же получаем об этом уведомление:

Нажимаем на кнопку «Обновить сейчас» и попадаем на страницу «Обновление Joomla!» с двумя вкладками «Автоматическое обновление» и Кроме того нас настоятельно рекомендуют проверить что установленные расширения совместимы с новой версией Joomla. А я в свою очередь хочу отметить, что если вы работаете со стандартным шаблоном Joomla и вносили в него изменения, то советую сохранить все изменения, иначе после обновления вы их потеряете.

Существуют и другие способы попасть на страницу «Обновление Joomla!»:

  • Перейти в раздел «Система» -> «Панель управления» и в левой нижней части страницы найти надпись «Обслуживание», под которой будут ссылки на новые версии движка и расширений
  • Перейти в раздел «Компоненты» -> «Обновление Joomla!»

Не важно, какой из способов вы выбрали, вы попадете на следующую страницу:

Для автоматического обновления Joomla остается только нажать на кнопку «Установить обновление» (смотрите скриншот выше) и если не возникнет никаких проблем, то движок Joomla будет обновлен.

Альтернативный способ обновления Joomla через панель управления

Если по каким либо причинам автоматическое обновление не доступно, в панели управления Joomla предусмотрен другой вариант, при помощи которого так же можно обновить CMS.

На той же странице «Обновление Joomla!» переходим во вторую вкладку «Загрузка и обновление» и наблюдаем примерно следующую картину:

Данный способ хорош в том случае, если по каким либо причинам не удается связаться с сервером обновлений Jommla, а причин этому может быть множество.
Все что нам потребуется это выбрать предварительно скаченный файл пакета со своего компьютера и нажать на кнопку «Загрузить и установить». После этого можно наслаждаться новой версией любимой CMS.

Обновление Joomla путем копирования новых файлов прямо на сервер

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

Для того чтобы обновить Joomla данным способом во избежание непредвиденных ситуаций стоит выполнить ряд действий:

Отключить кэширование (если включено)
Очистить и удалить устаревший кэш (если имеется)
Создать резервные копии файлов и базы данных

После этого скачиваем пакет обновлений (они обычно в формате ZIP) и распаковываем его в корневой каталог сайта.

Когда архив распакуется, заходим в панель управления и наблюдаем следующее - версия Joomla обновилась (о чем свидетельствует номер версии в правом нижнем углу), но система выдает нам неизвестную ошибку:

Что делать в данной ситуации? Главное не паниковать, все поправимо. Дело в том, что после записи новых файлов база данных осталась в устаревшем состоянии и это надо исправить.

Исправлять базу данных вручную не потребуется, в Joomla уже все предусмотрено. Переходим в раздел «Расширения» -> «Менеджер расширений» -> «Базы данных» и попадаем на страницу «Менеджер расширений: Проверка базы данных»:

Как и предполагалось, ошибки связаны с базой данных, после такой процедуры обновления она естественно не обновилась. Для того чтобы привести базу данных в актуальное состояние жмем на кнопку «Исправить».

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

В данной ситуации на помощь придет поиск загруженных, но не установленных расширений. Переходим в раздел «Расширения» -> «Менеджер расширений» -> «Найти» и попадаем на страницу «Менеджер расширений: Поиск» на которой представлен список не активных расширений:

Теперь если перейти на страницу обновлений, то можно заметить, что у нас установлена самая новая версия Joomla.

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

Ошибки при обновлении Joomla

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

Давайте посмотрим, какие ошибки могут возникнуть в процессе обновления и как от них избавиться.

Ошибка AJAX Loading Error: Not Found

Одна из коварных ошибок, которая возникает в процессе обновления, звучит так AJAX Loading Error: Not Found:

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

Если вы редактировали данный файл и настроили блокировку прямого доступа к ядру, то данная ошибка появится обязательно. Решений как всегда несколько:

  • временно переименовать файл.htaccess
  • Найти в нем строки кода блокирующие доступ к ядру и закомментировать их.

Первый способ самый простой – переименовываем файл «.htaccess» например, в файл «.htaccess_» и повторяем процесс обновления. Автоматическое обновление должно запуститься без проблем.

Во втором варианте открываем файл.htaccess для редактирования и ищем приблизительно следующие строки (в моем случае это строки с 86 по 98):

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

Глобальное обновление с переходом на более новую линейку имеет некоторые нюансы, поэтому полезно рассмотреть процесс более подробно.

Подготовка к обновлению

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

Такие пакеты, как правило, имели названия Joomla x.x Update Package . С выходом 2-ого поколения CMS, разработчики дополнили основной функционал встроенным механизмом обновления ядра.

Чтобы обезопасить себя и не потерять данные во время установки новой версии движка, рекомендуется перенести резервную копию сайта на локальный сервер. Выполнить это можно при помощи akeeba backup .

После этого нужно проверить наличие обновлений для текущей версии CMS и сторонних расширений, в случае их наличия установить все необходимое. Если используются расширения, которые не поддерживаются в Joomla 3.x , то их следует удалить заранее:

На следующем шаге нужно проверить совместимость хостинга с обновленной версией Joomla , для этого в меню «Сайт » выберите пункт «Информация о системе ».

Все настройки, которые отобразятся на открывшейся странице, должны отвечать минимальным системным требованиям разработчика. Эта информация доступна по адресу http://www.joomla.org/technical-requirements.html:

Проверьте базу данных на ошибки, для этого в «менеджере расширений » перейдите на вкладку «База данных ». Если все находится в норме, то система выдаст сообщение следующего характера: «Структура таблиц базы данных в актуальном состоянии ».

В том случае, если обнаружены ошибки, надо нажать кнопку «Исправить », которая находится в правой части страницы:

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

Обновление Joomla

Сначала все операции выполняются на тестовом сайте. Чтобы начать переход к версии Joomla 3.x , нужно перейти в меню Компоненты и выбрать там пункт «Обновление Joomla! ».

В правой части страницы появится кнопка «Параметры », после нажатия которой, откроется окно с настройками:

Здесь следует изменить тип источника обновлений. По умолчанию выбраны «Дистрибутивы Joomla с длительным периодом поддержки ».

На данный момент в линейке 3.x выход такой версии только ожидается, поэтому нужно переключить сервер обновления на «Дистрибутивы Joomla с краткосрочной поддержкой ».

В некоторых случаях кнопка «Установить обновления » появляется не сразу, поэтому необходимо в меню «Расширения » выбрать подменю «Менеджер расширений », где на вкладке «Обновление » нажать кнопку «Очистить кэш »:

Теперь в разделе «Обновление Joomla! » появятся данные о самой последней доступной версии CMS. После установки проверьте базу данных на наличие ошибок.

В случае успешного завершения процесса, следуя инструкции о том, как обновить Joomla , повторите всю последовательность действий для основного сайта.

Удачи Вам!

Хорошо Плохо

    Для создания сложных динамических сайтов веб-мастерами применяется такой метод, как установка joomla на денвер. После этого создаётся новый шаблон сайта, происходит…

Модуль «Обновление CMS» обязателен для установки. Он относится к CMS «Управление» и является частью ядра DIAFAN.CMS. Имеет только административную часть.

Для корректной работы модуля необходимо PHP-расширение ZipArchive.

Автообновление

Модуль позволяет получать обновления для Вашей DIAFAN.CMS с нашего сервера.

При первой установке DIAFAN.CMS создается так называемая «точка возврата», которая содержит резервные копии всех установленных файлов «из коробки». В дальнейшем при получении обновлений, DIAFAN.CMS создает точки возврата и сохраняет отдельно обновленные версии файлов.

Обновления для DIAFAN.CMS проверяются только по Вашему запросу! Необходимо зайти в модуль «Обновление CMS» и нажа кнопку «Проверить обновление». Если для Вашей версии DIAFAN.CMS есть изменения, Вы увидите список обновлений, доступных для скачивания, и под списком будет кнопка «Скачать».

После клика по ней обновления начнут последовательно скачиваться. Если прервать закачку до завершения, при следующей проверке список обновлений будет скорректирован. Продолжить прерванное скачивание можно аналогичным способом – с помощью кнопки «Скачать» под списком. В обновлении могут участвовать все файлы DIAFAN.CMS, в том числе шаблоны, файлы стилей и изображения. При этом пропустить какой-либо из пакетов невозможно, система автоматически проверяет целостность каждого обновления.

При каждом скачивании обновлений точки возврата создаются автоматически. После скачивания обновления необходимо нажать кнопку «Применить» (она показывается на экране после последнего скачанного обновления). Применены будут все обновления от текущей точки возврата до последнего выполненного обновления.

Как работают обновления?

    Сгенерируется тема . Что это значит? Все полученные обновленные файлы с нашего сервера сравниваются с текущими файлами всей системы в текущей точке возврата. Если DIAFAN.CMS находит, что какие-то текущие файлы системы не соответствуют полученным из обновления, они будут перемещены в папку custom в текущую тему. Если текущей темы нет, то будет создана новая.

    На место перемещенных файлов будут записаны файлы, полученные из обновления. На сайте это никак не отобразится, потому что файлы из текущей темы обладают более высоким приоритетом.

    Если в обновлении предусмотрено изменение структуры базы данных, то оно будет произведено.

Что делать, если функционал обновления не устраивает?

Можно вернуть всё обратно в один клик. Для этого достаточно зайти в модуль «Обновление CMS» и нажать «Применить» напротив любой предыдущей точки возврата. Откат к сохраненному состоянию касается также базы данных. Если с ней были произведены какие-то манипуляции, после применения точки возврата структура БД вернется к прежнему состоянию.

Можно ли удалять точки возврата?

Да, можно. При удалении точки возврата ее файлы присоединяются к следующей точке. Более того, удалять лишние точки возврата рекомендуется, потому что это ускорит генерирование темы. А также, не рекомендуется увлекаться слишком частым созданием точек возврата. Ведь система инспектирует все предыдущие точки, и чем их меньше, тем быстрее происходит генерирование.

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

Как посмотреть детализацию точек возврата?

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

Обновления доступны только для сайтов с активированными лицензиями DIAFAN.CMS.

Подключение

Подключаемая часть – файл . В нем описан класс Update_inc . В модуле к объекту класса можно обратиться через переменную $this -> diafan -> _update . Экземпляр класса создается при первом вызове переменной.

Свойства

Var folders = array("adm", "css", "img", "themes", "modules", "includes", "plugins", "js") – папки и файлы, индексируеме для точек возврата.

Var exclude = array("adm/htmleditor", "includes/custom.php") – папки и файлы, не индексируемые для точек возврата.

Методы

Void first_return () – Добавляет первую точку возврата.

// при установки DIAFAN.CMS
$this -> diafan -> _update -> first_return ();

Array get_files (integer $id) – Получает обновленные файлы точки с содержимым.

// получает файлы точки возврата ID=3
$rows = $this -> diafan -> _update -> get_files (3 );
print_r ($rows );
/* выведит:
Array
[modules/news/news.model.php ] => ...
class News_model extends Model
{
...
[modules/news/news.php ] => ...
class News extends Controller
{
...
...
) */

Array get_all_files (integer $id) – Получает все файлы DIAFAN.CMS в точке с содержимым.

  • integer $id: идентификатор точки

// получает все файлы DIAFAN.CMS, актуальные для точки возврата ID=3
$rows = $this -> diafan -> _update -> get_all_files (3 );
print_r ($rows );
// выведет файлы в формате как функция get_files()

Файлы

    modules/update/admin/js/update.admin.count.js – количество доступных обновлений, JS-сценарий;

    modules/update/admin/js/update.admin.js – обновление, JS-сценарий;

    modules/update/admin/update.admin.php – точки возврата;

    modules/update/admin/update.admin.action.php – точки возврата;

    modules/update/admin/update.admin.count.php – количество доступных обновлений для меню административной панели;

    modules/update/update.inc.php – подключение модуля;

    modules/update/update.install.php – установка модуля.

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

Если смотреть глазами рядового сотрудника компании Заказчика, который только и выполняет задачи по наполнению контента сайта фирмы (новости, статьи, товары, услуги и т.п.) – то у этого сотрудника не возникает потребности в обновлении платформы сайта. Это все связано с тем, что мало кто понимает, за чем это нужно. Все понимают, что нужно примеру обновлять антивирусные программы на персональном компьютере, или необходимо обновлять браузер – так как это повышает скорость загрузки страниц сайтов, или то, что необходимо обновлять операционную систему. Но, до сайта речь не доходит пока он «жив». Тем, более что сайт не расположен на компьютере сотрудника, а где-то там, на удаленном сервере. Более того, к сайту порой относятся как компьютеру, вызывают специалиста, когда ресурс заразился вирусом или сломался. Но если компьютер легко можно заменить, то на сайт потребуется потратить немало времени чтобы произвести восстановительные работы.

Средний чек технической поддержки и ежегодного обновления программы компании обойдется примерно в 120,000 рублей – немало. А, теперь мы возьмем небольшой интернет-магазин с посещаемостью в среднем 1000 человек в сутки – это около 365000 потенциальных клиентов в год. Предположим, продается в данном on-line магазине – одежда со средней стоимостью в 1,000 рублей. Если все делать правильно, не сложно получить конверсию покупок больше 3-х процентов от целевых посетителей, но мы возьмем и здесь среднее значение. Нам необходимо средний процент умножить на среднюю стоимость и умножить на количество дней, приблизительно вот так: 1,000 (стоимость) х 3% (количество покупателей в день) х 365 (дней в году) = 10,950000 (оборот). И это только пессимистичная оценка оборотов, ведь однажды купивший клиент, может вновь приобрести новую одежду с другой коллекции. Получается, в сутки покупки совершаются на сумму – 30,000 руб.

Про доход мы уже поняли, а теперь давайте разберем убытки при простое – ведь наша задача сэкономить те самые 120,000 рублей в год, чтобы не заказывать техническую поддержку и обновление движка интернет магазина.

В случае сбоя или заражения вирусом Интернет-магазин прекращает стабильно функционировать, примеру самый простой способ «заразить» сайт это зайти по FTP-соединению через зараженный компьютер и вирус начнет одновременно «дружить» с Вашим сайтом.

Теперь посчитаем стоимость работ и сопутствующие издержки (сразу отбросим возможность вернуть с помощью бэкапа на начальную точку до сбоя или заражения сайта, ведь тем самым мы «прикрываем» саму причину возникновения, плюс это грозит потерей заказов сделанных в промежуток времени от последнего бэкапа до возникновения внештатной ситуации):

В среднем программистам требуется от 2-х до 72-х часов на выявления причин с последующим устранением проблемы (стоимость работы в час от 1,000 рублей);
простой Интернет магазина может составить от 1-го дня (в нашем случаи это сразу потеря 30,000 рублей минимум);
потеря лояльности (не каждый потенциальный покупатель вновь вернется на сайт – если при первом входе он куда-то пропал).

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

Не желаете полагаться на судьбу и надеяться, что все испытания пройдут мимо Вашего сайта? Тогда

В начале этого года был разработан ряд доработок для форума. Некоторые из них реализовывались путем обновления движка до последней версии. В связи с этим и был осуществлен переход. Как правило, обновление CMS обладает рядом преимуществ:

  • В новых версиях устраняются недостатки, баги, ошибки и "дыры";
  • Появляется дополнительный функционал;
  • Поддерживается современность и актуальность движка.

Но в моем случае дополнительно к этим пунктам добавился 1 очень каверзный баг, который, на мой взгляд, и стал главной причиной резкого с поисковых систем. Графики посещений с Яндекса и Google (по неделям). Стрелочкой указана примерная дата обновления.

Поисковая посещаемость упала более чем на 1000 ежесуточных посетителей.

Замечу, что обновление не носило радикальный характер (обновлялась версия той же линейки). Появился вопрос "Что же повлияло на падение посетителей с поисковых систем". После обновления пользователи начали жаловаться на один баг, который время от времени стал появляться. При клике на одну страницу, форум перекидывал пользователя на другую. В основном, были затронуты URL"ы тем. Также браузер иногда отдавал ошибку о невозможности перехода по указанному урлу из-за циклической переадресации.

Я начал анализировать аккаунты для вебмастера в Яндексе и Google. В гугле после перехода на новую версию движка резко подскочили ошибки, относящиеся к URL - "Переход не выполнен".

Данные ошибки как раз начали появляться сразу после обновления (график начинается немного позднее - с начала марта). Почему баг каверзный? Все просто. Его до сих пор пока никто не смог обнаружить и исправить. Но я не теряю надежды и буду стараться как можно скорее избавиться от него .

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

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

Стал бы я обновляться, зная, какие последствия ждут меня впереди? Конечно, нет. Та пара пунктов из доработок, которые требовали новую версию, не покрывает некоторые неудобства для пользователей и поисковых роботов.

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

Кто-нибудь из вас сталкивался с проблемами после обновлений CMS? Поделитесь своим опытом и путями их решения. Желаю всем, чтобы баги и ошибки обходили ваши проекты стороной, а посещаемость с поисковых систем показывала только положительный рост !







2024 © gtavrl.ru.