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

Аватар пользователя Макс К. Макс К. 15 октября 2007 в 14:45

Апгрейд Друпал  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

Комментарии

Аватар пользователя ursus ursus 15 октября 2007 в 15:40

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

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

Аватар пользователя Макс К. Макс К. 15 октября 2007 в 16:48

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

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

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

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

Аватар пользователя PVasili PVasili 15 октября 2007 в 20:10

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

Аватар пользователя Макс К. Макс К. 15 октября 2007 в 22:06

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

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

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

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

Аватар пользователя andron13 andron13 15 октября 2007 в 22:35

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

Аватар пользователя anser anser 23 октября 2007 в 3:11

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

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

Аватар пользователя EliteMonk EliteMonk 7 декабря 2007 в 12:46

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

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

Аватар пользователя yuri yuri 7 декабря 2007 в 17:54

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

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

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

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

Аватар пользователя Krotty@drupal.org Krotty@drupal.org 7 декабря 2007 в 18:19

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

Аватар пользователя EliteMonk EliteMonk 7 декабря 2007 в 20:22

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

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

Аватар пользователя EliteMonk EliteMonk 7 декабря 2007 в 20:09

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

Аватар пользователя RoSk0 RoSk0 30 апреля 2009 в 12:34

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