V tomto tutoriálu se dozvíte, jak nainstalovat stack LAMP na virtuální server.
LAMP je sada softwaru zahrnující:
- Linux;
- Apache;
- MySQL;
- PHP.
Po instalaci vám umožní provozovat vlastní webové stránky.
Budeme používat virtuální server, tarif HT-VPS-5, 16 GB RAM a 160 GB SSD disk. Pro většinu základních úloh (blog, vizitkový web) a nepříliš náročných projektů však postačí jednodušší konfigurace HT-VPS-1. Operačním systémem, který používáme, je Linux distribuce Ubuntu 20.04.
Pro začátek se podívejme na základy provozování webových stránek. Každý web vyžaduje pro svou funkčnost jiné komponenty. Obvykle mezi ně patří webový server, podpora programovacího jazyka, ve kterém je web napsán, a podpora databáze. Zde vám poradíme, jak nainstalovat webový server Apache, podporu jazyka PHP a podporu databáze MySQL.
NASTAVENÍ SSH
Všechny operace budeme provádět pomocí terminálu s protokolem SSH. Měli byste znát svou IP adresu, uživatelské jméno a heslo. Tyto údaje pro připojení obdržíte v e-mailu při objednávce virtuálního serveru.
Otevřete příkazový řádek (terminál) na svém lokálním počítači a zadejte příkaz pro připojení.
shh root@XXX.XXX.XXX.XXX
Místo XXX.XXX.XXX.XXX
zadejte adresu svého serveru.
Pokud se připojujete poprvé, může se zobrazit tato zpráva:
The authenticity of host 'XXX.XXX.XXX.XXX (XXX.XXX.XXX.XXX)' can't be established. RSA key fingerprint is SHA256:YaaqERsh9oMs/Qa5nlMJLlb4ewlJDGLaDGsuOcDzOs8. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Stačí stisknout 'yes'
nebo písmeno 'y'
a budete vyzváni k zadání hesla.
Při zadávání hesla se na obrazovce z bezpečnostních důvodů nezobrazují žádné symboly.
Warning: Permanently added 'XXX.XXX.XXX.XXX' (RSA) to the list of known hosts. root@ip_XXX.XXX.XXX.XXX's password:
Zadejte heslo a stiskněte klávesu 'Enter'
.
Po připojení k serveru se dostanete do příkazového řádku na samotném serveru, což je systém nainstalovaný na serveru.
Před instalací jakýchkoli komponent doporučujeme aktualizovat systém na nejnovější aktuální verzi.
Příkazy spouštějte postupně:
apt update
apt upgrade
Spustí se aktualizace systému.
Dalším krokem je restartování serveru, které můžete provést pomocí příkazu reboot
.
Než přejdete k instalaci LAMP, je třeba provést počáteční konfiguraci serveru.
Právě teď jste přihlášeni jako root
, což je nezabezpečené, proto byste měli vytvořit neprivilegovaného uživatele.
Spusťme k tomu příkaz adduser [uživatelské jméno]
, například:
adduser host-telecom
Dále dvakrát zadejte heslo tohoto uživatele.
Heslo si prosím zapamatujte nebo uložte na zabezpečené místo.
Poté budete vyzváni k zadání některých uživatelských údajů (celé jméno, telefonní číslo atd.), ale nemusíte je zadávat všechny, pole můžete nechat prázdná a pokaždé stisknout 'enter'
.
Nyní jste vytvořili nového uživatele, který však nemá práva správce. Chcete-li mu udělit práva root
, musíte ho přidat do skupiny sudo
.
Spusťte příkaz:
usermod -aG sudo host-telecom
NASTAVENÍ FIREWALLU UFW
Pro zlepšení zabezpečení serveru doporučujeme použít oblíbený a snadno přizpůsobitelný firewall UFW. Různé aplikace mohou pro UFW registrovat své vlastní profily, tedy připravené sady nastavení zabezpečení, které můžete aktivovat. Vypište seznam aktuálních profilů pomocí příkazu:
sudo ufw app list
Available applications: OpenSSH
V našem případě je nyní k dispozici profil služby OpenSSH, který nám umožňuje připojit se k serveru prostřednictvím SSH.
Tuto službu aktivujte pomocí příkazu:
ufw allow OpenSSH
Rules updated
Rules updated (v6)
Dále aktivujte firewall příkazem:
ufw enable
Budete upozorněni, že aktuální připojení může být přerušeno:
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
Protože jste však povolili OpenSSH, nedělejte si starosti a zadejte 'y'
a stiskněte 'Enter'
.
Firewall is active and enabled on system startup
Chcete-li zkontrolovat stav firewallu, spusťte příkaz:
ufw status
Vidíte, že je aktivní a profil OpenSSH
je také aktivní:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Povolili jste pouze připojení SSH a firewall nyní blokuje všechna ostatní připojení. Později povolíte připojení HTTP pro otevření webové stránky.
Zde je velmi důležitý bod: musíte se připojit pomocí SSH, nikoli jako root, ale jako uživatel host-telecom
, kterého jste právě vytvořili.
Za tímto účelem prozatím nezavírejte aktuální připojení SSH jako root, ale otevřete nové okno terminálu a připojte se v něm, pro případ, že byste náhle narazili na problémy a mohli je řešit.
V novém okně terminálu spusťte příkaz:
ssh host-telecom@XXX.XXX.XXX.XXX
Zadejte heslo pro uživatele host-telecom
.
Pokud se vše podaří, budete vyzváni k zadávání příkazů, ale budete pracovat pod uživatelem host-telecom
a všechny administrativní příkazy budete muset provádět prostřednictvím sudo, tj. před každým příkazem budete zadávat 'sudo'
.
Seanci SSH s uživatelem root můžete ukončit zadáním příkazu 'exit'
.
NASTAVENÍ WEBOVÉHO SERVERU APACHE
Chcete-li nainstalovat webový server Apache, spusťte příkaz:
sudo apt install apache2
Před testováním webového serveru Apache proveďte změny ve firewallu.
Zkontrolujte seznam profilů:
sudo ufw app list
Zjistíte, že kromě OpenSSH byly přidány také 3 nové profily Apache. Každý profil obsahuje sadu nastavení:
- Apache — otevírá port
80
, který používá protokolhttp
; - Apache Full — otevírá porty
80
a443
, které používají protokolyhttp
ahttps
; - Apache Secure — otevírá pouze port
443
.
Chcete-li povolit provoz protokolů http
i https
, musíte použít funkci Apache Full
.
Spusťte příkaz pro aktivaci profilu:
sudo ufw allow in "Apache Full"
Rule added
Rule added (v6)
Po dokončení můžete vyzkoušet, jak Apache funguje, a otevřít výchozí webovou stránku.
Za tímto účelem otevřete prohlížeč a zadejte IP adresu serveru. Zobrazí se následující informační stránka:
Vlastně se již jedná o spuštěný web s jedinou stránkou HTML.
NASTAVENÍ PODPORY DATABÁZE MYSQL
Chcete-li nainstalovat podporu databáze MySQL, spusťte příkaz:
sudo apt install mysql-server
Po dokončení instalace doporučujeme spustit speciální skript, který vám pomůže nastavit různá bezpečnostní nastavení. Spusťte tento příkaz:
sudo mysql_secure_installation
Dále je třeba odpovědět na několik otázek. První z nich je povolení pluginu VALIDATE PASSWORD, který slouží k zabránění používání jednoduchých hesel při nastavování hesel databáze MySQL. Chcete-li jej povolit, zadejte 'y'
a stiskněte 'enter'
.
V dalším kroku budete vyzváni k nastavení úrovně ověření hesla:
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary
file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:
Zvolte médium: zadejte 1 a stiskněte 'enter'
.
Poté zadejte silné heslo a potvrďte je.
Poznámka: Toto je heslo pro uživatele root speciálně pro MySQL a nemá nic společného s uživatelem root, kterého máte v systému.
Na všechny následující otázky můžete odpovědět 'y'
a poté stisknout 'enter'
:
- žádost o odebrání anonymního uživatele,
- žádost o zakázání vzdálené autorizace uživatele root,
- odstranění testovací databáze.
Po dokončení budete vyzváni k aktivaci provedených nastavení a úprav.
Jako výsledek se zobrazí zpráva:
Success.
All done!
PHP LANGUAGE SUPPORT SETUP
Dále byste měli nainstalovat podporu jazyka PHP. K tomu je třeba nainstalovat tři balíčky:
- PHP
- libapache2-mod-php — modul, který umožňuje zpracovávat soubory PHP,
- php-mysql — umožňuje PHP komunikovat s MySQL.
sudo apt install php libapache2-mod-php php-mysql
Instalace LAMP je nyní ukončena.
Před spuštěním webu je však nutné vytvořit virtuálního hostitele. Vytvořte adresář pro své stránky a proveďte nastavení pro hostitele.
Spusťte příkaz:
sudo mkdir /var/www/mysite
Místo mysite
zadejte doménu svého webu.
Adresář jste vytvořili pomocí sudo
, což znamená jako root
. Změňte oprávnění a skupinu tohoto adresáře tak, aby patřil pod vašeho uživatele host-telecom
.
sudo chown -R $USER:$USER /var/www/mysite
Dále byste měli vytvořit konfigurační soubor pro virtuálního hostitele. Konfigurační soubory jsou uloženy v adresáři /etc/apache2/sites-available
. Otevřete konzolový textový editor nano
a vytvořte konfigurační soubor. Spusťte příkaz:
sudo nano /etc/apache2/sites-available/mysite.conf
Zadejte následující kód:
<VirtualHost *:80>
ServerName XXX.XXX.XXX.XXX
ServerAlias XXX.XXX.XXX.XXX
ServerAdmin host-telecom@localhost
DocumentRoot /var/www/mysite
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Upozorňujeme, že do pole ServerName
jsme zadali IP adresu našeho serveru, pokud máte doménu, měli byste ji zadat.
Ukončete editor nano stisknutím klávesové zkratky Ctrl + X
a zadejte 'yes'
pro uložení souboru.
Chcete-li, aby webový server aktivoval vašeho virtuálního hostitele, spusťte příkaz:
sudo a2ensite mysite
Aby se změny projevily, je třeba restartovat server. Spusťte příkaz:
sudo systemctl reload apache2
Vytvořte testovací stránku v adresáři, kde by měly být umístěny soubory vašeho webu.
Znovu otevřete textový editor nano
:
<?php
phpinfo();
Jedná se o funkci PHP, která zobrazí podrobné informace o aktuální konfiguraci php
. Zadejte IP adresu svého serveru do adresního řádku prohlížeče a uvidíte, že se zobrazí stránka s informacemi o konfiguraci PHP.
Prošli jsme základní kroky nastavení Apache, PHP a MySQL a naučili se vytvářet virtuální hostitele. Nyní si můžete nainstalovat téměř libovolný systém CMS a spustit své online podnikání nebo blog.