Jak hostit web na VPS bez kontrolního panelu

Jak hostit web na VPS bez kontrolního panelu

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á protokol http;
  • Apache Full — otevírá porty 80 a 443, které používají protokoly http a https;
  • 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:

Apache

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.

PHP Info

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.

POSUNOUT NAHORU

Zpráva o pravopisné chybě

Následující text bude zaslán naší redakci: