Мультисайтинг (многосайтовость), малый апгрейд Drupal

Аватар пользователя Макс К.

Апгрейд Друпал  Upgrade DrupalМалый апгрейд Друпала при мультисайтинге.

Малый это значит, что меняются версии Друпала с одним API, например, версия 5.0 меняется в 5.2. Или 6.0 меняется в 6.1.

Смена 4.7 на 5.2 или с 5.2 на 6.0 это уже будет большой апгрейд.

Шаги расписаны для малого апгрейда Drupal на сайтах, где используется мультисайтинг. Но можно данную инструкцию использовать при малом апгрейде одного сайта. Достаточно представить себе, что в вашей мультисайтовой связке всего 1 сайт.

Расчетное время малого апгрейда - по 45 минут на каждый сайт из мультисайтовой связки.

Файлы в локальной версии показаны как /... , файлы на сервере показаны как http://www.example.com/...

Шаг 1. Для каждого сайта из связки

1.1. Зайти как юзер 1, не закрывать браузер до конца всего апгрейда

1.2. Перевести сайт в офф-лайн http://www.example.com/admin/settings/site-maintenance
Задать время восстановления сайта на столько часов вперед, сколько сайтов находится в мультисайтовой связке.

1.2. Открыть дополнительный браузер, в нем открыть как "Гость" окно с сайтом для контроля

1.3. Забэкапить базу (не говорите потом, что не заметили этой строки)

1.4. Забэкапить папку /files на сервере

1.5. Забэкапить всю локальную версию сайта в zip. Или забэкапить только папки:

  • /sites - в первую очередь
  • /sites/modules (сторонние модули)
  • /sites/themes (сторонние темы)

1.6. Включить штатную Bluemarine or Garland, http://www.example.com/admin/build/themes (не обязательно)

1.7. Удалить из локальной версии сайта все папки и файлы, которые есть в инсталляции Друпала, /sites не удалять!

1.8. Вместо них залить папки и файлы из новой версии

1.9. Вручную перенести содержимое папки /sites

1.10. Вручную внести в новый файл /sites/default/settings.php изменения, которые были сделаны в старом варианте этого файла.

1.11. Для любителей хаков Друпала пролистать свой "Журнал сделанных хаков" и внести в новую версию Друпала изменения всех ранее сделанных хаков. (В расчете времени эта работа не учитывалась)

1.12. Поменять атрибуты у http://www.example.com/sites/default/settings.php с 444 на 644.

1.13. Удалить все старые файлы Друпала из директории сайта на сервере. Папку http://www.example.com/files оставить как есть.

1.14. Синхронизировать локальную версию с сайтом

1.15. Повторить шаг 1 для других сайтов из мультисайтовой связки.

Шаг 2. Для каждого сайта из связки

2.1. Вернуть атрибуты у http://www.example.com/sites/default/settings.php с 644 на 444.

2.2. Запустить http://www.example.com/update.php
Возможно, потребуется авторизация как userID=1 через /user или через /?q=user

2.3. Если была использована штатная тема на время апгрейда, то восстановить ту тему, которая была раньше
http://www.example.com/admin/build/themes

2.4. Восстановить сайты из офф-лайна http://www.example.com/admin/settings/site-maintenance

2.5. Проверить восстановление сайта на дополнительном браузере, зайдя как "Гость". (Не говорите потом, что не видели этот пункт).

2.6. Повторить Шаг 2 для других сайтов из связки.

Шаг 3. Для каждого сайта из связки

Подчистка. Ее делают наиболее дотошные.

3.1. Поменять в файле http://www.example.com/update.php строку

$access_check = TRUE;.
на
$access_check = FALSE;

3.2. Для защиты от робота "people" пополнить .htaccess двумя строчками:
RewriteCond %{HTTP_REFERER} ^http://www\.google\.com/$
RewriteRule .* - [F]

3.3. Еще раз синхронизировать сайт с локальной версией сайта.

3.4. Повторить Шаг 3 для других сайтов из связки.

Малый апгрейд мультисайтовой связки закончен.

0 Thanks

Комментарии

Аватар пользователя ultraboy@drupal.org
ultraboy@drupal.org 11 лет назад

"Апгрейд" по-русски называется "обновление".

Аватар пользователя ursus
ursus 11 лет назад

А чего - мне понравилось, все доходчиво.
Улыбнуло только "многосайтинг" :))

