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

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

Работая с несколькими 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 отключаем все модули, которые не входят в раздел “Ядро - обязательное”. Возможно, отключение придется делать в несколько этапов из-за зависимостей между модулями. Весьма кстати было бы на этом этапе читать далее

Комментарии

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

5 июля 2011 в 18:29