2009-01-21, 16:33:27
Jeżeli na jednej maszynie i jednym IP obsługujemy wiele domen, musimy skonfigurować NameVirtualHost.
Musimy znaleźć plik httpd.conf (/etc/apache2/httpd.conf - dla Debiana) gdzieś w folderze apache2.
Na początku httpd.conf tworzymy wpis:
Gdzie:
- ip to zewnętrzny adres naszego serwera (albo ten, na którym chcemy udostępniać usługe).
- port czyli numer portu na którym pracuje nasz serwer (zazwyczaj 80).
Przykład:
Ten kod daje znać, że będziemy działać na jednym IP. Jeżeli chcemy operować na wszystkich dostępnych IP zamiast IP dajemy gwiazdke *
Następnie musimy dodać wpisy (VirtualHost) dla poszczególnych domen, subdomen lub odwołań po IP.
Po słowie VirtualHost musi wystąpić to samo IP co po dyrektywie NameVirtualHost.
ServerName oznacza pełną nazwe dla domeny, ServerAlias to jest druga nazwa i tutaj zazwyczaj dajemy nazwe domeny bez www, tak żeby mozna sie bylo odwoływać na dwa sposoby (www.domena.pl i domena.pl).
ServerAdmin to nasz e-mail.
Natomiast DocumentRoot to scieżka, na serwerze na którą ma wskazywać domena.
W tej konfiguracji co podałem najpierw zadeklarowałem domene i miejsce na które ma wskazywać, potem subdomene dla tej domeny. Następnie zadeklarowałem inną domene.
Na końcu zadeklarowałem _default_ czyli jaką lokacje pokaże nam apache2, jeśli odwołamy sie po IP, albo po domenie, która nie została wyżej zadeklarowana.
INFO: Samo zadeklarowanie adresu IP i portu w dyrektywnie NameVirtualHost nie znaczy, że serwer będzie na takiej nasłuchiwał. To już trzeba zadeklarować w apache2.conf
Więcej na ten temat można znaleźć tutaj: http://httpd.apache.org/docs/2.0/vhosts/name-based.html
Musimy znaleźć plik httpd.conf (/etc/apache2/httpd.conf - dla Debiana) gdzieś w folderze apache2.
Na początku httpd.conf tworzymy wpis:
Kod:
NameVirtualHost [b]ip:port[/b]
- ip to zewnętrzny adres naszego serwera (albo ten, na którym chcemy udostępniać usługe).
- port czyli numer portu na którym pracuje nasz serwer (zazwyczaj 80).
Przykład:
Kod:
NameVirtualHost 79.77.134.56:80
Ten kod daje znać, że będziemy działać na jednym IP. Jeżeli chcemy operować na wszystkich dostępnych IP zamiast IP dajemy gwiazdke *
Następnie musimy dodać wpisy (VirtualHost) dla poszczególnych domen, subdomen lub odwołań po IP.
Kod:
<VirtualHost 79.77.134.56:80>
ServerName www.domena.pl
ServerAlias domena.pl
ServerAdmin admin@domena.com
DocumentRoot /var/www/domena
</VirtualHost>
<VirtualHost 79.77.134.56:80>
ServerName www.subdomena.domena.pl
ServerAlias subdomena.domena.pl
ServerAdmin admin@domena.com
DocumentRoot /var/www/domena/subdomena
</VirtualHost>
<VirtualHost 79.77.134.56:80>
ServerName www.innadomena.pl
ServerAlias innadomena.pl
ServerAdmin admin@innadomena.com
DocumentRoot /var/www/innadomena
</VirtualHost>
<VirtualHost _default_>
ServerName 79.77.134.56
ServerAdmin admin@domena.com
DocumentRoot /var/www/default
</VirtualHost>
Po słowie VirtualHost musi wystąpić to samo IP co po dyrektywie NameVirtualHost.
ServerName oznacza pełną nazwe dla domeny, ServerAlias to jest druga nazwa i tutaj zazwyczaj dajemy nazwe domeny bez www, tak żeby mozna sie bylo odwoływać na dwa sposoby (www.domena.pl i domena.pl).
ServerAdmin to nasz e-mail.
Natomiast DocumentRoot to scieżka, na serwerze na którą ma wskazywać domena.
W tej konfiguracji co podałem najpierw zadeklarowałem domene i miejsce na które ma wskazywać, potem subdomene dla tej domeny. Następnie zadeklarowałem inną domene.
Na końcu zadeklarowałem _default_ czyli jaką lokacje pokaże nam apache2, jeśli odwołamy sie po IP, albo po domenie, która nie została wyżej zadeklarowana.
INFO: Samo zadeklarowanie adresu IP i portu w dyrektywnie NameVirtualHost nie znaczy, że serwer będzie na takiej nasłuchiwał. To już trzeba zadeklarować w apache2.conf
Więcej na ten temat można znaleźć tutaj: http://httpd.apache.org/docs/2.0/vhosts/name-based.html
Chcesz pomóc? Wstaw jako sygnature na innym forum:
Kod znajdziesz tutaj: http://forum.pcmod.pl/viewtopic.php?pid=522#p522
Asus P5K WS :: E2160 @ 3,63GHz BOX :: 2x1GB Geil Ultra DDR2 800MHz CL4 :: Galaxy 7600GS 128MB 1.4ns 500/1400 @ 600/1800 16k 03 :: Seagate ST3250410AS 250GB :: Amacrox Warrior AX-450PNF
Kod znajdziesz tutaj: http://forum.pcmod.pl/viewtopic.php?pid=522#p522
Asus P5K WS :: E2160 @ 3,63GHz BOX :: 2x1GB Geil Ultra DDR2 800MHz CL4 :: Galaxy 7600GS 128MB 1.4ns 500/1400 @ 600/1800 16k 03 :: Seagate ST3250410AS 250GB :: Amacrox Warrior AX-450PNF