Злом сайту через вразливість у 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 послідовних кроків:
- Створення резервної копії БД та файлів сайту.
- Перевірка доступних оновлень через
composer outdatedтаdrush pm:security. - Оновлення ядра та всіх контриб'ют-модулів.
- Застосування оновлень схеми БД через
drush updatedb. - Тестування на staging-оточенні (PHPUnit, Nightwatch).
- Деплой на продакшен та моніторинг помилок.
Підготовка та бекап
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-сайту та зв'яжіться з нами для розрахунку оптимального плану обслуговування.







