Stlačte "Enter" na preskočenie k obsahu

WSL2: Rýchly webový server na skutočnom linuxovom jadre v prostredí Windows

Inštalácii redakčných systémov na tvorbu a správu webu priamo v prostredí Windows sme sa už venovali v článku, kde sme si ukázali, ako pomocou Laragonu sprístupniť WordPress a Drupal. Laragon je vhodný najmä na menšie webové projekty, pri ktorých si vystačíme napríklad s redakčným systémom WordPress. Pri väčších a komplexnejších projektoch je však často lepšou voľbou Drupal. V kombinácii Laragonu a Drupalu však narážame na limity Windows filesystemu, čo sa prejavuje pomalším načítavaním stránok, ukladaním nastavení či prácou s Composerom. Rýchlejšou a spoľahlivejšou alternatívou je WSL2, ktorý beží na skutočnom linuxovom jadre a v prostredí Windows poskytuje vývojové prostredie veľmi blízke produkčnému serveru. V minulom článku sme si ukázali, ako WSL2 nainštalovať a používať. V nadväznosti na predchádzajúci článok si teraz ukážeme krok za krokom, ako z WSL2 vytvoriť výkonný a rýchly webový server.

Dialógové okná s potvrdením

S potvrdzovacími dialógmi sa budeme stretávať najmä pri inštalovaní, aktualizovaní alebo odinštalovaní softvéru. Odpovedáme znakmi Y a N, kde Y znamená áno a N nie. Voľbu potvrdíme stlačením klávesu Enter. Ak sa chceme takýmto dialógom vyhnúť, môžeme za príkazy pre inštaláciu, aktualizáciu alebo odinštalovanie balíkov pridať prepínač -y.
Týmto prepínačom zabezpečíme automatické potvrdenie vykonania príkazu.

Inštalácia požadovaných balíkov pre LAMP konfiguráciu

Poznámka: Nie je nutné, aby sme si nasledovné príkazy pamätali. Stačí si ich skopírovať a následne v okne terminálu pravým tlačidlom myši ich vložiť. Po vložení stlačením Enteru príkaz spustíme.
Najprv vykonáme aktualizáciu balíkov:
sudo apt update && sudo apt upgrade -y
Týmto príkazom skontrolujeme dostupnosť aktualizácií a ak existujú, tak budú automaticky nainštalované bez opýtania.
Upozornenie: Tento príkaz môže trvať dlhšie v závislosti od počtu aktualizácií.

1. Inštalácia webového servera Apache

sudo apt install apache2 -y
Daný príkaz spustí inštaláciu webového servera Apache.
Tip: Verziu nainštalovaného webového servera zistíme príkazom:
apache2 -v

2. Inštalácia PHP a potrebných modulov

sudo apt install php php-mysql libapache2-mod-php php-cli php-curl php-mbstring php-xml php-zip unzip php-gd -y
Spustí inštaláciu PHP a všetkých potrebných rozšírení pre webové aplikácie ako je napríklad Drupal.

3. Aktivácia modulu rewrite

Pre správne fungovanie „clean URLs“ v Drupal je potrebné aktivovať modul rewrite:
sudo a2enmod rewrite

4. Reštart Apache

Aby sa nové PHP moduly a nastavenia načítali, reštartujeme webový server:
sudo service apache2 restart
Tip: Verziu PHP a zoznam načítaných modulov získame príkazmi:
php -v # zobrazí verziu PHP
php -m # zobrazí zoznam modulov

5. Inštalácia databázového servera

sudo apt install mariadb-server mariadb-client -y
Týmto príkazom si nainštalujeme databázový server MariaDB aj nástroje na jeho ovládanie.
Tip: Verziu databázového servera zistíme príkazom:
mysql –version

6. Inštalácia nástroja Composer

