Обновление Drupal — ядра, модулей и переводов. Как обновить Drupal — подробная инструкция с картинками Что будет если не обновлять drupal

или как обновить систему быстро и своевременно

Вот уже который день подряд на мой E-mail, на тот, что я указал во время установки Drupal, мне приходят сообщения следующего содержания: «Доступно обновление для используемой версии Drupal. В интересах надёжности работы сайта, следует обновить систему как можно скорее. Для установленных на сайте проектов доступны обновления. Рекомендуется как можно скорее установить новые версии. Дополнительную информацию можно найти на странице обновлений. http://ваш-сайт.ru/admin/reports/updates

Выражаются они доходчиво, поэтому не будем с ними спорить. Обновления в друпал бываю разными. Иногда приходится обновлять версии CMS-ки, иногда - модули, темы оформления и другое.

Пойдем посмотрим, чем мы можем помочь нашему сайту.

Обновление Drupal ядра

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

1. Открываем отчеты и переходим на страницу доступных обновлений:

3. Скачиваем архив на свой компьютер:

4. На своем компьютере распаковываем архив. Далее с помощью FTP-клиента я загрузил все содержимое папки с обновлением на хостинг поверх точно такого же содержимого. Во время переноса файлов и папок с компьютера на хостинг программа спросит, перезаписывать ли новое поверх старого - отмечаем, что надо перезаписать:

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

Рассатривается обновление Drupal сайта между минорными версиями и патчами, например с 8.1.2 до 8.1.3, или с 8.3.5 до 8.4.0.

Прежде всего сделайте полную резервную копию всех файлов и каталогов сайта, базы данных (MySQL) до обновления и сохраните её за пределами установочной директории Drupal.

Рекомендуется пробовать обновление на тестовой копию вашего сайта. Даже незначительные обновления могут вызывать поведение для изменения. В большей степени это относится к плагинам, например может перестать работать выпадающее меню или wysiwyg редактор.

Обновление Drupal 8 до актуальной версии 8.x.x

    Под учетной записью администратора переведите сайт в режим обслуживания (Конфигурация -> Разработка -> Режим обслуживания).

    Скачайте с сервера drupal.org архив актуальной версию Drupal 8.

    Удалите все папки и файлы, за исключением папок:

    • sites
    • modules
    • themes
    • libraries (при наличии)

    Отдельно сохраните файлы:

    • .htaccess
    • robots.txt
    • composer.json
  1. Распакуйте архив с новой версии Drupal 8 в корневую папку вашего веб-сайта.

    Запустите скрипт update.php обновления Drupal. Для этого зайдите по адресу http:///update.php и выполните обновление. Этот скрипт обновляет таблицы базы данных.

    Если нет доступа, к скрипту update.php , выполните следующую инструкцию:

    • Откройте файл settings.php в текстовом редакторе.

      Найдите строчку:

      $settings["update_free_access"] = FALSE;

      Замените на:

      $settings["update_free_access"] = TRUE;

      После обновления обязательно верните в первоначальное состояние FALSE ;

  2. Проверьте отчёт о состоянии (Администрирование -> Отчеты -> Отчет о состоянии). Убедитесь, что все работает должным образом.

    Убедитесь, что вы присвоили параметру $settings["update_free_access"] значение FALSE в файле settings.php .

    Если обновление прошло удачно, то переведите сайт в режим «Рабочего состояния».

    Если файлы robots.txt , .htaccess и composer.json модифицировались, то не забудьте добавить нужные строки в обновленные файлы.

После обновления

Удалите файлы по которым можно определить версию системы.

  • CHANGELOG.txt
  • COPYRIGHT.txt
  • INSTALL.txt
  • LICENSE.txt
  • MAINTAINERS.txt
  • README.txt

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

(вполне полезна, содержит пояснения многих моментов), скажу, что изменений мало. По большому счёту – только движение по меню. А так, делали обновление в старой версии – сделаете и в новой. «Шаги», которые мы совершим – прежние, а сам процесс приятнее.

Надеюсь, вы уже включили модуль «Toolbar» («Панель инструментов администратора») и сделали локальную копию сайта? Тогда пройдёмся по пунктам:

  1. Заходим на сайт.
  2. Регистрируемся в качестве «первого» пользователя.
  3. Переводим в режим обслуживания.

По меню: «Конфигурация» => «Разработка», «Режим обслуживания». Ставим «галочку» на «Перевести сайт в режим обслуживания» и нажимаем «Сохранить конфигурацию».

  1. Если на сайте используется «своя» тема оформления, лучше вернуть стандартную:

Вверху в административном меню, щёлкаем на пункт «Оформление» (/admin/appearance ), под темой «Garland », а лучше – «Seven » (она более удобна для администрирования) нажимаем «Включить» и «Установить по умолчанию».

Чтобы не провоцировать лишние ошибки, по-прежнему рекомендую отключать нестандартные модули, если у вас такие имеются. Как попасть в список модулей:

открываем в административном меню, пункт «Модули» (/admin/modules ).

  1. Сбрасываем кэш:

