Ak na Virtuálnom serveri (VPS) máme nainštalovaný LEMP (Linux, Nginx, MySQL a PHP) a bezpečnostný certifikát, konečne sa môžeme pustiť do samotných webových stránok. Nie každý však dokáže vytvoriť web na zelenej lúke pomocou jazykov ako HTML, JavaScript alebo PHP, a tak tu máme systémy správy obsahu (anglická skratka CMS, čiže Content Management System).
Celosvetovo jeden z najpopulárnejších a najpoužívanejších CMS je rozhodne Drupal. Ide o systém správy obsahu, ktorý nám maximálne zjednoduší celý proces tvorby webových stránok. Web s unikátnym vzhľadom a obsahom dokážeme vytvoriť bez programovania, stačí iba klikať vo webovom prehliadači.
Nastavujeme webový server Nginx
Aby Drupal dokázal zobraziť články na trvalých odkazoch (permalinks) v peknom formáte (namiesto /index.php/ahoj-svet/
bude na konci URL /ahoj-svet/
), musíme upraviť konfiguračný súbor webového servera Nginx:
sudo nano /etc/nginx/sites-available/default
V konfiguračnom súbore si nájdeme riadok s obsahom server {
s následným komentárom # SSL configuration
a v časti location / {
upravíme hodnotu direktívy try_files
takto:
try_files $uri $uri/ /index.php?$query_string =404;
Pod direktívu ssl_dhparam ešte vložíme tieto riadky:
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
Konfiguračný súbor uložíme pomocou klávesovej skratky Ctrl + X
a následne stlačením klávesy y
a potvrdením klávesou Enter
.
Reštartujeme webový server Nginx, aby sa zmena v konfiguračnom súbore prejavila:
sudo systemctl restart nginx
Podrobnejšie nastavenia webového servera Nginx pre potreby Drupalu nájdete v oficiálnej dokumentácii projektu Nginx na adrese https://www.nginx.com/resources/wiki/start/topics/recipes/drupal/.
Nastavujeme PHP
V prvom rade je potrebné zabezpečiť aktuálnosť všetkých balíkov. Nainštalujeme teda všetok updatovaný softvér pomocou dvoch príkazov v jednej dávke:
sudo apt update && sudo apt upgrade
Ak systém nájde aktualizovateľné balíčky, takto sa opýta, či ich chcete začať inštalovať:
Do you want to continue? [Y/n]
Stlačte klávesu y
ak chcete začať aktualizačný proces alebo tlačidlo n
, ak aktualizovať nechcete. Následne stlačte klávesu Enter
.
Aby Drupal fungoval správne ako celok, potrebuje moduly, ktoré po bežnej inštalácii jazyka PHP nie sú k dispozícii. Týmto príkazom ich teda nainštalujeme:
sudo apt install php-curl php-gd php-imagick php-mbstring php-xml php-zip
Systém sa takto opýta, či moduly chcete začať inštalovať:
Do you want to continue? [Y/n]
Stlačte klávesu y
ak chcete začať inštalačný proces alebo tlačidlo n
, ak aktualizovať nechcete. Následne stlačte klávesu Enter
.
Zistíme si verziu PHP, ktorú máme nainštalovanú:
php -v
aby sme v správnom konfiguračnom súbore php.ini
sudo nano /etc/php/7.4/fpm/php.ini
mohli nastaviť tieto riadky:
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ý súbor uložíme pomocou klávesovej skratky Ctrl + X
a následne stlačením klávesy y
a potvrdením klávesou Enter
.
Reštartujeme zistenú verziu PHP, aby sa prejavili zmeny zapísané do konfiguračného súboru:
sudo systemctl restart php7.4-fpm
Vytvárame používateľa a databázu v MySQL
Drupal textové údaje ako články alebo komentáre ukladá do databázy. Aby Drupal mohol s databázovým serverom MySQL bezpečne komunikovať, musíme vytvoriť nového používateľa s obmedzenými právami (nepoužijeme používateľa root). Spustíme teda komunikáciu s databázovým serverom MySQL:
sudo mysql
vytvoríme používateľa (tu tibor
), ktorému priradíme dostatočne silné heslo (tu Toto.Hes1o.je:silne
). V hesle použijeme minimálne 8 znakov – malé a veľké písmená, čísla a špeciálne znaky ako bodka, čiarka, dvojbodka, zavináč, otáznik, výkričník
create user 'tibor'@'localhost' identified by 'Toto.Hes1o.je:silne';
vytvoríme databázu s názvom drupal:
create database drupal;
a používateľovi tibor
udelíme všetky práva na prácu s databázou drupal
takto:
grant all privileges on drupal.* to 'tibor'@'localhost';
flush privileges;
Ukončíme prácu s MySQL serverom:
exit
Inštalujeme Drupal
Pred samotnou inštaláciou Drupalu vymažeme všetok obsah priečinka html
:
sudo rm -rf /var/www/html/*
Premiestnime sa do priečinka html, kde budeme inštalovať Drupal:
cd /var/www/html
Stiahneme (prvý riadok), rozbalíme (druhý riadok) a premiestnime (tretí riadok) potrebné súbory a priečinky aktuálnej verzie Drupalu.
sudo wget https://www.drupal.org/download-latest/tar.gz
sudo tar -zxvf tar.gz
sudo mv drupal-x.x.x/* ./
Vymažeme zbytočné priečinky a súbory (prvý riadok) a následne určíme vlastníctvo a oprávnenie súborov a priečinkov (posledné 2 riadky):
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é nastavenia zvládneme cez webový prehliadač na adrese servera (tu vps.websupport.tech
) podľa týchto krokov:
- Choose language > Slovenčina > Save and continue
- Výber profilu > Štandardný > Uložiť a pokračovať
- Nastavenie databázy > Meno databázy: drupal
- Nastavenie databázy > Prihlasovacie meno: tibor
- Nastavenie databázy > Heslo: Toto.Hes1o.je:silne
- Nastavenie databázy > Uložiť a pokračovať
- Nastavenie webu > Názov web stránky: Drupal
- Nastavenie webu > Site email address: meno.priezvisko@domena.sk
- Nastavenie webu > Používateľské meno: tibor
- Nastavenie webu > Heslo a potvrdenie hesla: Toto.Hes1o.je:silne
- Nastavenie webu > Predvolená krajina: Slovensko
- Nastavenie webu > Receive email notifications: odznačíme
- Nastavenie webu > Uložiť a pokračovať
Po úspešnej inštalácií sa zobrazí úvodná stránka s nadpisom „Vitajte na Drupal“ takto:
Zhrnutie
Nastavili sme webový server Nginx, nainštalovali chýbajúce moduly jazyka PHP, nastavili sme niektoré premenné PHP a vytvorili sme nového používateľa databázového servera MySQL, aby sme následne mohli nainštalovať CMS Drupal. Časť inštalačného procesu prebehol v príkazovom riadku (linuxový shell bash) a časť inštalácie vo webovom prehliadači. Všetky ostatné vlastnosti Drupalu je možné nastaviť v grafickom prostredí webového prehliadača. Rovnako cez webový prehliadač zrealizujeme inštalácie, aktualizácie a pridanie nového obsahu.