8.4 Aktualizace Drupal core

Tato kapitola o aktualizaci Drupal core popisuje vše pro verzi Drupal 8. Je to pro to, že Drupal 9 ještě moc mladý a podobná situace pro něj ještě nenastala. Ale níže uvedené bude platit i pro budoucí vydání verzí Drupal 9, následující se mezi Drupal 8 a Drupal 9 nezměnilo.

Aktualizace Drupal core se dělí na dvě skupiny. Malé aktualizace - patch release - většinou řeší nějaký bezpečnostní problém, buď přímo Drupalu nebo nějaké knihovny, kterou Drupal využívá. Půlroční - feature release - aktualizace naopak přináší hlavně novou funkcionalitu. 

V obou případech je vhodné nejdříve udělat zálohu souborů i databáze, a pokud je to možné, nejdřív si vše vyzkoušet někde nanečisto.

Oficiální návody jsou zde:

Každou aktualizaci doprovází Release notes dokument. Tam najdeme vše důležité, co aktualizace přináší. Protože je Drupal komplexní systém, občas i přes veškerá testování dojde k vydání verze, která v určitých situacích může způsobovat různé problémy. Právě v Release notes (Known issues) bychom se to měli dovědět. Proto je také vhodné třeba i pár dní s aktualizací počkat a sledovat případné Known issues - tedy pokud update vyloženě neřeší nějaký urgentní problém, kdy je třeba aktualizovat ihned, aby např. útočník nekompromitoval náš web.

Např. při aktualizaci na Drupal 8.8.0 bylo nutné mít aktualizovaný modul Pathauto, jinak hrozila ztráta dat.

pathauto issue

 

A ukázka výpisu "Known issues", kde byl reportován například problémy s modulem Group:

known issues

 

Na možnou aktualizaci nás Drupal upozorní sám, tedy pokud máme zapnutý modul Update Manager.

core security update pending

 

Pak na stránce Extend » Update (/admin/modules/update) najdeme potřebné informace.

core update available

 

Stejně tak můžeme navštívit stránku Reports » Available updates (/admin/reports/updates) pro více detailů:

core update available details

 

V mém případě mám Drupal verze 8.7.9, tu můžu aktualizovat v rámci řady (patch release) na verzi 8.7.11 (mezitím jsem už prošvihnul verzi 8.7.10) - tím nejspíš odstraním nějaké bezpečnostní problémy. Což se dočtu v příslušných Release notes:

Mezitím také vyšla nová "feature release" verze 8.8.0, která už má také svojí "patch release" aktualizaci 8.8.1:

Já chci mít tu nejnovější, takže budu aktualizovat stávající 8.7.9 rovnou na 8.8.1.

Postup aktualizace (po provedeném zálohování) je následující:

  • Upravit soubor /sites/default/settings.php a nastavit $settings['update_free_access'] = TRUE;
  • Dát stránku do maintenance modu (/admin/config/development/maintenance)
  • Stáhnout archiv s danou verzí (v tomto případě 8.8.1)
  • Nahrát si tento soubor na server
  • Rozbalit si ho vedle hlavního webového adresáře
  • V naší instalaci si smazat adresáře core a vendor, a také všechny přímé soubory v instalaci, tedy od .csslintrc až po web.config (pokud jsme je předtím sami ručně neměnili, např. .htaccess)
  • Z aktualizované verze si tam tyto soubory a adresáře nahrát
  • Spustit update.php skript (/update.php)
  • Pokud update proběhl bez problémů, tak na status stránce (/admin/reports/status) už uvidíme novou verzi Drupalu (8.8.1)
  • V settings.php nastavíme $settings['update_free_access'] zpět na FALSE;
  • Můžeme zrušit maintenance mod
  • Vyčistíme cache (/admin/config/development/performance)

 

První krok aktualizace je kontrola, zda splňuji potřebné požadavky. Verze 8.8.0 např. přestala podporovat staré PHP verze 5.5 a 5.6, minimální požadavek je 7.0.8. A jak už bylo výše řečeno, musíme si dát pozor na modul Pathauto.

01 update

 

Před samotným spuštěním aktualizace ještě jednou připomenutí zálohy souborů a databáze.

02 update

 

Nová verze Drupalu potřebuje provést následující aktualizace v databázi.

03 update

 

A je hotovo - Drupal byl aktualizován na aktuálně poslední 8.8.1 verzi.

04 update