VirtualHosts w Apache na localu
Przeglądając sobie Polskie Forum PHP natrafiłem na posta, którego autor pyta w jaki sposób otwierać na localhoście strony zapisane w różnych katalogach. Pytanie było zadane w trochę innej formie (otwieranie typu: localhost/folder, które wskazuje na folder znajdujący się poza htdocs), ale z tego, co mi wiadomo, to VirtualHostsy działają tylko po osobnych IP
Dzięki temu dysponujemy możliwością postawienia 16581374 (127.0.0.1–127.255.255.255) wirtualnych hostów (mam nadzieję, że się nie pomyliłem w obliczeniach; jeśli tak, to proszę mnie poprawić).
Po pierwsze, musimy znaleźć plik konfiguracyjny Apache’a. Jest to plik httpd.conf znajdujący się w katalogu conf serwera. Otwieramy go np. w notatniku.
Najpierw szukamy:
#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
#
#Listen 12.34.56.78:80
Listen nazwa:80
Musimy zmienić Listen nazwa:80 na Listen 80. Spowoduje to nasłuch na wszystkich IP skierowanych na nasz komputer na konkretnym porcie, w przeciwieństwie do domyślnego ustawienia, które zmusza serwer do oczekiwania na żądania dla konkretnej nazwy hosta.
Teraz będzie mały „rozjazd”. Konfiguracja Apache 2.0.xx i 1.3.xx znajduje się tylko w jednym pliku (httpd.conf). Natomiast, począwszy od edycji 2.2.xx zmodularyzowano ją i została podzielona na kilka plików w katalogu extra. Jeśli masz Apache 2.2, to dopisujesz poniższy kod w pliku extra/httpd-vhosts.conf. Dodatkowo, w pliku httpd.conf musisz odkomentować linijkę:
Include conf/extra/httpd-vhosts.conf
Jeśli wersja serwera jest niższa, to do httpd.conf.
DocumentRoot "H:/katalog"
W miejscu 127.0.0.2 wpisujesz adres z puli 127.0.0.2–127.255.255.255
Natomiast, tam, gdzie znajduje się H:/katalog wprowadzasz ścieżkę do wybranego katalogu na stronę.
Po zapisaniu zmian, zrestartuj demona/usługę i wpisz wprowadzony wcześniej w sekcji VirtualHost adres. Tyle :).
hm, sądzę że Name Based Virtual Hosting jest równie skuteczny
ale pewne problemy może wywołać, ale do rzeczy:
httpd.conf
listen 127.0.0.1:80
DefaultVhost:
DocumentRoot "/var/www/localhost/htdocs"
.. caly stuff dot vhosta ...
and vhosty poszczegolne:
DocumentRoot "/home/johny/e_poradnik"
NameVirtualHost "poradnik.127.0.0.1"
ServerName "poradnik.127.0.0.1"
ServerAlias "poradnik.localhost"
mam nadzieję, że Twój wp nie przefiltruje tego wszystkiego