1.2.1. Обновление модулей и ядра Drupal 8.

Очень часто для модулей и ядра Drupal 8 выходят обновления. Не все обновления стоит ставить, главное обращать внимания на обновления безопасности. Друпал подсвечивает сообщения о таких обновлениях красным цветом. Вариант обновления зависит от того как вы устаналивали Drupal если вы использовали composer, чтобы создать проект, тогда вы сможете использовать composer для обновления друпала. Если вы качали друпал с сайта drupal.org, то вам придется обновлять друпал вручную.

Обновление Drupal с помощью composer

Обновление Drupal через composer рутинная задача, которая выполняется одной командой:

composer update drupal/core --with-dependencies

Важно обновлять drupal --with-depencies, чтобы подтягивались все дополнительные пакеты, от которых зависят пакеты нужные для Drupal. И после этого нужно будет запустить udpate.php файл или drush updatedb, или drupal update:execute.

Обновление Drupal вручную без composer и drush

Вы можете также почитать эту статью по обновлению drupal вручную:

http://drupalbook.ru/drupal/122-obnovlenie-drupal-8-bez-drush-i-bez-comp...

друпал обновления

О том как обновлять Drupal 8 можно прочитать на официальном сайте друпала:
https://www.drupal.org/node/1494290

Но меня смущает то, что предлагают удалить все файлы старого друпала. А ведь в них могут храниться сторонние библиотеки, например для Drupal Commerce.

1. Поэтому прежде чем делать обновления друпала и модулей сделайте полную копию сайта и базы данных.

Базу данных вы можете скопировать через adminer, вот статья по этому поводу:
http://drupalbook.ru/drupal/15-vybor-hostinga-pokupka-domennogo-imeni-pe...

2. Скачайте последнюю версию модуля (ядра друпала) для 8.x ветки.

3. Разархивируйте модуль или друпал отдельно от сайта. Нужно проверить папку vendor возможно чего в ней может не хватать, придется их потом скопировать отдельно. Дополнительные библиотеки могут добавиться с новой версией. Например я устанавливал Drupal Commerce и у меня были дополнительные библиотеки:

Drupal 8 update

Дважды проверьте что у вас есть копия сайта перед обновлением.

Я не уверен что все пройдет гладко если залить файлы поверх с заменой. Я пробовал так обновляться с одной бета версии на другую бету версию, сайт поломался. Но когда обновлял файлы таким образом с 8.0.1 до 8.0.5 все прошло хорошо. Но думаю такое не сработает с переходом на ветку 8.1.0.

4. Установите режим обслуживания, чтобы никто не заходил на сайт и не генерировал ошибки пока вы выполняете обновления:
/admin/config/development/maintenance
Не забудьте снять галочку после обновления, чтобы вернуть сайт в рабочее состояние.

5. Дальше нужно удалить все файлы друпала, кроме папки /sites, /themes/, /modules. В sites лежат файлы содержимого: фотографии, конфигурации, сгенерированные файлы; в папке themes наши кастомные темы для друпала; в папке modules наши дополнительные модули для друпала. Тут нужно прочитать мануал до конца прежде чем кинуться удалить файлы. Проверьте в третий раз, что у вас есть копия сайта, чтобы если что вернуться обратно. В это время когда вы удалите все файлы, сайт не будет работать пока вы не скопируете файлы нового ядра друпала обратно, а друпал состоит из ~10000 файлов, если у вас медленный интернет и вы будете копировать файлы по фтп в 2-3 потока, то это может растянуться на час полтора. Поэтому принимаем меры, чтобы это все прошло быстрее. Опять же я описываю общий случай, когда ваш сайт лежит уже на хостинге, обновиться локально на OpenServer'е проще.

6. Теперь нужно скопировать все файлы новой версии друпала на сервер, кроме папки /sites, /themes/, /modules. Учимся работать с SSH и командной строкой (если хостинг для сайта позволяет использовать SSH , прочитайте доступы к хостингу или обратитесь в тех поддержку с вопросом, а есть ли возможность использовать SSH на хостинге). Через командную строку мы сможем быстро разархивировать весь друпал, нам нужно будет только залить файл архива на сайт:

Для архива tar.gz:

tar -xvzf archive.tar.gz

или zip архива:

unzip archive.zip

Если есть доступ по SSH, можно воспользоваться и WinSCP:

https://winscp.net/eng/docs/lang:ru

Вы можете воспользоваться его коммандами для разархивации:

https://winscp.net/eng/docs/custom_commands

Или пересоздать tar.gz архива, чтобы в нем лежали сразу файлы друпала, а не папка с файлами друпала. В этом вам может помочь 7Zip:

http://www.7-zip.org/

Пересоздаете архив, сначала выделяете все файлы и через контекстное меню выбираете 7Zip -> Add to archive. Archive формат выбираете tar. После того как tar архив будет создан, выбираете tar архив и снова в контекстном меню выбираете 7Zip -> Add to archive. Теперь будет доступно создание архива gzip (именно gzip, tar не сжатый формат архива, zip не поддерживаете контекстным меню Winscp, а gzip или tar.gz архив). Заливаете архив на сервер (также через winscp) и на сервере уже через меню нажимаете разархивировать:

winscp

7. Иногда нужно изменить settings.php вручную, но обычно об этом вы всегда сможете прочитать на странице статуса сайта:
/admin/reports/status

8. Если вы изменяли .htaccess, robots.txt файлы, то внесите снова эти правки.

9. Если у вас был свой favicon.ico, то скопируйте его снова.

10. Залогинтесь на сайт под администратором.

11. Запустите файл update.php, например http://drupalbook.ru/update.php

12. Отключите режим обслуживания.
/admin/config/development/maintenance

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

0 Thanks