Обновление Drupal — важный процесс для поддержания безопасности, функциональности и стабильности сайта. В современной практике обновление ядра и модулей Drupal рекомендуется выполнять только через Composer, что обеспечивает управление зависимостями и совместимость версий. Ниже приведена подробная инструкция, которая поможет провести обновление корректно и безопасно.
Шаг 1. Сделать резервную копию базы данных;
Шаг 2. Сделать резервную копию пользовательских файлов сайта;
Шаг 3. Перевести сайт в режим обслуживания;
Шаг 4. Проверить настройки Composer и Drush;
Шаг 5. Обновить ядро и модули Drupal через Composer;
Важные рекомендации и настройки после обновления;
Что будет если долго не обновлять сайт?
Эта статья рассчитана на владельцев сайтов, которые хотят самостоятельно производить обновления Drupal. При этом для того, чтобы статья была действительно полезна, человеку необходимо иметь как минимум базовые знания и навыки работы с командной строкой, а также понимание основных принципов работы Drupal и Composer.
Без умения работать с терминалом и понимания, как устроен Drupal, обновление может быть затруднено или приведет к ошибкам. Владельцу сайта нужно понимать, как запускать команды Composer и Drush, как резервировать данные и файлы, а также как взаимодействовать с системой на уровне файлов и базы данных.
Если эти базовые знания есть, статья поможет уверенно и безопасно проводить обновления, минимизируя риски и обеспечивая работоспособность сайта после обновления.
Обновление сайта на Drupal через Composer в 2025 году: подробная инструкция
Подготовка к обновлению
1. Сделайте полную резервную копию базы данных одним из способов:
Использование Drush
bash
drush sql:dump > backup.sqlБыстрый и удобный способ при наличии доступа к командной строке сервера. Позволяет сделать дамп базы данных в один файл.
Модуль "Резервное копирование и миграция" (Backup and Migrate)
Через веб-интерфейс:
Конфигурация > Разработка > Резервное копирование и миграция
или по ссылке: /admin/config/development/backup_migrate.
- Удобно для пользователей без доступа к серверу.
- Позволяет резервировать не только базу, но и файлы сайта.
- Можно настроить автоматические бэкапы.
Экспорт из СУБД напрямую (например, MySQL)
Через инструмент phpMyAdmin, Adminer или аналогичные веб-интерфейсы.
- В phpMyAdmin: выбрать базу, перейти в экспорт, сохранить SQL-файл.
- Можно использовать команду mysqldump:
bash
mysqldump -u username -p database_name > backup.sqlРезервное копирование через панель управления хостингом
- Многие хостинги предлагают графические инструменты для создания бэкапа базы данных. Можно создать копию базы и в случае проблем быстро переключить сайт на резерв.
- Важно помнить, что при переключении нужно также учитывать файлы сайта (темы, модули, загруженное содержимое).
2. Сохраните резервную копию пользовательских файлов сайта (темы, модули, загруженные файлы).
Для сохранения резервной копии пользовательских файлов сайта Drupal (темы, модули, загруженные файлы) существуют несколько вариантов:
Резервное копирование через FTP/SFTP-клиент
Подключитесь к серверу через FTP или SFTP (например, с помощью FileZilla, WinSCP) и скопируйте все файлы сайта на локальный компьютер. либо следующие папки:
sites/default/files — пользовательские загруженные файлы.
themes/custom или любые кастомные темы.
modules/custom — кастомные модули.
Использование панели управления хостингом
- В панели управления хостингом (например, cPanel, Plesk) найдите файловый менеджер и заархивируйте необходимые каталоги (файлы сайта) в архив (.zip, .tar.gz).
- Скачайте архив резервной копии на локальный компьютер.
Командные инструменты и скрипты (bash и др.)
- Используйте команды типа tar для создания архива файлов:
bash
tar czvf backup_files.tar.gz sites/default/files themes/custom modules/custom- После создания архива копируйте его на удалённый сервер или локально.
3. Переведите сайт в режим обслуживания через админку или командой:
bash
drush sset system.maintenance_mode 1
drush cr
4. Убедитесь, что у вас корректно настроен и установлен Composer и Drush последних версий, совместимых с вашей версией Drupal.
Проверка и обновление Composer и Drush для работы с Drupal:
Проверка версии Composer
- Откройте терминал или SSH-подключение к серверу и выполните команду:
bash
composer --versionВы увидите установленную версию Composer, например:
Composer version 2.5.8 2025-04-14 15:30:00
Обновление Composer
- Для обновления Composer до последней версии выполните:
bash
composer self-update- После обновления проверьте версию заново командой
composer --version.Проверка версии Drush
- В терминале выполните:
bash
drush --versionВы увидите что-то вроде: Drush Commandline Tool 13.4.0
Обновление Drush
- Если Drush установлен глобально через Composer, обновите его командой:
bash
composer global require drush/drush- Если Drush установлен в проекте (локально), перейдите в каталог проекта и выполните:
bash
composer require drush/drush- После обновления проверьте версию снова через
drush --versionСовместимость с Drupal
- Убедитесь, что версии Composer и Drush поддерживают вашу версию Drupal (информация обычно указывается в документации Drupal).
- Для Drush версии 13 и Drupal 10-11 рекомендуется использовать Composer версии 2 и выше.
5. Обновление ядра и модулей Drupal через Composer
Обновите зависимости и ядро Drupal командой:
bash
composer require drupal/core-recommended:^11 drupal/core-composer-scaffold:^11 drupal/core-project-message:^11 --update-with-dependencies
composer updateЗамените ^11 на актуальный мажорный релиз, на который вы обновляетесь.
Обновите сторонние модули и темы, проверив их совместимость:
bash
composer update drupal/[module_name] --with-dependencies
Или обновите все вместе:
bash
composer update drupal/* --with-dependenciesЗапустите обновление базы данных и схем:
- Через браузер, открыв /update.php.
- Либо командой:
bash
vendor/bin/drush updatedb -yОчистите кэш:
- Через админ-панель, если у вас установлен модуль "Toolbar", или в разделе Конфигурация > Разработка > Производительность (Perfomance).
- Либо командой:
bash
vendor/bin/drush crВыведите сайт из режима обслуживания:
- По ссылке: Ваш_сайт/admin/config/development/maintenance.
- Либо командой:
bash
drush sset system.maintenance_mode 0
drush cr- Проверьте возможные уведомления и ошибки в отчете о состоянии сайта: Ваш_сайт/admin/reports/status, для их решения.
6. Важные рекомендации и настройки
- Размещайте кастомные темы и модули в папках themes/custom и modules/custom соответственно, чтобы composer-обновления не перезаписывали их.
- Если необходимо менять файлы, автоматически управляемые composer-скелетом (например, robots.txt, .htaccess), лучше делать это в отдельной копии и сливать вручную после обновления.
- Проверяйте разрешения файлов и папок, чтобы обновления прошли без проблем.
- Используйте инструменты проверки совместимости кастомного кода (например, drupal/rector).
- В случае блокировки обновления из-за зависимостей используйте команду:
bash
composer prohibits drupal/core:[версия]- Тестируйте обновление на стенде перед продакшеном.
- Не применяйте ядро или модули через устаревший Update Manager, только Composer.
Контроль и проверка
- После обновления проверяйте работу основных функциональностей сайта, пользовательских форм и кастомных компонентов.
- Следите за логами ошибок и выведите их на экран, если нужно.
Приведённый порядок и рекомендации помогут провести обновление Drupal сайта через Composer максимально безопасно, сохраняя все настройки, темы и пользовательские данные целыми и корректно работающими.
Удаление из корня сайта файлов, которые могут выдать информацию о версии и структуре Drupal после обновления или установки CMS.
Важная мера безопасности, которая усложняет злоумышленникам задачу выявить уязвимости сайта. Подобные файлы обычно содержат информацию о версии системы, лицензии, авторах и процессе установки. Их наличие облегчает взлом и автоматические атаки.
- CHANGELOG.txt — список изменений по версиям Drupal с указанием версий и исправленных багов.
- README.txt — базовая информация о CMS, версиях, лицензиях.
- INSTALL.txt — инструкция по установке Drupal, содержащая структуру и параметры.
- LICENSE.txt — текст лицензии Drupal.
- COPYRIGHT.txt — информация об авторских правах.
- MAINTAINERS.txt — список мейнтейнеров (разработчиков) модулей и ядра.
- UPGRADE.txt — инструкции по обновлению Drupal.
- INSTALL.php — скрипт установки (если остался после установки).
- README.md — аналогичный файл с информацией в формате markdown (может быть вместо README.txt).
- USAGE.txt — описание основных механизмов и использования.
- .lock файлы, если есть, которые могут указывать на версию.
Эти файлы обычно не влияют на работу сайта, их можно безболезненно удалить из корня сайта. После обновлений они иногда могут появляться вновь (если вы обновляете Drupal через Composer или вручную), поэтому рекомендуется проверять и удалять их регулярно.
Также, для дополнительной безопасности можно запретить доступ к таким файлам через веб-сервер с помощью правил в .htaccess или конфигурации сервера.
Удаление этих файлов предотвращает раскрытие информации о версии CMS и структуре, снижая риск атак, использующих известные уязвимости конкретных версий Drupal.
Что будет если долго не обновлять сайт на Drupal?
Это может привести к целому ряду серьезных проблем, которые негативно скажутся на безопасности, производительности и функциональности ресурса.
Риски безопасности
- Устаревшие версии ядра и модулей содержат известные уязвимости, которые злоумышленники могут использовать для взлома сайта, установки вредоносного ПО или кражи данных.
- Отсутствие обновлений безопасности подвергает сайт атаке через бэкдоры, SQL-инъекции, межсайтовые скрипты (XSS) и другие эксплойты.
- Серьезные дыры в безопасности могут привести к блокировке сайта или попаданию его в черные списки поисковиков.
Потеря функциональности и совместимости
- Новые версии Drupal и модулей могут содержать улучшения и поддержку современных технологий, без обновления сайт устаревает.
- При длительном игнорировании обновлений могут возникать конфликты и ошибки в работе модулей, нестабильность и неправильное отображение страниц.
- Отсутствие поддержки новых браузеров и протоколов ухудшает пользовательский опыт.
Производительность и стабильность
- Необновленный сайт со временем начинает работать медленнее из-за устаревших технологий и накопления технического долга.
- Возникают проблемы с кешированием, пагинацией, фильтрами и мультиязычностью, которые могут создавать сотни ошибок и дублированных страниц.
- Сайт может «падать», выдавать ошибки 502 и долго загружать страницы, что негативно сказывается на SEO и удержании пользователей.
Технические и управленческие проблемы
- Трудности с интеграцией новых функций, обновлением темы и модулей.
- Сложность поиска и устранения багов, которые появляются именно из-за разногласий между версиями.
- Высокие издержки на срочный ремонт или полное восстановление после атак.
В итоге, отказ от регулярных обновлений Drupal сайта приводит к рискам безопасности, ухудшению работы сайта и потере доверия пользователей. Чтобы сохранить стабильность и актуальность ресурса, рекомендуется проводить своевременное обновление через Composer и тестировать сайт на совместимость на отдельном стенде перед продакшеном.