Najpierw musisz usunąć przykład manekin definicje z pliku vhost-httpd.conf. Są tam tylko przykłady tylko na początek ze składnią i nie powinien pozostawać w aktywnym conf/extra/httpd-vhosts.conf
ponieważ wskazują na nieistniejące foldery.
Usuń więc te 2 definicje z pliku:
<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>
Drugi Apache 2.4.x obsługuje IPV4 ( 127.0.0.1 ) i IPV6 (::1), więc Twoje hosts
plik powinien wyglądać tak z definicjami dla wersji IPV4 i IPV6 dla każdej witryny. Przeglądarka może dowolnie używać jednego z nich, więc potrzebujesz obu, ale prawdopodobnie użyje sieci IPV6 zamiast IPV4, jeśli obie są faktycznie aktywne na twoim komputerze.
127.0.0.1 localhost
::1 localhost
127.0.0.1 mysite.dev
::1 mysite.dev
Teraz na 2 wirtualnych hostach, które faktycznie istnieją w twoim systemie, wypróbuj to jako definicję wirtualnego hosta:
<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>
w sekcji <VirtualHost>....</VirtualHost>
sekcja mówi Apache, z których adresów IP może akceptować połączenia, więc używając składni Apache 2.4 Require local
ogranicza dostęp, aby tylko komputer z uruchomionym serwerem WAMPServer, tj. Apache, mógł połączyć się z dowolną z tych witryn.
Unikaj mieszania składni Apache 2.2 i Apache 2.4 razem w tej samej definicji. Więc nie używaj
Order Allow,Deny
Allow from all
i
Require all granted
w tej samej definicji. Używasz Apache 2.4, więc użyj składni Apache 2.4.
Jeśli okaże się, że chcesz, aby inne komputery w sieci lokalnej widziały Twoją witrynę, np. kolega z pracy, dzieci itp., możesz dodać tę składnię do jednej lub więcej definicji hosta wirtualnego.
Zezwalaj tylko jednemu komputerowi na swoją witrynę
Require local
Require ip 192.168.1.100
lub 2 inne komputery
Require local
Require ip 192.168.1.100, 192.168.1.101
Lub każdemu w Twojej sieci lokalnej po prostu użyj pierwszych 3 z 4 kwartyli adresu IP.
Require ip 192.168.1
Unikaj także używania składni, która umożliwia dostęp z dowolnego miejsca, tj.
Require all granted <--Apache 2.4 syntax
or
Order Allow,Deny <-- Apache 2.2 syntax
Allow from all
Może to rozwiązać twoje problemy w krótkim okresie, ale tylko czeka, aby cię złapać za jakiś czas, gdy zdecydujesz, że chcesz pokazać swoją witrynę znajomemu/klientowi/szefowi. Jeśli dojdziesz do etapu przekierowania portów, router zostanie wpuszczony do Twojej sieci, co spowoduje WSZYSTKIE TWOJE WITRYNY stać się dostępnym dla świata.
Lepiej zmienić JEDNĄ definicję hosta wirtualnego dla JEDNEJ witryny, którą ludzie mają widzieć do testowania/przechwalania się z Require local
aby Require all granted
i zezwalaj tylko na dostęp do tej jednej witryny z Internetu.
Po wprowadzeniu wszystkich tych zmian pamiętaj, aby ponownie uruchomić Apache.
Również jeśli zmienisz plik hosts, aby zmiany były aktywne, powinieneś albo zrestartować komputer, albo uruchomić to polecenie z wiersza poleceń uruchomionego okna poleceń za pomocą Runs as Administrator
opcja.
net stop dnscache
net start dnscache
ipconfig /flushdns