ЗЫ
Поправьте в тегах записи апргейд на апгрейд ;)

Аватар пользователя Макс К.
Макс К. 11 лет назад

ursus пишет: "Поправьте в тегах записи апргейд на апгрейд ;)"

Спасибо за подсказку, поправил.

ursus пишет: "Улыбнуло только "многосайтинг" :))"

Видимо Вы имели ввиду "многосайтовость". В Рунете этот термин более в ходу, чем "мультисайтинг":

Аватар пользователя andron13
andron13 11 лет назад

Mногосайтинг - это круто. ;)

Аватар пользователя PVasili
PVasili 11 лет назад

За "от робота "people" " + огромный :)
Гогля дорос до того, что все строчку о нем в .htaccess должны ставить :)

Аватар пользователя Макс К.
Макс К. 11 лет назад

PVasili пишет: За "от робота "people" " + огромный :)

А уж я-то роботу "people" какой большой плюс ставлю.

Робот "people" очень мягко и безвредно показывает клиентам, что сайт на Друпале все-таки требует присмотра от специалиста-друпальщика и периодически нуждается в апргейде.

У меня из небытия старые клиенты сами появляются, просят "people" побороть. Заодно сайт проапргрейдить и какие-то новые модули поставить.

Аватар пользователя andron13
andron13 11 лет назад

секунду. этот пипл долбанный гугл проспамливает? я думал, это хакеры тупые скрипты тестят.
мля какой же гугл сцука.

Аватар пользователя anser
anser 11 лет назад

"Не было печали - апдейтов накачали.."

На localhost обновился отлично, а запустил update.php в интернете - получил полную страницу варнингов. Испугался страшно, потом присмотрелся, оказалось mysql-сервер gone away. Нажал кнопку опять, и все прошло отлично.

Аватар пользователя orbisnull
orbisnull 10 лет назад

А что за робот "people" ?

Аватар пользователя PVasili
PVasili 10 лет назад

Ну он тут как то писал раньше частенько :)

Аватар пользователя EliteMonk
EliteMonk 10 лет назад

3.2.2 пополнить .htaccess двумя строчками:
php_value error_reporting 7
php_value memory_limit 32M

думаю этот пунктик нужен многим...

Аватар пользователя yuri
yuri 10 лет назад

C апгрейдом все получилось, большое спасибо!

А что значит:
/sites/modules (сторонние модули)
/sites/themes (сторонние темы)?

Разве сторонние темы и модули не помещаются в родные папки Друпал www\themes и www\modules. Если нет, то как сторонние модули, находящиеся в /sites/modules, подключать в Друпал?

А где в Друпал можно получить информацию о текущей версии?

Аватар пользователя Krotty@drupal.org
Krotty@drupal.org 10 лет назад

Сторонние модули|темы - имеются ввиду модули на входящие в стандартную поставку Drupal
Версия Drupal указана на странице /admin/logs/status

Аватар пользователя EliteMonk
EliteMonk 10 лет назад

конечно можно пихать сторонние модули (т.е. те модули которые ты лез на сайт drupal.org скачивал специально, а не те которые появились при установке друпеля) в папку www\modules\ но при апгрейте неудобно вспоминать какие стороние а какие нет, поэтому если у вас один сайт (нет сложных связок в чём я сомневаюсь если возник этот вопрос) ложить надо в www\sites\all\modules\ тогда при малом обновлении версии папку www\sites\all\modules\ просто не трогаете... для тем соответственно www\sites\all\themes\
Ещё один подводный камень если у вас лежало всё в www\modules а вы захотели перенести то сначала все модули отключаем быстро перетаскиваем папочки и сразу быстро включаем тогда всё будет в порядке... а если вы не переносите а просто ложите то а админке всё должно работать как раньше кинули папку в меню появился модуль...

UPD: А где в Друпал можно получить информацию о текущей версии?
Update Status - незаменимый модуль, который показывает есль ли новая версия и выводит текущии версии модулей...

Аватар пользователя EliteMonk
EliteMonk 10 лет назад

P.S. простите за сумбурный комментарий выше, конец рабочего дня... голова деревянная.... спрашивайте что не понятно объясню более подробно... ещё раз простите...

Аватар пользователя yuri
yuri 10 лет назад

Все понятно!)

Аватар пользователя RoSk0
RoSk0 9 лет назад

чет нихрена не получается...
при запуске update.php на подчиненном сайте грит что обновлятся некуда