Привлекайте друзей и коллег, ДЕЛИТЕСЬ в социальных сетях, закладках и блогах
100zakladok
Bobrdobr
Communizm
Linksiua
LinkStore
Memori
Moemesto
Ruspace
Vaau
VKontakte
Yandex
Blinklist
Box
Buzz Up!
del.icio.us
Digg
Facebook
Furl
Google
Twitter
Yahoo
Google Buzz
Icerocket
identi.ca
LinkedIn
Magnoliacom
Mister Wong
MySpace
Newsvine
Ping This!
Propeller
Reddit
StumbleUpon
Technorati
Drupal: Обновление сайта Drupal6 до 7 на мультисайтинге
Занимаясь вопросом перехода с drupal6 на drupal7 решил написать серию статей об обновлении друпала с 6ой версии на 7ую и всеми, связанными с этим проблемами.
Для начала, спасибо http://azbukaweb.ru/update-site-drupal-6-to-7-na-multiseitings, за короткий и ёмкий материал. Как видно из следующей статьи, требуется выполнить 24 пункта, так что нужно запастись временем, вниманием и терпением прежде, чем начинать этот процесс.
Работая с несколькими Drupal сайтами на одном хостинге, удобно использовать встроенный в Drupal механизм мультисайтинга. О преимуществах работы Drupal в режиме мультисайтингаразговор отдельный. Но обновление версии ядра Drupal в этом случае имеет определенную специфику. Нельзя обновить все сайты за один раз, т.к. у каждого сайта будут свои особенности, которые придется решать по-отдельности. Ниже изложен порядок действий, который привел к желаемому результату. Но сначала оговорка. Работоспособной процедура обновления сайта Drupal с версии 6 до версии 7 стала только после выхода релиза 7.4. Не надо пытаться делать обновление с прежними версиями.
Подготовка:
Составить полный список модулей, которые используются сайтом. Выяснить на drupal.orgналичие версий этих модулей под Drupal7. Возможно, функционал некоторых модулей перекочевал в ядро Drupal, как например, произошло с модулем CCK. Некоторые модули прекратили свое развитие на версии 6 и их функционал выполняют другие модули под новыми названиями для версии 7. На этом этапе нужно принять взвешенное решение о необходимости обновления. Нужно иметь ввиду, что хорошие шансы на простое обновление только у тех сайтов, которые создавались по принципу “не написав ни строчки кода”. Ибо Drupal6 и Drupal7 - это не две версии одной и той же CMS, а две разные CMS, т.к. у них разные API. В Drupal7 нет многих функция API Drupal6, а те, что сохранились по названию имеют другой набор входных параметров. Чаще всего, список параметров, передаваемых через запятую в Drupal6, заменен в Drupal7 массивом параметров [каждый из которых тоже зачастую является массивом]. Кроме модулей нужно позаботиться о новой версии темы оформления. Если все необходимые модули и тема оформления для новой версии есть, либо от непортированных под семерку можно отказаться, переходим к следующим пунктам.
1. Если действующая версия инсталляции Друпал не самая последняя (на сегодня это 6.22), то нужно сначала обновиться до последней версии (не забывая про резервные копии).
2. Рядом с каталогом установки Друпал шестой версии создаем другой каталог для версии 7. Например, шестая версия размещалась на хостинге в каталоге “/home/my_login/drupal”, здесь “/home/my_login/” - домашний каталог на хостинге; “drupal” - каталог инсталляции Друпал6. Тогда создаем каталог “/home/my_login/drupal7”.
3. Копируем последнюю версию Drupal7 со страницы http://drupal.org/project/drupal
4. Устанавливаем как обычно Drupal7 в новый каталог. Для этого можно временно создать поддомен одного из рабочих доменов, либо использовать какой-то свой тестовый домен. В любом случае, нужно на хостинге подключить этот домен/поддомен, указав для него в качестве домашнего каталога вновь созданный. В данном примере это - “/home/my_login/drupal7”. На этом шаге нам нужно убедиться в том, что данный хостинг поддерживает работу с Drupal7. Например PDO (расширение PHP), как показала приктика, присутствует не на всех хостингах. А без PDO Drupal7 не работает.
5. Устанавливаем и тестируем в Drupal7 все модули, которые необходимы для нашего сайта.
6. Делаем архив каталога “/home/my_login/drupal/sites/нашсайт.ru”.
7. Делаем копию БД нашего сайта и сохраняем к себе на ПК (с пометкой “рабочая 6” или другой понятной нам). Можно использовать phpMyAdmin хостера, но лучше воспользоваться скриптом - http://sypex.net/ru/ или аналогичным. Это быстрее, проще и удобнее.
8. Регистрируемся на сайте в Drupal6 под именем пользователя с ID=1 (который создается при установке).
9. Переводим сайт в режим техобслуживания (на странице admin/settings/site-maintenance)
10. Переходим на страницу admin/build/themes и назначаем тему по умолчанию - Garland.
11. На странице admin/build/modules отключаем все модули, которые не входят в раздел “Ядро - обязательное”. Возможно, отключение придется делать в несколько этапов из-за зависимостей между модулями. Весьма кстати было бы на этом этапе критически оценить надобность всех модулей. Если какие-то из установленных модулей не планируется использовать в версии 7, то нужно их не только отключить, а еще и деинсталлировать на странице admin/build/modules/uninstall. При этом будут удалены из БД данного сайта таблицы, созданные этими модулями, и записи в общих настройках сайта. На другие сайты в данной мультисайтинговой установке Drupal это не повлияет.
12. Делаем копию БД нашего сайта и сохраняем к себе на ПК (с пометкой “6 с отключенными модулями” или другой понятной нам).
13. На хостинге копируем каталог “/home/my_login/drupal/sites/нашсайт.ru” в “/home/my_login/drupal7/sites/нашсайт.ru”. Копируем, а не переносим для возможности быстрого отката. Если сайт объемный и места для копирования не достаточно, то переносим, тем более, что у нас есть резервная копия, сделанная на шаге 6.
14. В панели управления хостингом изменяем домашний каталог для нашего сайта с “/home/my_login/drupal” на “/home/my_login/drupal7”. Например, на CPanel 11 нет возможностиизменить каталог, пришлось просто удалить домен и создать заново в новом каталоге.
15. Удалаям файл “/home/my_login/drupal7/sites/нашсайт.ru/settings.php” и на его место копируем “/home/my_login/drupal7/sites/default/default.settings.php”, соответственно, переименовав его в “settings.php”. Устанавливаем на этот файл права “666”.
16. Запускаем обновление http://нашсайт.ru/update.php Если на этом этапе возникают проблемы, то нужно поколдовать в файле settings.php:
строку “$update_free_access = FALSE;”
нужно заменить на “$update_free_access = TRUE;”.
После обновления вернуть обратно “FALSE”.
17. Делаем копию БД нашего сайта и сохраняем к себе на ПК (с пометкой “7 сразу после обновления” или другой понятной нам).
18. Включаем модули.
19. Запускаем обновление http://нашсайт.ru/update.php
20. На странице admin/reports/status проверяем наличие ошибок и пытаемся с ними разобраться. Если не удается, то откатываемся, восстанавливая БД из резервной копии с пометкой “рабочая 6”, перенося сайт на прежнее место в каталог “/home/my_login/drupal/sites/нашсайт.ru” и измененяя домашний каталог сайта в первоначальное состояние.
21. Если с модулями все нормально, включаем свою тему оформления на странице admin/appearance/list
22. Делаем копию БД нашего сайта и сохраняем к себе на ПК (с пометкой “7 рабочая” или другой понятной нам).
23. Переводим сайт в рабочий режим на странице admin/config/development/maintenance
24. Приводим в порядок внешний вид сайта: расположение блоков, цвета, шрифты и прочее.
- Для комментирования войдите или зарегистрируйтесь
Свежие статьи в блогах
- Настройка драйвера HASP ключа и раздачи HASPLM лицензий 1С линукс сервером по сети на CentOS_6.2_x64
- Битрикс: Вытаскиваем свойства товара (артикул) при экспорте в 1С [solved]
- Поиск и замена разых подстрок: регулярные выражения в Kate и Notepad++
- Битрикс путает товары при поиске заказа по товару
- CentOS Starting Munin Node: Can't locate Net/Server/Fork.pm [Solved]
- Drupal: Ошибка call_user_func_array при использовании Framework
- Chrome: Приложение для доступа к почте без подключения к Internet
- Drupal7: Миграция с 6.x на 7.x при помощи Backup_Migrate
- Целевая аудитория сайта - важный аспект работы блогера
- Cоздание сайтов

Комментарии
Важные примечания:
1. Не лишним будет еще раз напомнить, что Drupal6 и Drupal7 - это совершенно разные СМС и сложных сайтах с большим количеством самописного кода переход может оказаться весьма и весьма сложным и длительным процессом. В связи с чем нужно понимать, для чего именно нужен переход на “семерку” и “стоит ли овчинка выделки”.
2. В этом описании ничего не говорилось о DNS. В общем случае может оказаться, что IP-адреса у нашего сайта на “шестерке” и того же сайта на “семерке” могут оказаться разными. Если управление DNS делегировано хостеру, то проблемы не возникнет. Единственное, что может быть - задержка с обновлением DNS из-за кэша. Если DNS используется свой, то нужно будет выяснить, не изменился ли IP-адрес сайта и, при необходимости, внести соответствующие корректировки.
3. Такое количество резервных копий БД - вовсе не параноя, а объективная необходимость, котрая может спасти вас в слуае проблем и невозможности поднять сайт в версии 7. Делаются они не долго, а экономят времени, нервов и жизней много.
Выбор - личное дело каждого