Konfiguracja Virtual Hosts przy użyciu Xampp

Na temat konfiguracji Virtual Hosts jest w sieci kilka przydatnych artykułów, które niestety nie są zaktualizowane do apache w wersji 2.4+. Postanowiłem więc przyjrzeć się temu i napisałem ten krótki poradnik.

O tym w jakim celu używa się Virtual Hostów myślę, że nie trzeba nikomu tłumaczyć z jednego wzgledu – skoro trafiłeś na ten artykuł to szukałeś rozwiązania, które jest Ci potrzebne tak? 🙂

Do napisania tego poradnika użyłem XAMPP 5.6.3 i będzie to działać wszędzie tam, gdzie Apache ma wersję 2.4 lub wyższą.

Cały proces odbywa się w 3 krokachhow_to_create_a_virtual_host

Krok 1

instalujemy xampp w wersji, najlepiej XAMPP 5.6.3 lub wyższej (jeśli taka już wyszła)

Krok 2

Odszukujemy plik hosts w folderze C:\Windows\System32\drivers\etc i dopisujemy na jego końcu regułę, tak jak niżej. Uwzględniamy przy tym wersję z WWW oraz bez WWW.

Nazewnictwo jest dowolne, ważne jest by nie stosować rozszerzeń domen, które istnieją, bo przeglądarka pokaże nam błąd 404 lub odniesie się do już istniejącej w sieci strony. Najczęściej stosuje się więc rozszerznia dev oraz loc. W miejscu, gdzie wpisałem test to już Wasza inwencja twórcza, nazewnictwo wirtualnego hosta jest tak dowolne jak nazewnictwo domeny przy jej zakupie.

127.0.0.1    localhost
127.0.0.1    www.test.dev
127.0.0.1    test.dev

Krok 3

Kolejno edytujemy plik httpd-vhosts.conf, który znajduje się w folderze C:\xampp\apache\conf\extra (dysk C może ulec zmianie, jeśli instalowaliście xamppa na innym, no ale to logiczne :))

Wpisujemy w nim regułę, która zawiera folder z naszym projektem/stroną www, nazwę którą podaliśmy w pliku hosts i co najważniejsze Required all Granted, czyli to czego brakuje w większości niezaktualizowanych w sieci poradnikach, bo tym właśnie zapisem różni się wersja apache 2.4+ od poprzednich.

W pliku o którym mowa (httpd-vhosts.conf) dopisujemy lub usuwamy zakomentowanie „#”

NameVirtualHost *:80

Kolejno, na końcu dopisujemy nasz Virtual Host

<VirtualHost *:80>
DocumentRoot „C:/test”
ServerName test.dev
ServerAlias www.test.dev
<Directory „c:/test”>
AllowOverride All
Require all Granted
</Directory>
</VirtualHost>

Powyższe dla Apache w wersji niższej niż 2.4+ powinno wyglądać troszkę inaczej:

<VirtualHost *:80>
DocumentRoot „C:/test”
ServerName test.dev
ServerAlias www.test.dev
<Directory „c:/test”>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

 

Krok 4

Restartujemy naszego Xampp i powinno wszystko działać. W razie problemów można dorzucić do folderu plik indeksu (index.php lub index.html) i problem powinien zostać rozwiązany.

Podsumowanie

W przypadku, gdy wpisałem to co w pkt3 dla wersji Apache niższej niż 2.4, cały czas pojawiał się komunikat:

Zabroniony dostęp!

Nie masz dostępu do żądanego obiektu. Jest on zabezpieczony przed odczytem lub nie może być odczytany przez serwer.

Jeśli myślisz, że jest to błąd tego serwera, skontaktuj się z administratorem.

Error 403

www.test.dev
Apache/2.4.10 (Win32) OpenSSL/1.0.1i PHP/5.6.3