Pre komfortnú inštaláciu Drupalu, jeho aktualizácie a správu modulov si stiahneme a doinštalujeme balíčkovací nástroj Composer: cd ~
php -r „copy(‚https://getcomposer.org/installer‘, ‚composer-setup.php‘);“
php composer-setup.php
sudo mv composer.phar /usr/local/bin/composer
Tip: Verziu Composeru získame príkazom:
composer –version

Základné zabezpečenie MySQL/MariaDB pomocou mysql_secure_installation

V ďalšom kroku odstránime základné bezpečnostné slabiny, ktoré má čerstvo nainštalovaná databáza (či už MySQL alebo MariaDB). Túto konfiguráciu urobíme pomocou sprievodcu základným zabezpečením databázového servera. Na jeho spustenie použijeme príkaz:
sudo mysql_secure_installation
Po spustení sa zobrazí niekoľko otázok:

1. Enter current password for root (Zadajte aktuálne heslo pre root)

Stlačíme Enter, preto, že v Ubuntu/MariaDB sa root štandardne autentifikuje cez unix_socket, takže heslo nie je potrebné.

2. Switch to unix_socket authentication [Y/N]

Zadáme Y. Používateľ root sa bude autentifikovať cez unix socket (t. j. ak sme prihlásení ako root v systéme, nemusíme zadávať heslo).

3. Change the root password? [Y/N]

Zadáme N, pretože pri autentifikácii cez unix socket nie je heslo potrebné.

4. Remove anonymous users? [Y/N]

Zadáme Y – odstránia sa anonymní používatelia.

5. Disallow root login remotely? [Y/N]

Zadáme Y – zakážeme vzdialené prihlásenie root používateľa, čím zvýšime bezpečnosť.

6. Remove test database and access to it? [Y/N]

Zadáme Y – odstráni sa testovacia databáza.

7. Reload privilege tables now? [Y/N]

Zadáme Y – nové nastavenia sa okamžite aplikujú. Po dokončení týchto krokov, bude databázový server pripravený na bezpečné používanie.

Vytvorenie databázy v MySQL/MariaDB

Na vytváranie a správu databáz sa prihlásime do MySQL rozhrania príkazom:
sudo mysql
Po zobrazení uvítacej správy (Welcome to the MariaDB monitor) pomocou SQL príkazov CREATE DATABASE, CREATE USER, GRANT ALL PRIVILEGES a FLUSH PRIVILEGES vytvoríme databázu.

Príklad:

CREATE DATABASE menodatabazy
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;

CREATE USER ‚pouzivateldatabazy’@’localhost‘
IDENTIFIED BY ‚heslodatabazy‘;

GRANT ALL PRIVILEGES ON menodatabazy.*
TO ‚pouzivateldatabazy’@’localhost‘;

FLUSH PRIVILEGES;

Ako použiť tento vzor?

  1. Skopírujeme uvedené riadky kódu do textového editora
  2. Použijeme funkciu Hľadať a nahradiť a upravíme tieto reťazce:
    menodatabazy nahradíme vlastným názvom databázy
    pouzivateldatabazy – nahradíme vlastným menom používateľa
    heslodatabazy – nahradíme heslom ktorým sa bude užívateľ prihlasovať.
  3. Upravený kód skopírujeme, vložíme do terminálu a stlačíme Enter.

Overenie databázy

Po vytvorení databázy si overíme, či databáza existuje. Na overenie použijeme príkaz:
SHOW DATABASES;
Po overení príkazom exit opustíme MySQL rozhranie a vrátime sa späť do konzoly.
Tip: MYSQL príkazy môžeme zadávať aj bez nutnosti vstúpiť do MySQL rozhrania. Napríklad ak si chceme zobraziť zoznam existujúcich databáz priamo z terminálu potom príkaz SHOW DATABASES; stačí uzavrieť do úvodzoviek a pred neho pridať: sudo mysql -e.
sudo mysql -e „SHOW DATABASES;“

Príprava webového priečinka pre naše projekty

V Ubuntu je predvolený priečinok pre webové stránky dostupný na adrese:
/var/www/html
Aby sme doň mohli zapisovať, upravíme vlastníka a prístupové práva:
cd /var/www
sudo chown -R $USER:www-data html
sudo chmod -R 775 html

Pridanie sa do skupiny www-data

Aby okrem nás mal k projektom prístup aj Apache, pridáme svoj účet do skupiny www-data.
sudo usermod -aG www-data uzivatel
(Poznámka: uzivatel nahradíme naším používateľským menom, napr. majo.) Po pridaní do skupiny je dobré zatvoriť a znovu otvoriť terminál alebo spustiť:
newgrp www-data …aby sa zmena prejavila hneď bez reštartu systému.

Vytvorenie projektu s názvom tester

V priečinku html vytvoríme koreňový adresár pre náš projekt a prejdeme doň:
cd /var/www/html
mkdir tester
cd tester
Týmto vytvoríme nový priečinok tester v adresári /var/www/html a zároveň sa doň presunieme.

Inštalácia Drupalu do priečinka tester

V priečinku tester spustíme inštaláciu Drupal pomocou Composeru:
composer create-project drupal/recommended-project . Po zadaní príkazu sa do priečinka /var/www/html/tester nainštaluje Drupal s kompletnou štruktúrou vrátane Composer súborov. Upozorňujeme, že priečinok tester, musí byť prázdny.

Vytvorenie vlastného konfiguračného súboru pre projekt tester

V ďalšom kroku pre projekt tester si vytvoríme konfiguračný súbor s názvom tester.conf a umiestnime ho do priečinka s konfiguračnými nastaveniami webového servera Apache /etc/apache2/sites-available:
sudo nano /etc/apache2/sites-available/tester.conf

Obsah súboru tester.conf

Teraz súbor tester.conf máme vytvorený a zároveň aj otvorený v Nano editore, takže môžeme do neho vložiť nasledovné riadky kódu:
ServerName tester.test DocumentRoot /var/www/html/tester/web

<Directory /var/www/html/tester/web>
    AllowOverride All
    Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/tester_error.log
CustomLog ${APACHE_LOG_DIR}/tester_access.log combined

Poznámka: Aj v Nano editore vkladáme obsah zo schránky pravým tlačidlom myši ako v konzole. Po vložení skratkou CTRL + o zmeny uložíme, Enterom potvrdíme názov súboru a príkazom CTRL + x editor opustíme.

Aktivácia VirtualHost

Po nastavení konfiguračného súboru použijeme nasledujúce príkazy: sudo a2ensite tester.conf sudo a2dissite 000-default.conf sudo service apache2 reload

Vysvetlenie

Prvým príkazom sudo a2ensite tester.conf aktivujeme náš VirtualHost, aby ho Apache začal používať. Druhým príkazom sudo a2dissite 000-default.conf vypneme predvolenú stránku, čím predídeme možným konfliktom. Tretím príkazom sudo service apache2 reload načítame zmeny bez nutnosti úplného reštartu webového servera.

Úprava súboru hosts vo Windows

Aby sme mohli používať vlastnú doménu tester.test, musíme ju namapovať na lokálnu IP adresu. Pomocou textového editora (napr. Notepad alebo AkelPad) otvoríme súbor:
C:\Windows\System32\drivers\etc\hosts
Na jeho koniec pridáme riadok:
127.0.0.1 tester.test Súbor uložíme a zatvoríme.

Načítanie stránky a prechod inštalačným sprievodcom systému Drupal

Do webového prehliadača zadáme:
tester.test
Po stlačení Enter sa načíta úvodná stránka inštalátora systému Drupal. Slovenčinu ponecháme ako predvolený jazyk a pokračujeme Save and continue.
Typ profilu ponechávame štandardný a atlačidlom Uložiť a Pokračovať prechádzame na stránku s overeniami.
Tento krok ignoruje niektoré odporúčania (napr. chýbajúce PHP rozšírenia), ktoré však nebránia pokračovaniu inštalácie. V dolnej časti stránky nájdeme odkaz Continue anyway a klikáme naň.
V ďalšom kroku vyplníme polia pre názov databázy, názov používateľa a heslo. Po vyplnení tlačidlom Uložiť a pokračovať spúšťame inštaláciu Drupalu.
Na záver vyplníme základné údaje o webstránke a našom admin účte. Uložením týchto údajov dôjde k aktualizácii prekladov a po krátkej chvíli budeme automaticky presmerovaní priamo do administračného rozhrania Drupalu.

Okomentujte ako prví

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *

Táto stránka používa Akismet na obmedzenie spamu. Zistite, ako sa spracovávajú údaje o vašich komentároch.