Nejprve musíte odstranit příklad figuríny definice z vašeho souboru vhost-httpd.conf. Jsou tam pouze příklady jen proto, abyste mohli začít se syntaxí, a neměli byste zůstat v aktivním conf/extra/httpd-vhosts.conf
protože ukazují na neexistující složky.
Odstraňte tedy ze souboru tyto 2 definice:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "g:/Apache24/docs/dummy-host.example.com"
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "logs/dummy-host.example.com-error.log"
CustomLog "logs/dummy-host.example.com-access.log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "g:/Apache24/docs/dummy-host2.example.com"
ServerName dummy-host2.example.com
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>
Druhý Apache 2.4.x podporuje IPV4 (127.0.0.1) a IPV6 (::1), takže vaši hosts
soubor by měl vypadat takto s definicemi pro verze IPV4 i IPV6 pro každý web. Prohlížeč může libovolně používat kteroukoli z nich, takže potřebujete obě, ale pravděpodobně bude přednostně používat síť IPV6 před IPV4, pokud jsou na vašem PC skutečně aktivní obě.
127.0.0.1 localhost
::1 localhost
127.0.0.1 mysite.dev
::1 mysite.dev
Nyní na 2 virtuálních hostitelích, kteří ve vašem systému skutečně existují, zkuste toto jako definici virtuálního hostitele:
<VirtualHost *:80>
DocumentRoot "g:/wamp/www"
ServerName localhost
ServerAlias localhost
ErrorLog "logs/localhost-error.log"
CustomLog "logs/localhost-access.log" common
<Directory "G:/wamp/www">
AllowOverride All
Options Indexes FollowSymLinks
Require local
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "g:\wamp\www\mysite\public"
ServerName mysite.dev
ServerAlias www.mysite.dev
ErrorLog "logs/mysite-error.log"
CustomLog "logs/mysite-access.log" common
<Directory "G:/wamp/www/mysite/public">
AllowOverride All
Options Indexes FollowSymLinks
Require local
</Directory>
</VirtualHost>
<Directory>....</Directory>
sekce v rámci <VirtualHost>....</VirtualHost>
sekce říká Apache, ze kterých IP adres může přijímat připojení, takže pomocí syntaxe Apache 2.4 Require local
omezuje přístup tak, že se na kteroukoli z těchto stránek může připojit pouze počítač s WAMPServerem, tj. Apache.
Vyhněte se míchání syntaxe Apache 2.2 a syntaxe Apache 2.4 ve stejné definici. Takže nepoužívejte
Order Allow,Deny
Allow from all
a
Require all granted
ve stejné definici. Používáte Apache 2.4, takže použijte syntaxi Apache 2.4.
Pokud zjistíte, že chcete umožnit ostatním počítačům ve vaší místní síti, aby viděly vaše stránky, např. kolegovi z práce nebo dětem atd., můžete přidat tuto syntaxi do jedné nebo více definic virtuálního hostitele.
Povolte na svůj web pouze jeden další počítač
Require local
Require ip 192.168.1.100
nebo 2 další PC
Require local
Require ip 192.168.1.100, 192.168.1.101
Nebo komukoli ve vaší místní síti stačí použít první 3 ze 4 kvartilů IP adresy.
Require ip 192.168.1
Také se vyhněte použití syntaxe, která umožňuje přístup odkudkoli, tj.
Require all granted <--Apache 2.4 syntax
or
Order Allow,Deny <-- Apache 2.2 syntax
Allow from all
Může to vyřešit vaše problémy v krátkodobém horizontu, ale jen čeká, až vás zastihne někdy později, až se rozhodnete, že chcete své stránky ukázat příteli/klientovi/šéfovi. Pokud se dostanete do fáze předávání portů, směrovač tak, aby byl svět vpuštěn do vaší sítě, způsobilo by to VŠECHNY VAŠE STRÁNKY aby byly dostupné světu.
Lepší je změnit definici JEDNOHO virtuálního hostitele pro JEDEN web, který chcete, aby lidé viděli pro testování/chlubení, z Require local
na Require all granted
a umožnit přístup z internetu pouze tomuto jedinému webu.
Jakmile provedete všechny tyto změny, nezapomeňte restartovat Apache.
Také pokud změníte soubor hostitelů, aby byly změny aktivní, měli byste buď restartovat, nebo spustit tyto příkazy z příkazového řádku příkazového okna spuštěného pomocí Runs as Administrator
možnost.
net stop dnscache
net start dnscache
ipconfig /flushdns