Drush: pomůcka nejenom pro rychlé aktualizace v Drupalu

Pomocí shellových skriptů Drush je možné s Drupalem pracovat prostřednictvím příkazového řádku na serveru. Drush je ideální pro rychlé řešení aktualizací jak doplňkových modulů, tak samotného jádra Drupalu. Vše automaticky zálohuje a navíc umí i řadu jiných užitečných věcí.

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.

Drush

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.

Drush

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

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ářů.

Tagy

Buďme ve spojení, přihlaste se k newsletteru

Odesláním formuláře souhlasíte s podmínkami zpracováním osobních údajů. 
Více informací v Ochrana osobních údajů.

Autor článku: Jan Polzer

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.

Komentáře k článku

Přidat komentář

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Moje kniha o CMS Drupal

 

Kniha 333 tipů a triků pro Drupal 9


Více na KnihyPolzer.cz

Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

@maxiorel na Twitteru

Maxiorel na Twitteru