1.2.2. Обновление Drupal 8 без Drush и без Composer.

Главные вкладки

levmyshkin 5 июля 2019 в 8:02

Если вы ставили друпал, скачивая его с сайта drupal.org с этой страницы:

https://www.drupal.org/project/drupal

То у вас могут возникнуть проблемы с обновлением Drupal, потому что Drush и Composer не смогут обновить его обычным способом. Поэтому вам придется обновлять друпал заменой файлов или поменять структуру файлов в проекте, чтобы композер мог обновлять Drupal. В этой статье мы разерем первый вариант как обновить Drupal без Drush и Composer.

Drupal 8 update

Прежде чем обновлять друпал нужно сделать полный бекап сайта. Скопируйте все файлы и базу данных. Какие-то сбои происходят очень редко, но на восстановление сайта может уйти время, поэтому лучше подстраховаться и сделать бекап.

Если ваш сайт уже выложен в интернет и отключение сайта даже на время может отразится на продажах вашей компании или компании вашего клиента, то лучше всего сделать копию сайта и попробовать обновить сначала копию, а потом после успешного обновления повторить все и на живом сайте или заменить сайт на продакшене сайтом обновленным локально.

По ходу обновления записывайте все свои действия. ошибки, уведомления, чтобы потом проще было повторить все действия.

Не пытайтесь обновить Drupal 8 сайт по FTP на удаленном сервере, это займет очень много времени. Если у вас есть SSH доступ на удаленный сервер, вы можете скачать drupal файлы через wget это займет гораздо меньше времени.

Теперь когда у вас есть бекап сайта, приступаем к обновлению.

1. Залогинтесь на сайт под администратором, у которого есть доступ к обновлению базы данных через update.php и который может поставить сайт в режим обслуживания.

2. Поставьте сайт в режим обслуживания:

/admin/config/development/maintenance

Конфигурация > Режим обслуживания

Administration > Configuration > Development > Maintenance mode

Drupal 8 Maintenance mode

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

Drupal 8 update

Как только вы удалите эти папки сайт уже перестанет работать и будет недоступен.

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

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

Drupal 8 update

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

Drupal 8 update

Но обычно такое происходит редко и если вы обновляете минорную версию друпала (8.5.x -> 8.5.y), то можете пропустить этот шаг.

4. Качаем новую версию Drupal со страницы проекта друпала или со страницы Views all releasers.

https://www.drupal.org/project/drupal

Из файлов новой версии мы копируем папки vendor, core и все файлы из корня сайта.

Drupal 8 update

И теперь закидываем эти файлы на наш сайт.

Вы также можете использовать 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 потоков, чтобы процесс шел быстрее:

drupal 8 filezilla

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:

Drupal 8 update

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

/admin/reports/status

Drupal 8 update

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

/admin/config/development/maintenance

Drupal 8 maintenance mode

9. Не забудьте после выполнения update.php вернуть значение обратно на FALSE:

$settings['update_free_access'] = FALSE;

Комментарии

Аватар пользователя VasyOK VasyOK 5 июля 2019 в 9:13

Если Drupal установлен через Composer есть разница как его обновлять? Путем ручной замены файлов или с командной строки?

Аватар пользователя VasyOK VasyOK 8 июля 2019 в 12:35

А если нет, то что?
Представьте себе человека, которому достался Друпал сайт и который будет читать вашу инструкцию.

Аватар пользователя gun_dose gun_dose 8 июля 2019 в 13:35
2

Любую задачу можно сделать двумя способами - как можешь или как надо. Если делаешь всегда как надо, то всё всегда будет работать как надо. Если один раз сделаешь, как можешь, то придётся либо и далее делать всё, как можешь, либо однажды придётся переделать всё, как надо. И вот когда будешь переделывать, тогда и поймёшь, что если бы потратил немного времени на изучение, как надо, то в итоге бы сэкономил кучу времени.