Обновление Drupal, ядра и модулей с Composer

Взлом сайта через уязвимость в Drupal — частая история. По данным статистики, 80% успешных атак используют известные CVE, для которых уже выпущены патчи. Регулярное обновление ядра и модулей — единственный способ защититься. <cite>Согласно [Drupal.org](https://www.drupal.org), более 90% уязвимостей

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Обновление Drupal, ядра и модулей с Composer
Средний
~2-3 дня

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1418
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1286
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    983
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1243
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    983
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    998

Взлом сайта через уязвимость в Drupal — частая история. По данным статистики, 80% успешных атак используют известные CVE, для которых уже выпущены патчи. Регулярное обновление ядра и модулей — единственный способ защититься. Согласно Drupal.org, более 90% уязвимостей закрываются обновлениями безопасности. Мы помогаем клиентам выполнять этот процесс безопасно и без сюрпризов. Наши инженеры имеют 7+ лет опыта работы с Drupal 7/8/9/10 и гарантируют откат изменений в любой момент.

Drupal использует Composer для управления зависимостями — обновление ядра и модулей происходит через него. Без Composer (установка вручную) — переходите на Composer-based setup, иначе каждое обновление будет ручной операцией. Мы переводим проекты на Composer и настраиваем CI/CD для автоматических обновлений. Это позволяет сократить время обновления в 3 раза по сравнению с ручным трудом.

Какие проблемы решаем?

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

С помощью composer outdated "drupal/*" и drush pm:security мы выявляем модули, требующие обновления. Часто модули имеют взаимные зависимости, и обновление одного может потянуть цепочку. Мы анализируем граф зависимостей и обновляем всё одной командой composer update "drupal/*" --with-all-dependencies, чтобы избежать конфликтов.

Конфликты версий при мажорном обновлении

При переходе с Drupal 9 на 10 многие контрибьют-модули могут быть несовместимы. Мы используем Upgrade Status для предварительного анализа и Rector для автоматического исправления кастомного кода. Если модуль не имеет альтернативы — адаптируем его под новую версию.

Потеря данных из-за отсутствия бэкапа

Главная ошибка — пропустить бэкап. Мы всегда создаём полный дамп БД и архивируем файлы: drush sql:dump --result-file=/backups/drupal-$(date +%Y%m%d).sql --gzip и бэкап файлов. Тестируем на копии, чтобы исключить простои продуктива.

Пример из практики: для интернет-магазина на Drupal 9 мы настроили CI/CD на GitLab CI. Пайплайн автоматически создавал бэкап, обновлял ядро и модули, запускал тесты Nightwatch и применял изменения на staging. В результате время ручного обновления сократилось с 4 часов до 30 минут, а риск ошибки снизился на 80%.

Процесс обновления Drupal

Обновление ядра и модулей Drupal проходит в 6 последовательных шагов:

  1. Создание резервной копии БД и файлов сайта.
  2. Проверка доступных обновлений через composer outdated и drush pm:security.
  3. Обновление ядра и всех контрибьют-модулей.
  4. Применение обновлений схемы БД через drush updatedb.
  5. Тестирование на staging-окружении (PHPUnit, Nightwatch).
  6. Деплой на продуктив и мониторинг ошибок.

Подготовка и бэкап

drush sql:dump --result-file=/backups/drupal-$(date +%Y%m%d).sql --gzip tar czf /backups/files-$(date +%Y%m%d).tar.gz /var/www/site/web/sites/default/files drush state:set system.maintenance_mode 1 --input-format=integer drush cr 

Проверка доступных обновлений

composer outdated "drupal/*" drush pm:security 

Обновление ядра и модулей

composer update "drupal/*" --with-all-dependencies drush updatedb drush cr 

Для мажорного обновления дополнительно:

composer require drupal/core-recommended:^10 --update-with-all-dependencies vendor/bin/rector process web/modules/custom 

Тестирование

drush state:set system.maintenance_mode 0 --input-format=integer drush cr ./vendor/bin/phpunit web/modules/custom drush watchdog:show --severity=Error --count=50 

Сравнение типов обновлений

Тип обновления Время Риски Инструменты
Минорное (10.2 → 10.3) 1-2 часа Низкие Composer, drush
Мажорное (9 → 10) 1-3 дня Средние Upgrade Status, Rector
Безопасности 30 минут Минимальные Composer audit

Важность своевременного обновления безопасности

Уязвимости в модулях — самая частая причина взломов. Патчи безопасности выходят ежемесячно, и их откладывание увеличивает риск. CI/CD позволяет автоматически применять такие обновления в нерабочее время, минимизируя влияние на пользователей.

Как избежать ошибок при обновлении Drupal?

Ошибка Последствие Решение
Отсутствие бэкапа Потеря данных Всегда создаём бэкап перед обновлением
Пропуск drush updatedb Несовместимость БД Выполняем drush updatedb обязательно
Игнорирование совместимости модулей White screen Проверяем через Upgrade Status
Пример неудачного обновленияОдин клиент попытался обновить модуль без бэкапа и получил white screen. Мы восстановили сайт за 2 часа, но если бы был бэкап, обновление заняло бы 15 минут. Подробнее в нашем процессе.

Что входит в работу по обновлению

  • Полный бэкап БД и файлов
  • Обновление ядра до последней совместимой версии
  • Обновление всех контрибьют-модулей
  • Проверка совместимости кастомного кода (при мажорной миграции)
  • Тестирование на копии сайта
  • Документация с описанием изменений
  • Настройка CI/CD для автоматических обновлений (GitHub Actions, GitLab CI)

Сроки и стоимость

Плановое обновление ядра и модулей — от 2 до 4 часов, стоимость от 8 000 рублей. Мажорная миграция (Drupal 9 → 10) — от 1 до 3 дней, стоимость от 25 000 рублей. Настройка CI/CD для автоматических обновлений — от 15 000 рублей; автоматизация дешевле ручного ежемесячного обслуживания и окупается уже за 3–4 цикла обновлений. Стоимость рассчитывается индивидуально после аудита — оценим проект за 1 рабочий день. Получите консультацию по обновлению вашего Drupal-сайта и свяжитесь с нами для расчёта оптимального плана обслуживания.