На хостинге логинимся под именем главного (первого) администратора, переводим Drupal в режим обслуживания на странице admin/config/development/maintenance.

ОБЯЗАТЕЛЬНО делаем резервные копии базы данных и файлов. Копию БД я обычно делаю в phpAdmin, просто создаю архив таблиц БД и скачиваю его к себе на компьютер. На хостинге у меня CPanel. В ней есть веб-интерфейс для файлового менеджера. Создаю архив всего каталога с установкой Drupal и тоже скачиваю к себе на ПК. Но перед этими действиями разумно прежде сделать очистку кэша на странице /admin/config/development/performance и выполнить оптимизацию таблиц в phpAdmin. Эти операции могут существенно сократить объем архивов. Можно еще для профилактики выполнить в браузере: имя_сайта/update.php. Если это действие вызвало проблемы, то прежде нужно разобраться с ними, и только после этого обновляться. О проблемах ниже.

С офсайта качаем последнюю версию Drupal. Её приходится в любом случае распаковывать и переархивировать прежде чем выгружать на хостинг, потому что внутри скачанного архива каталог вида "drupal-7.хх". Мне на хостинге такой каталог совсем не нужен. Пока новая версия Друпала разархивирована, сравниваем файлы robots.txt и .htaccess в новой и прежней версии. Переносим в новую версию свои изменения из старой.

В каждом каталоге \sites\имя_домена.ru переносим параметры подключения к БД из прежних файлов settings.php в новые версии, созданные переименовыванием файла \sites\default\default.settings.php в settings.php в соответствующем каталоге для каждого домена.
Запаковываем все, что получилось, в архив уже без лишней вложенности в подкаталог и копируем его на хостинг в папку установки Drupal.
На хостинге в каталоге установки Drupal удаляем каталоги:
/includes
/misc
/scripts
/themes
Распаковываем только что закачанный архив и в браузере запускаем: имя_сайта/update.php

Если все в порядке, то дальше аникей и обновление модулей на странице /admin/modules/update, но может быть и такое:
"PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'ProfileCrudTestCase-class' for key 'PRIMARY': INSERT INTO {registry} (name, type, filename, module, weight) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4), (:db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8, :db_insert_placeholder_9), (:db_insert_placeholder_10,"
и дальше еще много подобного...

Описание этой проблемы: http://drupal.org/node/1362760
Решение: http://drupal.org/node/1342064
В двух словах, нужно применить патч: http://drupal.org/files/duplicate-test-name-1342064-24.patch
Если с применением патча (это чисто линуксовые штучки) сложности, то можно просто заглянуть в него (это текстовый файл) и руками поправить две строки в модуле Profile2 (если он используется).
Однако, во время обновления эту ошибку можно просто проигнорировать. Помогает также обновление модуля Profile2 до версии 7.x-1.2.

Кроме того, на некоторых хостингах можно столкнуться с проблемой, связанной с конфигурацией безопасности, где в параметрах php задана переменная "open_basedir". Для установки (или обновления) Drupal 7 значение этой переменной должно быть "no value". Мне пришлось просить техподдержку хостинга отключить её на время обновления. Потом можно обратно вернуть. Ошибка выдавалась следующая:
"PHP open_basedir restriction Включено
The testing framework requires the PHP open_basedir restriction to be disabled. Check your webserver configuration or contact your web host."

Рубрики: 

Ярлыки: