Virtuální hostitelé Apache2 ubuntu. Virtuální hostitelé Apache. Vytváření ukázkových stránek pro virtuální hostitele

💖 Líbí se vám? Sdílejte odkaz se svými přáteli

Úvod: Na Ubuntu 14.04 TLS je nakonfigurovaný webový server (Apache + MySQL + php + phpmyadmin). Přístup z počítače se systémem Windows 7 je následující:

Z prohlížeče - přes IP.

Do konzole - přes tmel.

Přes ssh - přes winCSP.

Počítače ve stejné místní síti. Nyní vám řeknu, jak implementovat nastavení virtuálních hostitelů v Apache.

Během počátečního nastavení je virtuálním hostitelem IP adresa samotného webového serveru. Je nutné vytvořit nového virtuálního hostitele na webovém serveru s možností přístupu z různých počítačů.

Krok 1: Vytvořte adresáře

Vytvořte kořenové adresáře pro místního hostitele newhost:

sudo mkdir -p /var/www/newhost/public_html

Složka public_html bude obsahovat soubory hostitele nového hostitele.

Krok 2: Přidělte práva

Aby uživatel mohl měnit soubory ve složce public_html, spusťte příkaz:

sudo chown -R it /var/www/newhost/public_html

Pro správné zobrazení stránek webu přidělíme uživateli (již jsem to vytvořil) přístupová práva do obecného adresáře webu:

sudo chmod it -R 755 /var/www

Krok 3: Vytvořte nové soubory virtuálního hostitele

Soubor virtuálního hostitele definuje jeho konfiguraci a říká serveru Apache, jak zacházet s virtuálním hostitelem.

Standardní soubor virtuálního hostitele v Apache je 000-default.conf./ Zkopírujeme jej pro nového virtuálního hostitele:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/newhost.conf

Poté jej otevřete pro úpravy:

sudo nano /etc/apache2/sites-available/newhost.conf

Pro usnadnění odstraníme komentáře – veškerý text v řádku začínajícím znakem #.

Soubor bude vypadat takto:

ServerAdmin webmaster@localhost

DocumentRoot /var/www/html

Uveďme to v této podobě:

ServerAdmin admin@newhost

Název_serveru nový hostitel

ServerAlias ​​www.newhost

DocumentRoot /var/www/newhost/public_html

ErrorLog $(APACHE_LOG_DIR)/error.log

CustomLog $(APACHE_LOG_DIR)/access.log dohromady

Uložíme a zavřeme soubor. Pro nano editor jsou to příkazy Ctrl+O (uložit) Ctrl+X (zavřít).

Krok 4: Povolte virtuální hostitel

Chcete-li povolit virtuálního hostitele, spusťte příkaz

sudo a2ensite newhost.conf

Poté restartujte Apache

reload služby sudo apache2

Krok 5: Vytvořte indexový soubor a zkontrolujte, zda hostitel funguje

Vytvořme soubor index.html s následujícím obsahem:

Vítejte na novém hostiteli!

Úspěch! Nový hostitel funguje!

Krok 6: Nakonfigurujte soubor Localhost

Otevřete soubor hosts

sudo nano /etc/hosts

Soubor bude vypadat nějak takto

127.0.0.1 localhost

webový server 127.0.1.1

Přidejte řádek

127.0.1.2 nový hostitel

Uložte soubor.

Kontrola funkčnosti hostitele

curl http://newhost

Tento příkaz by nám měl poskytnout html kód stránky. Hostitel byl úspěšně vytvořen a funguje. Chcete-li získat přístup k hostiteli prostřednictvím prohlížeče počítačů se systémem Windows 7, musíte přidat soubor C:\Windows\System32\drivers\etc

V této poznámce budeme mluvit o nastavení virtuálních hostitelů Apache pod Windows. Řeknu vám, co jsou virtuální hostitelé a k čemu slouží. Součástí jsou podrobné ilustrace.

Virtuální hosting. Základní pojmy.

Nejprve tedy musíte pochopit, co je virtuální hosting:

Virtuální hostitelIng je technologie, která umožňuje webovému serveru používat více doménových jmen na jednom počítači.

