Есть у нас в хозяйстве несколько клиентских сайтов, сделанных в разное время (чаще не нами и очень давно) на CMS Mambo и ее наследнице Joomla. Mambo с некоторых пор канула в Лету, а Joomla обновилась до версии 1.5. На некоторых сайтах CMS не обновлялась годами, некоторые успели «намотать» «вредоносный код» — надо разбираться, чистить, обновлять, латать дыры.
И тут начинается самое веселое — обновить старинную Mambo с коллекцией столь же древних компонентов до свежей версии Joomla 1.5 оказалось сложнее, чем перенести сайт на Drupal. Никакой интеллигентной процедуры миграции для Joomla не предусмотрено, даже если наплевать на нестандартные компоненты.
Для Drupal существует модуль Joomla to Drupal, который сильно облегчает перенос сайта с большим количеством страниц на эту платформу. Модуль позволяет импортировать из базы данных Joomla пользователей, разделы и категории (из них создаются словари таксономии) и собственно само содержимое.
Процедура выглядит так:
1. Устанавливаем Drupal, ставим и включаем модуль Joomla to Drupal
2. Конфигурируем модуль — там нужно устроить доступ к базе данных Joomla.
3. Копируем данные, хранящиеся в базе: пользователей (если надо), категории, страницы.
4. Копируем картинки с сайта Joomla в нужную папку на Drupal (обычно, /images в /sites/default/files/images).
5. Переносим тему оформления. Мы редизайн не делали, поэтому перенесли старые шаблоны. Времени уходит часа 3 и более, в зависимости от количества и сложности используемых блоков (модулей в терминах Joomla)
6. Долго и нудно вычищаем в содержимом старые перекрестные ссылки, пути к картинкам и прочее — это самый трудоемкий процесс.
В последнем пункте сильно помогает прямой доступ к MySQL и запрос, о котором не все знают (удивительно, но факт).
mysql> UPDATE tbl SET col = REPLACE(col, 'oldtext', 'newtext') WHERE col LIKE '%oldtext%';
Очень удобно и быстро можно заменить пути к картинкам. С ссылками сложнее. Автоматически перевести сложную структуру URL из Joomla (что SEF, что нет) в Drupal почти нереально, то есть очень непросто. Самое простое и быстрое — убрать такие ссылки из текстов страниц вовсе. Если страниц немного, то можно попытаться поправить ссылки руками.
После переноса сайта на него еще долго будут переходить из поисковых систем по старым адресам. Документов с такими адресами на сайте не будет, а стандартная страница 404 у Drupal не слишком приветливая. Чтобы пользователь не испугался и не убежал сразу, можно поставить пару модулей: CustomError и 404 Blocks, они делают страницу с ошибкой более дружелюбной.
Последним пунктом программы можно удалить модуль Joomla, но только если вы не переносили пользователей. В силу разного формата паролей, без модуля Joomla старые пользователи не смогут войти на новый сайт. При первом входе пользователя модуль конвертирует формат и в дальнейшем для него не требуется.
На перенос этого и того сайтов ушло 2 дня. Не все еще гладко, но основная работа окончена, записи в DNS сменены, прощание с Joomla/Mambo состоялось и это здорово.
4 ответа к “Перенос сайта с Mambo (Joomla) на Drupal”
Такой вопрос: возникала ли проблема с русскими символами при переносе БД (аброкадабры) Jooml`ы?И без потерь ли в данных оная интрегрироавалсь в Drupal?
Нет, не было проблем. Я переносил базу данных с другого сервера на новый, попутно конвертировал дамп базы в utf8.
Спасибо, тоже думаю переходить на cms drupal полностью =)
Спасибо за информацию, как раз занимаюсь этим мракобесием, ваша статья внесла ясность в последовательность переноса.