Pokud na Virtuálním serveru (VPS) máme nainstalovaný LEMP (Linux, Nginx, MySQL a PHP) a bezpečnostní certifikát, konečně se můžeme pustit do samotných webových stránek. Ne každý však dokáže vytvořit web na zelené louce pomocí jazyků jako HTML, JavaScript nebo PHP, a tak tu máme systémy správy obsahu (anglická zkratka CMS, čili Content Management System).
Celosvětově jeden z nejpopulárnějších a nejpoužívanějších CMS je rozhodně Drupal. Jde o systém správy obsahu, který nám maximálně zjednoduší celý proces tvorby webových stránek. Web s unikátním vzhledem a obsahem dokážeme vytvořit bez programování, stačí pouze klikat ve webovém prohlížeči.
Nastavujeme webový server Nginx
Aby Drupal dokázal zobrazit články na trvalých odkazech (permalinks) v pěkném formátu (namísto /index.php/ahoj-svete/
bude na konci URL /ahoj-svete/
), musíme upravit konfigurační soubor webového serveru Nginx:
sudo nano /etc/nginx/sites-available/default
V konfiguračním souboru si najdeme řádek s obsahem server {
s následným komentářem # SSL configuration
a v části location / {
upravíme hodnotu direktivy try_files
takto:
try_files $uri $uri/ /index.php?$query_string =404;
Pod direktivu ssl_dhparam ještě vložíme tyto řádky:
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
Konfigurační soubor uložíme pomocí klávesové zkratky Ctrl + X
a následně stlačením klávesy y
a potvrzením klávesou Enter
.
Restartujeme webový server Nginx, aby se změna v konfiguračním souboru projevila:
sudo systemctl restart nginx
Podrobnější nastavení webového serveru Nginx pro potřeby Drupalu najdete v oficiální dokumentaci projektu Nginx na adrese https://www.nginx.com/resources/wiki/start/topics/recipes/drupal/.
Nastavujeme PHP
V první řadě je potřeba zabezpečit aktuálnost všech balíků. Nainstalujeme tedy všechen updatovaný software pomocí dvou příkazů v jedné dávce:
sudo apt update && sudo apt upgrade
Když systém najde aktualizovatelné balíčky, takto se zeptá, jestli je chcete začít instalovat:
Do you want to continue? [Y/n]
Stlačte klávesu y
když chcete začít aktualizační proces nebo tlačítko n
, když aktualizovat nechcete. Následně stlačte klávesu Enter
.
Aby Drupal fungoval správně jako celek, potřebuje moduly, které po běžné instalaci jazyka PHP nejsou k dispozici. Tímto příkazem je tedy nainstalujeme:
sudo apt install php-curl php-gd php-imagick php-mbstring php-xml php-zip
Systém se takto zeptá, jestli moduly chcete začít instalovat:
Do you want to continue? [Y/n]
Stlačte klávesu y
když chcete začít instalační proces nebo tlačítko n
, když aktualizovat nechcete. Následně stlačte klávesu Enter
.
Zjistíme si verzi PHP, kterou máme nainstalovanou:
php -v
abychom v správném konfiguračním souboru php.ini
sudo nano /etc/php/7.4/fpm/php.ini
mohli nastavit tyto řádky:
short_open_tag = On
cgi.fix_pathinfo = 0
max_execution_time = 600
max_input_time = 600
default_socket_timeout = 600
memory_limit = 256M
upload_max_filesize = 100M
post_max_size = 100M
date.timezone = Europe/Bratislava
Konfigurační soubor uložíme pomocí klávesové zkratky Ctrl + X
a následně stlačením klávesy y
a potvrzením klávesou Enter
.
Restartujeme zjištěnou verzi PHP, aby se projevily změny zapsané do konfiguračního souboru:
sudo systemctl restart php7.4-fpm
Vytváříme uživatele a databázi v MySQL
Drupal textové údaje jako články nebo komentáře ukládá do databáze. Aby Drupal mohl s databázovým serverem MySQL bezpečně komunikovat, musíme vytvořit nového uživatele s omezenými právy (nepoužijeme uživatele root). Spustíme tedy komunikaci s databázovým serverem MySQL:
sudo mysql
vytvoříme uživatele (zde tibor
), kterému přiřadíme dostatečně silné heslo (zde Toto.Hes1o.je:silne
). V hesle použijeme minimálně 8 znaků – malá a velká písmena, čísla a speciální znaky jako tečka, čárka, dvojtečka, zavináč, otazník, vykřičník
create user 'tibor'@'localhost' identified by 'Toto.Hes1o.je:silne';
vytvoříme databázi s názvem drupal:
create database drupal;
a uživateli tibor
udělíme všechny práva na práci s databází drupal
takto:
grant all privileges on drupal.* to 'tibor'@'localhost';
flush privileges;
Ukončíme práci s MySQL serverem:
exit
Instalujeme Drupal
Pred samotnou instalací Drupalu vymažeme všechen obsah složky html
:
sudo rm -rf /var/www/html/*
Přemístíme se do složky html, kde budeme instalovat Drupal:
cd /var/www/html
Stáhneme (první řádek), rozbalíme (druhý řádek) a přemístíme (třetí řádek) potřebné soubory a složky aktuální verze Drupalu.
sudo wget https://www.drupal.org/download-latest/tar.gz
sudo tar -zxvf tar.gz
sudo mv drupal-x.x.x/* ./
Vymažeme zbytečné složky a soubory (první řádek) a následně určíme vlastnictví a oprávnění souborů a složek (poslední 2 řádky):
sudo rm -rf drupal-9.0.1 tar.gz
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
Ostatní nastavení zvládneme přes webový prohlížeč na adrese serveru (zde vps.websupport.tech
) podle těchto kroků:
- Choose language > Čeština > Save and continue
- Výběr profilu > Standardní > Uložit a pokračovat
- Nastavení databáze > Jméno databáze: drupal
- Nastavení databáze > Přihlašovací jméno: tibor
- Nastavení databáze > Heslo: Toto.Hes1o.je:silne
- Nastavení databáze > Uložit a pokračovat
- Nastavení webu > Název web stránky: Drupal
- Nastavení webu > Site email address: jmeno.prijmeni@domena.cz
- Nastavení webu > Uživatelské jméno: tibor
- Nastavení webu > Heslo a potvrzení hesla: Toto.Hes1o.je:silne
- Nastavení webu > Předvolená země: Česká republika
- Nastavení webu > Receive email notifications: odznačíme
- Nastavení webu > Uložit a pokračovat
Po úspěšné instalaci se zobrazí úvodní stránka s nadpisem „Vítejte na Drupal“ takto:
Shrnutí
Nastavili jsme webový server Nginx, nainstalovali chybějící moduly jazyka PHP, nastavili jsme některé proměnné PHP a vytvořili jsme nového uživatele databázového serveru MySQL, abychom následně mohli nainstalovat CMS Drupal. Část instalačního procesu proběhl v příkazovém řádku (linuxový shell bash) a část instalace ve webovém prohlížeči. Všechny ostatní vlastnosti Drupalu je možné nastavit v grafickém prostředí webového prohlížeče. Stejně tak přes webový prohlížeč zrealizujeme instalace, aktualizace a přidání nového obsahu.