Pod zkratkou LEMP se skrývá softvérový balík pro Linux obsahující webový server Nginx (vyslovuje se “Engine-X”), databázový server MySQL a programovací jazyk PHP. Tato trojice se instaluje na zobrazení většiny webových stránek napsaných v jazyce PHP, které si údaje ukládají do databáze MySQL.
Tento návod funguje na linuxovém operačním systému Ubuntu ve verzi 20.04 LTS (Focal Fossa). Jde o verzi LTS (Long Term Support = dlouhodobá podpora), která byla zveřejněná 23. 04. 2020 a je oficiálně podporovaná softwarovou společností Canonical 5 let od vydání, čili do dubna 2025. Vývojáři se v LTS ve zvýšené míře zaměřují na bezpečnost a hardwarovou kompatibilitu, aby bylo možné nasazení na enterprise úrovni.
Instalujeme Nginx
V první řade 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 klávesu n
, když aktualizovat nechcete. Následně stlačte klávesu Enter
.
Samotný Nginx nainstalujeme jediným příkazem:
sudo apt install nginx
Stlačíme klávesu y
a následně klávesu enter a počkáme na dokončení instalace.
Po ukončení instalace ve webovém prohlížeči zkontrolujeme, jestli Nginx funguje správně:
http://IP_adresa
Pokud je všechno v pořádku, zobrazí se jednoduchá webová stránka s nadpisem “Welcome to nginx!” a s odkazy na online dokumentaci a podporu.
Zkusme si změnit HTML kód, abychom se ujistili, že můžeme upravovat webovou stránku:
sudo nano /var/www/html/index.nginx-debian.html
Dopíšeme nebo vymažeme několik znaků, uložíme pomocí klávesové zkratky Ctrl + X
a následně stlačením klávesy y
a potvrzením klávesou Enter
. Ve webovém prohlížeči teď obnovíme načítanou stránku a můžeme sledovat uložené změny.
Instalujeme PHP
Webové stránky zpracovávané na straně klienta (frontend pomocí HTML, CSS a JavaScriptu) už tedy po úspěšné instalaci Nginx dokážeme zobrazit. Pokud ale potřebujeme, aby stránky fungovaly dynamicky i na straně serveru (backend), musíme nainstalovat programovací jazyk PHP. Na to poslouží jediný příkaz:
sudo apt install php-fpm php-mysql
Stlačíme klávesu y
a následně klávesu Enter
a počkáme na dokončení instalace.
PHP je úspěšně nainstalované a teď zařídíme, aby Nginx s PHP dokázal spolupracovat. Změníme obsah konfiguračního souboru takto:
sudo nano /etc/nginx/sites-available/default
Do řádku číslo 44 doplníme index.php
, takže výsledek může vypadat takto:
index index.php index.html index.htm index.nginx-debian.html;
Potom už jen odkomentujeme řádky 56, 57, 60, 63, 68, 69 a 70. Uložíme pomocí klávesové zkratky Ctrl + X
a následně stlačením klávesy y
a potvrzením klávesou Enter
.
Upravená část konfiguračního souboru tedy v textovém editoru nano vypadá takto:
*verzi php nahraďte vlastní PHP verzí, kterou si přejete využívat
Takto nastavený Nginx ještě restartujeme:
sudo systemctl reload nginx
Po úspěšném restartu Nginx vyzkoušíme, jestli se PHP kód doopravdy zpracuje:
sudo rm /var/www/html/index.nginx-debian.html
sudo nano /var/www/html/index.php
Vložíme krátký PHP kód, díky kterému se načítají všechny důležité informace ohledně nainstalovaného PHP:
<?php phpinfo(); ?>
Uložíme pomocí klávesové zkratky Ctrl + X
a následně stlačením klávesy y
a potvrzením klávesou Enter
.
Teď Nginx ukazuje všechny důležité nastavení PHP na hlavní stránce webu:
http://IP_adresa
Instalujeme MySQL
Nginx teď dokáže spolupracovat s jazykem PHP, který zase umí komunikovat s MySQL. Pojďme si tedy nainstalovat MySQL, abychom pomocí PHP dokázali ukládat údaje do databáze. Stačí jeden příkaz:
sudo apt install mysql-server
Stlačíme klávesu y
a následně klávesu Enter
a počkáme na dokončení instalace.
Z bezpečnostních důvodů se po instalaci MySQL doporučuje spustit skript
sudo mysql_secure_installation
ve kterém na všechny otázky odpovíme y
a stlačíme klávesu Enter
. V procesu skriptu si zvolíte ještě “password validation policy”
na MEDIUM (číslo 1 + Enter
) a heslo pro účet root přístupu do MySQL (není to stejné jako root Linuxu). V hesle použijte 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, …
Zhrnutí
Nainstalovali jsme si trojici programů, která je nezbytná na zobrazení webových stránek. Webový server Nginx dokáže zobrazit statické stránky napsané v jazycích HTML a JavaScript (frontend). Pokud ale Nginx nastavíme tak, aby používal i programovací jazyk PHP, je možné stránky dynamicky měnit na straně serveru (backend), přičemž si údaje dokážeme ukládat i do databáze MySQL.