Перевод сайта с Seditio на Cotonti: как правильно?

Мигрирование с Seditio на Cotonti — процесс несложный, однако он требует от веб-мастера некоторых усилий

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

Хотя столь малый срок разработки пока не позволяет назвать Cotonti на 100% готовым коммерческим продуктом, веб-мастера уже получили в свое распоряжение достаточно стабильную платформу для создания технологичных и функциональных веб-сайтов практически любой тематики. Однако из-за отсутствия простых и дружественных к пользователю средств обновления, все еще открытым остается вопрос мигрирования сайта с Seditio на Cotonti. Именно этой теме посвящена данная статья.

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

Прежде всего, необходимо понимать, что переход на Cotonti представляет собой действия, связанные с радикальными изменениями в дальнейшей работе вашего веб-сайта. Именно поэтому, во избежание фатальных ошибок, мы не рекомендуем выполнять мигрирование действующего сайта в режиме он-лайн. Воспользуйтесь локально установленным пакетом Apache / PHP / MySQL, например Денвер-3 или xampp.

Кроме того, необходимо позаботиться и о приостановлении работы веб-сайта на время мигрирования. Сделайте это при помощи плагина Maintenance или любым другим подходящим для вас способом. Будем считать, что копия веб-каталога, в котором размещен ваш сайт, дамп баз данных MySQL к нему, и дистрибутив CMS Cotonti у вас под рукой.

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

Итак, прежде чем начать первый этап мигрирования, вам необходимо подготовить:

  • локально установленный пакет Денвер-3, xampp или им подобный
  • хост с исходным сайтом (Seditio 121) и хост с дистрибутивом Cotonti
  • текстовый редактор, работающий с Юникодом (например, Notepad++)

Первый этап мигрирования: подготовка исходного сайта

Для того чтобы сделать процесс перехода с Seditio на Cotonti максимально корректным и безопасным, избавимся от лишних данных.

Плагины (Управление сайтом -> Плагины)

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

Рефералы (Управление сайтом -> Разное -> Рефереры)

Для сокращения размера базы данных можно очистить и этот раздел (Очистить все)

Системный протокол (Управление сайтом -> Разное -> Системный протокол)

Еще один кандидат на удаление из-за своего размера (Очистить все).

На этом подготовку можно считать законченной. При помощи утилиты phpMyAdmin экспортируем дамп базы данных MySQL.

Второй этап мигрирования: перенос файлов

Начинаем работать с хостом Cotonti. Из каталога с сайтом под управлением Seditio нам потребуется следующее:

  • содержимое каталога datas/ за исключением файлов index.php и config.php, а именно подкаталоги avatars, defaultav, html, photos, signatures, thumbs, tmp, users
  • содержимое каталога plugins/ за исключением плагинов, которые включены в дистрибутив Cotonti (adminqv, cleaner, forumstats, ipsearch, massmovetopics, news, passrecover, recentitems, search, statistics, whosonline)
  • скин вашего сайта из каталога skins/

Скопируем все эти подкаталоги в хост Cotonti, переименуем файл datas/config-sample.php в datas/config.php (не забудьте сразу отредактировать в нем переменную $cfg['mainurl']) и перейдем к работе с базой данных.

Третий этап мигрирования: конвертирование базы данных в Юникод

Для начала необходимо создать базу данных для хоста Cotonti. Назовем ее sedition, как предлагается по умолчанию в установках config.dat. Теперь, для перехода на Юникод выполним операцию сравнения. Для этого в пункте Сравнение раздела Операции выберем utf8_unicode_ci и нажмем кнопку Пошел. (Продвинутые пользователи могут сразу выполнить SQL-запрос ALTER DATABASE `sedition` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci).

База данных создана и готова, но с дампом для нее придется немного поработать.

Откроем дамп в текстовом редакторе с поддержкой Юникода (в нашем примере Notepad++) и удалим все строки DEFAULT CHARSET=cp1251 (или с другой, отличной от UTF-8 кодировки, которую вы использовали). Сделать это можно при помощи операции поиска и замены.

Теперь необходимо преобразовать дамп в кодировку UTF-8 без BOM (Byte Order Mark). Сделать это несложно. Теперь и база данных и дамп готовы. Импортируем дамп.

