Nastavení virtuálního hostitele v Apache
Nastavení virtuálního hostitele na webovém serveru Apache není zrovna téma PHP, ale mnoho vývojářů PHP používá webový server Apache k testování webových stránek na svém vývojovém počítači.
V okolí je spousta informací o tom, jak to udělat, ale když jsem to poprvé zkusil, zjistil jsem, že stávající informace jsou spíše matoucí než užitečné. Doufejme, že tato stránka proces trochu zjednoduší. Upozorňujeme, že tyto informace se týkají nastavení virtuálního hostitele v Apache na počítači s Windows pro použití jako místní testovací server. Nastavení virtuálního hostitele pro skutečný produkční server je nad rámec tohoto článku a měli byste se obrátit na oficiální dokumentaci Apache.
První soubor, který budeme muset upravit, je soubor Apache httpd.conf. Pokud jste software Apache nainstalovali pomocí stažení z webu Apache, měli byste mít položku nabídky, která otevře tento soubor pro úpravy. Klikněte na Start->Programy->Apache HTTP Server->Konfigurovat Apache Server->Upravit konfigurační soubor Apache httpd.conf. Pokud tuto položku nabídky Start nemáte, spusťte textový editor a otevřete soubor. Bude to v podsložce conf vaší složky Apache. Můj je například zde:
C:\Program Files\Apache Group\Apache\conf\httpd.conf
Všimněte si, že Apache změnil preferovanou metodu konfigurace serveru Apache s vydáním Apache 2.2. U verzí začínajících na 2.2 je preferovaná konfigurace modulárnější. Nastavení virtuálního hostitele, jak je popsáno zde, bude stále fungovat s novějšími verzemi, ale pro dodržení modulárního přístupu je úprava httpd.conf pouze touncomment (odstraňte # ze začátku následujícího řádku:
#Include conf/extra/httpd-vhosts.conf
Vše ostatní je zadáno do souboru httpd-vhosts.conf, který bude umístěn v extra složce pod složkou obsahující httpd.conf. Jak již bylo zmíněno, zde popsaná metoda bude stále fungovat.
Verze 2.2 také změnila některé z výchozích konfiguračních parametrů zabezpečení. Chcete-li nastavit věci tak, jak je budete potřebovat, budete muset do souboru httpd.conf přidat následující blok , těsně nad virtuálními hostiteli nebo do vašeho souboru httpd-vhosts.conf:
Order Deny,AllowAllow from allVýše uvedené předpokládá, že používáte adresářovou strukturu popsanou níže. Upravte to podle potřeby, aby odpovídalo vašemu skutečnému adresáři.
Nyní budeme v tomto příkladu předpokládat, že máte své webové stránky umístěny ve složce na disku C s názvem Moje stránky. Každá webová stránka má pod touto složkou vlastní podsložku, jako je tato:
C:\My Sites\Site1 C:\My Sites\Site2Pro tento příklad také řekněte, že domény těchto dvou webů jsou site1.com a site2.com. Nastavíme virtuální hostitele pro tyto dva weby pomocí názvů domén site1.local a site2.local. Tímto způsobem budete moci na první pohled zjistit, zda se díváte na aktivní web, nebo na testovací web.
Ve skutečnosti můžete doménám říkat, jak chcete. Mohli byste je jednoduše pojmenovat microsoft.monkeybutt a ibm.greentambourine. Rozhodl jsem se použít konvenci používání stejného názvu domény spolu s TLD .local, abych zjednodušil a minimalizoval psaní potřebné k přepínání mezi živým webem a testovacím webem. Jediným důležitým bodem, a je to opravdu důležité, je, že NIKDY nepoužíváte skutečné, skutečné, živé doménové jméno. Pokud byste pro místního virtuálního hostitele použili například site1.com, nikdy byste se na živý web skutečně nedostali. Všechny požadavky na živé stránky budou přesměrovány na vašeho místního virtuálního hostitele.
V textovém editoru přejděte na konec souboru httpd.conf. Měli byste tam vidět příklad virtuálního hostitele. Každý řádek tohoto příkladu bude začínat octothorpe (#). Znak octothorpe označí řádek jako komentář, takže příklad není proveden. Pod tento příklad přidejte následující řádky:
NameVirtualHost 127.0.0.1 DocumentRoot "C:\My Sites\Site1" ServerName site1.local DocumentRoot "C:\My Sites\Site2" ServerName site2.localTo je vše, co musíte udělat! Uložte a zavřete soubor. To řekne Apacheserveru vše, co potřebuje vědět, aby mohl obsluhovat stránky pomocí doménových jmen site1.local a site2.local. Jedna poznámka je, že ve výše uvedeném příkladu máme v cestě mezeru. Z tohoto důvodu jsme kořenový adresář dokumentu umístili do uvozovek. Pokud cesta neobsahuje žádné mezery init, neuvádějte cestu. Pokud by adresář použitý pro vaše weby byl například MySites místo My Sites, kořenový řádek dokumentu by místo toho vypadal takto:
DocumentRoot C:\MySites\Site1Pokud byste do prohlížeče zadali http://site1.local, server DNS vašeho poskytovatele internetu by ji nenašel. Chcete-li to obejít, upravte další soubor. Druhý soubor, který potřebujete upravit, se nazývá hosts, bez přípony souboru. Jedná se o systémový soubor Windows a umožní vám zadávat konkrétní adresy pro konkrétní domény namísto použití vyhledávání DNS. Normální umístění tohoto souboru je:
C:\WINNT\system32\drivers\etc\hosts
nebo
C:\Windows\system32\drivers\etc\hosts
Pokud jej tam nenajdete, vyhledejte v adresáři systému Windows slovo hosts v názvu souboru. Požadovaný soubor se nazývá hosts bez přípony souboru. Správný soubor bude začínat následujícími řádky:
# Copyright (c) 1993-1999 Microsoft Corp.## Toto je ukázkový soubor HOSTS používaný Microsoft TCP/IP pro Windows.Opět, v tomto souboru je znak octothorpe značkou komentáře. Řádky začínající jsou komentáře. S největší pravděpodobností tam nebude nic, kromě komentářů. Pokud existují nějaké další nekomentované záznamy, ponechte je. Přejděte na konec souboru pod všechny komentáře a všechny existující položky a přidejte následující dva řádky:
127.0.0.1 site1.local127.0.0.1 site2.localTo je vše, co tam musíte udělat. Uložte a zavřete soubor hosts.
Už jste skoro hotovi! Jediná zbývající věc, kterou musíte udělat, je restartovat server Apache. Musíte to udělat, protože Apache čte konfigurační soubor pouze při prvním spuštění. Klikněte na Start->Programy->Apache HTTP Server->OvládáníApache Server->Restartovat. Pokud tuto položku nabídky nemáte, otevřete příkazový řádek a přejděte do adresáře Apache, zadejte následující příkaz a stiskněte klávesu Enter:
apache -w -n "Apache" -k restart
Měla by se zobrazit tato zpráva:
Služba Apache se restartuje. Služba Apache byla restartována.
To je ono! Jsi hotový! Zavřete příkazové okno a spusťte webový prohlížeč. Do adresního řádku prohlížeče zadejte http://site1.local a stiskněte klávesu Enter. Nyní byste měli vidět svou místní kopii vašeho webu1.
Dobře, teď zmíním jednu velmi malou, ale možná důležitou výstrahu. Když vytvoříte virtuální hostitele takto, výchozí http://localhost již nebude fungovat. V mnoha případech je to nedůležité. Pokud však používáte něco jako phpMyAdmin, stále jej budete potřebovat. Řešením je vytvořit jednoho dalšího virtuálního hostitele s názvem „localhost“, který odkazuje na původní složku Apache htdocs. Mohlo by to vypadat nějak takto:
DocumentRoot C:\Apache\htdocs ServerName localhostNezapomeňte zahrnout tohoto dalšího virtuálního hostitele, když upravujete soubor Windowshosts.
Všimněte si, že existují další volitelná nastavení, která můžete použít ke konfiguraci virtuálního hostitele. Výše uvedené používá pouze dva řádky a to je vše, co je opravdu nutné. O dalších možnostech si můžete přečíst v dokumentaci Apachedocumentation. Všimněte si, že tento odkaz je na webovou stránku Apache a otevře se nové okno prohlížeče.
Doufám, že to pro vás bylo užitečnější než matoucí. Hodně štěstí!
PREV: Elite Dangerous - Chybové kódy a opravy
NEXT: Nelze se připojit k databázovému serveru (pracovní plocha mysql)