Virtual Hosting in Ubuntu Hardy Heron: Case Example
Consider the case of two domain names mysite1 and site2 to be served on IP Address 192.168.1.100 (port 80)
Before proceeding let us look at how resolv.conf and hosts file are set up ...
$ cat /etc/resolv.conf search kurinchilion.com nameserver 192.168.1.100
$ cat /etc/hosts 127.0.0.1 localhost 192.168.1.100 myserver.kurinchilion.com myserver
# The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
We can organize the name server information, directory to serve under each circumstance, folder permission in different ways
i) organize all name server information under /etc/apache2/conf.d/vhosts.conf
NameVirtualHost 192.168.1.100 <VirtualHost 192.168.1.100:80> ServerName mysite1 DocumentRoot /var/www/mysite1 <Directory /var/www/mysite1> Options -Indexes FollowSymLinks AllowOverride All < $ sudo /etc/init.d/apache2 restart
$ sudo /etc/init.d/apache2 force-reload
ii) have a modular approach to site organization and list separate files based on domain name under /etc/apache2/sites-enabled
File: mysite1 <VirtualHost 192.168.1.100:80> ServerName mysite1 DocumentRoot /var/www/mysite1 Options FollowSymLinks AllowOverride All </VirtualHost>
File: mysite2 <VirtualHost 192.168.1.100:80> ServerName mysite2 DocumentRoot /home/mysite2 </VirtualHost>
After creating the above files, issue the following commands
$ a2ensite mysite1
$ a2ensite mysite2
(If you want to disable the site configuration, then issue a2dissite sitename)
$ sudo ln -s /etc/apache2/sites-available/mysite1 /etc/apache2/sites-enabled/mysite1
$ sudo ln -s /etc/apache2/sites-available/mysite2 /etc/apache2/sites-enabled/mysite2
$ sudo /etc/init.d/apache2 restart
$ sudo /etc/init.d/apache2 force-reload
iii) Organize the same information stated in step (i) but under /etc/apache2/sites-available/default (This already has a symbolic link to /etc/apache2/sites-enabled/000-default)