
Virtuální hostitelé Apache umožňují běh více webových stránek na jednom webovém serveru. S virtuálními hostiteli můžete určit kořen dokumentu webu (adresář, který obsahuje soubory webu), vytvořit samostatnou bezpečnostní politiku pro každý web, použít různé certifikáty SSL pro každý web a mnoho dalšího.
V tomto tutoriálu poskytneme pokyny krok za krokem, jak nastavit virtuální hostitele Apache na serveru CentOS 7.
Předpoklady #
Než budete pokračovat v tomto kurzu, ujistěte se, že splňujete následující předpoklady:
- Máte název domény odkazující na IP vašeho veřejného serveru. Použijeme
example.com
. - Máte nainstalovaný Apache podle postupu Jak nainstalovat Apache na CentOS 7.
- Jste přihlášeni jako uživatel s právy sudo.
Vytváření adresářové struktury #
DocumentRoot 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/
├── example.com
│ └── public_html
├── example-1.com
│ └── public_html
├── example-2.com
│ └── public_html
Vytváříme samostatný adresář pro každou doménu, kterou chceme hostovat na našem serveru v /var/www
adresář. V každém z těchto adresářů vytvoříme public_html
adresář, ve kterém budou uloženy soubory webových stránek domény.
Vytvořte kořenový adresář pro doménu example.com
pomocí příkazu mkdir:
sudo mkdir -p /var/www/example.com/public_html
Pro testovací účely vytvoříme index.html
soubor v kořenovém adresáři dokumentu domény. Otevřete editor a vytvořte soubor HTML s následujícím obsahem:
<!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>
Všechny příkazy jsou prováděny jako uživatel sudo, takže nově vytvořené soubory a adresáře jsou ve vlastnictví uživatele root. Abyste se ujistili, že nedochází k problémům s oprávněními, změňte vlastnictví kořenového adresáře dokumentu domény na apache
uživatel :
sudo chown -R apache: /var/www/example.com
Vytváření souboru virtuálního hostitele #
Existuje několik způsobů, jak nastavit virtuální hostitele. Můžete buď přidat všechny direktivy virtuálního hostitele do jednoho souboru, nebo vytvořit nový konfigurační soubor pro každou direktivu virtuálního hostitele. Osobně preferuji druhý přístup, protože je lépe udržovatelný.
Ve výchozím nastavení je Apache nakonfigurován tak, aby načítal všechny konfigurační soubory, které končí na .conf
z /etc/httpd/conf.d/
adresář.
Chcete-li vytvořit virtuálního hostitele pro konkrétní webovou stránku, otevřete svůj editor a vytvořte následující základní konfigurační soubor virtuálního hostitele:
/etc/httpd/conf.d/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 /var/log/httpd/example.com-error.log
CustomLog /var/log/httpd/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, které by se měly také 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
:Tato možnost říká vašemu webovému serveru, aby sledoval 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.
Je důležité, aby název konfiguračního souboru končil .conf
. Konfigurační soubor můžete pojmenovat, jak chcete, ale nejlepším postupem je použít název domény jako název konfiguračního souboru virtuálního hostitele.
Otestujte syntaxi konfiguračního souboru pomocí:
sudo apachectl configtest
Pokud nejsou žádné chyby, uvidíte následující výstup:
Syntax OK
Chcete-li aktivovat nově vytvořeného virtuálního hostitele, restartujte službu Apache pomocí:
sudo systemctl restart httpd
Otevřete http://example.com
a ověřte, že vše funguje podle očekávání :