Tito. V počítači můžete mít několik webů, které jsou přístupné pod různými názvy.

Virtuální hostitelé Existují 2 typy:

  • virtuální hostitelé na základě jména ( na základě jména);
  • virtuální hostitelé na základě IP adresy počítače ( na bázi IP).

Použijeme první možnost – jmenovitě založené virtuální hostitele.

Konfigurace virtuálních hostitelů Apache.

Chcete-li nakonfigurovat virtuální hostitele, musíme do konfiguračního souboru Apache přidat několik řádků textu. O tom, kde tento soubor najít, a popis jeho syntaxe si můžete přečíst v poznámce o nastavení PHP jako modulu Apache.

Otevřete tento soubor v poznámkovém bloku. Vyhledáváme a odstraňujeme komentář na začátku řádku, jak je znázorněno níže:

#Virtuální hostitelé
Zahrnout conf/extra/httpd-vhosts.conf

Tento řádek obsahuje nastavení, která jsou popsána v souboru conf/extra/httpd-vhosts.conf.

Syntaxe k vytvoření virtuální hostitel založený na názvu:


Cesta DocumentRoot k webu
ServerName název webu

Soubor vhosts obsahuje příklady. My je nepotřebujeme. Jednoduše je odstraníme a nahradíme test následujícím:

#
# Virtuální hostitelé
#
# Zde si můžete přečíst více o doladění virtuálních hostitelů
#
#

#
# Používejte virtuální hosting založený na názvu.
#
JménoVirtuální hostitel *:80

# Zde zapíšeme cestu k souborům webu (DocumentRoot) a název hostitele (ServerName)

DocumentRoot z:/www/test
Test názvu serveru

Nyní vytvořte složku na disku C: www a v něm složku test. Upozorňujeme, že systém Windows používá zpětná lomítka, zatímco konfigurační soubor používá vpřed /.

Nyní musíte restartovat Apache, aby se nastavení projevila.

Dalším krokem je upozornit systém Windows na vytvořené virtuální hostitele. Chcete-li to provést, vyhledejte soubor C:/Windows/system32/drivers/etc/hosts. Otevřete jej pomocí běžného poznámkového bloku a přidejte tam následující řádek:

127.0.0.1 je IP adresa vašeho počítače. Tímto řádkem dáváme Windows vědět, že se stránka nachází na této IP adrese test.

Pokud vytvoříte například jiného virtuálního hostitele, přidejte další řádek:

127.0.0.1 název vašeho virtuálního hostitele

Nyní musíte zkontrolovat správnost nastavení. Chcete-li to provést, vytvořte ve složce z:/www/test soubor index.php a napište tam následující kód:

Napište URL do prohlížeče http://test. Pokud jste udělali vše správně, uvidíte něco jako:

Pokud jste to neviděli, nezoufejte – napište do komentářů. Společně dokážeme vyřešit jakýkoli problém 😉

Apache je jedním z nejpopulárnějších webových serverů na světě.

Komponenty a funkce Apache jsou rozděleny do samostatných prvků, které lze individuálně instalovat a konfigurovat. Jedním ze základních prvků zodpovědných za jednotlivé parametry webu nebo domény je virtuální hostitel.

Virtuální hostitelé umožňují správci používat jeden server k hostování více serverů (v rámci stejného rozhraní nebo adresy IP). Každá takto nakonfigurovaná doména nasměruje návštěvníka na odpovídající stránku. Počet virtuálních hostitelů na jednom serveru je omezen výhradně prostředky tohoto serveru.

Tato příručka vám pomůže nastavit virtuální hostitele na vašem dedikovaném serveru Ubuntu 16.04, což vám umožní obsluhovat různý obsah v závislosti na požadované doméně.

Požadavky

  • Předkonfigurovaný server Ubuntu 16.04.
  • Uživatel bez oprávnění root s rozšířenými oprávněními.
  • Nainstalovaný webový server Apache:

aktualizace sudo apt-get
sudo apt-get install apache2

Poznámka: Průvodce používá podmíněné domény example.com a test.com; nezapomeňte je nahradit názvem vaší domény.

