Малый апгрейд Друпала при мультисайтинге.
Малый это значит, что меняются версии Друпала с одним 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 для других сайтов из связки.
Малый апгрейд мультисайтовой связки закончен.
Комментарии
"Апгрейд" по-русски называется "обновление".
А чего - мне понравилось, все доходчиво.
Улыбнуло только "многосайтинг"
ЗЫ
Поправьте в тегах записи апргейд на апгрейд
ursus пишет: "Поправьте в тегах записи апргейд на апгрейд ;)"
Спасибо за подсказку, поправил.
ursus пишет: "Улыбнуло только "многосайтинг" :))"
Видимо Вы имели ввиду "многосайтовость". В Рунете этот термин более в ходу, чем "мультисайтинг":
Mногосайтинг - это круто.
За "от робота "people" " + огромный
Гогля дорос до того, что все строчку о нем в .htaccess должны ставить
PVasili пишет: За "от робота "people" " + огромный
А уж я-то роботу "people" какой большой плюс ставлю.
Робот "people" очень мягко и безвредно показывает клиентам, что сайт на Друпале все-таки требует присмотра от специалиста-друпальщика и периодически нуждается в апргейде.
У меня из небытия старые клиенты сами появляются, просят "people" побороть. Заодно сайт проапргрейдить и какие-то новые модули поставить.
секунду. этот пипл долбанный гугл проспамливает? я думал, это хакеры тупые скрипты тестят.
мля какой же гугл сцука.
"Не было печали - апдейтов накачали.."
На localhost обновился отлично, а запустил update.php в интернете - получил полную страницу варнингов. Испугался страшно, потом присмотрелся, оказалось mysql-сервер gone away. Нажал кнопку опять, и все прошло отлично.
А что за робот "people" ?
Ну он тут как то писал раньше частенько
3.2.2 пополнить .htaccess двумя строчками:
php_value error_reporting 7
php_value memory_limit 32M
думаю этот пунктик нужен многим...
C апгрейдом все получилось, большое спасибо!
А что значит:
/sites/modules (сторонние модули)
/sites/themes (сторонние темы)?
Разве сторонние темы и модули не помещаются в родные папки Друпал www\themes и www\modules. Если нет, то как сторонние модули, находящиеся в /sites/modules, подключать в Друпал?
А где в Друпал можно получить информацию о текущей версии?
Сторонние модули|темы - имеются ввиду модули на входящие в стандартную поставку Drupal
Версия Drupal указана на странице /admin/logs/status
конечно можно пихать сторонние модули (т.е. те модули которые ты лез на сайт drupal.org скачивал специально, а не те которые появились при установке друпеля) в папку www\modules\ но при апгрейте неудобно вспоминать какие стороние а какие нет, поэтому если у вас один сайт (нет сложных связок в чём я сомневаюсь если возник этот вопрос) ложить надо в www\sites\all\modules\ тогда при малом обновлении версии папку www\sites\all\modules\ просто не трогаете... для тем соответственно www\sites\all\themes\
Ещё один подводный камень если у вас лежало всё в www\modules а вы захотели перенести то сначала все модули отключаем быстро перетаскиваем папочки и сразу быстро включаем тогда всё будет в порядке... а если вы не переносите а просто ложите то а админке всё должно работать как раньше кинули папку в меню появился модуль...
UPD:
Update Status - незаменимый модуль, который показывает есль ли новая версия и выводит текущии версии модулей...
P.S. простите за сумбурный комментарий выше, конец рабочего дня... голова деревянная.... спрашивайте что не понятно объясню более подробно... ещё раз простите...
Все понятно!)
чет нихрена не получается...
при запуске update.php на подчиненном сайте грит что обновлятся некуда