Apache Virtual Hosts vám umožňuje provozovat více než jednu webovou stránku na jednom počítači. 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 serveru Debian 10.
Předpoklady #
Než budete pokračovat v tomto kurzu, ujistěte se, že jste splnili následující požadavky:
- Název domény odkazující na IP vašeho veřejného serveru.
- Apache nainstalovaný ve vašem systému CentOS.
- Jste přihlášeni jako uživatel root nebo uživatel s právy sudo.
Vytvořit adresářovou strukturu #
Kořen dokumentu je adresář, ve kterém jsou uloženy soubory webových stránek pro název domény a obsluhovány v reakci na požadavky. Kořen dokumentu lze nastavit na libovolné umístění.
Použijeme následující adresářovou strukturu:
/var/www/
├── domain1.com
│ └── public_html
├── domain2.com
│ └── public_html
├── domain3.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ěme vytvořením kořenového adresáře dokumentu pro první doménu, example.com
:
sudo mkdir -p /var/www/example.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.
Otevřete svůj oblíbený textový editor, vytvořte nový soubor a vložte do něj následující:
/var/www/example.com/public_html/index.html<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Welcome to example.com</title>
</head>
<body>
<h1>Success! example.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/example.com
Vytvořit virtuální hostitele #
Na systémech Debian jsou konfigurační soubory Apache Virtual Hosts umístěny v /etc/apache2/sites-available
adresář a lze jej povolit vytvořením symbolických odkazů na /etc/apache2/sites-enabled
adresář, který Apache čte 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/example.com.conf<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin [email protected]
DocumentRoot /var/www/example.com/public_html
<Directory /var/www/example.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
CustomLog ${APACHE_LOG_DIR}/example.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 měly tomuto virtuálnímu hostiteli odpovídat také, obvyklewww
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.
Upravte soubor podle svých potřeb a uložte jej.
Konfigurační soubor můžete pojmenovat, jak chcete. Nejlepším postupem je použít název domény jako název konfiguračního souboru virtuálního hostitele.
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 example.com
Druhou možností je ručně vytvořit symbolické odkazy zobrazené níže:
sudo ln -s /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-enabled/
Jakmile je konfigurace povolena, otestujte, zda je syntaxe správná:
sudo apachectl configtest
Pokud nejsou žádné chyby, uvidíte následující výstup:
Syntax OK
Restartujte apache2
aby změny vstoupily v platnost:
sudo systemctl restart apache2
Chcete-li ověřit, že vše funguje podle očekávání, otevřete http://example.com
ve vašem oblíbeném prohlížeči a uvidíte něco takového: