Hvis du har en lokal webserver, eller et lign. behov for nemt at kunne oprette mange webhoteller så er det her måske løsningen. Du kan simpelthen oprette dig et helt nyt webdir så nemt som ved at oprette en ny mappe.
Der findes et modul til Apache som lader os angive en virtuel document-root, og denne kan defineres ud fra hele eller dele af domænenavnet. Lad os først aktivere dette modul:
root@lab1:~# a2enmod vhost_alias Enabling module vhost_alias. Run '/etc/init.d/apache2 restart' to activate new configuration! root@lab1:~# /etc/init.d/apache2 restart Restarting web server: apache2 ... waiting .
Det er nemmest at få til at virke på en server med kun én virtualhost, men alternativt skal du bruge din default host-definition, og den vil selvfølgelig kun matche sider der ikke allerede er matchet.
Jeg lavet følgende virtualhost, dette er samtidig den eneste på systemet:
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName v1.dk VirtualDocumentRoot /var/www/%1 </VirtualHost>
V1.dk er et af mine test-domæner, og i dette tilfælde har jeg oprettet et såkaldt stjernealias, det ser således ud (i en BIND Zone fil):
$ORIGIN v1.dk. $TTL 3600 @ IN SOA ns1.mikjaer.com. kontakt.mikjaer.com. ( 1336756293 ; serial 28800 ; refresh after 6 hours 7200 ; retry after 1 hour 604800 ; expire after 1 week 3600 ) ; minimum TTL of 1 day $TTL 300 @ IN NS ns1.mikjaer.com. @ IN NS ns2.mikjaer.com. @ IN A 10.10.10.10 * IN A 10.10.10.10
Og det som stjernealiaset gør er simpelthen at ligegyldigt hvad jeg skriver foran .v1.dk vil det ramme den samme server, dvs. at både foo.v1.dk og bar.v1.dk vil ramme min lab1-server, derfor opretter jeg nu to mapper til formålet, og genstarter Apache:
root@lab1:~# mkdir /var/www/foo root@lab1:~# mkdir /var/www/bar root@lab1:~# echo This is foo > /var/www/foo/index.html root@lab1:~# echo This is bar > /var/www/bar/index.html root@lab1:~# /etc/init.d/apache2 restart Restarting web server: apache2 ... waiting .
Og nu kan jeg gå ind på hhv. foo.v1.dk og bar.v1.dk og se beskederne:
This is foo
og
This is bar
Når først den nye config fil er lavet og apache reloaded kan du oprette alle de mapper og dermed subdomæner du vil:
root@lab1:~# mkdir /var/www/new root@lab1:~# echo Jeg er ny > /var/www/new/index.html
Resultatet i en browser:
Jeg er ny
Håber i får glæde af det her indlæg, det ved jeg ihvertfald at jeg selv gør, jeg har nemlig lige haft en kunde der har efterspurgt netop den her konfiguration 🙂