Artykuł

wampserver.com wampserver.com
sie 30 2013
0

WampServer, Apache i wirtualne hosty

W PHP programuje okazjonalnie, w wolnym czasie, ale mimo tego na dysku zdążyło mi się zgromadzić kilka różnych projektów. Dla uproszczenia na swoim produkcyjnym serwerze stworzyłem sobie aliasy, ale nie zawsze jest to do końca optymalne rozwiązanie. Czasem bardziej przydatne będą wirtualny hosty, które pozwalają na tworzenie lokalnie działających domen, które możemy np. przypisać ulubionym projektom.

O tytułowym rozwiązaniu wspominałem już pokrótce ostatnio, przy okazji wpisu na temat systemowego pliku hosts. Niniejszy post jest swego rodzaju kontynuacją tamtego wątku, aczkolwiek ukierunkowany jest on stricte na webdeveloperów.

Zmiany w pliku hosts

Konfigurację wirtualnych hostów, powinniśmy rozpocząć od zmiany pliku hosts. Dla przypomnienia we wszystkich nowszych systemach MS (i tych trochę starszych też), znajdziecie go w lokalizacji:

c:\Windows\System32\Drivers\etc\hosts

W kolejnym kroku musimy dodać nowy wiersz, w którym zdefiniujemy nową nazwę hosta dla adresu 127.0.0.1, czyli oczywiście lokalnego - możecie również podać inny IP z Waszego LANu jeśli macie np. w tym celu dedykowany komputer testowy.

W tym miejscu nie potrzeba podawać ani informacji o porcie, czy ścieżce lokalnej - tego typu informacje zawrzemy w konfiguracji Apache'a.

Poniżej przykładowy wpis, który dla adresu 127.0.0.1 doda hosta acd.

127.0.0.1 acd

Nazwa hosta może zawierać również kropki. Może to wyglądać np. tak: acd.xyz. Ważne jest jednak by uważać, czy w praktyce w sieci nie istnieje już taka domena, gdyż przez przypadek możemy sobie odciąć dostęp od ulubionego portalu;-)

Po wprowadzeniu zmian zapisujemy plik - restart komputera nie jest wymagany.

Aktywacja modułu wirtualnych hostów

Aby korzystać z wirtualnych hostów z poziomu Apache'a, musimy najpierw odblokować odpowiedni moduł w konfiguracji, ponieważ domyślnie jest on zablokowany. W tym celu musimy najpierw poszukać plik konfiguracyjny usługi, czyli httpd.conf. Jeśli korzystacie z gotowych rozwiązań pokroju WampServer, to wystarczy wybrać odpowiednią opcję w menu (patrz screen poniżej). W przeciwnym przypadku należy odszukać go w katalogu aplikacji, w ścieżce:

x:\sciezka_do_apache\conf\httpd.conf

W kolejnym kroku, należy w pliku konfiguracji odszukać fragment poświęcony wirtualnym hostom. W testowanej przeze mnie wersji wyglądał on tak:

# Virtual hosts
#Include conf/extra/httpd-vhosts.conf

Na drodze do szczęścia znajduje się # znajdujący się na początku drugiej linii. # w pliku konfiguracji oznacza komentarz i tym samym wyłącza on nam wskazaną funkcjonalność. Naszym zadaniem jest oczywiście jego usunięcie. Dzięki temu, przy następnym uruchomieniu serwera (lub po jego restarcie) zostanie wczytywana konfiguracja wirtualnych hostów znajdująca się we wskazanym pliku.

Opcjonalnie można przerzucić zawartość wskazanego dokumentu bezpośrednio do httpd.conf i wkleić ją w miejsce, w którym wcześniej wczytywaliśmy konfigurację wirtualnych hostów.

Szczęście jest blisko... konfiguracja wirtualnych hostów

Przed nami już ostatni element całej układanki, który jest zarazem najbardziej skomplikowany, ponieważ musimy przygotować odpowiednią konfigurację wirtualnych hostów w pliku którego wczytywanie zapewniliśmy sobie przed chwilą. Tak więc bez dłuższego zastanowienia otwórzcie do edycji plik z lokalizacji:

x:\sciezka_do_apache\conf\extra\httpd-vhosts.conf

Jeśli nie modyfikowaliście wcześniej tego pliku, to praktycznie możecie wyczyścić całą jego zawartość - ewentualnie można pozostawić komentarze. Teraz musimy dodać nasze własne wpisy:

<VirtualHost *:80> 
	ServerName localhost 
	DocumentRoot "C:\wamp\www" 
</VirtualHost>

<VirtualHost *:80>
	ServerName acd
	DocumentRoot "D:\Projekty\acd"
</VirtualHost>

Pierwszy z tych wpisów jest bardzo zalecany, ponieważ jeśli by go nie było, to cały ruch na lokalnym serwerze byłby przekierowywany do naszego nowego wirtualnego hosta. Dla obu wariantów przedstawiłem tutaj podstawową konfigurację. Mamy więc podaną nazwę serwera (ServerName) - to właśnie ją wpisujemy w przeglądarce, a także główny katalog wirtualnego hosta (DocumentRoot). W przypadku naszego nowego hosta będzie to oczywiście katalog projektu.

Zauważcie że nasz nowy wirtualny host nie musi być umieszczony wcale w podrzędnym katalogu głównej lokalizacji serwera, ale może znajdować się praktycznie gdziekolwiek.

Na koniec jeszcze jedna ważna rzecz, odnośnie tego pliku - kolejność hostów ma znaczenie, więc zaleca się ich porządkowanie od najbardziej ogólnego, do najbardziej konkretnego.

Dokumentacja Apache - Virtual Hosts

Komentarze

blog comments powered by Disqus