1.2.2. Обновление Drupal 8 без Drush и без Composer.
Если вы ставили друпал, скачивая его с сайта drupal.org с этой страницы:
То у вас могут возникнуть проблемы с обновлением Drupal, потому что Drush и Composer не смогут обновить его обычным способом. Поэтому вам придется обновлять друпал заменой файлов или поменять структуру файлов в проекте, чтобы композер мог обновлять Drupal. В этой статье мы разерем первый вариант как обновить Drupal без Drush и Composer.
Прежде чем обновлять друпал нужно сделать полный бекап сайта. Скопируйте все файлы и базу данных. Какие-то сбои происходят очень редко, но на восстановление сайта может уйти время, поэтому лучше подстраховаться и сделать бекап.
Если ваш сайт уже выложен в интернет и отключение сайта даже на время может отразится на продажах вашей компании или компании вашего клиента, то лучше всего сделать копию сайта и попробовать обновить сначала копию, а потом после успешного обновления повторить все и на живом сайте или заменить сайт на продакшене сайтом обновленным локально.
По ходу обновления записывайте все свои действия. ошибки, уведомления, чтобы потом проще было повторить все действия.
Не пытайтесь обновить Drupal 8 сайт по FTP на удаленном сервере, это займет очень много времени. Если у вас есть SSH доступ на удаленный сервер, вы можете скачать drupal файлы через wget это займет гораздо меньше времени.
Теперь когда у вас есть бекап сайта, приступаем к обновлению.
1. Залогинтесь на сайт под администратором, у которого есть доступ к обновлению базы данных через update.php и который может поставить сайт в режим обслуживания.
2. Поставьте сайт в режим обслуживания:
Конфигурация > Режим обслуживания
Administration > Configuration > Development > Maintenance mode

1. Удалите папки core, vendor из корня сайта.

Как только вы удалите эти папки сайт уже перестанет работать и будет недоступен.
2. Если вы изменяли файлы .htaccess, robots.txt, то сохраните эти изменения потому что все файлы которые лежат прямо в корне сайта тоже нужно будет обновить.
Также сохраните изменения из файла composer.json, если вы ставили какие-то библиотеки или модули через composer, вам придется установить их заново через композер. Если измений очень много, то лучше не перезаписывать composer.json и composer.lock файлы и оставить их как есть.

3. Иногда изменения могут затронуть default.settings.php, а это значит что вам нужно будет добавить изменения в свой settings.php файл. Вы можете найти список изменений для вашей версии Drupal, перейдя по ссылки View all releases на страницы проекта Drupal:
https://www.drupal.org/project/drupal

Но обычно такое происходит редко и если вы обновляете минорную версию друпала (8.5.x -> 8.5.y), то можете пропустить этот шаг.
4. Качаем новую версию Drupal со страницы проекта друпала или со страницы Views all releasers.
Из файлов новой версии мы копируем папки vendor, core и все файлы из корня сайта.