Pokud nemáte název domény, konec průvodce vám ukáže, jak otestovat nastavení pomocí fiktivních hodnot.

1: Vytvoření adresářové struktury

Nejprve je potřeba vytvořit adresářovou strukturu, ve které budou data webu uložena.

Kořenový adresář dokumentu (adresář obsahující obsah pro Apache) je standardně /var/www; v něm musíte vytvořit samostatný adresář pro každého virtuálního hostitele. Každý takový adresář bude obsahovat adresář public_html, který bude obsahovat potřebné soubory. Díky tomu je hosting flexibilnější.

Potřebné adresáře lze vytvořit pomocí následujících příkazů:

sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html

Poznámka: Nezapomeňte do příkazů uvést názvy domén.

2: Nastavení oprávnění

Struktura adresářů je připravena, ale všechny jsou ve vlastnictví uživatele root. Chcete-li povolit uživateli bez oprávnění root provádět změny v souborech webového adresáře, musíte změnit oprávnění k těmto souborům pomocí následujícího příkazu:

sudo chown -R $USER:$USER /var/www/example.com/public_html
sudo chown -R $USER:$USER /var/www/test.com/public_html

Proměnná $USER převezme jméno aktuálního uživatele. Poté budou podadresáře public_html obsahující obsah webu patřit aktuálnímu uživateli.

Musíte také změnit oprávnění a otevřít webový adresář a veškerý jeho obsah pro čtení, jinak se stránky nebudou zobrazovat správně.

sudo chmod -R 755 /var/www

Nyní jsou všechna práva nastavena správně; můžete začít vytvářet obsah ve speciálních adresářích.

3: Vytvořte ukázkové stránky pro virtuální hostitele

Vytvořte obsah testu; Pro zkušební nastavení hostitelů budou stačit jednoduché stránky. Jednoduše vytvořte stránky index.html pro každý web.

Začněme s example.com; otevřete soubor index.html v textovém editoru:

nano /var/www/example.com/public_html/index.html

V tomto souboru vytvořte jednoduchý dokument HTML, který uvádí, ke kterému webu je stránka připojena. V tomto případě soubor vypadá takto:



Vítejte na example.com!




Uložte a zavřete soubor.

Tento soubor pak můžete zkopírovat a použít jako šablonu pro druhý web:

cp /var/www/example.com/public_html/index.html /var/www/test.com/public_html/index.html

Otevřete zkopírovaný soubor a proveďte příslušné úpravy:

nano /var/www/test.com/public_html/index.html


Vítejte na Test.com!



Uložte a zavřete soubor. Nyní jsou testovací stránky připraveny.

4: Vytváření souborů virtuálního hostitele

Soubory virtuálního hostitele konfigurují nastavení pro jednotlivé weby a pomáhají Apache správně reagovat na požadavky.

Apache je dodáván se standardním hostitelským souborem s názvem 000-default.conf, který lze použít jako šablonu. Zkopírujte jej a vytvořte virtuálního hostitele pro každý název domény.

Poznámka: Ve výchozím nastavení nastavení Ubuntu vyžaduje, aby soubory virtuálního hostitele končily příponou .conf.

Nejprve zkopírujte soubor pro první doménu:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf

Otevřete soubor v textovém editoru s právy root:

sudo nano /etc/apache2/sites-available/example.com.conf

S vynechanými komentáři bude soubor vypadat nějak takto:


ServerAdmin webmaster@localhost
DocumentRoot /var/www/html


Jak vidíte, soubor není tak velký. Nyní musíte zadat informace o první doméně a přidat několik direktiv. Tento virtuální hostitel bude reagovat na požadavky odeslané na standardní HTTP port 80.

Nejprve musíte změnit direktivu ServerAdmin tak, aby specifikovala e-mailovou adresu správce webu.

ServerAdmin [e-mail chráněný]

Poté musíte přidat dvě direktivy. První je název_serveru, který definuje základní doménu, pro kterou je hostitel určen. Druhým je ServerAlias, který definuje aliasy domény (například doména s předponou www):

