Apache je v současnosti nejpoužívanějším webovým serverem na světě. Jedná se o open-source software spravovaný The Apache Software Foundation. K září 2020 se odhaduje, že obsluhuje 36 % veškerého webového provozu na světě. Vývojáři jej milují pro jeho rychlost, bezpečnost, spolehlivost a robustnost. Snadné přizpůsobení mu umožňuje splnit potřeby mnoha prostředí instalací rozšíření a modulů.
Apache přichází se systémem párování, který můžete použít k hostování více domén nebo webů pomocí jediné instalace serveru Apache vystavené na jediné IP adrese. Domény nebo weby se nastavují v jednom z konfiguračních souborů Apache definovaných jako virtuální hostitelé.
Každá doména má jednu definici virtuálního hostitele se specifickým adresářem, na který odkazuje. Když uživatel navštíví doménu, server prozkoumá každého odpovídajícího virtuálního hostitele a vybere, který z nich použije k obsluze požadavku návštěvníka v závislosti na zadaném názvu hostitele. Pokud není nalezen žádný odpovídající název hostitele, server použije jako zálohu první definovaný virtuální hostitel v souboru conf. Návštěvník přistoupí k požadované webové stránce, aniž by věděl, že stejný server obsluhuje i jiné weby. V závislosti na prostředcích, které máte na svém serveru, a na tom, jak velký provoz dokáže zvládnout, můžete hostovat tolik domén, kolik chcete.
V tomto návodu vás provedeme nastavením virtuálních hostitelů na Ubuntu 20.04 serveru.
Než začneme
Abyste mohli postupovat podle tohoto návodu, měli byste mít nainstalovaný Ubuntu 20.04. Také si musíte vytvořit uživatele bez oprávnění root a přihlásit se pod ním.
Kroky v tomto návodu také vyžadují, abyste měli nainstalovaný Apache. Pokud jste tak ještě neučinili, můžete jej nainstalovat pomocí níže uvedených příkazů. Můžete postupovat podle našeho návodu na nastavení LAMP Stack – Linux Apache MySQL PHP pro podrobnějšího průvodce nastavením.
|
1 2 |
sudo apt update sudo apt install apache2 |
Měli byste mít registrované bezplatné nebo placené doménové názvy od registrátora domén podle vašeho výběru. Ujistěte se, že domény ukazují na váš server pomocí konfigurace DNS záznamů. Stále však můžete použít naše konfigurace a postupovat podle kroků v tomto návodu. V tomto návodu budeme používat příklady example.dev a mydomain.com. Můžete je libovolně nahradit svými vlastními. Pokud se rozhodnete použít testovací domény, musíte upravit soubory hosts v Apache, aby tyto domény zpracovávaly. Jak na to, si ukážeme později v tomto návodu.
Krok 1 – Nastavení adresářů webu
Jedná se o adresáře obsahující data webu, ke kterým budou přistupovat návštěvníci vašich webových stránek. Kořenový adresář dokumentů Apache, který je přístupný z internetu, se obvykle nachází v /var/www. Zde vytvoříme adresáře pro jednotlivé domény, které chceme hostovat. V každém z adresářů vytvoříme adresář public_html, který bude obsahovat samotné soubory webu. Virtuální hostitel ukazuje na adresář public_html. To vám dává flexibilitu, protože můžete uchovávat klíčové soubory webu mimo public_html a dovnitř umístit pouze veřejné soubory.
Dále zadejte níže uvedené příkazy pro vytvoření adresářů. Pro následná nastavení nezapomeňte vždy nahradit testovací domény vašimi skutečnými doménami:
|
1 2 |
sudo mkdir -p /var/www/example.dev/public_html sudo mkdir -p /var/www/mydomain.com/public_html |
Krok 2 – Změna oprávnění pro čtení a zápis
Předchozí příkazy vytvořily adresářovou strukturu, ale vlastnictví zůstalo uživateli root. Chceme, aby náš uživatel bez oprávnění root měl plná oprávnění pro čtení a zápis do těchto adresářů. Chceme také, aby veřejný web měl oprávnění ke čtení.
Nejprve změňte vlastnictví na uživatele bez oprávnění root zadáním následujícího příkazu:
|
1 2 |
sudo chown -R $USER:$USER /var/www/example.dev/public_html sudo chown -R $USER:$USER /var/www/mydomain.com/public_html |
Proměnná $USER přebírá přihlašovací údaje aktuálně přihlášeného uživatele. Běžný uživatel má nyní vlastnictví public_html. Dále je třeba udělit oprávnění ke čtení pro veřejný web. Následující příkaz povolí oprávnění pro všechny soubory v adresáři, což zajistí správné zobrazování webových stránek:
|
1 |
sudo chmod -R 755 /var/www |
Po spuštění předchozích tří příkazů může váš web nyní poskytovat obsah. Kromě toho může váš uživatel stejně tak vytvářet obsah, který bude poskytován v konkrétních adresářích. Zde naleznete více informací o oprávněních v Ubuntu.
Krok 3 – Vytvoření ukázkových stránek v adresářích pro každý virtuální hostitel
Když máme strukturu adresářů hotovou, je čas na trochu skriptování. Budeme používat HTML a textový editor nano k vytvoření základních webových stránek. Zadejte následující příkaz pro otevření nano a vytvoření souboru index.html v adresáři pro první doménu:
|
1 |
vim /var/www/example.dev/public_html/index.html |
Do editoru vložte následující ukázkový kód, který se zobrazí při přístupu na doménu:
|
1 2 3 4 5 6 7 8 |
<html> <head> <title>Vítejte na Example.dev!</title> </head> <body> <h1>Úspěch! The example.dev virtuální hostitel je funkční!</h1> </body> </html> |
Jakmile vložíte výše uvedené řádky, stiskněte “!wq” pro uložení a ukončení souboru.
Vytvořte stránku index.html pro druhou doménu pomocí editoru nano zadáním následujícího příkazu:
|
1 |
vim /var/www/mydomain.com/public_html/index.html |
Poté do editoru vložte následující kód HTML, uložte jej a ukončete editor:
|
1 2 3 4 5 6 7 8 |
<html> <head> <title>Vítejte na Mydomain.com!</title> </head> <body> <h1>Úspěch! The mydomain.com virtuální hostitel je funkční!</h1> </body> </html> |
Nyní máte stránky pro otestování dvou virtuálních hostitelů, které budeme vytvářet v dalším kroku.
Krok 4 – Vytvoření souborů virtuálních hostitelů pro doménová jména
Soubory virtuálních hostitelů obsahují konfigurace pro jednotlivé virtuální hostitele. Definují, jak bude doménové jméno obsluhováno. Nová instalace Apache obsahuje výchozí soubor virtuálního hostitele s názvem 000-default.conf, který můžeme použít a přizpůsobit našim doménám. Jak vidíte, končí příponou .conf, což je to, co Ubuntu pro konfigurační soubory vyžaduje.
Konfigurační soubory Apache jsou umístěny v adresáři /etc/apache2/sites-available. Tam budeme ukládat naše soubory virtuálních hostitelů. Můžeme zkopírovat výchozí soubor .conf a upravit jej tam, kde je to nutné.
-
Vytvořte první soubor virtuálního hostitele pro doménu example.dev
Zadejte následující příkaz pro vytvoření souboru example.dev.conf zkopírováním výchozího souboru .conf:
|
1 |
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.dev.conf |
Dále otevřete vytvořený soubor pomocí editoru nano s oprávněními sudo pomocí následujícího příkazu:
|
1 |
sudo nano /etc/apache2/sites-available/example.dev.conf |
Výchozí konfigurační soubor vypadá jako na snímku obrazovky níže. Komentáře slouží jako vodítko. Můžeme je odstranit a ponechat pouze čistý soubor se skutečnými konfiguračními řádky:

Tento soubor musíte přizpůsobit pro svůj název domény a cestu k adresáři, kam jste uložili soubory webu. Kromě toho v souboru aktualizujeme a přidáme několik direktiv. Již obsahuje direktivu ServerAdmin, která obsahuje e-mailovou adresu, na kterou bude správce serveru dostávat e-maily. Obsahuje také direktivu DocumentRoot, která ukazuje na adresář, kam jste uložili soubory webu.
Musíme přidat dvě nové direktivy: ServerName a ServerAlias. ServerName nastavuje základní název domény. Sem zadáte svou doménu. ServerAlias definuje další názvy, které by měl Apache porovnávat, jako by to byl základní název domény. Umožňuje vám porovnávat hostitele jako www.
Aktualizujte soubor tak, aby vypadal jako níže:
|
1 2 3 4 5 6 7 8 |
<VirtualHost *:80> ServerAdmin admin@example.dev ServerName example.dev ServerAlias www.example.dev DocumentRoot /var/www/example.dev/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
Poté odpovídajícím způsobem aktualizujte své domény a e-mail. Jakmile budete hotovi, stiskněte CTRL + O a ENTER pro uložení souboru. Pro ukončení editoru stiskněte CTRL + X.
-
Vytvořte první soubor virtuálního hostitele pro doménu mydomain.com
Můžeme jen zkopírovat virtuálního hostitele pro první doménu a tam, kde je to nutné, jej aktualizovat pro druhou doménu. Pro zkopírování souboru použijte následující příkaz:
|
1 |
sudo cp /etc/apache2/sites-available/example.dev.conf /etc/apache2/sites-available/mydomain.com.conf |
Poté jej otevřete v editoru nano pomocí příkazu:
|
1 |
sudo nano /etc/apache2/sites-available/mydomain.com.conf |
Najděte direktivy a odpovídajícím způsobem je aktualizujte, aby soubor vypadal jako níže:
|
1 2 3 4 5 6 7 8 |
<VirtualHost *:80> ServerAdmin admin@mydomain.com ServerName mydomain.com ServerAlias www.mydomain.com DocumentRoot /var/www/mydomain.com/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
Jakmile budete hotovi, soubor uložte a ukončete editor.
Step 5 – Enabling the Virtual Host Files
Ve čtvrtém kroku jsme vytvořili soubory virtuálních hostitelů. Ty však nejsou funkční, dokud je nepovolíte. Apache má nástroj s názvem a2ensite , který použijeme k povolení virtuálních hostitelů.
Zadejte následující dva příkazy pro povolení virtuálních hostitelů:
|
1 2 |
sudo a2ensite example.dev.conf sudo a2ensite mydomain.com.conf |
Výstup výše uvedených příkazů je zobrazen níže:

Dále byste měli zakázat výchozí konfigurační soubor, k zakázání webů používáme nástroj Apache a2dissite. Zadejte následující příkaz:
|
1 |
sudo a2dissite 000-default.conf |
Jak je vidět z výstupu, musíte restartovat Apache, aby se konfigurace projevily. Použijte následující příkaz:
|
1 |
sudo systemctl restart apache2 |
Poté zkontrolujte stav Apache pomocí následujícího příkazu:
|
1 |
sudo systemctl status apache2 |
Výstup ukazuje, že váš server běží a je schopen obsluhovat tyto dva weby.

Krok 6 – Úprava lokálních hostitelů (hosts) s ukázkovými doménami
Pokud jste si nezaregistrovali skutečnou doménu, ale místo toho používáte testovací domény, budete muset aktualizovat své lokální soubory hosts. Ty musí zachytit provoz a nasměrovat jej do adresáře vašeho webu, když přejdete na kteroukoli z domén nastavených v souborech virtuálních hostitelů. Pamatujte, že to bude fungovat pouze na vašem lokálním počítači. Pokud na vašem lokálním počítači běží operační systém Windows, pak postupujte podle pokynů pro nastavení hosts na tomto odkazu.
Pokud používáte Mac nebo Linux, soubor hosts se nachází v adresáři /etc. K otevření a přidání našich testovacích domén použijeme editor nano. Nejprve zjistěte IP adresu svého VPS zadáním následujícího příkazu:
|
1 |
curl -4 icanhazip.com |
Zadejte následující příkaz pro otevření souboru a jeho aktualizaci o IP adresu vašeho serveru:
|
1 |
sudo nano /etc/hosts |
|
1 2 3 4 |
127.0.0.1 localhost 127.0.1.1 ComputerName your_server_IP example.dev your_server_IP mydomain.com |
Poté soubor uložte a zavřete. Kdykoli zadáte název domény do prohlížeče, nejprve se zkontroluje soubor hosts. Pokud je název domény nalezen, provoz je přesměrován na zadanou IP adresu. Pokud nalezen není, použije se systém DNS pro globální přesměrování. V případě našich testovacích domén bude provoz přesměrován na zadanou IP adresu.
Krok 7 – Otestování virtuálních hostitelů
S nastavenými názvy domén můžete otestovat, zda fungují, jejich kontrolou v prohlížeči/terminálu:
|
1 |
curl http://example.dev |
Výstup by měl vypadat nějak takto:

|
1 |
http://mydomain.com |

Gratulujeme! Úspěšně jste nakonfigurovali dva weby pro běh na jednom serveru.
Závěr
V této příručce jste se naučili, jak nakonfigurovat server Apache pro obsluhu více než jednoho webu. Pokud byste chtěli přidat další weby, můžete tak učinit podle uvedených kroků a nastavením virtuálních hostitelů. Apache zvládne tolik domén, kolik si přejete, pokud to zdroje vašeho serveru dovolí.
Příjemnou práci!
Komentáře
Zatím žádné komentáře. Buďte první.