«Конфигурация» => «Разработка», «Производительность». Жмём кнопку «Очистка кэша».

(/admin/config/development/performance )

Маленькое отступление .Что делать если вы случайно «разлогинились» , или пытаетесь зайти на сайт с другого компьютера, или на сайт потребуется зайти другим пользователям, тоже имеющим расширенные права (достаточные для работы с сайтом в режиме обслуживания)?

<имя сайта>/user/login или <имя сайта>/?q=user/login .

Например, если ваш сайт называется «Test.Ru», то это будет: Test.Ru/?q=user/login

  1. Дальше, заменяем (обновляем) файлы.
  1. 1. В случае, если обновляем ядро Друпала.

В «корневой» папке сайта удаляем все директории, кроме «Sites ». И все файлы, кроме:

  • «.htaccess »;
  • «favicon.ico » – если он у вас есть;
  • «robots.txt »;
  • при наличии – оставляем файлы подтверждения подлинности, типа для Google и Яндекса (google***.html , yandex***.html );
  • и иконки для iOS-устройств (apple-touch-icon***.png ), если имеются.

Так же, если Вы используете какие-то специальные настроечные файлы, «картинки» к ним, в корне своего сайта – их тоже надо оставить в покое (иначе, придётся восстанавливать).

После этого, в папку сайта распаковываем новый Drupal, за исключением тех файлов и папки, что мы оставили.

При обновлении версия ядра Друпал (если будут обновляться только модули – этого делать не надо ), рекомендую, для повышения «чистоты», провести микро-инсталляцию. Чтобы её спровоцировать – в папке «Sites/Default» надо удалить файл «Settings.php» и воссоздать заново копированием из файла «Default.Settings.php».

Эта подмена приведёт к тому, что при обновлении, Drupal начнёт установку, как в первый раз, в ходе которой вам надо снова указать действующие имя базы данных, логин и пароль. Надеюсь, вы их помните? (Записаны в «старом» «Settings.php»).

Напоминаю, если сомневаетесь – не делайте этого! А если сделаете – поменяйте права доступа ко вновь созданному файлу «Settings.php» на «664», rw- rw- r-- (максимум – «775», rwx rwx r-x). Не беспокойтесь, если вдруг забудете, программа установки вам напомнит.

  1. 2. Если обновляем модуль(и).

Заходим в папку «Sites/All/Modules», удаляем «старый» модуль, а на его место – распаковываем новый.

  1. Набрав в интернет-проводнике (IE, Opera, FireFox или что там у Вас?),

<имя сайта>/update.php – выполняем обновление (или микро-установку, если меняли файл «Setting.php»).

В ходе обновлений могут появляться сообщения об ошибках. Чаще всего они возникают при кардинальных изменениях: не могут выполниться какие-то SQL-запросы к базе данных сайта, отсутствуют или присутствуют какие-то лишние таблицы, обнаруживаются какие-то проблемные поля, или несоответствие типов данных.

Что делать, если возникли подобные трудности при обновлении модулей? Очень просто:

  • Как и предлагает программа обновления, перейти в управление модулей.
  • Снять «галочки» напротив тех модулей, которые не могут обновиться или мешают обновлению.
  • Потом, заходим в каталог сайта и удаляем эти модули физически.
  • Снова выполняем обновление, но уже без них (<имя сайта>/update.php ).

Примечание: некоторые говорят, что этого делать не обязательно. А я – делаю, т.к., в большинстве случаев это приводит к тому, что информация о сбойном модуле в базе данных затирается.

  • После этого, распаковываем новый правильный модуль.
  • Снова выполняем обновление (ошибок быть не должно!).
  • Если всё хорошо – заходим в управление модулей и снова его (или их) включаем (ставим «галочку»).

Продолжаем обновление. В случае успеха – всё возвращаем назад:

  1. Возвращаем ранее отключенные модули (если вы что-то отключали).
  2. Возвращаем родную тему сайта.
  3. Выполняем проверку оставшихся ошибок и исправляем их:

«Отчёты» => «Отчёт о состоянии» (/admin/reports/status )

  1. Выполняем проверку обновлений (вдруг что-то не так стало или появилось ещё какое-то обновление):

«Отчёты» => «Доступные обновления» (/admin/reports/updates )

  1. Делаем копию базы и сайта после обновления. (Это на любителя!)
  2. Снимаем сайт с обслуживания.

Важный вопрос: права доступа к папкам и файлам. В принципе, всё осталось, как и в «шестой» версии Друпал. Отличие только по файлу «Settings.php» - «семёрка» прямо рекомендует (после инсталляции) выставить ему права на уровне максимум «644». Не забывайте!

Для CMS – Drupal регулярно выходят новые версии (обновления) в которых вносится изменения по усовершенствованию CMS, исправление ошибок/уязвимостей и доработки по безопасности.

Как узнать о выходе обновления для ядра вашего сайта?

если вы являетесь администратором сайта на CMS – Drupal вы можете настроить уведомления с сайта на ваш Е-mail о доступных обновлениях или проверить самостоятельно посетив раздел: Отчёты > Отчёт о состоянии (ваш_сайт/admin/reports/status)