ServerName example.com
ServerAlias ​​www.example.com

Zbývá provést poslední změnu v hostitelském souboru - uveďte umístění kořenového adresáře dokumentu této domény. Zadejte dříve vytvořený adresář v DocumentRoot:

DocumentRoot /var/www/example.com/public_html

Výsledný soubor hostitele vypadá takto:


ServerAdmin [e-mail chráněný]
ServerName example.com
ServerAlias ​​www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog $(APACHE_LOG_DIR)/error.log
CustomLog $(APACHE_LOG_DIR)/access.log dohromady

Uložte a zavřete soubor.

Zkopírujte soubor, který jste právě vytvořili, a použijte jej jako šablonu pro virtuálního hostitele druhého webu a upravte příslušná data.

sudo cp /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-available/test.com.conf

Otevřete nový soubor s právy root v textovém editoru:

sudo nano /etc/apache2/sites-available/test.com.conf

Nyní zbývá pouze upravit příslušná data, aby soubor mohl sloužit druhé doméně. Výsledkem je, že druhý soubor virtuálního hostitele vypadá takto:


ServerAdmin [e-mail chráněný]
ServerName test.com
ServerAlias ​​www.test.com
DocumentRoot /var/www/test.com/public_html
ErrorLog $(APACHE_LOG_DIR)/error.log
CustomLog $(APACHE_LOG_DIR)/access.log dohromady

Uložte a zavřete soubor.

5: Povolení virtuálních hostitelů

Jakmile vytvoříte soubory virtuálního hostitele, musíte je povolit. Apache k tomu poskytuje speciální nástroje.

K tomu můžete použít například a2ensite:

sudo a2ensite example.com.conf
sudo a2ensite test.com.conf

Poté zakažte výchozího virtuálního hostitele 000-default.conf:

sudo a2dissite 000-default.conf

Restartujte Apache, abyste povolili změny:

sudo systemctl restart apache2

Poznámka: Systém Ubuntu 16.04 používá systemctl.

Můžete také použít příkaz:

restart služby sudo apache2

Tento příkaz je stále podporován, ale může vracet nestandardní výsledky.

6: Konfigurace místních hostitelů (volitelné)

Pokud nemáte název domény a použili jste fiktivní doménu místo skutečné, můžete nastavení otestovat dočasnou úpravou souboru hosts na vašem místním počítači. zachytí požadavky na dříve nakonfigurované domény a přepošle je do VPS (to znamená, že bude fungovat DNS). Tato metoda však funguje pouze na místním počítači a je vhodná pouze pro testování.

Poznámka: Ujistěte se, že jste přepnuli na místní počítač. K dokončení této části potřebujete přihlašovací údaje správce.

V systémech Mac nebo Linux upravte soubor hosts s oprávněními správce.

sudo nano /etc/hosts

Poznámka Poznámka: Uživatelé Windows naleznou potřebné pokyny na tomto odkazu.

V tomto souboru musíte zadat IP adresu serveru a poté název domény, která bude použita pro přístup k serveru.

Pokud je například IP adresa serveru 111.111.111.111, musíte na konec hostitelského souboru přidat následující řádky

127.0.0.1 localhost
127.0.1.1 host-desktop
111.111.111.111 example.com
111.111.111.111 test.com

Nyní budou všechny požadavky na example.com a test.com odeslány na místní počítač a odtud na IP adresu serveru.

Uložte a zavřete soubor.

7: Výsledky

Chcete-li otestovat nastavení virtuálních hostitelů, jednoduše otevřete domény ve webovém prohlížeči:

http://example.com

V tomto případě se na obrazovce objeví zpráva:

Úspěch! Virtuální hostitel example.com funguje!

Poznámka: Výsledek, který se objeví na obrazovce, závisí na obsahu souboru vytvořeného v části 3.

Stejným způsobem musíte zkontrolovat druhý web:

Na obrazovce se objeví následující výsledek:

Úspěch! Virtuální hostitel test.com funguje!

