Virtuální hostitel je konfigurační direktiva Apache, která vám umožňuje provozovat více než jednu webovou stránku na jednom serveru. Pomocí virtuálních hostitelů můžete určit kořen dokumentu webu (adresář obsahující soubory webu), vytvořit samostatnou bezpečnostní politiku pro každý web, používat různé certifikáty SSL a mnoho dalšího.
Tento článek popisuje, jak nastavit virtuální hostitele Apache na Ubuntu 20.04.
Předpoklady #
Než budete pokračovat v příručce, ujistěte se, že jste splnili následující požadavky:
- Jeden nebo více názvů domén směřujících na IP vašeho veřejného serveru.
- Apache nainstalovaný ve vašem systému Ubuntu.
- Jste přihlášeni jako uživatel root nebo uživatel s právy sudo.
Vytvoření adresářové struktury #
Kořen dokumentu je adresář, kde jsou uloženy soubory webových stránek pro název domény a obsluhovány v reakci na požadavky. Kořen dokumentu můžete nastavit na libovolné místo, v tomto příkladu použijeme následující adresářovou strukturu:
/var/www/
├── domain1.com
│ └── public_html
├── domain2.com
│ └── public_html
Každá doména hostovaná na serveru bude mít kořen dokumentu nastaven na /var/www/<domain_name>/public_html
.
Začněte vytvořením kořenového adresáře pro doménu:
sudo mkdir -p /var/www/domain1.com/public_html
Vytvoříme také index.html
soubor v kořenovém adresáři dokumentu domény, který se zobrazí při návštěvě domény ve vašem prohlížeči:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Welcome to domain1.com</title>
</head>
<body>
<h1>Success! domain1.com home page!</h1>
</body>
</html>
Vzhledem k tomu, že výše uvedené příkazy jsou prováděny jako uživatel sudo, nově vytvořené soubory a adresáře jsou vlastněny uživatelem root. Chcete-li se vyhnout problémům s oprávněními, změňte vlastnictví kořenového adresáře dokumentu domény a všech souborů v adresáři na uživatele apache (www-data
):
sudo chown -R www-data: /var/www/domain1.com
Vytvoření virtuálních hostitelů #
Na systémech Ubuntu jsou konfigurační soubory virtuálních hostitelů Apache umístěny v /etc/apache2/sites-available
adresář. Lze je povolit vytvořením symbolických odkazů na /etc/apache2/sites-enabled
adresář, který Apache četl během spouštění.
Otevřete požadovaný textový editor a vytvořte následující základní konfigurační soubor virtuálního hostitele:
/etc/apache2/sites-available/domain1.com.conf<VirtualHost *:80>
ServerName domain1.com
ServerAlias www.domain1.com
ServerAdmin [email protected]
DocumentRoot /var/www/domain1.com/public_html
<Directory /var/www/domain1.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/domain1.com-error.log
CustomLog ${APACHE_LOG_DIR}/domain1.com-access.log combined
</VirtualHost>
ServerName
:Doména, která by měla odpovídat této konfiguraci virtuálního hostitele. Toto by měl být název vaší domény.ServerAlias
:Všechny ostatní domény nebo subdomény, které by se měly shodovat s tímto virtuálním hostitelem, jako jewww
subdoména.DocumentRoot
:Adresář, ze kterého bude Apache obsluhovat soubory domény.Options
:Tato směrnice řídí, které funkce serveru jsou dostupné v konkrétním adresáři.-Indexes
:Zabraňuje výpisům adresářů.FollowSymLinks
:Když je tato možnost povolena, Apache bude následovat symbolické odkazy.
AllowOverride
:Určuje, které směrnice deklarované v.htaccess
soubor může přepsat konfigurační direktivy.ErrorLog
,CustomLog
:Určuje umístění souborů protokolu.
Konfigurační soubor můžete pojmenovat, jak chcete, ale nejlepším postupem je použít jako název konfiguračního souboru virtuálního hostitele název domény.
Chcete-li povolit nový soubor virtuálního hostitele, použijte a2ensite
pomocný skript, který vytvoří symbolický odkaz ze souboru virtuálního hostitele na sites-enabled
adresář:
sudo a2ensite domain1.com
Druhou možností je ručně vytvořit symbolické odkazy zobrazené níže:
sudo ln -s /etc/apache2/sites-available/domain1.com.conf /etc/apache2/sites-enabled/
Po dokončení otestujte konfiguraci na případné chyby syntaxe pomocí:
sudo apachectl configtest
Pokud nejsou žádné chyby, uvidíte následující výstup:
Syntax OK
Restartujte službu Apache, aby se změny projevily:
sudo systemctl restart apache2
Nakonec, abyste si ověřili, že vše funguje podle očekávání, otevřete http://domain1.com
ve vašem prohlížeči a uvidíte obsah index.html
stránka: