Když přijde řeč na téma Drupal a instalace jeho aktualizací, tak je nutné říci, že v tomto směru je na tom poněkud lépe WordPress. Nejenom, že dovede automaticky aktualizovat a instalovat nové moduly (v případě WordPressu pluginy) přímo z administrace, ale umí aktualizovat i sám sebe.
Drupal je navržen trochu jinak, než WordPress, takže s tou instalací aktualizací je to složitější. Od sedmičky je sice v jádře možnost instalovat a aktualizovat moduly a témata vzhledu přímo z administrace, vyžaduje to však pro řadu správců serveru poněkud komplikované nastavení práv ke složkám (osobně nevím, proč s tím mají problém).
Pokud chcete aktualizovat Drupal na novější verzi, například kvůli bezpečnostní opravě, pak to z administrace neuděláte. Drupal neumí aktualizovat sám sebe. Existuje však možnost celý proces aktualizace výrazně zrychlit a vyhnout se tak složitému a hlavně zdlouhavému a nepohodlnému kopírování souborů přes FTP. Tím řešením je právě sada skriptů Drush.
Co umí Drush?
Drush je sada skriptů pro příkazový řádek, které umožní ovládání Drupalu. Jakmile máte Drush na serveru (v Debianu prostě a jednoduše apt-get install drush), stačí přejít do složky, kde je Drupal nainstalován a drush spustit. Pokud máte na serveru webů s Drupalem více, není třeba se bát, Drush pozná, se kterým webem pracujete.
Pro ověření, že Drush pracuje správně a rozpoznal váš web, stačí zadat příkaz drush status. Zobrazí se vám aktuální verze Drupalu, údaje o připojené databázi, cesty ke složkám se soubory a několik dalších informací.
Kompletní seznam parametrů, které lze za příkaz drush přidat, si zobrazíte spuštěním drush help. Je jich celá řada a v závislosti na instalovaných modulech mohou některé přibývat. Pro Drush přidává své příkazy například modul Ctools.
Po přečtení stručné nápovědy tak třeba zjistíte, že drush umožňuje s příkazem drush archive-dump zkomprimovat celou instalaci Drupalu včetně databáze do jednoho souboru. Není nutné tak něco kopírovat do dočasné složky, do ní exportovat databázi a následně to celé zabalit.
S Drushem rychle vyčistíte cache, spustíte cron, synchronizujete instalaci přes rsync, nainstalujete a zapnete moduly a zrovna tak i celý Drupal. Občas používám možnost jednorázového spuštění PHP příkazů v Drupalu, které nechci psát do nějakého modulu.
Můžete tak spustit doindexování vnitřního vyhledávače, změnit hodnoty proměnných, naklonovat políčka (což v administraci bohužel jednoduše nejde), spustit SQL příkazy oproti drupalovské databázi, pracovat s uživateli, provádět zálohy s využitím možností modulu Backup and Migrate (třeba spustit zálohování do cloudu z příkazového řádku) a mnoho jiných věcí.
Jak probíhá aktualizace Drupalu pomocí drush?
Jednou z možností, jak Drush využít, je instalace aktualizací přes příkazový řádek. Jedním příkazem tak spustíte jak aktualizaci modulů, tak přímo jádra Drupalu. Doporučuji doinstalovat do Drupalu modul Backup and Migrate, abyste mohli jednoduše provést zálohu databáze předtím, než aktualizace spustíte.
Kompletní záloha webu zmíněná výše, je sice také prima, ale u rozsáhlého webu to není nejlepší řešení, jak zálohovat.
Já volím tento sled příkazů, které Drupal zazálohují a zaktualizují:
- drush bam-backup
- drush pm-update
První příkaz zálohuje databázi. To nepodceňujte. Budete-li se chtít vrátit k předchozí verzi před aktualizací, budete zálohu databáze potřebovat. Druhý příkaz postupně provede zálohu aktualizovaných modulů a jádra do domovské složky, ve které vám vytvoří adresář s názvem webu a časovým údajem. Poté po potvrzení stáhne aktualizace pro moduly, následně aktualizace pro jádro Drupalu. Po dalším potvrzení spustí aktualizace databáze pomocí update.php.
Zkuste si spočítat, kolik práce vám Drush ušetří oproti tomu, kdy byste museli vše zálohovat a kopírovat přes FTP ručně.
Drush a webhosting
Aby to nebylo tak snadné, Drush lze použít jenom tam, kde máte přístup k příkazovému řádku na serveru. Virtuály na mém oblíbeném Linode nebo na populárním Wedosu s tím problém mít nebudou. Běžný hosting vám tohle bohužel neumožní.
Neznamená to však, že na hostingu Drush nespustíte nikdy. Lepší hostingy umožňují přístup přes SSH (jailed shell) k vaší složce se soubory a některé už mají Drush přímo připraven. Funguje tak například A2 hosting, u kterého mohu potvrdit, že na něm Drush šlape. U hostingů v Česku je to horší, neznám zatím žádný, který by nabízel SSH a šel u něj Drush použít. Víte-li o nějakém, napište do komentářů.
Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.
Přidat komentář