Pokud oba weby fungují, pak byli virtuální hostitelé úspěšně nakonfigurováni. Pokud byl soubor hosts na místním počítači změněn, po testování odstraňte řádky, které do něj byly přidány, abyste soubor nezaplnili zbytečnými položkami.

Závěr

Server Ubuntu 16.04 nyní podporuje dva weby v samostatných doménách. Obecně platí, že počet hostitelů, které může Apache podporovat, závisí pouze na prostředcích virtuálního dedikovaného serveru. Chcete-li na server přidat nového virtuálního hostitele, jednoduše opakujte celý výše uvedený postup.

Štítky: ,

Několik webů Apache poskytuje možnost konfigurovat virtuální hostitele pro tyto účely. Existují dva typy virtuálních hostitelů: virtuální hostitelé založené na jménech, tedy vázaný na název domény, a Virtuální hostitelé na bázi IP, tedy vázaný na IP adresu. První typ virtuálních hostitelů používá různé názvy pro jednu IP adresu, zatímco druhý typ používá samostatnou IP adresu pro každý web. Vytvoření virtuálních hostitelů v Apache je nezbytné, pokud má váš server několik webů a jejich konfigurace je nezbytná pro správné zobrazení všech webů.

Nejběžnější je použití virtuálních hostitelů založených na názvech vázaných na jednu IP adresu. Na jednu IP tedy můžete uložit mnoho stránek.

Nejjednodušší způsob, jak přidat a poté nakonfigurovat virtuální hostitele Apache, je upravit konfigurační soubor webového serveru, který má různé názvy a umístění v závislosti na operačním systému:

V Červená čepice/CentOS/Fedora:

/etc/httpd/conf/httpd.conf

Debian/Ubuntu:

/etc/apache2/apache2.conf

Druhým způsobem konfigurace je použití vlastního .conf soubory, které by měly být umístěny podél cesty:

V Červená čepice/CentOS/Fedora:

/etc/httpd/conf.d/filename.conf,

Debian/Ubuntu:

/etc/apache2/conf.d/filename.conf.

