Оновлення 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
    1285
  • 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
    Розробка веб-сайту для компанії ФІКСПЕР
    997

Злом сайту через вразливість у 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 годин, вартість визначається після аудиту. Мажорна міграція (Drupal 9 → 10) — від 1 до 3 днів, вартість залежить від складності. Налаштування CI/CD для автоматичних оновлень — від кількох днів; автоматизація дешевша за ручне щомісячне обслуговування і окупається вже за 3-4 цикли оновлень. Вартість розраховується індивідуально після аудиту — оцінимо проект за 1 робочий день. Отримайте консультацію з оновлення вашого Drupal-сайту та зв'яжіться з нами для розрахунку оптимального плану обслуговування.