sieci komputerowe, cisco, webmastering, php, css, xhtml, javascript, google, linux, windows server

Jak przetestować serwis dla danej domeny, nie mając jej jeszcze wykupionej?

Kategorie: Webmastering | 10 lipca 2007 16:00 | Odsłon: 2565 | Komentarzy: 9 | Permalink

Nie masz jeszcze wykupionej domeny, a chciałbyś przetestować działanie nowego serwisu przeznaczonego dla tej jeszcze nie posiadanej domeny? Stanąłem ostatnio przed podobnym problemem - jak się okazuje jego rozwiązanie nie jest wcale ani trudne, ani czasochłonne.

Jak to rozwiązałem?

Postanowiłem wykorzystać do tego możliwości protokołu HTTP oraz Apache w zakresie obsługi wirtualnych hostów. Na początek, osobom, które nie spotkały się z wirtualnymi hostami wyjaśnię, że koncepcja ta zakłada obsługę wielu serwisów internetowych pod różnymi domenami korzystając z jednego adresu IP - czyli na jednym serwerze możemy obsłużyć np. domeny luktom.net i luktom.pl (nie, nie sprawdzajcie luktom.pl - wymyślam :D).

Drugim krokiem jest ręczne lokalne powiązanie adresu IP serwera Web z nieistniejącym adresem domenowym. Ale po kolei...

Jak ustawić vhosta?

Ustawienie nowego vhosta nie jest problemem, wystarczy wyedytować plik httpd.conf Apache'a i ustawić w nim opcje wirtualnych hostów:

NameVirtualHost * <VirtualHost *> DocumentRoot d:/webroot </VirtualHost> <VirtualHost *> ServerName nowadomena.pl DocumentRoot d:/webroot/vhosts/nowadomena.pl <Directory "d:/webroot/vhosts/nowadomena.pl"> Order Allow,Deny Allow from all </Directory> </VirtualHost>

Powyższy, najprostszy przykład tworzy dwa wirtualne hosty - pierwszy, bez ustawiania parametru ServerName stosowany jest jako domyślny host, tzn. jeśli zapytanie nie dotyczy żadnego innego, określonego wirtualnego hosta, to zostanie zastosowana właśnie ta konfiguracja.

We wnętrzu tagu VirtualHost możemy stosować dowolne opcje konfiguracyjne, na jakie pozwala nam Apache - w przykładzie umieściłem dyrektywę Directory.

Powiązanie nowej domeny z adresem IP serwera Web

Problem rozwiązania nazwy domenowej na adres IP zrealizowałem w najprostszy możliwy sposób - poprzez plik hosts.

Z racji, że zakładamy, że serwer Web jest uruchomiony na lokalnym komputerze, do pliku hosts dopisujemy linijkę:

127.0.0.1 nowadomena.pl

Przypomne, że w Linuxie plik hosts znajduje się w lokalizacji /etc/hosts, natomiast w Windows XP - C:\Windows\System32\Drivers\etc\hosts.

To wszystko?

Tak, po tych zabiegach wystarczy zrestartować Apache, aby móc się połączyć z serwerem nowadomena.pl i testować naszą nową witrynę. Przyznam, że ma to szczególnie praktyczne zastosowanie przy testowaniu rzeczy typu permalinki i tracebacki, gdzie podajemy adres bezwzględny.

Dodatkową korzyścią ze stosowania wirtualnych hostów jest separacja poszczególnych katalogów witryn, automatycznie sprawiająca, że mamy porządek na dysku :) (no prawie).

Zobacz także

Wpisy o podobnej tematyce

D4rky

10 lipca 2007 16:08
Edycja httpd.conf jest potrzebna tylko w Apache 1.x, od Apache2 masz katalog sites-enabled i sites-available. W drugim robisz pliki z vhostami i symlinkujesz to pierwszego.

radziel

10 lipca 2007 17:32
Jest to dobre rozwiązanie, ale do czasu gdy potrzebujemy wsparcia dla subdomen. Wtedy albo pozostaje utworzenie vhostów dla każdej z subdomen albo zabawa mod_rewrite.

Są jeszcze inne prostsze rozwiązania tego problemu?

Hash

19 lipca 2007 17:11
@radziel - możesz napisać skrypt generujący automatycznie plik @httpd.conf@ na podstawie wprowadzonych danych, podmieniający aktualny plik i restartujący Apache... Ale czy to warte zachodu jest?

kizior

22 lipca 2007 13:59
a nie lepiej po prostu kupic domene ?

Michał Kordulewski

22 lipca 2007 15:48
Artykuł jest interesujący i z pewnością praktyczny... ale temat sformułowałbym inaczy: Jak przetestować serwis WWW jeśli nie możemy użyć do tego docelowej domeny.

Ceny domen teraz przy koszcie pracy to drobnostka, a nie warto rozpoczynać przedsięwzięcia związanego z określoną domeną nie posiadając jej. Za to na pewno zdarzają się sytuacje gdy trzeba przetestować lub rozwijać skonfigurowany serwis pod inną lokalizacją roboczą a nie warto go przekonfigurowywać.

cgdude

8 maja 2008 15:23
Witam. Nie mam do??wiadczenia i nie rozumiem. Kleje, ??e po dodaniu wpisu w hosts: "127.0.0.1 nowadomena.pl" mo??na wpisywa? nowadomena.pl w adresie przegl?darki i trafi? do swojego vhosta. A jak chc? trafi? do strony, kt??ra jest bezpo??rednio w d:/webroot to wystarczy wpisa? 127.0.0.1? My??la??em, ??e hosts poprostu zamienia jeden domene na ip i efekt b?dzie ten sam, niezale??nie czy wpisz? nowadomena.pl, czy 127.0.0.1 - wyl?duj? na tej samej stronie. Czy si? myl??

cgdude

8 maja 2008 15:25
oho.. zue kodowanie. sorry :/

luktom

9 maja 2008 00:23
W specyfikacji protoko??u HTTP w nag????wkach jest pole Host, s??u???ce w??a??nie do obs??ugi vhost??w. Wpisuj?c 127.0.0.1 ten w??a??nie adres podawany jest w polu Host, a wi?c serwer webowy szuka takiego vhosta, gdy natomiast zastosujesz trik z plikiem hosts i w przegl?darce wpiszesz nowadomena.pl, to w??a??nie nowadomena.pl znajdzie si? w polu Host, a serwer odnajdzie vhosta dla nowadomena.pl i nie zastosuje globalnej konfiguracji.

luktom

9 maja 2008 00:25
A odno??nie kodowania: zmienia??em baz? w ostatnim czasie, bo wdra??am now? wersj? silnika (zamierzam wznowi? publikacje artyku????w) i widocznie podczas migracji co?? si? przestawi??o.
Poprawi? w najbli??szym czasie.

Dodaj komentarz

Token

Statystyka
Ładowanie...