Drupal 7 для начинающих: Обновления ядра Drupal.

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

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

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

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

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

  1. Делаем ПОЛНЫЙ backup (резервную копию) вашего сайта. Это включает всю директорию сайта + база данных.
  2. На сайте заходим «Конфигурация > Режим обслуживания». Ставим галочку «Перевести сайт в режим обслуживания» и сохраняем настройки.
  3. Заходим в каталог сайта и удаляем все файлы и папки, за исключением: папки sites, файлов .htaccess и robots.txt
    ВНИМАНИЕ! Если вы используете дистрибутив (например Drupalife Store, Commerce Kickstart и подобные), папку profiles удалять нельзя. В таком случае надо произвести просто копирование с заменой на более новые файлы.
    Что удаляем
  4. Извлекаем из архива (новая версия скачанная с офф сайта) все кроме папки sites, а также файлов .htaccess и robots.txt
  5. Заходим по адресу site/**update.php **и жмем continue на всех шагах.
  6. Когда появится сообщение что все обновлено. Можете заходить на главную сайта и проверять его. Если все работает корректно, включите сайт обратно (пункт 2).

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

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

На заметку

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

Оставайся на связи

Будь всегда в курсе новых материалов! Подписывайся на каналы\паблики\рассылки чтобы получать оперативные оповещения.

DrupalCamp Краснодар 2017

DrupalCamp — важная часть жизни Друпал-сообщества, способствующая его сплочению, привлекающая внимание IT-сообщества к Друпалу и общества в целом к разработке приложений и сайтов, а также к смежным сферам.

Разработчики, веб-мастера, дизайнеры, менеджеры проектов, владельцы бизнеса и работодатели — внимание большого количества людей будет привлечено нашим событием.

Интересно будет всем, ждем вас 16 декабря в Краснодаре!

Официальный сайт мероприятия

Комментарии

p
plaon.com - обновление Друпал 30.05.2013 - 12:05

Обновление до новой мажорной версии не совсем простая задача, особенно если используются самописные модули или модули отсутсвующие для новой версии. Эту работу лучше доверить сервису по обновлению версии друпал http://plaon.com

Ответ на от plaon.com - об… (не проверено)

N
Niklan 30.05.2013 - 12:05

Однозначный спам, но пропущу :) Пусть кому надо пользуются, хоть по теме.

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

Проще говоря:

  • Мажорные: 1, 2, 3, 4, 5, 6, 7
  • Минорные: 7.1, 7.2, 7.3 и т.д.
Е
Евгений 07.08.2013 - 10:08

У меня выдало ошибку, что с ней делать?

  • Warning: is_writable() [function.is-writable]: open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/var/www/v-8057/data:.) in system_requirements() (line 334 of /var/www/v-8057/data/www/peptidy.kz/modules/system/system.install).
  • Warning: is_dir() [function.is-dir]: open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/var/www/v-8057/data:.) in system_requirements() (line 335 of /var/www/v-8057/data/www/peptidy.kz/modules/system/system.install).
  • Warning: is_writable() [function.is-writable]: open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/var/www/v-8057/data:.) in system_requirements() (line 334 of /var/www/v-8057/data/www/peptidy.kz/modules/system/system.install).
  • Warning: is_dir() [function.is-dir]: open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/var/www/v-8057/data:.) in system_requirements() (line 335 of /var/www/v-8057/data/www/peptidy.kz/modules/system/system.install).

Ответ на от Niklan

Г
Гость 04.03.2014 - 18:03

Спасибо огромное! Сделал как сказали, так и не понял что же случилось, но большинство ошибок пропало!! :)))

Д
Ден 02.09.2013 - 17:09

У меня при обновлении ядра выскочида след. ошибка:

Error

PHP extensions
Disabled

Drupal requires you to enable the PHP extensions in the following list (see the system requirements page for more information):

  • filter

Помогите плиз!

Ответ на от Ден (не проверено)

N
Niklan 02.09.2013 - 17:09

На стороне сервера надо править конфиги PHP. Обратитесь в службу поддержку где вы хостите сайт.

Д
Дмитрий 18.09.2013 - 14:09

Спасибо, грамотно написал. Сделал с первого раза, всё чётко прошло.

И
Иван 30.09.2013 - 21:09

Здравствуйте!

Я сделал как у вас написано)) Однако так и не понял, можно ли было как-то сохранить модули, которые я так старательно натсраивал??

а то ведь удалил все подряд, даже тему оформления((

Ответ на от Иван (не проверено)

N
Niklan 30.09.2013 - 22:09

Если вы делали как написано, вы не тронули НИЧЕГО из того что было наработано в процессе работы с друпалом (это папка /sites), базу вы не трогали. Соответственно инчего не должно было удалиться.

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

Темболее если бы вы делали полностью как у меня написано, то в пункте 1 указана памятка о полном backup'е сайта.

С
Саша 07.11.2013 - 17:11

Аффтор, спасибо за статью, счас попробую, а как может коснуться базы если ядро обновляем? Я это про копии или в друпале очень все интегрировано?

Ответ на от Саша (не проверено)

N
Niklan 07.11.2013 - 20:11

Про то что иногда с обновлениями приходят исправления\фиксы для базы данных. Перед обновлением модулей, которые используют базу данных, тоже не мешало бы делать бекап. Они пишут когда будет обноавлена база, когда в случае с ядром надо ручками запустить update.php и чтобы небыло: "Ой, да все полетело - ЁМАЁ", надо делать бекап базы. Лишним никогда не будет.

Г
Гость 31.01.2014 - 15:01

сейчас на техническом обслуживании. Скоро он заработает вновь. Благодарим вас за терпение. - вот такая это инструкция. обновлял 7.22 до 7.26

А
Антон 12.02.2014 - 01:02

Niklan, а что насчет этих файлов: UPGRADE.txt, INSTALL.sqlite.txt, INSTALL.pgsql.txt, INSTALL.mysql.txt? Их можно (или нужно) удалять???

За что они отвечают?

Ответ на от Антон (не проверено)

N
Niklan 12.02.2014 - 11:02

UPGRADE.txt можно удалить, а те что с базами, в принципе тоже, если друпал не будет переустанавливаться, а так они лишь на этапе установки используются.

А
Алекс 13.02.2014 - 18:02

Добрый день!

Вот такой вопрос... У меня стоит кастомная сборка от OpenPublish с кастомным профилем. Если я убью все, кроме "сайтс", то вся эта кастомная версия полетит к...

Как обновлять ядро в таком случае?

Ответ на от Алекс (не проверено)

N
Niklan 13.02.2014 - 19:02

Не удалять sites и profiles. Всё остальное под снос

А
Анастасия 29.03.2014 - 08:03

Я удалила все в папке с названием моего сайта на хостинге (it-patrol) при новой загрузке ядра друпала и модулей сайт перестал  работать, что делть?

В
Владимир 17.04.2014 - 14:04

Нет, не получилось что-то, там какая-то ошибка в отчёте, не стал разбираться, переустанавливаю с нуля.

Ж
Женя 18.04.2014 - 20:04

Спасибо за статью, а я всегда обновлял, не удаляя, а просто заливая(с заменой) сверху, насколько это не правильно?

Г
Гость 27.05.2014 - 16:05

после обновления на сайте блога Сочи появилась ошибка в админке, следующего содержания:

 

Warning: is_writable(): open_basedir restriction in effect. File(/var/www/ws5/data/mod-tmp) is not within the allowed path(s): (/var/www/blogsochi/data:/var/www/ws5/data/mod-tmp:.) в функции system_requirements() (строка 362 в файле /var/www/blogsochi/data/www/blogsochi.info/modules/system/system.install).

 

как её решить?

О
Олег 31.05.2014 - 09:05

Добрый день. На третьем шаге(Review updates) вылезла вот такая ошибка: 

  • Notice: Undefined index: highlighted в функции include() (строка 126 в файле/home/host1329335/sportrock.ru/htdocs/www/modules/system/page.tpl.php).
  • Notice: Trying to get property of non-object в функции drupal_alter()(строка 1080 в файле/home/host1329335/sportrock.ru/htdocs/www/includes/module.inc).
  • Notice: Trying to get property of non-object в функции drupal_alter()(строка 1080 в файле/home/host1329335/sportrock.ru/htdocs/www/includes/module.inc).
  • Notice: Trying to get property of non-object в функции drupal_alter()(строка 1080 в файле/home/host1329335/sportrock.ru/htdocs/www/includes/module.inc).
  • Notice: Trying to get property of non-object в функции drupal_alter()(строка 1080 в файле/home/host1329335/sportrock.ru/htdocs/www/includes/module.inc).
  • Notice: Undefined index: sidebar_second в функции include() (строка 144в файле/home/host1329335/sportrock.ru/htdocs/www/modules/system/page.tpl.php).
  • Notice: Trying to get property of non-object в функции drupal_alter()(строка 1080 в файле/home/host1329335/sportrock.ru/htdocs/www/includes/module.inc).
  • Notice: Trying to get property of non-object в функции drupal_alter()(строка 1080 в файле/home/host1329335/sportrock.ru/htdocs/www/includes/module.inc).
  • Warning: file_get_contents(profiles/drupalife_store/themes/drupalife_store/js/script.js) [function.file-get-contents]: failed to open stream: No such file or directory в функции _locale_parse_js_file() (строка 1488 в файле/home/host1329335/sportrock.ru/htdocs/www/includes/locale.inc).
  • Notice: Trying to get property of non-object в функции drupal_alter()(строка 1080 в файле/home/host1329335/sportrock.ru/htdocs/www/includes/module.inc).
  • Notice: Trying to get property of non-object в функции drupal_alter()(строка 1080 в файле/home/host1329335/sportrock.ru/htdocs/www/includes/module.inc).
  • Notice: Undefined index: zen в функции drupal_theme_initialize() (строка98 в файле/home/host1329335/sportrock.ru/htdocs/www/includes/theme.inc).
  • Notice: Trying to get property of non-object в функции drupal_alter()(строка 1080 в файле/home/host1329335/sportrock.ru/htdocs/www/includes/module.inc).
  • Notice: Trying to get property of non-object в функции drupal_alter()(строка 1080 в файле/home/host1329335/sportrock.ru/htdocs/www/includes/module.inc).
  • Notice: Trying to get property of non-object в функции phptemplate_init()(строка 12 в файле/home/host1329335/sportrock.ru/htdocs/www/themes/engines/phptemplate/phptemplate.engine).
  • Notice: Trying to get property of non-object в функции drupal_alter()(строка 1080 в файле/home/host1329335/sportrock.ru/htdocs/www/includes/module.inc).
  • Notice: Trying to get property of non-object в функции drupal_alter()(строка 1080 в файле/home/host1329335/sportrock.ru/htdocs/www/includes/module.inc).
  • Notice: Trying to get property of non-object в функции drupal_alter()(строка 1080 в файле/home/host1329335/sportrock.ru/htdocs/www/includes/module.inc).
  • Notice: Trying to get property of non-object в функции drupal_alter()(строка 1080 в файле/home/host1329335/sportrock.ru/htdocs/www/includes/module.inc).
  • Подскажите пожалуйста решение.
О
Олег 31.05.2014 - 11:05

Notice: Undefined index: highlighted в функции include() (строка 126 в файле /home/host1329335/sportrock.ru/htdocs/www/modules/system/page.tpl.php).
Notice: Undefined index: sidebar_second в функции include() (строка 144 в файле /home/host1329335/sportrock.ru/htdocs/www/modules/system/page.tpl.php).
Notice: Trying to get property of non-object в функции drupal_alter() (строка 1080 в файле /home/host1329335/sportrock.ru/htdocs/www/includes/module.inc).
Notice: Trying to get property of non-object в функции drupal_alter() (строка 1080 в файле /home/host1329335/sportrock.ru/htdocs/www/includes/module.inc).
Notice: Trying to get property of non-object в функции drupal_alter() (строка 1080 в файле /home/host1329335/sportrock.ru/htdocs/www/includes/module.inc).
Warning: file_get_contents(profiles/drupalife_store/themes/drupalife_store/js/script.js) [function.file-get-contents]: failed to open stream: No such file or directory в функции _locale_parse_js_file() (строка 1488 в файле /home/host1329335/sportrock.ru/htdocs/www/includes/locale.inc).
Notice: Trying to get property of non-object в функции drupal_alter() (строка 1080 в файле /home/host1329335/sportrock.ru/htdocs/www/includes/module.inc).
Notice: Trying to get property of non-object в функции drupal_alter() (строка 1080 в файле /home/host1329335/sportrock.ru/htdocs/www/includes/module.inc).
Notice: Undefined index: zen в функции drupal_theme_initialize() (строка 98 в файле /home/host1329335/sportrock.ru/htdocs/www/includes/theme.inc).
Notice: Trying to get property of non-object в функции drupal_alter() (строка 1080 в файле /home/host1329335/sportrock.ru/htdocs/www/includes/module.inc).
Notice: Trying to get property of non-object в функции drupal_alter() (строка 1080 в файле /home/host1329335/sportrock.ru/htdocs/www/includes/module.inc).
Notice: Trying to get property of non-object в функции phptemplate_init() (строка 12 в файле /home/host1329335/sportrock.ru/htdocs/www/themes/engines/phptemplate/phptemplate.engine).
Notice: Trying to get property of non-object в функции drupal_alter() (строка 1080 в файле /home/host1329335/sportrock.ru/htdocs/www/includes/module.inc).
Notice: Trying to get property of non-object в функции drupal_alter() (строка 1080 в файле /home/host1329335/sportrock.ru/htdocs/www/includes/module.inc).
Notice: Trying to get property of non-object в функции drupal_alter() (строка 1080 в файле /home/host1329335/sportrock.ru/htdocs/www/includes/module.inc).
Notice: Trying to get property of non-object в функции drupal_alter() (строка 1080 в файле /home/host1329335/sportrock.ru/htdocs/www/includes/module.inc).
На третьем шаге вот такая ошибка. Помогите решить..

Ответ на от Олег (не проверено)

С
Сергей 29.06.2014 - 15:06

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

D
Duglas 07.07.2014 - 15:07

Огромное спасибо за пост. Произвел апдейт с 7.22 на 7.28 все прекрасно заработало, только выдает

Temporary files directoryNot fully protectedSee http://drupal.org/SA-CORE-2013-003 for information about the recommended .htaccess file which should be added to the /tmp/ugprestige/data/mod-tmp directory to help protect against arbitrary code execution.

не могу понять, .htaccess надо прописать по адоесу /tmp/ugprestige/data/mod-tmp а адрес надо создать? В корне сайта?

w
whistler2419 06.09.2014 - 10:09

Спасибо, помогли обновить ядро.

w
whistler2419 (Никита Степанов) 10.09.2014 - 16:09

Какие минусы Друпал - это то, что нельзя обновить версию КМС одним кликом, как в Вордпрессе.

w
whistler2419 10.09.2014 - 17:09

Почему у меня белый сайт после этого ?

А
Александр 26.09.2014 - 13:09

Спасибо огромное за статью. Обновление ядра выполнял первый раз. Сначала на тестовом. Все получилось Потом обновил рабочий сайт. Еще раз спасибо

А
Александр 26.09.2014 - 13:09

Не удаляйте файлы из корня сайта: CHANGELOG.txt, COPYRIGHT.txt, INSTALL.txt, LICENSE.txt, MAINTAINERS.txt, README.txt перед обновлением.Я удалил тоже была белая страница презалил модуль без удалениявсе прошло как по маслу

Ответ на от Александр (не проверено)

N
Niklan 26.09.2014 - 14:09

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

Д
Дмитрий 09.10.2014 - 05:10

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

Е
Евгения 19.10.2014 - 11:10

Обновляю ядро. На самом деле делаю это уже второй раз, но просто забыла как это делала в первый раз. Сделала всё как надо - заменила все файлы кроме вышесказанных. Когда захожу на site/update.php он пишет, что обновлений нет. И в доступных обновлениях тоже пишет, что ядро не обновлено. В прошлый раз у меня была такая же ошибка, но я не помню как с ней справилась.

Д
Дмитрий 19.10.2014 - 21:10

А как избавиться от сборки? Вот допустим, я поставил сборку(допустим вашу Drupalife Store), хочу заменить ее на стандартную. То есть убрать из из профилей, чтоб этих модулей не было и т.д.

Е
Евгений 23.10.2014 - 19:10

Добавте в инструкцию что нужно также бекапить кастомные темы из themes директории. А то я свою снес бездумно делая все согласно вашей инструкции...

Ответ на от Евгений (не проверено)

N
Niklan 23.10.2014 - 19:10

Если пользоваться Drupal как положено, в этой папке не должно оказаться ни одной кастомной темы. Так что это личные проблемы того кто не следует "инструкции по применению". Темы должны храниться в sites/all/themes, в themes только из ядра.

Ну и в добавок я напомнил о полном бэкапе, где эти кастомные бы и сохранились.

m
meis 30.10.2014 - 15:10

сделал до этого все пункты...

5 - Заходим по адресу site/update.php и жмем continue на всех шагах.

пишет страница не доступна. подскажите мне плиз , делать что?

M
Meis 30.10.2014 - 15:10

все норм) я затупил просто

С
Станислав 01.11.2014 - 18:11

Добрый день.
Возникла следующая проблема. Друп перестал видеть наличие обновлений на все модули в отчете выдает:
"Сбой при попытке получить обновления." и "Доступные версии не найдены".

Версия друпа 7.32 т.е. последняя. С какого момента ошибка появилась не засек. Но вроде с этой. Может известно что по данном баге? В инете ничего не нарыл.

Ответ на от Станислав (не проверено)

С
Станислав 03.11.2014 - 08:11

Проблема решена. Проблемы были с хостером.

R
Rider 03.11.2014 - 17:11

доброго дня! а подскажите пожалуйста - такая ситуация - стоит open academy, нигде про это ничего не нарыл. так вот - требуется обновление и для open academy, и для ядра Друпала. Обновил OA- вроде бы все ошибки по ОА, которые вылезали, исчезли, но сбился шаблон сайта и ядро так и осталось тем же, каким было. на след.день обновил уже ядро, восстановив папку settings из своего бэкапа -обновилось ядро, но теперь ОА, соответвенно, старой версии. как быть с обновлением ОА? достаточно ли просто заменть папку settings на ту, которая в архиве новой версии ОА? потому что если заменить все папки-файлы на серваке (кроме, конечно, htaccess. robots & sites)на папки-файлы из архива с новой ОА, то опять версия ядра явно слетит на старую.. помогите разобраться, плиз.

O
Oleg 05.11.2014 - 23:11

Спасибо!
Оказывается всё просто!

A
Andrey Sunday 12.03.2015 - 01:03

Здесь же (на этом сайте) можно найти про установку и использование Drush. Потратьте один раз время на установку и вкуривание и вам станет смешно над самими собой чем вы тут занимались.

М
Маргарита 16.03.2015 - 14:03

Fatal error: Cannot redeclare drupal_html_class() (previously declared in /var/www/roleti/data/www/roleti.kiev.ua/includes/common.inc:3871) in /var/www/roleti/data/www/roleti.kiev.ua/sites/all/themes/divilon_vision/template.php on line 157

как победить?

В
Виктор 21.03.2015 - 10:03

Спасибо.Всё чётко встало.

s
shoni 15.05.2015 - 15:05

Здравствуйте, странно что то, обновление прошло нормально, все этапы выполнил, но версия не поменялась, в репорте пишет 7,34 как и было, хоть обновляться уже не просит, подскажите в чем может быть проблема? Обновлял с 7,34 до 7,37.

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

Содержимое данного поля является приватным и не предназначено для показа.