You are here

Обновление Drupal 7 и его модулей

Обновление
 
Ходить «задом наперёд» порой забавно. Люди, одинаково владеющие левой рукой, как правой, с развитым вестибулярным аппаратом, подобны кошке – как не брось, не падают. Вот и я, что хочу, то и делаю. Две недели назад выложил запись о конкретном обновлении, а теперь позвольте представить – типовой план мероприятий.
 
Если кто читал заметку об обновлении в Друпал 6 (вполне полезна, содержит пояснения многих моментов), скажу, что изменений мало. По большому счёту – только движение по меню. А так, делали обновление в старой версии – сделаете и в новой. «Шаги», которые мы совершим – прежние, а сам процесс приятнее.
 
Надеюсь, вы уже включили модуль «Toolbar» («Панель инструментов администратора») и сделали локальную копию сайта? Тогда пройдёмся по пунктам:
 
  1. Заходим на сайт.
  2. Регистрируемся в качестве «первого» пользователя.
  3. Переводим в режим обслуживания.
По меню: «Конфигурация» => «Разработка», «Режим обслуживания». Ставим «галочку» на «Перевести сайт в режим обслуживания» и нажимаем «Сохранить конфигурацию».
(Прямая ссылка: /admin/config/development/maintenance).
 
  1. Если на сайте используется «своя» тема оформления, лучше вернуть стандартную:
Вверху в административном меню, щёлкаем на пункт «Оформление» (/admin/appearance), под темой «Garland», а лучше – «Seven» (она более удобна для администрирования) нажимаем «Включить» и «Установить по умолчанию».
 
Чтобы не провоцировать лишние ошибки, по-прежнему рекомендую отключать нестандартные модули, если у вас такие имеются. Как попасть в список модулей:
открываем в административном меню, пункт «Модули» (/admin/modules).
 
  1. Сбрасываем кэш:
«Конфигурация» => «Разработка», «Производительность». Жмём кнопку «Очистка кэша».
(/admin/config/development/performance)
 
 
Маленькое отступление.Что делать если вы случайно «разлогинились», или пытаетесь зайти на сайт с другого компьютера, или на сайт потребуется зайти другим пользователям, тоже имеющим расширенные права (достаточные для работы с сайтом в режиме обслуживания)?
 
Тогда надо воспользоваться ссылкой на стандартную страничку входа пользователя:
<имя сайта>/user/login или <имя сайта>/?q=user/login.
Например, если ваш сайт называется «Test.Ru», то это будет: Test.Ru/?q=user/login
Это может вас спасти и в случае, если вы случайно закроете на сайте блок авторизации.
 
  1. Дальше, заменяем (обновляем) файлы.
  1. 1. В случае, если обновляем ядро Друпала.
В «корневой» папке сайта удаляем все директории, кроме «Sites». И все файлы, кроме:
  • «.htaccess»;
  • «favicon.ico» – если он у вас есть;
  • «robots.txt»;
  • при наличии – оставляем файлы подтверждения подлинности, типа для Google и Яндекса (google***.html, yandex***.html);
  • и иконки для iOS-устройств (apple-touch-icon***.png), если имеются.
 
Так же, если Вы используете какие-то специальные настроечные файлы, «картинки» к ним, в корне своего сайта – их тоже надо оставить в покое (иначе, придётся восстанавливать).
 
После этого, в папку сайта распаковываем новый Drupal, за исключением тех файлов и папки, что мы оставили.
 
При обновлении версия ядра Друпал (если будут обновляться только модули – этого делать не надо), рекомендую, для повышения «чистоты», провести микро-инсталляцию. Чтобы её спровоцировать – в папке «Sites/Default» надо удалить файл «Settings.php» и воссоздать заново копированием из файла «Default.Settings.php».
 
Эта подмена приведёт к тому, что при обновлении, Drupal начнёт установку, как в первый раз, в ходе которой вам надо снова указать действующие имя базы данных, логин и пароль. Надеюсь, вы их помните? (Записаны в «старом» «Settings.php»).
 
Напоминаю, если сомневаетесь – не делайте этого! А если сделаете – поменяйте права доступа ко вновь созданному файлу «Settings.php» на «664», rw- rw- r--  (максимум – «775», rwx rwx r-x). Не беспокойтесь, если вдруг забудете, программа установки вам напомнит.
 
  1. 2. Если обновляем модуль(и).
Заходим в папку «Sites/All/Modules», удаляем «старый» модуль, а на его место – распаковываем новый.
 
  1. Набрав в интернет-проводнике (IE, Opera, FireFox или что там у Вас?),
<имя сайта>/update.php – выполняем обновление (или микро-установку, если меняли файл «Setting.php»).
 
В ходе обновлений могут появляться сообщения об ошибках. Чаще всего они возникают при кардинальных изменениях: не могут выполниться какие-то SQL-запросы к базе данных сайта, отсутствуют или присутствуют какие-то лишние таблицы, обнаруживаются какие-то проблемные поля, или несоответствие типов данных.
 
Что делать, если возникли подобные трудности при обновлении модулей? Очень просто:
  • Как и предлагает программа обновления, перейти в управление модулей.
  • Снять «галочки» напротив тех модулей, которые не могут обновиться или мешают обновлению.
  • Потом, заходим в каталог сайта и удаляем эти модули физически.
  • Снова выполняем обновление, но уже без них (<имя сайта>/update.php).
 
Примечание: некоторые говорят, что этого делать не обязательно. А я – делаю, т.к., в большинстве случаев это приводит к тому, что информация о сбойном модуле в базе данных затирается.
 
  • После этого, распаковываем новый правильный модуль.
  • Снова выполняем обновление (ошибок быть не должно!).
  • Если всё хорошо – заходим в управление модулей и снова его (или их) включаем (ставим «галочку»).
 
 
Продолжаем обновление. В случае успеха – всё возвращаем назад:
 
  1. Возвращаем ранее отключенные модули (если вы что-то отключали).
  2. Возвращаем родную тему сайта.
  3. Выполняем проверку оставшихся ошибок и исправляем их:
«Отчёты» => «Отчёт о состоянии» (/admin/reports/status)
 
  1. Выполняем проверку обновлений (вдруг что-то не так стало или появилось ещё какое-то обновление):
«Отчёты» => «Доступные обновления» (/admin/reports/updates)
 
  1. Делаем копию базы и сайта после обновления. (Это на любителя!)
  2. Снимаем сайт с обслуживания.
 
 
Важный вопрос: права доступа к папкам и файлам. В принципе, всё осталось, как и в «шестой» версии Друпал. Отличие только по файлу «Settings.php» - «семёрка» прямо рекомендует (после инсталляции) выставить ему права на уровне максимум «644». Не забывайте!
 
 
30.10.2016 г.       Карандаш.
 

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer