V tomto tutoriálu vás provedeme tím, jak nastavit virtuální hostitele Apache na Debianu 9.
Apache Virtual Hosts vám umožňuje hostovat více než jednu doménu na jednom počítači. Při použití virtuálních hostitelů můžete pro každou doménu nebo subdoménu zadat jiný kořenový adresář dokumentů (adresář, který obsahuje soubory webových stránek), vytvořit samostatnou bezpečnostní politiku, používat různé certifikáty SSL a mnoho dalšího.
Ačkoli je tento návod napsán pro Debian 9, stejné kroky platí pro všechny distribuce založené na Debianu.
Předpoklady #
Než budete pokračovat v tomto kurzu, ujistěte se, že jste splnili následující předpoklady:
- Mějte název domény odkazující na IP adresu vašeho serveru. V tomto tutoriálu budeme používat
example.com
. - Mějte na svém serveru Debian nainstalovaný Apache.
- Přihlášeni jako uživatel s právy sudo.
Vytvořit adresářovou strukturu #
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é umístění. V této příručce budeme používat 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 našem 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 naši 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>
Příkazy spouštíme jako uživatel sudo a nově vytvořené soubory a adresáře jsou ve vlastnictví uživatele root.
Abychom se vyhnuli problémům s oprávněními, změníme vlastnictví kořenového adresáře dokumentu domény a všech souborů v tomto 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ář.
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.
Konfigurační soubor virtuálního hostitele můžete pojmenovat, jak chcete, ale doporučuje se použít jako název konfiguračního souboru název domény.
Chcete-li povolit nový soubor virtuálního hostitele, vytvořte symbolický odkaz ze souboru virtuálního hostitele na sites-enabled
adresář, který Apache čte během spouštění.
V systémech Debian můžete virtuálního hostitele povolit pomocí pomocného skriptu s názvem a2ensite
:
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á, zadáním:
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: