Логотип StingRay

Социальные сети
FacebookInstagramRSSTwitterYouTubeВ контактеОдноклассники
FacebookInstagramRSSTwitterYouTubeВ контактеОдноклассники
Силуэт человека

Несколько фокусов с CMS Joomla! Модернизация сайтов на Joomla! старых версий 1.5/2.5 до актуальной 3.6


Модернизация сайтов на Joomla! старых версий 1.5/2.5 до актуальной 3.6

Вместо предисловия задам риторический вопрос: надеюсь, никому не нужно объяснять, зачем вообще желательно обновлять Joomla! (да и вообще любые движки и платформы) до последней, актуальной версии? Это, прежде всего, необходимо для повышения информационной защищённости ресурса, его надёжности и отказоустойчивости, а также удобства использования административного интерфейса. Применительно к Joomla! переход на актуальную версию (по состоянию на 29.02.2016 это 3.4.8) хорош ещё и тем, что все последующие обновления будут автоматизированными и лёгкими, если доработка сайта будет вестись с архитектурной точки зрения правильно, то есть не затрагивая ядро, саму обновляющуюся платформу. В общем случае цена любого такого обновления (как в смысле трудоёмкости, так и денежной стоимости) напрямую зависит от того, как дорабатывался сайт, и если это делалось неправильно, то цена может быть довольно высока. Но даже при «гуманной» цене далеко не всегда удаётся убедить заказчика в необходимости такого обновления. Если же ваш заказчик уже убеждён, или вы сами владеете своим Joomla-ресурсом, и вас убеждать не нужно, то написанное ниже – для вас.

Старые версии Joomla!, вроде 1.5.х и 2.5.х, настолько сильно устарели относительно актуальной версии CMS с точки зрения архитектуры, программного интерфейса (API) и структуры базы данных, что о какой-либо автоматической модернизации речи быть не может. Я перепробовал множество разных инструментов миграции, как бесплатных, так и платных (например, CMS2CMS: Automated J! Upgrade, JUpgrade, Migrate Me, SP Transfer и SP Upgrade), но ни один из них применительно к реальным сайтам моих клиентов не дал сколько-нибудь значимого положительного эффекта – после всех них обновлённые сайты или вообще становились неработоспособными, или требовали такого «допила напильником», что сделать всё вручную с нуля было быстрее. В результате методом «научного тыка» я и пришёл к выводу, что действительно для всех подобных случаев проще делать модернизацию-миграцию вручную.

Сначала мы создаём новый, чистый сайт на последней версии Joomla, а потом перед нами стоят 2 основные задачи:

  • миграция программного кода (на языке PHP);
  • миграция данных (в MySQL-базе).

Миграция PHP-кода должна учитывать изменения не только архитектуры и API самой Joomla!, но и изменения, связанные с увеличением версии PHP, под которой новая Joomla! работает (для версий 3.x рекомендуется PHP версии минимум 5.3.10, тогда как для 2.5 это было PHP 5.2.4, а для 1.5 и подавно 4.3.10). В общем случае эта миграция делается так: старый PHP-код копируется на новый сайт под управлением новой, актуальной Joomla!, в файле .htaccess устанавливается php_flag display_errors on и начинается пошаговая отладка с активным использованием информации с Joomla.org и StackOverflow.com. 😊 Ничего конкретнее я тут вам больше не скажу, так как мигрируемый PHP-код и его функциональность очень индивидуальны, универсального рецепта нет. Но если у вас что-то не получается и нужна моя профессиональная помощь – напишите мне по электронной почте или комментарий ниже.

Миграция SQL-данных должна учитывать изменения в схеме базы данных Joomla! и используемых на сайте компонентов. В общем случае эта миграция делается так: SQL-данные получаются из старой базы специальным SELECT-запросом, который сопоставляет поля старой таблицы новым; результаты этого запроса сохраняются в виде SQL-сценария из INSERT-команд вставки данных, который после некоторой доработки (не всегда, но может потребоваться) импортируется в новую базу данных, после чего может потребоваться ещё дополнительная обработка импортированных данных уже в там. За время тех миграций, что выполнил я, у меня накопились следующие наборы SELECT-запросов для выгрузки данных старых баз в новые:

Если у вас что-то не получается и нужна моя профессиональная помощь – напишите мне по электронной почте или комментарий ниже.

Добавьте свой комментарий или войдите, чтобы подписаться/отписаться.
OpenId
Предпросмотр
Улыбка Подмигивание Дразнит Оскал Смех Огорчение Сильное огорчение Шок Сумасшествие Равнодушие Молчание Крутизна Злость Бешенство Смущение Сожаление Влюблённость Ангел Демон Задумчивость Рука-лицо Не могу смотреть Жирный Курсив Подчёркивание Зачёркивание Размер шрифта Гиперссылка Цитата
Загрузка…