Pod skratkou LEMP sa skrýva softvérový balík pre Linux obsahujúci webový server Nginx (vyslovuje sa “Engine-X”), databázový server MySQL a programovací jazyk PHP. Táto trojica sa inštaluje na zobrazenie väčšiny webových stránok napísaných v jazyku PHP, ktoré si údaje ukladajú do databázy MySQL.
Tento návod funguje na linuxovom operačnom systéme Ubuntu vo verzii 20.04 LTS (Focal Fossa). Ide o verziu LTS (Long Term Support = dlhodobá podpora), ktorá bola zverejnená 23. 04. 2020 a je oficiálne podporovaná softvérovou spoločnosťou Canonical 5 rokov od vydania, čiže do apríla 2025. Vývojári sa v LTS vo zvýšenej miere zameriavajú na bezpečnosť a hardvérovú kompatibilitu, aby bolo možné nasadenie na enterprise úrovni.
Inštalujeme Nginx
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
.
Samotný Nginx nainštalujeme jediným príkazom:
sudo apt install nginx
Stlačíme klávesu y
a následne klávesu enter a počkáme na dokončenie inštalácie.
Po ukončení inštalácie vo webovom prehliadači skontrolujeme, či Nginx funguje správne:
http://IP_adresa
Ak je všetko v poriadku, zobrazí sa jednoduchá webová stránka s nadpisom “Welcome to nginx!” a s odkazmi na online dokumentáciu a podporu.
Skúsme si zmeniť HTML kód, aby sme sa uistili, či môžeme upravovať webovú stránku:
sudo nano /var/www/html/index.nginx-debian.html
Dopíšeme alebo vymažeme niekoľko znakov, uložíme pomocou klávesovej skratky Ctrl + X
a následne stlačením klávesy y
a potvrdením klávesou Enter
. Vo webovom prehliadači teraz obnovíme načítanú stránku a môžeme sledovať uložené zmeny.
Inštalujeme PHP
Webové stránky spracovávané na strane klienta (frontend pomocou HTML, CSS a JavaScriptu) už teda po úspešnej inštalácii Nginx dokážeme zobraziť. Ak ale potrebujeme, aby stránky fungovali dynamicky aj na strane servera (backend), musíme nainštalovať programovací jazyk PHP. Na to poslúži jediný príkaz:
sudo apt install php-fpm php-mysql
Stlačíme klávesu y
a následne klávesu Enter
a počkáme na dokončenie inštalácie.
PHP je úspešne nainštalované a teraz zariadime, aby Nginx s PHP dokázal spolupracovať. Zmeníme obsah konfiguračného súboru takto:
sudo nano /etc/nginx/sites-available/default
Do riadku číslo 44 doplníme index.php
, takže výsledok môže vyzerať takto:
index index.php index.html index.htm index.nginx-debian.html;
Potom už len odkomentujeme riadky 56, 57, 60, 63, 68, 69 a 70. Uložíme pomocou klávesovej skratky Ctrl + X
a následne stlačením klávesy y
a potvrdením klávesou Enter
.
Upravená časť konfiguračného súboru teda v textovom editore nano vyzerá takto:
Takto nastavený Nginx ešte reštartujeme:
sudo systemctl reload nginx
Po úspešnom reštarte Nginx vyskúšame, či sa PHP kód naozaj spracuje:
sudo rm /var/www/html/index.nginx-debian.html
sudo nano /var/www/html/index.php
Vložíme krátky PHP kód, vďaka ktorému sa načítajú všetky dôležité informácie ohľadom nainštalovaného PHP:
<?php phpinfo(); ?>
Uložíme pomocou klávesovej skratky Ctrl + X
a následne stlačením klávesy y
a potvrdením klávesou Enter
.
Teraz Nginx ukazuje všetky dôležité nastavenia PHP na hlavnej stránke webu:
http://IP_adresa
Inštalujeme MySQL
Nginx teraz dokáže spolupracovať s jazykom PHP, ktorý zase vie komunikovať s MySQL. Poďme si teda nainštalovať MySQL, aby sme pomocou PHP dokázali ukladať údaje do databázy. Stačí jeden príkaz:
sudo apt install mysql-server
Stlačíme klávesu y
a následne klávesu Enter
a počkáme na dokončenie inštalácie.
Z bezpečnostných dôvodov sa po inštalácii MySQL odporúča spustiť skript
sudo mysql_secure_installation
v ktorom na všetky otázky odpovieme y
a stlačíme klávesu Enter
. V procese skriptu si zvolíte ešte “password validation policy”
na MEDIUM (číslo 1 + Enter
) a heslo pre účet root prístupu do MySQL (nie je to isté ako root Linuxu). V hesle použite 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, …
Zhrnutie
Nainštalovali sme si trojicu programov, ktorá je nevyhnutná na zobrazenie webových stránok. Webový server Nginx dokáže zobraziť statické stránky napísané v jazykoch HTML a JavaScript (frontend). Ak ale Nginx nastavíme tak, aby používal aj programovací jazyk PHP, je možné stránky dynamicky meniť na strane servera (backend), pričom si údaje dokážeme ukladať aj do databázy MySQL.