Четвертый этап мигрирования: обновление базы данных до версии Seditio 125

На этом этапе мы снова займемся преобразованием базы данных. На этот раз – обновлением ее до исходной версии 125. Для этого нам потребуется выполнить скрипт upgrade-seditio12x-to-seditio125.php, который находится в корневом каталоге нашего хоста Cotonti. Однако прежде чем запустить его, необходимо переписать файл system/database.mysql.php на аналогичный файл из дистрибутива Seditio 121. Этот маленький хак потребуется нам только на время обновления базы данных, после чего мы вернем все на свои места.

Запускаем upgrade-seditio12x-to-seditio125.php и последовательно выполняем все 5 шагов:

Наша база данных обновлена. Удаляем upgrade-seditio12x-to-seditio125.php и перезаписываем system/database.mysql.php соответствующим файлом из дистрибутива Cotonti.

Однако запускать сайт еще рано: требуется обновить базу данных до текущей версии Cotonti.

Пятый этап мигрирования: обновление базы данных до текущей версии Cotonti

Это самый простой этап в переходе с Seditio на Cotonti. В нашем примере мы будем обновлять базу Seditio 125 до версии Cotonti 0.0.3. Для этого запускаем утилиту phpMyAdmin и открываем базу sedition. В разделе SQL -> Местоположение текстового файла -> Обзор выбираем файл с SQL-запросами для выполнения преобразования. Нам необходимо последовательно выполнить следующие SQL-запросы:

  • patch-125-n-0.0.1.sql
  • patch-0.0.1-0.0.2.sql
  • patch-0.0.2-0.0.3.sql

Перевод сайта с Seditio на Cotonti завершен. Можно приступать к подключению плагинов, конвертации скина и тонкой настройке новых возможностей движка.

Заинтересовались? Звоните нам по телефонам +375 (29) 774-35-89 и +375 (44) 774-35-89 в Минске. Мы будем рады помочь Вам в реализации Вашего проекта.

8 комментариев к посту «Перевод сайта с Seditio на Cotonti: как правильно?»
  • Аватар

    8. Admin @ 20 апр 2010 г. в 22:29

    Если поиск/замена в дампе выполняется в режиме "заменить все", возможно где-то замена происходит некорректно. Либо просто неправильно указана подстрока замены. Статья написана параллельно с переводом на Котонти сайта Seditio.by, да и немало пользователей пользовалось данным руководством. Поэтому ошибок здесь нет, и все возможные проблемы связаны либо с неудаленными плагинами сомнительного происхождения, либо с дампом.

  • Аватар

    7. Макс @ 20 апр 2010 г. в 17:59

    С горем пополам конвертнулся :) Спасибо за статью. Кстати, что имеется ввиду под корректностью поиска/замены?

  • Аватар

    6. Admin @ 20 апр 2010 г. в 17:43

    По поводу UTF на первом этапе: эта опция, принципиально ни на что не влияет. А ошибку синтаксиса надо искать -- возможно поиск/замена выполняется некорректно.

  • Аватар

    5. Макс @ 20 апр 2010 г. в 07:03

    На скриншоте к "Первому этапу мигрирования: подготовка исходного сайта" видно, что экспорт происходит в утф, хотя дамп у нас должен быть в 1251. Это не вызывает проблем? Я застопорился на 3-ем этапе мигрирования: после всех манипуляций импорт обратно не происходит - ругается на синтаксис.

  • Аватар

    4. Admin @ 9 апр 2010 г. в 20:46

    Типичная проблема плагина

  • Аватар

    3. Макс @ 9 апр 2010 г. в 05:42

    Я пробую на локале. Пишет после всего вот так: 2010-04-08 18:36 Fatal error : SQL error : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'e' at line 5 Это значит с сервером что-то? Другие сайты у меня на 067Коте нормально работают. В чём проблема?

  • Аватар

    2. Boss @ 16 июн 2009 г. в 01:38

    Отлично! Очень подробно и доходчиво..

  • Аватар

    1. Jorvik @ 16 апр 2009 г. в 22:18

    Полезное и подробное описание. На cotonti не нашел ничего лучше!

Добавление комментариев доступно только зарегистрированным пользователям