Итак, мы видим, что появилось новое ядро. Что же делать? Обновляться, причем чем скорее, тем лучше. Особенно для обновлений с пометкой «Не безопасно!», как на скрине выше.

В отличии от модулей ядро Drupal не может обновиться самостоятельно или автоматически, это придется делать собственноручно. В этом нет ничего сложного.

Для начала качаем свежую версию Drupal . Затем выполняем следующие действия:

  1. Сделайте резервную копию вашего сайта (backup), включая все директории сайта + базы данных.
  2. Переведите сайт в режим обслуживания: заходим Конфигурация > Разработка > Режим обслуживания(/admin/config/development/maintenance) . Ставим галочку «Перевести сайт в режим обслуживания» и сохраняем настройки.
  3. Заходим на сервере в каталог сайта и удаляем все файлы и папки, за исключением: папки sites , файлов .htaccess и robots.txt

    ВНИМАНИЕ! Если вы используете дистрибутив (например Drupalife Store, Commerce Kickstart и подобные), папку profiles удалять нельзя . Эту папку мы перезапишем с заменой на более новые файлы.

  4. Распакуйте архив с новой версией Drupal скачанный с официального сайта и удалите папку sites , а также файлы .htaccess и robots.txt оставшиеся файлы можно заливать на сервер вашего сайта
  5. После того как все файлы нового ядра записаны на сервер, переходим по адресу vash_site/update.php и жмем continue на всех шагах.
  6. Когда появится сообщение что все обновлено. Можете перейти на страницы сайта и проверить его. Если все работает корректно, переведите сайт обратно в рабочий режим (см. пункт 2).

Перейдите в раздел Отчёт о состоянии и убедитесь что ядро теперь самой последней версии.

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

На заметку

  1. Всегда удаляйте следущие файлы из корня сайта: CHANGELOG.txt , COPYRIGHT.txt , INSTALL.txt , LICENSE.txt , MAINTAINERS.txt , README.txt - это первая дыра в безопасности сайта. На основе данных файлов можно определить версию системы, соответственно зная версию и её дыры, будет на много легче взломать сайт.
  2. Всегда своевременно обновляйте ядро сайта до последней версии. Да, лень, да, муторно, но безопасность превыше всего.
  3. Ничего не храните и не меняйте в ядре. Именно поэтому мы удалили все кроме папки sites и двух файлов. Те два файла могут быть у каждого свои, они не меняются из версии в версию, а у сайтов они подвергаются изменениям. Случайно заменив их, может возникнуть проблема. Папку sites мы не трогали, так как в ней хранятся все файлы ВАШЕГО САЙТА. эта папка - хранилище файлов системы, ничего важного для обновления ядра там нет. Ни в коем случае не трогайте файл и папки ядра. И не редактируйте код ядра, для этого есть Drupal API.
  4. Если вы выключили по каким-то причинам модуль updates, то вы не узнаете о том что вышла новая версия ядра на своем сайте. В таком случае проверяйте наличие обновлений вручную.
  5. И самый банальный совет - не делайте обновление без backup .

За то время пока я писал гайды, ядро Drupal было обновлено.

Было бы глупо не добавить ко всем гайдам еще и информацию по обновлению ядра системы. Поэтому если появилась необходимость обновить ядро, а вы не знаете как это делать, то этот гайд для вас.

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

Что же делать? Обновляться, причем чем скорее после релиза новой версии, тем лучше. Особенно для обновлений с пометкой «Не безопасно!», как на скриншоте выше.

Погнали. Для начала качаем свежую версию друпала . После этого делаем следующие действия:

Теперь ядро будет самой последней версии.

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

На заметку

  1. Удалите и всегда удаляйте файлы из корня сайта: CHANGELOG.txt, COPYRIGHT.txt, INSTALL.txt, LICENSE.txt, MAINTAINERS.txt, README.txt - это самая первая дыра в безопасности сайта. На основе данных файлов можно определить версию системы, соответственно зная версию и её дыры, будет очень легко взломать сайт.
  2. Всегда обновляйте ядро. Да, лень, муторно, но безопасность превыше всего.
  3. Ничего не храните в ядре. Именно поэтому мы удалили все кроме папки sites и двух файлов. Те два файла могут быть у каждого свои, они не меняются из версии в версию, а у сайтов они подвергаются изменениям. Случайно заменив их, может всплыть проблема. Папку sites мы не трогали, так как в ней также не происходит абсолютно никаких изменений. Эта папка - хранилище файлов системы, ничего важного для обновления там нет. Все остальные папки и файлы могут быть подвержены обновлению. Я уже писал - ни в коем случае не трогайте файл и папки ядра. Все что надо храните в sites. И не редактируйте код ядра, для этого есть Drupal API.
  4. Если вы выключили по каким-то причинам модуль updates, то вы не узнаете о том что вышла новая версия ядра на своем сайте. В таком случае проверяйте наличие обновлений вручную.
  5. И самый банальный совет - не делайте апдейт без бэкапов.