Drupal a hosting Wedos - nastavení databáze, .htaccess, https

Drupal a oblíbený webhosting Wedos může být poněkud větší problém než se může zdát, zvláště pak verze Drupal 8. První rozběhnutí Drupalu 8 trvalo poněkud déle než u předchozí verze, proto jsem se rozhodl vše potřebné shrnout v samostatném článku.

Také vzhledem k velkému množství malých souborů v Drupal 8 doporučuji na hostingu Wedos používat nástroj WebFTP, který umožňuje přenos zazipované složky s Drupalem a její vzdálené rozbalení na serveru. Přenos po souborech FTP klientem je pouze pro opravdové flegmatiky, jelikož trvá věky.

1) Nastavení souboru .htaccess a jeho parametrů

Povolené a nepovolené naleznete na wiki Wedosu zde. Co se týká Drupalu, v souborech .htaccess je třeba odstranit nebo zakomentovat (znakem #) parametry SetHandler, php_flag, u Options je dovolena pouze hodnota -Indexes.

2) Nastavení settings.php

Je třeba správně nastavit cestu k databázi a parametry, zápis s doplnění Vašich parametrů stačí nakopírovat na konec souboru. Zápis je platný pro Drupal 8.

$databases['default']['default'] = array (
  'database' => 'dxxxxxx_nazevdb',
  'username' => 'axxxxxx_nazevdb',
  'password' => 'heslokdb',
  'prefix' => '',
  'host' => 'wmxxx.wedos.net',
  'port' => '3306',
  'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
  'driver' => 'mysql',
);

3) Použití https

Pokud chcete na stránkách používat https (dnes minimálně u e-shopů nutnost) můžete si u Wedosu vybrat mezi certifikáty Wedos, vlastním certifikátem nebo velmi jednoduše na hostingu zprovoznitelným Let´s Encrypt. Potřebné informace naleznete ve wiki Wedos.

Jakmile je vše na hostingu nastaveno, je třeba upravit soubor .htaccess v kořenové složce webu. Stačí přidat na konec souboru následující tři řádky:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

4) Drupal 8 - ochrana proti HTTP HOST Header útokům

Drupal 8 implementuje ochranu proti útokům, kdy je nutné specifikovat odkud smí požadavky na web směřovat. Pokud nevyplníte, uvidíte chybové hlášení v hlášeních stavu. Nastavení je velmi jednoduché, stačí do souboru settings.php přidat řádku níže, kde místo adresa-webu vyplníte adresu vašeho webu, místo cz případně doplníme koncovku domény (např. pokud máme registrovánu com, eu). 

$settings['trusted_host_patterns'] = array('^www\.adresa-webu\.cz$');