Обновление сайта Drupal с 6 до 7 на мультисайтинге

Главные вкладки

Аватар пользователя kwas kwas 4 июля 2011 в 18:08

Работая с несколькими Drupal сайтами на одном хостинге, удобно использовать встроенный в Drupal механизм мультисайтинга. О преимуществах работы Drupal в режиме мультисайтинга разговор отдельный. Но обновление версии ядра Drupal в этом случае имеет определенную специфику. Нельзя обновить все сайты за один раз, т.к. у каждого сайта будут свои особенности, которые придется решать по-отдельности. Ниже изложен порядок действий, который привел к желаемому результату. Но сначала оговорка. Работоспособной процедура обновления сайта Drupal с версии 6 до версии 7 стала только после выхода релиза 7.4. Не надо пытаться делать обновление с прежними версиями.

0. Составить полный список модулей, которые используются сайтом. Выяснить на drupal.org наличие версий этих модулей под Drupal7. Возможно, функционал некоторых модулей перекочевал в ядро Drupal, как например, произошло с модулем CCK. Некоторые модули прекратили свое развитие на версии 6 и их функционал выполняют другие модули под новыми названиями для версии 7. На этом этапе нужно принять взвешенное решение о необходимости обновления. Нужно иметь ввиду, что хорошие шансы на простое обновление только у тех сайтов, которые создавались по принципу “не написав ни строчки кода”. Ибо Drupal6 и Drupal7 - это не две версии одной и той же СМС, а две разные СМС, т.к. у них разные 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 отключаем все модули, которые не входят в раздел “Ядро - обязательное”. Возможно, отключение придется делать в несколько этапов из-за зависимостей между модулями. Весьма кстати было бы на этом этапе читать далее

Комментарии

Аватар пользователя Fasdalf Fasdalf 5 июля 2011 в 18:29

Самое интересное ждёт Вас на пункте 20. Поэтому первым пунктом должно быть "Убедитесь что для вашего сайта есть стабильные версии всех модулей, которые нельзя выкинуть" А то с Filefield Path были... Гхм... неожиданности