Jak spravovat a používat virtuální hostitele Apache v Ubuntu
Autor: Adarsh Sojitra, 20. července 2019
V tomto informativním obsahu vysvětlím, jak používat virtuální hostitele v Apache v operačním systému Ubuntu. Naučíme se také adresářovou strukturu webového serveru Apache. Na konci této příručky se dozvíte vše, co potřebujete vědět o virtuálních hostitelích Apache.
Následující úkoly budete moci provádět velmi snadno.
Hostujte více aplikací na jednom VPS/VM. Čtěte soubory virtuálního hostitele velmi snadno. Spravujte soubory protokolu pro každou aplikaci velmi snadno. Pochopte důležité direktivy, jako je DocumentRoot, ServerName, ServerAlias a mnoho dalších.Takže konečně můžeme začít s skutečný tutoriál. Pokud však chcete postupovat podle tohoto průvodce prakticky, můžete pomocí plánů InterServer VPS nakonfigurovat nový virtuální privátní server během několika minut.
Konečně si myslím, že jsme připraveni a můžeme začít instalací Apache na náš zbrusu nový virtuální privátní server.
Instalace Apache na virtuální privátní servery je velmi snadná. Ve většině případů stačí k instalaci Apache na serveru provést jeden příkaz. Zde je návod, jak to udělat na Ubuntu, jednom z nejpopulárnějších operačních systémů současnosti.
$ sudo apt-get install apache2 -yPokud je váš server zcela nový, můžete čelit problémům s instalací apache na váš server. S největší pravděpodobností je to proto, že váš seznam zdrojů ještě není aktualizován. Provedením následujícího příkazu aktualizujte seznam zdrojů.
$ sudo apt-get updateOvěřte instalaci návštěvou IP adresy vašeho serveru ve vašem prohlížeči. Měli byste vidět výchozí stránku Apache stejně jako následující obrázek.
Pokud vidíte tuto stránku, můžete přejít k nejzajímavější části této příručky a porozumět struktuře adresářů Apache a tomu, jak fungují virtuální hostitelé v Apache.
Provedením následujícího příkazu přejděte do adresáře, kde jsou uloženy všechny konfigurační soubory Apache.
$ cd /etc/apache2Jakmile se dostanete dovnitř, spusťte příkaz ls a uvidíte několik souborů a adresářů. Zde jsou některé důležité adresáře a soubory, které uvidíte v adresáři /etc/apache2.
apache2.conf je hlavní konfigurační soubor Apache.conf-available obsahuje všechny dodatečné konfigurační soubory.conf-enabled obsahuje symbolické odkazy na konfigurační soubory, které jsou povoleny. Soubor envvars obsahuje proměnné prostředí.mods-available obsahuje všechny dostupné moduly Apache.mods -enabled obsahuje symbolické odkazy modulů, které jsou povoleny.ports.conf obsahuje konfiguraci portu (na kterém portu chcete naslouchat požadavkům?).sites-available obsahuje všechny soubory virtuálního hostitele, které vytváříme.sites-enabled obsahuje symbolické odkazy všech virtuální hostitele, které chceme povolit.Ze všech těchto souborů a adresářů se musíme zaměřit pouze na adresáře s dostupnými weby a s povolenými weby. Protože tyto adresáře budou obsahovat všechny konfigurační soubory našeho virtuálního hostitele.
Proč tedy existují dva adresáře pro ukládání souborů virtuálního hostitele Apache? Je za tím velmi logický důvod. Pojďme si podrobně probrat adresáře s dostupnými weby a s povolenými weby.
Adresář sites-available obsahuje všechny soubory virtuálního hostitele, které chceme na našem serveru spravovat. Řekněme například, že máme dva názvy domén s názvem domain1.com a domain2.com. To znamená, že musíme vytvořit dva soubory virtuálního hostitele v adresáři sites-available s názvy domain1.conf a domain2.conf.
Oba tyto soubory virtuálního hostitele budou mít obsah specifický pro konkrétní název domény. Název souboru však může být jakýkoli, záleží jen na direktivách uvnitř těchto souborů a příponu .conf souborů virtuálního hostitele.
Můžete vytvořit libovolný počet virtuálních hostitelských souborů. Tyto soubory virtuálního hostitele však ještě nejsou aktivní. Znamená to, že pouhé vytvoření konfiguračních souborů virtuálního hostitele v adresáři s dostupnými weby neuvede naše weby na server.
Adresář sites-available je pouze adresář pro uložení všech vašich aktivních a neaktivních souborů virtuálního hostitele. A musíme explicitně povolit virtuálním hostitelským souborům, aby byly naše domény na serveru živé.
Pro aktivaci souborů VirtualHost můžete provést následující příkaz.
$ sudo a2ensite {name_of_virtual_host}Příkaz a2ensite je dodáván s webovým serverem Apache. Je to jen malý skript, který vytvoří symbolický odkaz vašeho hlavního konfiguračního souboru virtuálního hostitele uloženého na stránkách – dostupných v adresáři s povolenými weby.
Adresář s povolenými weby obsahuje symbolické odkazy na soubory virtuálního hostitele uložené v adresáři s dostupnými weby. Pokud zkontrolujete hlavní konfigurační soubor Apache umístěný na /etc/apache2/apache2.conf, uvidíte, že všechny konfigurační soubory uložené v adresáři s povolenými weby jsou zahrnuty do běhového prostředí.
Znamená to, že můžete uložit tolik souborů virtuálního hostitele, kolik chcete, ale můžete je povolit podle svých potřeb. Můžete například vytvořit soubor virtuálního hostitele pro režim údržby, který odkazuje na jiný DocumentRoot, a můžete povolit soubor virtuálního hostitele údržby, kdykoli budete chtít na webu provést údržbu.
Konfiguraci virtuálního hostitele můžete zakázat pomocí následujícího příkazu.
$ sudo a2dissite {jméno_virtuálního_hostitele}Nebo, protože se jedná pouze o symbolický odkaz, můžete jednoduše odstranit odkaz z adresáře s povolenými weby a konfigurace virtuálního hostitele bude deaktivována.
Všimněte si, že příkazy a2ensite a a2dissite povolí a zakáže konfigurace virtuálního hostitele, ale efekty nejsou v reálném čase. Aby se změny projevily, musíme restartovat nebo znovu načíst službu Apache. Chcete-li znovu načíst hlavní konfiguraci Apache, můžete provést následující příkaz.
$ sudo service apache2 reloadNyní, jak víme, jak fungují konfigurační soubory virtuálního hostitele v Apache, pojďme udělat nějakou praktickou práci. Vytvoříme dva virtuální hostitele pro dvě různá doménová jména a uvidíme, jak to skutečně funguje.
Nakonec vytvoříme soubory virtuálních hostitelů pro naše dvě doménová jména domain1.com a domain2.com. Tyto názvy domén můžete jednoduše nahradit svými vlastními názvy domén a vše by mělo fungovat podle očekávání.
Provedením následujícího příkazu vytvořte první soubor virtuálního hostitele v adresáři sites-available.
$ sudo nano /etc/apache2/sites-available/domain1.confNyní vložte následující obsah do souboru virtuálního hostitele. Tyto směrnice podrobně vysvětlím dále v této příručce.
ServerAdmin support@example.comServerName domain1.comServerAlias www.domain1.comDocumentRoot /var/www/domain1.com/public_htmlErrorLog /var/www/domain1.com/logs/error.logCustomLog /var/www/domain1.com/logs/access .log combinedNezapomeňte nahradit doménu1.com názvem vaší domény. Pojďme nejprve pochopit direktivy použité v tomto souboru virtuálního hostitele.
ServerAdmin: E-mail, který zadáte v této direktivě, se zobrazí, pokud uživatel narazí na interní chybu serveru. Aby vás mohli kontaktovat přímo přes E-mail.ServerName: Je to druh primární domény vaší aplikace. Zde používám domain1.com. Můžete jej nahradit libovolným názvem domény, který chcete hostovat na svém serveru. ServerAlias: Tato direktiva obsahuje všechny další domény/subdomény, které chcete použít pro přístup k webu. Zde můžete přidat více názvů hostitelů oddělených mezerou.DocumentRoot: V této direktivě musíte definovat adresář, do kterého chcete směrovat požadavky přicházející pro tento soubor virtuálního hostitele, pokud je povoleno. Znamená to, že požadavky přicházející na doméně1.com budou směrovány do adresáře /var/www/domena1.com/public_html.ErrorLog: V této direktivě musíte definovat cestu k souboru protokolu chyb. Všechny chyby zjištěné během běhu budou zaznamenány do zde zmíněného souboru.CustomLog: Tato cesta k souboru protokolu, kterou zde zmiňujete, bude obsahovat všechny přístupové protokoly.A... je blok virtuálního hostitele. Můžete vytvořit více takových bloků v jednom souboru domain.conf pro více domén a stále to bude fungovat!
Nyní je čas povolit náš soubor virtuálního hostitele, abychom měli přístup k našemu webu.
POZNÁMKA: Apache zkontroluje, zda jsou přítomny adresáře uvedené v souboru virtuálního hostitele. Pokud některý z adresářů uvedených v souboru virtuálního hostitele chybí, může dojít k výpadku celého serveru Apache, dokud problém nevyřešíte.
Nejprve vytvoříme adresáře pro náš vzorový web. Poté povolíme konfigurační soubor virtuálního hostitele Apache. Provedením následujícího příkazu vytvořte pro náš web adresáře domain1.com, public_html a logs.
$ sudo mkdir -p /var/www/domain1.com/{public_html,logs}Jakmile vytvoříte požadované adresáře, můžete povolit soubor virtuálního hostitele provedením následujícího příkazu.
$ sudo a2ensite domain1 # NEBO sudo a2ensite domain1.confJak jsem uvedl výše, aktivace virtuálního hostitele neprovede změny v reálném čase. Pro použití změn musíme znovu načíst hlavní konfiguraci Apache. Provedením následujícího příkazu znovu načtěte konfiguraci Apache.
$ sudo service apache2 reloadPokud při opětovném načítání konfigurace nevidíte žádnou chybovou zprávu, váš virtuální hostitel je aktivní a soubory budou doručeny do webového prohlížeče z adresáře uvedeného v direktivě DocumentRoot.
Můžete vytvořit libovolný počet virtuálních hostitelských souborů. A dokonce můžete přidat další konfiguraci Apache do souborů virtuálního hostitele podle vašich požadavků.
Závěr: Virtuální hostitelé Apache jsou velmi výkonné konfigurační soubory, které vám umožňují hostovat více domén s různými konfiguracemi na stejném počítači. Existují stovky různých direktiv, které můžete použít k definování různých věcí specifických pro virtuálního hostitele. Takže možností je nekonečně mnoho! Může chvíli trvat, než pochopíte, jak přesně Apache funguje, a při začátcích můžete čelit některým problémům, ale vždy můžete použít sekci komentářů níže a kontaktovat nás přímo s žádostí o pomoc!
PREV: Top 5 způsobů, jak opravit chybu Nelze kontaktovat váš server DHCP na ...
NEXT: Oprava: Nelze kontaktovat chybu serveru DHCP v systému Windows 7, 8 ...