За то время пока я писал гайды, ядро 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, то вы не узнаете о том что вышла новая версия ядра на своем сайте. В таком случае проверяйте наличие обновлений вручную.
- И самый банальный совет — не делайте апдейт без бэкапов.
Обновление до новой мажорной версии не совсем простая задача, особенно если используются самописные модули или модули отсутсвующие для новой версии. Эту работу лучше доверить сервису по обновлению версии друпал http://plaon.com
Однозначный спам, но пропущу :) Пусть кому надо пользуются, хоть по теме.
Если кто не понимает, человек предлагает обновления мажорных версий сайта. То что описано мной в статье, это обновление минорных версий.
Проще говоря:
У меня выдало ошибку, что с ней делать?
Заходим по адресу: admin/config/media/file-system
и в поле "Временная папка" пишем tmp без слешей.
Спасибо огромное! Сделал как сказали, так и не понял что же случилось, но большинство ошибок пропало!! :)))
У меня при обновлении ядра выскочида след. ошибка:
Error
PHP extensions
Disabled
Drupal requires you to enable the PHP extensions in the following list (see the system requirements page for more information):
На стороне сервера надо править конфиги 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: 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 а адрес надо создать? В корне сайта?
Как фиксить SA-CORE-2013-003 в Drupal
Спасибо, помогли обновить ядро.
Какие минусы Друпал - это то, что нельзя обновить версию КМС одним кликом, как в Вордпрессе.
Это плюс, а не минус.
Почему у меня белый сайт после этого ?
Спасибо огромное за статью. Обновление ядра выполнял первый раз. Сначала на тестовом. Все получилось Потом обновил рабочий сайт. Еще раз спасибо
Не удаляйте файлы из корня сайта: 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.