Drupal 8 - instalace přes Composer

Jak se Drupal 8 postupně vyvíjel (různé major vydání), stala se preferovanou cestou instalace přes Composer.

Úvod

I když je Drupal 8 stále v základu jen zabalený archiv obsahující spoustu převážně PHP souborů, který stačí rozbalit v nějakém adresáři, lze toto doporučit jen pro nějaké testování a hraní si s Drupalem. Doporučená cesta je instalace přes Composer:

The recommended way to get the Drupal source code is to use Composer - a PHP dependency manager.
https://www.drupal.org/docs/8/install/step-1-get-the-code

Pozn. Pro rychlou instalaci Drupalu 8 (spolu s Udemi demem např. pro rychlou demonstraci) lze použít od verze 8.6 tzv. quick-start, viz. Two new easy ways to install Drupal https://www.drupal.org/blog/drupal-8-6-0

Naše development prostředí je libovolný Linux s podporou AMP (Apache, MySQL a PHP). Mimochodem na stránkách o instalaci jsou zmíněné dokonce tři různé souběžné Drupal instalace: vývojová (dev), produkční (live site) a záložní (Working backup site).

Composer instalace

Instalace Composeru je jednoduchá a je dobře přímo popsaná na stránkách projektu https://getcomposer.org/download/. Možná s malinkou úpravou:

php composer-setup.php --install-dir=/usr/local/bin --filename=composer

V tomto případě je takováto ruční instalace asi lepší cesta než instalovat balíček obsažený v distribuci Linuxu.

A máme nainstalovaný composer:

root@debian9:~# composer –version
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Composer version 1.8.4 2019-02-11 10:52:10

Drupal instalace pomocí Composeru

https://www.drupal.org/docs/develop/using-composer/using-composer-to-ma…

There are a number of ways that you could install Drupal using composer, however the recommended approach (especially for beginners to Composer) is to use the composer template at drupal-composer/drupal-project.

Před samotnou instalací ještě doporučuji si vyřešit Linuxová oprávnění - composer je nerad spuštěn jako root (https://getcomposer.org/root), a takže je vhodné jej spouštět jako jiný uživatel, webserver zase přistupuje k souborům a adresářům jako uživatel www-data.

Další dobrá věc je mít nainstalovaný git (apt-get install git -y), zbavíte se tím hlášky

sh: 1: git: not found

Takže jdeme na to:

composer create-project drupal-composer/drupal-project:8.x-dev /var/www/drupal-demo/

Instalace pravděpodobně skončí nějakou chybou:

33Chyby composeru

A když máme všechny problémy vyřešené, uvidíme kýžený výsledek:

33Instalace je hotová

Trochu čísel nám ukáže, proč instalace chvilku trvala (composer přitom řešil svoje závislosti): náš adresář je velký 194M, obsahuje 6550 složek a 25421 souborů.

Nezapomeneme nastavit náš webserver na složku /var/www/drupal-demo/web/. Oprávnění adresáře /var/www/drupal-demo/web/sites/default/files/ by měla být drwxrwxrwx, takže i náš www-data tam bude moct zapisovat.

Drush = a command line shell for drupal

https://www.drush.org/

 

33drush logo

Drush byl a je neocenitelný pomocník pro ovládání Drupalu z příkazového řádku. V Drupalu 7 to byla jediná volba. Pro Drupal 8 existuje podobný projekt Drupal console. Některou funkcionalitou se překrývají, jindy danou věc umí ten či onen. Takže je dobré mít oba dva nástroje a umět je používat.

Instalace je jednoduchá - při výše uvedeném postupu je již Drush obsažený v naší instalaci. Je to také jediná podporovaná cesta instalace Drushe do Drupalu 8: Drush 9 only supports one install method. It requires that your Drupal 8 site be built with Composer and Drush be listed as a dependency. http://docs.drush.org/en/master/install/ 

Abychom mohly drush pouštět odkudkoliv, nainstalujeme si Drush Launcher https://github.com/drush-ops/drush-launcher. Je to jednoduché

wget -O drush.phar https://github.com/drush-ops/drush-launcher/releases/download/0.6.0/drush.phar
chmod +x drush.phar
mv drush.phar /usr/local/bin/drush9

Nyní v naší složce s instalací stačí spustit drush9 status

Drupal Console = The Drupal CLI. A tool to generate boilerplate code, interact with and debug Drupal

https://drupalconsole.com/

 

33drupal console logo

Podobný nástroj jako drush. A také je rovnou nainstalovaný, a stejně jako pro drush je vhodné si pro něj nainstalovat launcher https://github.com/hechoendrupal/drupal-console-launcher.

curl https://drupalconsole.com/installer -L -o drupal.phar
mv drupal.phar /usr/local/bin/drupal
chmod +x /usr/local/bin/drupal

Instalace databáze

Než se nám Drupal nainstaluje, a než ho pak prvně spustíme, můžeme si zatím připravit databázi. Zde nás nečeká žádná komplikace.

První spuštění

A je to tady. Po všech těch peripetiích je náš Drupal 8 web připravený. Jdem tedy na to.

33úvodní instalační obrazovkai

Většina voleb je jasná, akorát při výběru profilu je třeba mít na paměti, že minimal je už pro zkušenější drupalisty. Standard totiž z jejich hlediska nainstaluje a nakonfiguruje zbytečné věci, které by bylo pak třeba stejně odebírat.

33výběr instalačního profilu

Jazyk doporučuji nechat anglický, alespoň se pak díky anglické terminologii lépe hledají řešení problémů.
 
Ještě jeden problém je třeba vyřešit, a týká se právě oprávnění (composer vs apache). Detaily https://github.com/drupal-composer/drupal-project/issues/274

33ještě jedna chybka

Problém se vyřeší takto:

mkdir /var/www/drupal-demo/config
chown www-data /var/www/drupal-demo/config/

Pozn. Dle informací v settings.php by konfigurace Drupalu neměla být ve složkách webserveru.

Konečně hotovo!

33a je hotovo

Nyní bude následovat seznámení s jednotlivými moduly a jejich nastavením.