Перейти к основному содержанию

Обновление Drupal 9 до Drupal 10 в Windows

Drupal 10

Пока не закончились новогодние праздники нужно успеть сделать одно хорошее дело. А именно, обновить движок сайта с Drupal 9 на Drupal 10. Посетителей не много, все отдыхают. Так что самое время. Два года назад я уже занимался чем-то подобным:

Обновление Drupal 8 до Drupal 9 в Windows

Тогда я делал всё ручками, на этот раз буду использовать Composer. Частично.

Надеюсь, не нужно напоминать сделать резервную копию базы данных и сайта?

Посмотрим доступные обновления.

drupal

Текущая версия движка 9.5.9. Обновляться будем на 10.2.0.

Sites must update to at least Drupal 9.4.4 before upgrading to Drupal 10

Минимальная версия, с которой можно перейти на десятку: 9.4.4.

Подготовка к обновлению

Сайт работает на PHP 8.0. Заглянем в табличку совместимости.

drupal

Drupal 10 requires at least PHP 8.1. PHP 8.1.6 is recommended.

Для Drupal 10 потребуется минимум PHP 8.1, так что для начала обновим PHP. Начиная с PHP 8.1 установка сильно усложнилась. Microsoft Web Platform Installer (WebPI), которым раньше я пользовался для установки PHP больше не работает, так что устанавливать приходится вручную. Возня с дополнительными расширениями тоже приключение. Очень печально, что для Windows Server 2016 нет нормальных способов установки. Установку PHP 8.1 вынес в отдельную статью.

Установка PHP 8.1 на IIS 10

drupal

Drupal 10 поддерживает БД:

  • MariaDB 10.3.7+
  • MySQL/Percona 5.7.8+

Этим требованиям мой проект удовлетворяет.

Устаревшие модули

Модули, которые больше не поддерживаются в Drupal 10:

  • Aggregator
  • CKEditor 4
  • Color
  • HAL
  • Quick Edit
  • RDF

Часть модулей я удалил, типа Color, Quick Edit и RDF.

drupal

Остался CKEditor 4.

drupal

Если очень нужна работа в CKEditor 4, то его можно установить как отдельный модуль:

https://www.drupal.org/project/ckeditor

Но я уже буду сразу переходить на CKEditor 5. Устанавливаю его.

drupal

Нужно изменить текстовые редакторы, использующие CKEditor 4, переключить их на CKEditor 5.

drupal

Переключаю у базового редактора.

drupal

Кнопочки на панели автоматически мигрировали.

drupal

Переключаю у полного редактора.

drupal

Одна кнопка какая-то лишняя добавилась, отредактировал вручную.

drupal

Текстовые редакторы переключены на CKEditor 5.

drupal

Теперь можно удалить модуль CKEditor 4.

Обновление расширений

Все модули обновляю до последних версий.

Устаревшие темы

Темы, которые больше не поддерживаются в Drupal 10:

  • Bartik
  • Classy
  • Seven
  • Stable

С темами тоже нужно разобраться, переключить их на новые, к примеру. Но это позже.

Upgrade Status

Модуль Upgrade Status поможет проверить ваш сайт на совместимость с Drupal 10.

Вручную он у меня не захотел ставиться, пришлось использовать Composer.

composer require drupal/upgrade_status

drupal

Смотрим отчёт совместимости.

drupal

Проект ещё не совместим.

drupal

Имеются несовместимые темы. Заменим их на совместимые.

drupal

Заменил темы на совместимые.

drupal

Отчёт стал лучше, но проект всё ещё не совместим.

drupal

Не нравится тема Stable, которая используется в основной теме сайта. Её нельзя удалить, тем более что она входит в ядро. Но эту тему можно установить отдельно.

https://www.drupal.org/project/stable

composer require "drupal/stable":"^2.0"

Composer в помощь, обращаем внимание на кавычки, в Windows только так сработает.

drupal

Проверяем совместимость.

drupal

Совместимо. Но рекомендуют сначала обновить Drupal 9 до последней версии.

Обновление Drupal 9

composer update drupal/core --with-dependencies

drupal

composer update "drupal/core-*" --with-all-dependencies

drupal

Обновилось.

drupal

Ядро Drupal обновилось до версии 9.5.11.

Обновление до Drupal 10

composer update

drupal

Редактируем файл composer.json. Меняем у модулей ядра версию на 10.2.

"drupal/core-composer-scaffold": "^10.2",
"drupal/core-project-message": "^10.2",
"drupal/core-recommended": "^10.2",
"drupal/core-vendor-hardening": "^10.2",

drupal

composer update "drupal/core-*" --with-all-dependencies

drupal

Не получилось. Внимательно читаем что написано и исправляем ошибки. У меня две проблемы: во-первых, я забыл удалить временный модуль Upgrade Status, во-вторых, у меня включена minimum-stability с версией alpha, откуда я установил один из модулей CKEditor Anchor Link.

Удаляю ненужный мне модуль CKEditor Anchor Link.

drupal

Возвращаю параметр minimum-stability в значение по умолчанию.

"minimum-stability": "stable"

Удаляю модуль Upgrade Status.

composer remove drupal/upgrade_status

Пробую снова обновиться.

composer update "drupal/core-*" --with-all-dependencies

drupal

Обновление проходит успешно. Запускаем update.php для обновления базы данных.

drupal

Применяем ожидающие обновления.

drupal

drupal

Обновления применены.

drupal

Чистим кэш.

drupal

Ядро Drupal обновлено до версии 10.2.0.

 

Похожие материалы

hMailServer — установка SSL сертификата Let's Encrypt

Установим SSL сертификаты на почтовый сервер hMailServer. Используем порты для SSL/TLS: SMTP 587, IMAP 993, POP3 995. Сами сертификаты будем брать бесплатные — Let's Encrypt.