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

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

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

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

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

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

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

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. Попробуйте обновить сайт локально, чтобы проверить, что ошибок не возникнет. Если у вас возникают ошибки, пишите в комментариях, попробуем разобраться.

 

 

Комментарии

Добавить комментарий

Войти, используя Loginza Google Account Yandex Mail.ru Vkontakte Facebook

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Обновление ядра всегда лучше

Обновление ядра всегда лучше делать сначала локально. При этом желательно, чтобы все файлы локальной версии были под контролем GIT. С помощью GIT вы всегда сможете откатить сделанные изменения очень быстро. Но не только в этом его преимущество. После успешного локального обновления и коммита изменений, GIT позволяет сделать патч всех измененных файлов в архив с сохранением директорий, что существенно облегчает обновление файлов на хостинге. Это можно сделать командой:
git diff-tree -r --no-commit-id --name-only --diff-filter=ACMRT 7303a1cbf43bd25848784713960d5e2aeac48475 | xargs tar -rf mytarfile.tar
где
7303a1cbf43bd25848784713960d5e2aeac48475 - это хэш коммита
mytarfile.tar - архив со всеми измененными файлами.

Да через гит, конечно,

Да через гит, конечно, удобнее да где его взять на shared- хостинге. Вот я и боюсь, что эти сложности отпугнуть людей от использования друпала. Я думаю сделать перевод статей про обновления с помощью git и drush:
https://www.drupal.org/node/359234
https://www.drupal.org/node/2550801 

Добрый. У меня тут сложность

Добрый. У меня тут сложность - Друпал 8.3.1, модули page_manager и panels

Система требует обновления (

Page Manager (Не поддерживается)
8.x-1.0-alpha24
8.x-4.0-beta2

Panels (Не поддерживается)
8.x-3.0-beta6
8.x-4.0

)

Они активно используются. Если их обновить, то после update сайт не работает. (на локале проверил) 

Как тогда обновляться? Может есть способы? Подскажете? Я так понимаю, там еще Layout plagin задействуется при обнове - он переименовывается, что ли...

Если используете page_manager

Если используете page_manager, panels, то не получится обновить с версии 8.2.x без боли. По крайней мере пока что.

Experimental: Choose different form and view display layouts for your entity types

The new experimental Field Layout module provides the ability for site builders to rearrange fields on content types, block types, etc. into new regions, for both the form and display, on the same forms provided by the normal field user interface.

Field Layout also uses the new the Layout Discovery module, which provides an API for modules or themes to register layouts as well as five common default layouts. By providing this API in core, we help make it possible for core and contributed layout solutions to be compatible with each other. The following contributed modules already have development versions that support the new API:

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