Узнайте, как легко обновлять ядро Drupal 7, чтобы улучшить безопасность и функциональность вашего сайта.
За то время пока я писал гайды, ядро Drupal было обновлено.
Было бы глупо не добавить ко всем гайдам еще и информацию по обновлению ядра системы. Поэтому если появилась необходимость обновить ядро, а вы не знаете как это делать, то этот гайд для вас.
Итак, появилось новое ядро. Модули обновляются автоматически при помощи встроенных средств и под силу даже ребенку. Ядро не может обновиться самостоятельно, это необходимо делать собственноручно. В этом нет ничего страшного, если подходить к делу с полной серьезностью, особенно если это продакшен.
Что же делать? Обновляться, причем чем скорее после релиза новой версии, тем лучше. Особенно для обновлений с пометкой «Не безопасно!», как на скриншоте выше.
Погнали. Для начала качаем свежую версию друпала. После этого делаем следующие действия:
- Делаем ПОЛНЫЙ backup (резервную копию) вашего сайта. Это включает всю директорию сайта + база данных.
- На сайте заходим «Конфигурация > Режим обслуживания». Ставим галочку «Перевести сайт в режим обслуживания» и сохраняем настройки.
- Заходим в каталог сайта и удаляем все файлы и папки, за исключением:
папки sites, файлов .htaccess и robots.txt
ВНИМАНИЕ! Если вы используете дистрибутив (например Drupalife Store, Commerce Kickstart и подобные), папку profiles удалять нельзя. В таком случае надо произвести просто копирование с заменой на более новые файлы. - Извлекаем из архива (новая версия скачанная с офф сайта) все кроме папки sites, а также файлов .htaccess и robots.txt
- Заходим по адресу site/**update.php **и жмем continue на всех шагах.
- Когда появится сообщение, что все обновлено. Можете заходить на главную сайта и проверять его. Если все работает корректно, включите сайт обратно (пункт 2).
Теперь ядро будет самой последней версии.
Вот такими простыми шестью шагами можно обновить версию друпала.
На заметку
- Удалите и всегда удаляйте файлы из корня сайта: CHANGELOG.txt, COPYRIGHT.txt, INSTALL.txt, LICENSE.txt, MAINTAINERS.txt, README.txt — это самая первая дыра в безопасности сайта. На основе данных файлов можно определить версию системы, соответственно зная версию и её дыры, будет очень легко взломать сайт.
- Всегда обновляйте ядро. Да, лень, муторно, но безопасность превыше всего.
- Ничего не храните в ядре. Именно поэтому мы удалили все кроме папки sites и двух файлов. Те два файла могут быть у каждого свои, они не меняются из версии в версию, а у сайтов они подвергаются изменениям. Случайно заменив их, может всплыть проблема. Папку sites мы не трогали, так как в ней также не происходит абсолютно никаких изменений. Эта папка — хранилище файлов системы, ничего важного для обновления там нет. Все остальные папки и файлы могут быть подвержены обновлению. Я уже писал — ни в коем случае не трогайте файл и папки ядра. Все что надо храните в sites. И не редактируйте код ядра, для этого есть Drupal API.
- Если вы выключили по каким-то причинам модуль updates, то вы не узнаете о том что вышла новая версия ядра на своем сайте. В таком случае проверяйте наличие обновлений вручную.
- И самый банальный совет — не делайте апдейт без бэкапов.
Комментарии
Однозначный спам, но пропущу :) Пусть кому надо пользуются, хоть по теме.
Если кто не понимает, человек предлагает обновления мажорных версий сайта. То что описано мной в статье, это обновление минорных версий.
Проще говоря:
- Мажорные: 1, 2, 3, 4, 5, 6, 7
- Минорные: 7.1, 7.2, 7.3 и т.д.
У меня выдало ошибку, что с ней делать?
- 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).
Заходим по адресу: admin/config/media/file-system
и в поле "Временная папка" пишем tmp без слешей.
Спасибо огромное! Сделал как сказали, так и не понял что же случилось, но большинство ошибок пропало!! :)))
У меня при обновлении ядра выскочида след. ошибка:
Error
PHP extensions
Disabled
Drupal requires you to enable the PHP extensions in the following list (see the <a href="http://drupal.org/requirements" rel="nofollow">system requirements page</a> for more information):
<ul>
<li>filter</li>
</ul>
Помогите плиз!
На стороне сервера надо править конфиги PHP. Обратитесь в службу поддержку где вы хостите сайт.
Спасибо, грамотно написал. Сделал с первого раза, всё чётко прошло.
Здравствуйте!
Я сделал как у вас написано)) Однако так и не понял, можно ли было как-то сохранить модули, которые я так старательно натсраивал??
а то ведь удалил все подряд, даже тему оформления((
Если вы делали как написано, вы не тронули НИЧЕГО из того что было наработано в процессе работы с друпалом (это папка /sites), базу вы не трогали. Соответственно инчего не должно было удалиться.
Если удалилось, значит кто-то делал вам или вы сами сайт не правильно, хранили все в ядре, что категорически запрещается, вот и результат.
Темболее если бы вы делали полностью как у меня написано, то в пункте 1 указана памятка о полном backup'е сайта.
Аффтор, спасибо за статью, счас попробую, а как может коснуться базы если ядро обновляем? Я это про копии или в друпале очень все интегрировано?
Про то что иногда с обновлениями приходят исправления\фиксы для базы данных. Перед обновлением модулей, которые используют базу данных, тоже не мешало бы делать бекап. Они пишут когда будет обноавлена база, когда в случае с ядром надо ручками запустить update.php и чтобы небыло: "Ой, да все полетело - ЁМАЁ", надо делать бекап базы. Лишним никогда не будет.
сейчас на техническом обслуживании. Скоро он заработает вновь. Благодарим вас за терпение. - вот такая это инструкция. обновлял 7.22 до 7.26
Niklan, а что насчет этих файлов: UPGRADE.txt, INSTALL.sqlite.txt, INSTALL.pgsql.txt, INSTALL.mysql.txt? Их можно (или нужно) удалять???
За что они отвечают?
UPGRADE.txt можно удалить, а те что с базами, в принципе тоже, если друпал не будет переустанавливаться, а так они лишь на этапе установки используются.
спасибо за гайд
Добрый день!
Вот такой вопрос... У меня стоит кастомная сборка от OpenPublish с кастомным профилем. Если я убью все, кроме "сайтс", то вся эта кастомная версия полетит к...
Как обновлять ядро в таком случае?
Не удалять sites и profiles. Всё остальное под снос
Я удалила все в папке с названием моего сайта на хостинге (it-patrol) при новой загрузке ядра друпала и модулей сайт перестал работать, что делть?
Нет, не получилось что-то, там какая-то ошибка в отчёте, не стал разбираться, переустанавливаю с нуля.
Спасибо за статью, а я всегда обновлял, не удаляя, а просто заливая(с заменой) сверху, насколько это не правильно?
после обновления на сайте блога Сочи появилась ошибка в админке, следующего содержания:
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).
как её решить?
Добрый день. На третьем шаге(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).
- Подскажите пожалуйста решение.
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).
На третьем шаге вот такая ошибка. Помогите решить..
У меня точно такое же вылезло при установке подтемы, после того как я поставил основную тему все заработало. Значит и у тебя не хватает каких то файлов или модуля, от которого зависел другой
Огромное спасибо за пост. Произвел апдейт с 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 а адрес надо создать? В корне сайта?
Спасибо, помогли обновить ядро.
Какие минусы Друпал - это то, что нельзя обновить версию КМС одним кликом, как в Вордпрессе.
Это плюс, а не минус.
Почему у меня белый сайт после этого ?
Спасибо огромное за статью. Обновление ядра выполнял первый раз. Сначала на тестовом. Все получилось Потом обновил рабочий сайт. Еще раз спасибо
Не удаляйте файлы из корня сайта: CHANGELOG.txt, COPYRIGHT.txt, INSTALL.txt, LICENSE.txt, MAINTAINERS.txt, README.txt перед обновлением.Я удалил тоже была белая страница презалил модуль без удалениявсе прошло как по маслу
Такого быть не может. Но если у кого такое случилось, после обновления всеравно их удаляйте. Они никак не используются системой, но по ним можно определить версию сайта и воспользоваться дарыми данной версии.
Реально спасибо. Просто не знал, что надо удалять. Всегда заменой делал. Потому и получалось кривовато.
Обновляю ядро. На самом деле делаю это уже второй раз, но просто забыла как это делала в первый раз. Сделала всё как надо - заменила все файлы кроме вышесказанных. Когда захожу на site/update.php он пишет, что обновлений нет. И в доступных обновлениях тоже пишет, что ядро не обновлено. В прошлый раз у меня была такая же ошибка, но я не помню как с ней справилась.
А как избавиться от сборки? Вот допустим, я поставил сборку(допустим вашу Drupalife Store), хочу заменить ее на стандартную. То есть убрать из из профилей, чтоб этих модулей не было и т.д.
Добавте в инструкцию что нужно также бекапить кастомные темы из themes директории. А то я свою снес бездумно делая все согласно вашей инструкции...
Если пользоваться Drupal как положено, в этой папке не должно оказаться ни одной кастомной темы. Так что это личные проблемы того кто не следует "инструкции по применению". Темы должны храниться в sites/all/themes, в themes только из ядра.
Ну и в добавок я напомнил о полном бэкапе, где эти кастомные бы и сохранились.
сделал до этого все пункты...
5 - Заходим по адресу site/update.php и жмем continue на всех шагах.
пишет страница не доступна. подскажите мне плиз , делать что?
все норм) я затупил просто
Добрый день.
Возникла следующая проблема. Друп перестал видеть наличие обновлений на все модули в отчете выдает:
"Сбой при попытке получить обновления." и "Доступные версии не найдены".
Версия друпа 7.32 т.е. последняя. С какого момента ошибка появилась не засек. Но вроде с этой. Может известно что по данном баге? В инете ничего не нарыл.
Проблема решена. Проблемы были с хостером.
а что именно за проблема была с хостигом ?
доброго дня! а подскажите пожалуйста - такая ситуация - стоит open academy, нигде про это ничего не нарыл. так вот - требуется обновление и для open academy, и для ядра Друпала. Обновил OA- вроде бы все ошибки по ОА, которые вылезали, исчезли, но сбился шаблон сайта и ядро так и осталось тем же, каким было. на след.день обновил уже ядро, восстановив папку settings из своего бэкапа -обновилось ядро, но теперь ОА, соответвенно, старой версии. как быть с обновлением ОА? достаточно ли просто заменть папку settings на ту, которая в архиве новой версии ОА? потому что если заменить все папки-файлы на серваке (кроме, конечно, htaccess. robots & sites)на папки-файлы из архива с новой ОА, то опять версия ядра явно слетит на старую.. помогите разобраться, плиз.
Спасибо!
Оказывается всё просто!
Здесь же (на этом сайте) можно найти про установку и использование Drush. Потратьте один раз время на установку и вкуривание и вам станет смешно над самими собой чем вы тут занимались.
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
как победить?
Спасибо.Всё чётко встало.
Здравствуйте, странно что то, обновление прошло нормально, все этапы выполнил, но версия не поменялась, в репорте пишет 7,34 как и было, хоть обновляться уже не просит, подскажите в чем может быть проблема? Обновлял с 7,34 до 7,37.
Спасибо, камрад! Недавно с Друпалом работаю, потому очень помогло!
http://womens-blog.ru Catch the bear before you sell his skin. Прежде поймай медведя http://geogoroda.ru а потом продавай его шкуру. Ср. Не убив медведя http://radio-rynok.ru шкуры не продавай. Не дели шкуру неубитого медведя. http://chukigek.com
http://www.newera.pro Как ни хитри http://krossovery.info языком хвост не достанешь http://o-cemente.info не корова. http://forexfond.ru
В статье нет упоминания про сохранение используемой темы...
Используемая тема не может быть никак задета обновлением ядра.
Никита помоги, делал обновление ядра, что то не так получилось и в итоге сайт отображается нормально, но когда заходишь в админку пишешь логин и пароль, и когда заходишь то полностью белый экран!!! что делать?
Вроде сделала все, как написано.
Но на этапе 5 застряла.
(Заходим по адресу site/update.php и жмем continue на всех шагах.)
При попытке зайти по указанному адресу не происходит ровным счетом ничего - белая страница. Что делать? Как это исправить?
Помогите, пожалуйста!
при входе на /update.php выдает: You need to enable the PDO_AHMYSQLDSEVEN database driver for PHP 5.2.4 or higher so that Drupal 7 can access the database.
Как быть с установленными модулями? Не логичнее разве накатить на новую систему все установленные на сайте модуля и только потом заменять основные папки, ведь папка MODULES чистого релиза не имеет тех модулей как мой сайт?
Отличный гайд! Как шпаргалка очень быстро выручает...
Никита, поправь картинки
Спасибо , братец !
Очень помог!
Здравствуйте.
Для drupal 8 подойдет эта инструкция?
У 8-ки немного другая структура, так что нет. Там надо обновлять /core папку остальное не трогать.
Обновил все..
Теперь сайт не открывается, а показывает ошибку:
"Fatal error: require_once(): Failed opening required '/home/..../...../docs/includes/actions.inc' (include_path='.:/home/..../.../php') in /home/...../..../docs/includes/common.inc on line 5215"
Не могу понять что он хочет и как поправить всё? :(
Картинки слетели, обнови плиз)
Сделай, пожалуйста, темнее, плохо видно текст
Здравствуйте! Очень полезная статья, до сих пор использую как напоминание для себя, только к сожалению у вас побились картинки в статье.
Я бы еще удалил UPGRADE.txt
Спасибо!
Добрый день. Подскажите, данная инструкция подходит и для случая с мультисайтингом?
Обновление ядра не прошло, написало ошибку "Невозможно создать файл." Ошибка решилась созданием папки "tmp" с правами 777 в корне сайта после копирования нового ядра перед обновлением
На линуксе лучше указывать папку не "tmp" (которая будет пытаться создаться и использоваться в корне сайта), а "/tmp", которая будет системной. Это во-первых, безопаснее, во-вторых, если используются VCS, не попадет туда, в-третьих, это просто правильнее держать temporary файлы за пределами ядра.
Подскажите пожалуйста как быть.
сделал все по инструкции. но после замены файлов получил
Not Found
The requested URL / was not found on this server.
Apache/2.2.22 (@RELEASE@) Server at site Port 80
как быть???
а какой именно урл не находит? Может "clean URLs"-ы сбились или был удален файл .htaccess в папке с друпалом. Это скрытый файл. Советую скачать архив с друпалом и перетянуть .htaccess файл себе в папку, где лежит index.php.
Здраствуйте! Как с бекапа взять вытунять нужные файлы?
Заказчик давно не обновлял сайт. Что сперва порекомендуете сделать обновить ядро или модули?
Делать бэкап всего, и drush up. Если не прошло, то начать с ядра.
Скажите, пожалуйста, такая проблема: сайт был взломан, обнаружили только когда появилось куча php-файлов с вредоносним кодом и размер базы начал увеличиваться на гигабайти за считанные часы. была версия 7.39, обновили. Что нашли по коду - удалили. Как почистить базу? И сайт - может что пропустили - как найти это все что было добавлено/изменено? Сам сайт визуально работает нормально как и работал - так и не скажеш что взломали((
Как быть с ошибкой ?
Drupal database update strict warning: Non-static method view::load_views() should not be called statically in /var/www/speedway/data/www/mymoney.tk/sites/default/modules/views/views.module on line 864. strict warning: Non-static method view::db_objects() should not be called statically in /var/www/speedway/data/www/mymoney.tk/sites/default/modules/views/includes/view.inc on line 1417.
Версия друп 6,27 как хоть до 7 обновить ?
Это разные мажорные версии. Такие версии обновляются в ручном режиме.
Читайте материалы по апдейту: на английском, на русском надо погуглить, не встречал.
Как по мне, на 8-ку должно быть легче переехать нежели на 7-ку. 8-ка на уровне ядра и миграций может часть хлопот взять на себя.
Спасибо за гайд! В раздел "На заметку" в 1-й пункт можно еще добавить файл UPGRADE.txt
Автору респект и просто огромнейшее спасибо! Сейчас у меня эта страница в закладках даже, чтоб если что забыл всегда шпаргалка под рукой! ) А обновлять приходится несколько сайтов каждый раз. Но вот есть загвоздка, может кто подскажет? Среди моих сайтов есть один про хостинг, когда все другие более менее имеют посещаемость и интересны людям, то этот уже почти 2 года только роботы видимо посещают. Может кто подскажет в чем проблема?
Обновление до новой мажорной версии не совсем простая задача, особенно если используются самописные модули или модули отсутсвующие для новой версии. Эту работу лучше доверить сервису по обновлению версии друпал http://plaon.com