Obvykle v konfiguračním souboru httpd.conf nebo apache2.conf sekce pro správu virtuálního hostitele se nachází úplně na konci. Chcete-li přidat virtuálního hostitele, budete muset tento soubor otevřít a odkomentovat jej (odstranit # ) směrnice JménoVirtuální hostitel *:80(Argument * znamená "všechny názvy hostitelů"). Pokud použijete metodu umístění konfigurace v conf.d, pak nemusí být zadaná směrnice odkomentována, ale měla by být definována v samotném vytvořeném souboru.

Po NameVirtualHost následuje blok VirtualHost *:80. Takové bloky jsou konfigurací vašich virtuálních hostitelů. Všechno to vypadá nějak takto:

JménoVirtuální hostitel *:80 AllowOverride All Options All ServerAdmin [e-mail chráněný] DocumentRoot /var/www/site1.ru ServerName site1.ru ServerAlias ​​​​www.site1.ru ErrorLog logs/site1.ru-error_log CustomLog logs/site1.ru-access_log common ServerAdmin [e-mail chráněný] DocumentRoot /var/www/site2.ru ServerName site2.ru ServerAlias ​​​​www.site2.ru ErrorLog logs/site2.ru-error_log CustomLog logs/site2.ru-access_log common

Zde se provádějí všechna nastavení virtuálního hostitele a také povolují nebo zakazují určité možnosti.

Podívejme se blíže na to, za co je každá z výše uvedených směrnic zodpovědná.

1. Směrnice ServerAdmin označuje e-mailovou adresu správce serveru, na kterou jsou přijímána všechna upozornění od hostitele týkající se jeho správy.

2. Směrnice DocumentRoot označuje kořenový adresář se soubory webu, které budou webovým serverem vydány klientovi (prohlížeči).

3. Směrnice Název serveru definuje jméno hostitele, na jehož žádost budou vráceny soubory umístěné v DocumentRoot.

4. Směrnice ServerAlias slouží k zadání alternativních jmen hostitelů (aliasů, aliasů), na které reaguje.

5. Směrnice ErrorLog určuje soubory protokolu chyb pro každého hostitele a CustomLog– soubory protokolu pro vše ostatní kromě chyb.

Před bloky s virtuálními hostiteli, jak jste si všimli, je další záznam:

AllowOverride All

Ve značkách obsahuje seznam direktiv (parametrů), které budou aplikovány na konkrétní adresář, který je uveden v úvodní značce. Ve výše uvedeném příkladu je tomu tak var/www/. Zadaná směrnice AllowOverride určuje, zda se mají používat soubory .htaccess a pokud ano, jaké globální direktivy webového serveru lze v takových souborech přepsat. Ve výše uvedeném příkladu hodnota AllowOverride nainstalovaný v Všechno, který umožňuje zpracování souborů .htaccess a všech direktiv v něm uvedených. Existují další možné významy:

AuthConfig– umožňuje použití autorizačních direktiv (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, vyžadovat atd..).

FileInfo– umožňuje použití direktiv, které řídí typy dokumentů (AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority atd..).

Indexy- umožňuje použití direktiv pro řízení indexování adresářů (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName atd..).

Omezit— umožňuje použití direktiv řízení přístupu (povolit, zakázat a nařídit).

Možnosti— umožňuje použití direktiv, pomocí kterých můžete ovládat specifické vlastnosti adresáře (Options a XBitHack).

Toto je jeden z mnoha možných směrnic, které si můžete přečíst na webu vývojářů.

Po uložení změn do souboru je třeba zkontrolovat nové nastavení, zda neobsahuje chyby. Ke kontrole můžete použít následující příkazy:

Apachectl configtest apachectl -S apachectl -d

Pokud zpráva „ Syntaxe OK“, to znamená, že nejsou žádné chyby a můžete restartovat webový server, aby se změny projevily. Můžete to provést pomocí následujících příkazů:

Red-Hat/CentOS/Fedora:

Restart služby httpd

/etc/init.d/ httpd restart

Debian/Ubuntu:

Restart služby apache2

/etc/init.d/apache2 restartujte

Dále se můžete setkat s následujícím problémem. Když přijde požadavek, Apache projde celý seznam virtuálních hostitelů, kteří hledají shodu, a pokud nenajde shodu, vrátí prvního hostitele v pořadí. Aby tento problém odstranili, přišli odborníci s takzvaným prázdným úsekem, který by měl být vložen před první úsek VirtualHost skutečné místo. Vypadá to přibližně takto:

Výchozí název_serveru DocumentRoot /var/www/default

Tímto způsobem budou po cestě odeslány všechny neplatné požadavky var/www/default, kde můžete vytvořit indexovou stránku, která bude hlásit neplatný požadavek.

Apache také standardně nemá přístup k vašim domovským adresářům, ale pouze k adresáři /var/www. Pokud na svém serveru používáte SElinux, použijte následující příkazy k udělení přístupu Apache k vašim domovským adresářům:

Setsebool -P httpd_enable_homedirs 1

Setsebool -P apache2_enable_homedirs 1

Aby měl Apache přístup ke konkrétnímu adresáři, např. /home/mydir měl by se použít příkaz:

Chcon -R -t httpd_sys_content_t /home/mydir

Chcon -R -t apache2_sys_content_t /home/mydir

Při deaktivaci SELinux Chcete-li dát Apache přístup k určitému domovskému adresáři webu, budete muset ručně upravit jeho konfigurační soubor ( /etc/httpd/conf/httpd.conf PROTI CentOS/Fedora nebo /etc/apache2/apache2.conf PROTI Debian/Ubuntu).

S konfiguračním souborem webového serveru otevřeným pro úpravy najděte řádek DocumentRoot(při použití nano editoru jej najdete pomocí klávesové zkratky Ctrl+W). Nahraďte hodnotu v uvozovkách /var/www/html na absolutní cestu k domovskému adresáři webu (např. /home/username/site.com). Uložte změny a opusťte nabídku editoru ( Ctrl+O A Ctrl+X). Restartujte Apache.

Pokud máte na svém VPS nainstalovaný OS Debian/Ubuntu a poté řádek upravte DocumentRoot vyžadováno v souboru /etc/apache2/sites-available/default. Otevřete jej pro úpravy a nahraďte výchozí hodnotu /var/www na absolutní cestu k domovskému adresáři webu. Restartujte webový server.

Tím je základní konfigurace virtuálních hostitelů dokončena.

Několik webů Apache poskytuje možnost konfigurovat virtuální hostitele pro tyto účely. Existují dva typy virtuálních hostitelů: virtuální hostitelé založené na jménech, tedy vázaný na název domény, a Virtuální hostitelé na bázi IP, tedy vázaný na IP adresu. První typ virtuálních hostitelů používá různé názvy pro jednu IP adresu, zatímco druhý typ používá samostatnou IP adresu pro každý web. Vytvoření virtuálních hostitelů v Apache je nezbytné, pokud má váš server několik webů a jejich konfigurace je nezbytná pro správné zobrazení všech webů.

Nejběžnější je použití virtuálních hostitelů založených na názvech vázaných na jednu IP adresu. Na jednu IP tedy můžete uložit mnoho stránek.

Nejjednodušší způsob, jak přidat a poté nakonfigurovat virtuální hostitele Apache, je upravit konfigurační soubor webového serveru, který má různé názvy a umístění v závislosti na operačním systému:

V Červená čepice/CentOS/Fedora:

/etc/httpd/conf/httpd.conf

Debian/Ubuntu:

/etc/apache2/apache2.conf

Druhým způsobem konfigurace je použití vlastního .conf soubory, které by měly být umístěny podél cesty:

V Červená čepice/CentOS/Fedora:

/etc/httpd/conf.d/filename.conf,

Debian/Ubuntu:

/etc/apache2/conf.d/filename.conf.

Obvykle v konfiguračním souboru httpd.conf nebo apache2.conf sekce pro správu virtuálního hostitele se nachází úplně na konci. Chcete-li přidat virtuálního hostitele, budete muset tento soubor otevřít a odkomentovat jej (odstranit # ) směrnice JménoVirtuální hostitel *:80(Argument * znamená "všechny názvy hostitelů"). Pokud použijete metodu umístění konfigurace v conf.d, pak nemusí být zadaná směrnice odkomentována, ale měla by být definována v samotném vytvořeném souboru.

Po NameVirtualHost následuje blok VirtualHost *:80. Takové bloky jsou konfigurací vašich virtuálních hostitelů. Všechno to vypadá nějak takto:

JménoVirtuální hostitel *:80 AllowOverride All Options All ServerAdmin [e-mail chráněný] DocumentRoot /var/www/site1.ru ServerName site1.ru ServerAlias ​​​​www.site1.ru ErrorLog logs/site1.ru-error_log CustomLog logs/site1.ru-access_log common ServerAdmin [e-mail chráněný] DocumentRoot /var/www/site2.ru ServerName site2.ru ServerAlias ​​​​www.site2.ru ErrorLog logs/site2.ru-error_log CustomLog logs/site2.ru-access_log common

Zde se provádějí všechna nastavení virtuálního hostitele a také povolují nebo zakazují určité možnosti.

Podívejme se blíže na to, za co je každá z výše uvedených směrnic zodpovědná.

1. Směrnice ServerAdmin označuje e-mailovou adresu správce serveru, na kterou jsou přijímána všechna upozornění od hostitele týkající se jeho správy.

2. Směrnice DocumentRoot označuje kořenový adresář se soubory webu, které budou webovým serverem vydány klientovi (prohlížeči).

3. Směrnice Název serveru definuje jméno hostitele, na jehož žádost budou vráceny soubory umístěné v DocumentRoot.

4. Směrnice ServerAlias slouží k zadání alternativních jmen hostitelů (aliasů, aliasů), na které reaguje.

5. Směrnice ErrorLog určuje soubory protokolu chyb pro každého hostitele a CustomLog– soubory protokolu pro vše ostatní kromě chyb.

Před bloky s virtuálními hostiteli, jak jste si všimli, je další záznam:

AllowOverride All

Ve značkách obsahuje seznam direktiv (parametrů), které budou aplikovány na konkrétní adresář, který je uveden v úvodní značce. Ve výše uvedeném příkladu je tomu tak var/www/. Zadaná směrnice AllowOverride určuje, zda se mají používat soubory .htaccess a pokud ano, jaké globální direktivy webového serveru lze v takových souborech přepsat. Ve výše uvedeném příkladu hodnota AllowOverride nainstalovaný v Všechno, který umožňuje zpracování souborů .htaccess a všech direktiv v něm uvedených. Existují další možné významy:

AuthConfig– umožňuje použití autorizačních direktiv (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, vyžadovat atd..).

FileInfo– umožňuje použití direktiv, které řídí typy dokumentů (AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority atd..).

Indexy- umožňuje použití direktiv pro řízení indexování adresářů (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName atd..).

Omezit— umožňuje použití direktiv řízení přístupu (povolit, zakázat a nařídit).

Možnosti— umožňuje použití direktiv, pomocí kterých můžete ovládat specifické vlastnosti adresáře (Options a XBitHack).

Toto je jeden z mnoha možných směrnic, které si můžete přečíst na webu vývojářů.

Po uložení změn do souboru je třeba zkontrolovat nové nastavení, zda neobsahuje chyby. Ke kontrole můžete použít následující příkazy:

Apachectl configtest apachectl -S apachectl -d

Pokud zpráva „ Syntaxe OK“, to znamená, že nejsou žádné chyby a můžete restartovat webový server, aby se změny projevily. Můžete to provést pomocí následujících příkazů:

Red-Hat/CentOS/Fedora:

Restart služby httpd

/etc/init.d/ httpd restart

Debian/Ubuntu:

Restart služby apache2

/etc/init.d/apache2 restartujte

Dále se můžete setkat s následujícím problémem. Když přijde požadavek, Apache projde celý seznam virtuálních hostitelů, kteří hledají shodu, a pokud nenajde shodu, vrátí prvního hostitele v pořadí. Aby tento problém odstranili, přišli odborníci s takzvaným prázdným úsekem, který by měl být vložen před první úsek VirtualHost skutečné místo. Vypadá to přibližně takto:

Výchozí název_serveru DocumentRoot /var/www/default

Tímto způsobem budou po cestě odeslány všechny neplatné požadavky var/www/default, kde můžete vytvořit indexovou stránku, která bude hlásit neplatný požadavek.

Apache také standardně nemá přístup k vašim domovským adresářům, ale pouze k adresáři /var/www. Pokud na svém serveru používáte SElinux, použijte následující příkazy k udělení přístupu Apache k vašim domovským adresářům:

Setsebool -P httpd_enable_homedirs 1

Setsebool -P apache2_enable_homedirs 1

Aby měl Apache přístup ke konkrétnímu adresáři, např. /home/mydir měl by se použít příkaz:

Chcon -R -t httpd_sys_content_t /home/mydir

Chcon -R -t apache2_sys_content_t /home/mydir

Při deaktivaci SELinux Chcete-li dát Apache přístup k určitému domovskému adresáři webu, budete muset ručně upravit jeho konfigurační soubor ( /etc/httpd/conf/httpd.conf PROTI CentOS/Fedora nebo /etc/apache2/apache2.conf PROTI Debian/Ubuntu).

S konfiguračním souborem webového serveru otevřeným pro úpravy najděte řádek DocumentRoot(při použití nano editoru jej najdete pomocí klávesové zkratky Ctrl+W). Nahraďte hodnotu v uvozovkách /var/www/html na absolutní cestu k domovskému adresáři webu (např. /home/username/site.com). Uložte změny a opusťte nabídku editoru ( Ctrl+O A Ctrl+X). Restartujte Apache.

Pokud máte na svém VPS nainstalovaný OS Debian/Ubuntu a poté řádek upravte DocumentRoot vyžadováno v souboru /etc/apache2/sites-available/default. Otevřete jej pro úpravy a nahraďte výchozí hodnotu /var/www na absolutní cestu k domovskému adresáři webu. Restartujte webový server.

Tím je základní konfigurace virtuálních hostitelů dokončena.

říct přátelům