Drupal: Обновление ядра до последней версии. Drupal обновление
Обновление Drupal до последней версии
Время от времени, разработчики выпускают новую версию Drupal, в которой исправляют различные ошибки, в том числе и ошибки, связанные с системой безопасности. Поэтому, крайне важно выполнять обновление Drupal.
Сегодня мы рассмотрим, как обновить Drupal до последней актуальной на данный момент версии.
Внимание!!! Прежде чем приступать к обновлению, сделайте бэкап файлов сайта и базы данных, чтобы в дальнейшем избежать лишней головной боли в том случае, если при обновлении что-то пойдет не так. С бэкапа вы всегда сможете полностью восстановить свой сайт.
Обновление Drupal
К сожалению автоматическое обновление не предусмотрено и мы будем выполнять обновление Drupal вручную.
Узнать о наличии новой версии мы можем из оповещения в панели управления, либо же перейдя в «Отчеты» > «Доступные обновления».
Здесь нам предлагают скачать более свежую версию, чтобы это сделать нажимаем на ссылку «Скачать».
И сохраняем к себе на компьютер предложенный файл.
Скачанный архив с обновлением ядра Drupal необходимо разархивировать и скопировать все папки и файлы в корневую директорию сайта. Во время копирования соглашаемся с заменой всех папок и файлов.
С обновлением ядра Drupal мы закончили, теперь внесем необходимые изменения в базу данных. Для этого нужно запустить файл update.php. Чтобы это сделать откройте браузер и допишите к доменному имени: /update.php, у вас должно получиться следующее: http://ваш-сайт.com/update.php.
На открывшейся странице обновления базы данных мы можем временно перевести сайт в режим обслуживания, для этого необходимо нажать на ссылку – maintenance mode (1). Режим обслуживания будет полезен на сайте находящемся на внешнем сервере, у которого есть посетители. Если же вы делаете сайт на локальном сервере, то можете не пользоваться режимом обслуживания и жать кнопку «Continue» (2).
Предположим, что нам нужно перевести сайт в режим обслуживания, и мы перешли по ссылке – maintenance mode. В открывшемся окне ставим галочку напротив – «Перевести сайт в режим обслуживания» и нажимаем кнопку «Сохранить настройки».
Теперь нужно вернуться на страницу обновления базы данных, чтобы это сделать, в строке браузера опять вводим: http://ваш-сайт.com/update.php и в открывшемся окне жмем «Continue».
Применяем ожидающие обновления нажав кнопку «Apply pending updates».
После завершения обновления перед нами появляется страница, уведомляющая о том, что все прошло успешно и без ошибок.
Нам предлагают перейти на главную страницу сайта, либо на страницу администрирования. Поскольку нам нужно перевести сайт из режима обслуживания в рабочий режим, давайте выберем страницу администрирования.
В админ-панели нам сразу же бросается в глаза оповещение, уведомляющее нас о том, что сайт работает в режиме обслуживания. Давайте это исправим. Кликаем по ссылке – Переключиться в рабочий режим.
И попадаем на уже знакомую нам страницу режима обслуживания. Убираем галочку напротив – «Перевести сайт в режим обслуживания» и жмем кнопку «Сохранить настройки».
Давайте убедимся в том, что обновление Drupal прошло успешно. Перейдем в «Отчеты» > «Доступные обновления» и мы видим, что текущая версия Drupal обновлена.
onedrupal.com
Обновление Drupal с помощью drush
При большом количестве сайтов на базе drupal становится затруднительно обновлять их в ручную, особенно если обновления ставить через ftp.
На помощь приходит мощная утилита drush автоматически обновляющая ядро и плагины всего одной командой из shell внутри папки с установленным Drupal
drush pm-updateПри использовании базы данных sqlite в случае "кривого" обновления drush в домашней папке пользователя в директории drush-backups/sites/ создает резевную копию из которой можно восстановить предыдущую базу данных.
Полный список возможностей утилиты drush
Execute a drush command. Run `drush help [command]` to view command-specific help. Run `drush topic` to read even more documentation. Global options (see `drush topic core-global-options` for the full list): -d, --debug Display even more information, including internal messages. -h, --help This help system. -ia, --interactive Force interactive mode for commands run on multiple targets (e.g. `drush @site1,@site2 cc --ia`). -n, --no Assume 'no' as answer to all prompts. --php= The absolute path to your PHP intepreter, if not 'php' in the path. -p, --pipe Emit a compact representation of the command for scripting. -r , --root= Drupal root directory to use (default: current directory). -s, --simulate Simulate all relevant actions (don't actually change the system). -l <http://example.com:8888>, URI of the drupal site to use (only --uri=<http://example.com:8888> needed in multisite environments or when running on an alternate port). -v, --verbose Display extra information about the command. --version Show drush version. -y, --yes Assume 'yes' as answer to all prompts. Core drush commands: (core) archive-dump (ard, Backup your code, files, and database into a single archive-backup, arb) file. archive-restore Expand a site archive into a Drupal web site. (arr) cache-clear (cc) Clear a specific cache, or all drupal caches. cache-get (cg) Fetch a cached object and display it. cache-set (cs) Cache an object expressed in JSON or var_export() format. core-config (conf, Edit drushrc, site alias, and Drupal settings.php files. config) core-cron (cron) Run all cron hooks in all active modules for specified site. core-execute (exec, Execute a shell command. Usually used with a site alias. execute) core-quick-drupal Download, install, serve and login to Drupal with (qd) minimal configuration and dependencies. core-requirements Provides information about things that may be wrong in (status-report, rq) your Drupal installation, if any. core-rsync (rsync) Rsync the Drupal tree to/from another server using ssh. core-status (status, Provides a birds-eye view of the current Drupal st) installation, if any. core-topic (topic) Read detailed documentation on a given topic. drupal-directory Return path to a given module/theme directory. (dd) help Print this help message. See `drush help help` for more options. image-flush Flush all derived images for a given style. php-eval (eval, ev) Evaluate arbitrary php code after bootstrapping Drupal (if available). php-script (scr) Run php script(s). queue-list Returns a list of all defined queues queue-run Run a specific queue by name search-index Index the remaining search items without wiping the index. search-reindex Force the search index to be rebuilt. search-status Show how many items remain to be indexed out of the total. self-update Check to see if there is a newer Drush release (selfupdate) available. shell-alias (sha) Print all known shell alias records. site-alias (sa) Print site alias records for all known site aliases and local sites. site-install (si) Install Drupal along with modules/themes/configuration using the specified install profile. site-reset Reset a persistently set site. site-set (use) Set a site alias to work on that will persist for the current session. site-ssh (ssh) Connect to a Drupal site's server via SSH for an interactive session or to run a shell command test-clean Clean temporary tables and files. test-run Run tests. Note that you must use the --uri option. updatedb (updb) Apply any database updates required (as with running update.php). usage-send (usend) Send anonymous Drush usage information to statistics logging site. Usage statistics contain the Drush command name and the Drush option names, but no arguments or option values. usage-show (ushow) Show Drush usage information that has been logged but not sent. Usage statistics contain the Drush command name and the Drush option names, but no arguments or option values. variable-delete Delete a variable. (vdel) variable-get (vget) Get a list of some or all site variables and values. variable-set (vset) Set a variable. version Show drush version. watchdog-delete Delete watchdog messages. (wd-del, wd-delete) watchdog-list Show available message types and severity levels. A (wd-list) prompt will ask for a choice to show watchdog messages. watchdog-show Show watchdog messages. (wd-show, ws) Runserver commands: (runserver) runserver (rs) Runs a lightweight built in http server for development. Field commands: (field) field-clone Clone a field and all its instances. field-create Create fields and instances. Returns urls for field editing. field-delete Delete a field and its instances. field-info View information about fields, field_types, and widgets. field-update Return URL for field editing web page. Project manager commands: (pm) pm-disable (dis) Disable one or more extensions (modules or themes). pm-download (dl) Download projects from drupal.org or other sources. pm-enable (en) Enable one or more extensions (modules or themes). pm-info (pmi) Show detailed info for one or more extensions (modules or themes). pm-list (pml) Show a list of available extensions (modules and themes). pm-refresh (rf) Refresh update status information. pm-releasenotes Print release notes for given projects. (rln) pm-releases (rl) Print release information for given projects. pm-uninstall Uninstall one or more modules. pm-update (up) Update Drupal core and contrib projects and apply any pending database updates (Same as pm-updatecode + updatedb). pm-updatecode (upc) Update Drupal core and contrib projects to latest recommended releases. SQL commands: (sql) sql-cli (sqlc) Open a SQL command-line interface using Drupal's credentials. sql-connect A string for connecting to the DB. sql-drop Drop all tables in a given database. sql-dump Exports the Drupal DB as SQL using mysqldump or equivalent. sql-query (sqlq) Execute a query against the site database. sql-sync Copy and import source database to target database. Transfers via rsync. User commands: (user) user-add-role (urol) Add a role to the specified user accounts. user-block (ublk) Block the specified user(s). user-cancel (ucan) Cancel a user account with the specified name. user-create (ucrt) Create a user account with the specified name. user-information Print information about the specified user(s). (uinf) user-login (uli) Display a one time login link for the given user account (defaults to uid 1). user-password (upwd) (Re)Set the password for the user account with the specified name. user-remove-role Remove a role from the specified user accounts. (urrol) user-unblock (uublk) Unblock the specified user(s). Other commands: (make) make Turns a makefile into a working Drupal codebase. make-generate Generate a makefile from the current Drupal site. (generate-makefile)Обновление ядра до последней версии
Обновлять Drupal до последней версии крайне необходимо, так как обновления содержат исправления ошибок, в том числе и таких, которые позволяют обойти защиту сайта.
В данной статье будет рассмотрен вопрос как обновить Drupal 7 с одной минорной версии к другой (например с 7.0 на 7.2 или 7.2 до 7.4. и так далее).
Обновление основных (мажорных) версий, таких как с 5 на 6 или с 6 на 7 версию - гораздо более обширный вопрос и рассматриваться не будет.
Перед обновлением, выработайте в себе привычку смотреть заметки к релизу, где вы можете получить исчерпывающую информацию о том какие изменения были сделаны. Также, там вы можете увидеть вносились-ли какие-либо изменения в файлы .htaccess, web.config, robots.txt, или default settings.php.
Прежде чем начинать процесс обновления, запомните основную вещь: Обязательно делайте резервную копию всего сайта, то есть файлов и базы данных!
Это позволит вам в случае возникновения каких-либо непредвиденных обстоятельств, в кратчайшие сроки вернуть работоспособность сайту, с дальнейшим поиском причин уже на тестовой инсталляции Drupal.
Для того, чтоб обновить Drupal есть два пути. Первый предусматривает работу исключительно руками, при помощи браузера, файлового менеджера и архиватора. Второй способ заключается в использовании командной оболочки Drupal - drush. Я, конечно же рекомендовал-бы вам использовать второй способ, но выбор всегда остается за вами.
Обновление Drupal через браузер, файловый менеджер и архиватор
Шаг 1: Проверка доступных обновлений
Для начала, для обновления Drupal, нажмите "Reports" (Отчеты), затем "Available updates" (Доступные обновления). Если проверка обновлений производилась давненько, нажмите ссылку Check manually (Проверить вручную).
На странице "Available updates" (Доступные обновления) будут показаны обновления, которые доступны для модулей и ядра системы. Ядро системы необходимо скачать отдельно, установить его непосрдственно из административной консоли нельзя.
Шаг 2: Загрузка файлов обновления
Система покажет ссылку для загрузки последней версии Drupal. Перейдите по ней, загрузите во временную директорию архив.
Шаг 3. Переведите сайт Drupal в режим обслуживания
Для того, чтоб у пользователей вашего сайта не возникло проблем, следует перевести сайт в режим обслуживания
- Откройте меню Конфигурация, или ссылку admin/config/development/maintenance
- В разделе разработка откройте ссылку Режим обслуживания.
- Установите чекбокс Перевести сайт в режим обслуживания
- Измените, если это критично, Сообщение о режиме обслуживания и нажмите кнопку Сохранить настройки
Шаг 4: Создайте резервную копию
Для того, чтоб создать резервную, имеется множество способов, например воспользоваться инструмекнтарием, предоставляемым вашим хостинг провайдером, с помощью модуля Backup and Migrate, или руками. Главное, чтоб вы сделали резервную копию как базы данных, так и файлов сайта.
Шаг 5: Обновите файлы ядра Drupal
- Перед выгрузкой файлов, в корневой папке вашего сайта удалите все содержимое, кроме директории sites (еще раз напоминаю про резервную копию).
- Разархивируйте только что скачанный архив
- Скопируйте распакованное содержимое, за исключением директории sites, в корневую директорию сайта (напоминаю про директорию sites).Обратите внимание: Удалять директорию sites не обязательно, но ее копирование может привести к потере данных, созданных в ходе работы с сайтом. Убедитесь, что существующая на сервере директория sites осталась без изменений.
После выгрузки, обновите страничку "Доступные обновления" ("Available updates") . Версия сайта должна стать актуальной (зеленой вместо красной).
Откройте страничку "Modules" ("Модули") и в строке "Always run the update script each time a module is updated" нажмите ссылку update script. Отктроется мастер обновления базы данных.
Overview - Нажмите "Continue".
Review updates - Нажмите "Apply pending updates".
В конце должна отобразиться страница, сообщающая что обновление прошло успешно и без ошибок.
Нажмите ссылку "Administration pages" затем "Configuration" затем "Maintenance mode", для того, чтоб вывести сайт из режима обслуживания.
Обновление Drupal используя Drush
Шаг 1. Перевод сайта в режим обслуживания
$ drush vset --yes maintenance_mode 1;
Установка сообщения о режиме обслуживания
$ drush variable-set --yes maintenance_mode_message "This site is being maintained"
После внесения изменений, для того, чтоб они вступили в силу, следует очистить кэш.
$ drush cc all
Шаг 2. Создайте резервную копию сайта
$ drush ard
Шаг 3. Обновите сайт
$ drush up
Шаг 4. Переведите сайт назад в рабочий режим
$ drush vset --yes maintenance_mode 0;
$ drush cc all
Вот и все. Как видите, использование Drush существенно сократило работу. Всего пару команд и все готово. Так что, если есть возможность, обязательно используйте Drush и не только при обновлении Drupal.
profhelp.com.ua
Обновления ядра Drupal. — Niklan
За то время пока я писал гайды, ядро 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, то вы не узнаете о том что вышла новая версия ядра на своем сайте. В таком случае проверяйте наличие обновлений вручную.
- И самый банальный совет — не делайте апдейт без бэкапов.
niklan.net
Обновляем версию Drupal
Прогресс не стоит на месте, всё движется вперед – не исключением является и развитие всеми нашего любимого Drupal. Возникают такие ситуации, когда после сдачи сайта в эксплуатацию заказчику, через некоторое время на странице отчётов появляются вот такие сообщения
Что порой приводит к недоумению заказчиков. А это сообщение как раз и говорит о том, что разработчики Drupal не спят, и постепенно совершенствуют свою платформу и сейчас пришло время как раз обновиться. В каждой новой версии разработчики исправляют различные баги функционала, так же и баги которые касаются системы безопасности. Как обновить Drupal на более свежую версию я сейчас вам расскажу. В принципе задача довольно простая, первое что нам необходимо сделать это скачать обновлённую версию Drupal, ссылка на скачивание даётся также в окне сообщения
Так же рекомендую вам перед обновление создать Бэкап базы и самого сайта. Бэкап базы можно сделать из phpMyAdmin, если хостер предоставляет вам такую возможность – хотя наверняка у любого хостера есть свои инструменты для бекапа. Бекап сайта сделать так же можно самостоятельно, скачав весь ваш сайт себе на компьюте, а имено всю папку с названием вашего сайта или опять же на стороне хостера так же имеются инструменты для таких работ.
Теперь, что бы не было не предвиденных сбоев при обновлении рекомендуется перевести сайта режим обслуживания. Для этого переходим по пути «Конфигурация->Разработка->Режим обслуживания»
Далее открывается страница, на которой нам необходимо поставить галочку напротив пункта «перевести сайт в режим обслуживания», а так же имеется возможность написать свой текст для посетителей сайта, на тот момент пока он будет не доступен
После перевода сайта в режим обслуживания, у нас будет висеть вот такое сообщение, которое не даст нам забыть перевести сайт обратно, после обновления
Теперь приступаем к обновлению. У нас имеется обновленная версия Drupal, которая находится в архиве. Извлекаем из архива что бы осталась только папка с необходимыми нам файлами. Теперь нам всего лишь нужно заменить файлы на нашем сервере на файлы из этой папки, поэтому просто копируем содержимое этой папки в папку на нашем сервере, при этом соглашаясь на замену
После копирования и замены файлов нам необходимо запустить процесс обновления, для этого в адресной строке пишем вот такой URL
Название вашего сайта/update.phpГде перед нами откроется страница обновления базы данных. Где нам по шагам расписано, что необходимо сделать для начала процесса обновления. Мы это с вами уже сделали.
Поэтому жмём «продолжить». Теперь открывается страница, с сообщением что ядро Drupal обновлено из вне, и есть ещё 3 модуля которые ждут процесса обновления. Количество модулей для обновления у вас может отличаться от моих.
Жмём далее «продолжить обновление». И начинается процесс обновления
После завершения обновления, у вас будет вот такая страница.
Она говорит о том, что при обновлении ошибок не было выявлено. Если вылезут ошибки, то они будут показаны ниже. В нашем случае всё прошло успешно. Теперь нам предлагают перейти на страницу администрирования или на главную. Для нас лучшим вариантом будет переход на страницу администрирования, так как теперь необходимо перевести сайт в рабочий режим.
Кликаем по ссылке «Переключиться в рабочий режим» и снимаем галочку напротив «Перевести сайт в режим обслуживания» и сохраняем настройки. Теперь перейдём в «Отчёты->Доступные обновления» и видим, что версия Drupal у нас обновлена
На этом обновление ядра Drupal закончено.
drupalfly.ru