Първо трябва да премахнете примерния манекен дефиниции от вашия файл vhost-httpd.conf. Те са там само като примери само за да започнете със синтаксиса и не трябва да оставате в активен conf/extra/httpd-vhosts.conf
тъй като те сочат към несъществуващи папки.
Така че премахнете тези 2 дефиниции от файла:
<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>
Вторият Apache 2.4.x е наясно с IPV4 (127.0.0.1) и IPV6 (::1), така че вашите hosts
файлът трябва да изглежда така с дефиниции както за версиите на IPV4, така и за IPV6 за всеки сайт. Браузърът може произволно да използва и двете, така че имате нужда и от двете, но вероятно ще използва мрежата IPV6 с предпочитание пред IPV4, ако и двете са действително активни на вашия компютър.
127.0.0.1 localhost
::1 localhost
127.0.0.1 mysite.dev
::1 mysite.dev
Сега на 2-та виртуални хоста, които реално съществуват във вашата система, опитайте това като дефиниция на виртуален хост:
<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>
раздел в <VirtualHost>....</VirtualHost>
раздел казва на Apache от кои IP адреси е разрешено да приема връзки, така че използвайки синтаксиса на Apache 2.4 Require local
ограничава достъпа, така че само компютърът с WAMPServer, т.е. Apache, може да се свърже с всеки от тези сайтове.
Избягвайте да смесвате синтаксиса на Apache 2.2 и синтаксиса на Apache 2.4 в една и съща дефиниция. Така че не използвайте
Order Allow,Deny
Allow from all
и
Require all granted
в същото определение. Вие използвате Apache 2.4, така че използвайте синтаксиса на Apache 2.4.
Ако установите, че искате да позволите на други компютри във вашата локална мрежа да виждат вашия сайт, т.е. партньор по работа или деца и т.н., можете да добавите този синтаксис към една или повече от вашата дефиниция за виртуален хост.
Разрешете само един друг компютър в сайта си
Require local
Require ip 192.168.1.100
или 2 други компютъра
Require local
Require ip 192.168.1.100, 192.168.1.101
Или за всеки във вашата локална мрежа просто използвайте първите 3 от 4-те квартила на ip адреса.
Require ip 192.168.1
Също така избягвайте да използвате синтаксиса, който позволява достъп отвсякъде, т.е.
Require all granted <--Apache 2.4 syntax
or
Order Allow,Deny <-- Apache 2.2 syntax
Allow from all
Може да реши проблемите ви в краткосрочен план, но просто чака да ви хване по-късно, когато решите, че искате да покажете сайта си на приятел/клиент/шеф. Ако стигнете до етапа на пренасочване на портове, вашия рутер, така че светът да бъде разрешен във вашата мрежа, това ще доведе до ВСИЧКИ ВАШИ САЙТОВЕ да стане достъпен за света.
По-добре е да промените дефиницията на ЕДИН виртуален хост за ЕДИН сайт, който искате хората да виждат за тестване/хвалство от Require local
до Require all granted
и позволявайте достъп до този сайт само от интернет.
След като направите всички тези промени, не забравяйте да рестартирате Apache.
Също така, ако промените файла hosts, за да направите промените активни, трябва или да рестартирате, или да изпълните тези команди от командния ред на командния прозорец, стартиран чрез Runs as Administrator
опция.
net stop dnscache
net start dnscache
ipconfig /flushdns