И теперь закидываем эти файлы на наш сайт.
Вы также можете использовать SSH на удаленном сервере чтобы скачать файлы друпала в папку которая находятся снаружи вашего сайта:
wget https://www.drupal.org/files/projects/drupal-x.y.z.tar.gz tar -zxvf drupal-x.y.z.tar.gz
И потом закидывать файлы на ваш сайт внутри сервера:
cp -R drupal-x.y.z/* drupal-x.y.z/.htaccess /path/to/your/installation
Если все-таки FTP это единственный путь, то используйте Filezilla и копируйте в 10 потоков, чтобы процесс шел быстрее:

5. Теперь возвращаем изменения в файлах robots.txt, .htaccess, default.settings.php, settings.php, composer.json.
6. Дальше нужно запустить файл update.php, чтобы применить изменения в базе данных для новой версии друпала. Для этого можно добавить в настройках settings.php следующую строку:
$settings['update_free_access'] = TRUE;
Это позволит запускать от любого пользователя файл update.php.
Запускаем файл /update.php:

7. Проверяем что версия drupal обновилась. Заходим на страницу Status Report:

8. Возвращаем сайт в рабочий режим:

9. Не забудьте после выполнения update.php вернуть значение обратно на FALSE:
$settings['update_free_access'] = FALSE;
Если у вас возникли трудности или ошибки, пишите в комментариях.
Обновление Drupal 8 до Drupal 9 в Windows

Сегодня 1 января 2022 года, и я начну заниматься тем, что долго откладывал. А именно обновлю движок сайта с Drupal 8 на Drupal 9. Посетителей не много, все отдыхают. Так что самое время.
Обновление с помощью composer это, конечно, круто, но у меня сайт хостится на домашнем Windows сервере, так что обновлять будем по старинке, ручками.
Для начала обновим Drupal 8 до последней минорной версии 8.9.20. Можно обновиться до 8.8. Но лучше уж до последней.

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

Текущая версия 8.9.20 уже не поддерживается. Будем обновляться на 9.3.0.
Минимальные требования
Убедимся, что система удовлетворяем минимальным требованиям:
Базы данных
У меня MySQL. Требуется версия MySQL/Percona 5.7.8+. У меня MySQL 8.0.27, обновляться не требуется. Хотя инструкция имеется:
Web сервер
У меня IIS 10. Drupal 9 работает на IIS 5, IIS 6, IIS 7, IIS 8 или IIS 10, нужно только чтобы PHP был нормально установлен.
PHP
Drupal 9 работает на PHP 7.3, так что обновляться тоже не требуется.
Система удовлетворяет минимальным требованиям.
Совместимость модулей
Для проверки совместимости модулей предлагают установить Upgrade Status, однако, он у меня не захотел включаться.

Поэтому я просто обновляю модули до последних версий. Некоторые модули уже не поддерживаются, например, Synapse Image Formatter. От таких модулей придётся отказаться и удалить их. Вспоминаю, что устанавливал этот модуль для вставки картинок в текстовом редакторе, чтобы они открывались в Colorbox. Убираю в текстовом редакторе эту кнопку и удаляю неподдерживаемый модуль.

Продолжаю ковырять модули. Для Metatag доступно обновление, но его можно установить только на Drupal 9. С такими модулями ничего не делаем, обновим после установки нового ядра.

Я так долго тянул с обновлением именно для того, чтобы все используемые модули стали поддерживать Drupal 9. К примеру, модуль Яндекс Метрики тоже пришлось снести и заменить обычным пользовательским блоком с кодом метрики, размещенным внизу страницы.
Дистрибутив
Скачиваю ZIP архив с дистрибутивом Drupal 9.3.0.


Обновление Drupal 8 до Drupal 9
Перед началом обновления сделайте резервную копию сайта и базы данных.
Останавливаю сайт в IIS. Drupal любит зажимать файлы, поэтому после остановки сайта можно перезапустить IIS:
iisreset
Удаляем из корня своего сайта папки core, vendor и все файлы корневой директории кроме web.config и ваших собственных файлов, которые не относятся к drupal.
Из скачанного дистрибутива копируем в корень своего сайта с заменой всё содержимое, кроме файла web.config.

Теперь сравниваем фалы web.config своего сайта и дистрибутива. Для сравнения содержимого я использую Total Commander.
В моём случае я не нашёл каких-то важных изменений, так что оставил свой конфигурационный файл без изменений.
Вручную или с помощью того же Total Commander сравниваем и синхронизируем файлы конфигурации drupal8\sites\default\default.settings.php и drupal8\sites\(ваш сайт)internet-lab.ru\settings.php. Я здесь не рассматриваю вопросы настройки поддержки мультисайтов на одном движке. Подразумевается, что у вас всё уже было настроено ранее.
Запускаем сайт на IIS. После запуска традиционно запускаем update.php.


Если обновления не применяются, то инсталлятор покажет ошибки. У меня, к примеру, отобразилась несовместимая тема, что решилось прописыванием совместимостей в конфигурационном файле темы. Ещё отобразилась жалоба на отсутствие конфигурационного параметра $settings[‘config_sync_directory’], который пришлось указать.


Установлена последняя версия Drupal 9.3.0. Теперь можно обновить остальные модули, которые требовали девятой версии, но это уже другая история.
Dries Buytaert
Drupal 8 now ships with beta-to-beta updates
We’ve just achieved a big and exciting milestone in Drupal 8’s development: starting with Drupal 8 beta 15, we are providing beta-to-beta upgrade paths. This will make it much easier to update Drupal 8 development sites between the current beta and future betas and release candidates.
There has been a lot of excitement building around Drupal 8. Many have been wondering when to start building Drupal 8 sites. The answer for many is NOW.
This change signals an important opportunity for organizations to begin developing with Drupal 8, especially for:
- Sites that rely mainly on the expanded functionality provided by Drupal 8 core alone.
- Projects that will take months of development time.
- Sites for which the benefits of Drupal 8’s outweigh the effort needed to port (or work around) contributed modules that do not yet have Drupal 8 versions.
I strongly encourage you to evaluate Drupal 8 for your upcoming projects. Also, if you haven’t already, now is the time to port contributed modules so they are ready in time for Drupal 8’s release! There are only about five release-blocking issues left before we create the first release candidate.
Note that betas are not supported releases of Drupal, and both developing and launching sites with beta releases present risks. However, I’m pleased that various Drupal agencies, including Acquia, are helping to eliminate those risks through support, development, and hosting optimized for Drupal 8.
Before you get started with Drupal 8, be sure to review all the release notes for beta 15.
Dries Buytaert is an Open Source advocate and technology executive. More than 10,000 people are subscribed to his blog. Sign up to have new posts emailed to you or subscribe using RSS. Write to Dries Buytaert at dries@buytaert.net.
Как обновлять drupal 8

Итак, расскажу как я обновил ядро на 9.4.6. Почти инструкции, но это не точно. Пока оставлю это здесь для себя, что бы ни чего по возможности не забыть. После выхода новой версии повторю, а там и будет ясно на сколько эта статья будет полезна.
Инструкция не предполагает использования таких инструментов как Drush или Composer. Все операции буду делать руками с помощью инструментов терминала, а так же веб интерфейса самого движка Drupal.
Первое, перевёл сайт в режим «Обслуживание». В меню администратора «Управление» перейти в Конфигурация > Разработка > Режим обслуживания
На странице Режим обслуживания отметить галочку «Перевести сайт в режим обслуживания»
Нажмите Сохранить конфигурацию.
Убедитесь, что сайт находится в режиме обслуживания, открыв его с другого браузера, где вы не вошли в систему. Если режим обслуживания не включился очистите КЭШ. В «Управление» меню администратора, перейдите на Конфигурация > Разработка > Производительность
- Нажмите Очистка кэша.
- Сообщение об успешной очистке кэша появится сверху страницы.
Если это не помогает решить проблему, попробуйте вместо очистки кэша, перестроить кэш. Откройте settings.php (/sites/default/settings.php) в любом текстовом редакторе. Добавьте следующую строчку в конце файла и сохраните его:
Зайдите http://www.example.com/core/rebuild.php в вашем браузере, где www.example.com адрес вашего сайта. После короткой паузы, вы будете перенаправлены на главную страницу вашего сайта и кэш будет перестроен.
Откройте settings.php (/sites/default/settings.php). Найдите строчку, которую вы добавили до этого с $settings[rebuild_access], удалите ее и сохраните файл.
После того как ваш сайт перешёл в режим обслуживания проверьте Конфигурация > Разработка > Производительность в пункте статус «Кэширования». Если включено отключите на время обновления!
Через терминал в режиме ROOT запускаю прекрасный инструмент Midnight Commander и делаю резервную копию каталога с сайтом. На данный момент он весит не очень много поэтому могу себе это позволить. Инструкция подразумевает делать бэкап следующих данных:
Данные в папке sites, включая файл sites/default/settings.php.
Загруженные файлы, такие как изображения и другие прикрепленные файлы. Местоположение этих файлов настраивается; стандартное местоположение это папка sites/default/files относительно корня сайта. В Управлении меню администратора, перейдите на страницу Конфигурация > Медиа > Файловая система (admin/config/media/file-system) проверьте папку для загрузки файлов; вы можете изменить папку для файловой системы, вы также можете это сделать это в файле settings.php.
Модули, темы оформления и любые другие пользовательские файлы, которые вы добавили. Вы можете найти пользовательские модули и темы оформления в папках modules и themes со всеми вложенными папками. Некоторые люди предпочитают создать резервную копию всех файлов, включая файлы Drupal, модулей и тем оформления (которые вы сможете восстановить загрузив их снова из исходников), прежде чем пытаться собрать проект из источников, которые необходимо использовать.
Далее через терминал скачиваем архив с новой версией CMS Drupal в удобный вам каталог. Команда wget
Распаковать скачанный архив. Команда tar -xvf имя пакета
Откройте settings.php (/sites/default/settings.php). Найдите строчку с $settings[update_free_access] переменной.
По умолчанию, переменная установлена как «FALSE» по соображениям безопасности. Измените значение на «TRUE»:
Пример команды nano /sites/default/settings.php
В папке сайта, удалите папки core и vendor и все файлы, которые находятся в корне сайта, включая .htaccess, composer.json и autoload.php. Не удаляйте дополнительные и измененные файлы, потому что вы можете потерям часть дополнительного функционала, который основывается на этих файлах.
Скопируйте папки core и vendor и остальные не дополнительные и не пользовательские файлы, которые вы удалили в предыдущем шаге из папки на вашем сервере куда вы распаковали новый архив с CMS Drupal.
Запустите скрипт update.php используя следующие инструкции:
Откройте в браузере http://www.example.com/update.php (где www.example.com это адрес URL вашего сайта). Нажмите Продолжить на первом экране для запуска обновление и успешного завершения выполнения скрипта.
Если вы получили какие-то ошибки или предупреждения, запускайте update.php скрипт снова до тех пока все обновления не будут выполнены успешно.
Откройте settings.php (/sites/default/settings.php) в текстовом редакторе. Найдите строку с $settings[update_free_access] переменной и обновите ее на «FALSE»
Нажмите Страницы администрирования, чтобы вернуться в раздел администрирования вашего сайта.
Отключите режим обслуживания на вашем сайте.
Проверьте общую информацию о системе! После этого вы должны иметь обновленную работающую версию Drupal.
Источники:
