Seting up Virtual Hosts on Apache with subdomains of localhost allows you to access your local files as if you had different subdomains, eg site1.localhost/ and site2.localhost/

This is particularly useful if you're working on and testing several different websites on your system, and each one requires top-level folders for things such as ServerSideIncludes files and stylesheets.


In the Network Configuration Applet, go to the 'Hosts' tab and edit the entry for

  • IP address:
  • Aliases: add 'site2.localhost'

Alternatively, you can edit /etc/hosts directly, adding a line such as:       site2.localhost

To get the Network Configuration Applet gui and the host tab under Ubuntu 8.10 you must install the GNOME Network Administration Tool. After installation click System>Administration>Network and access the hosts tab.


Assuming you're using apache2, the cleanest thing to do is create a new configuration file in /etc/apache2/sites-available, and then enable the new site with the command a2ensite (which is similar to create a SymbolicLink to the site in /etc/apache2/sites-enabled).

This leaves the default configuration untouched. To revert, simply use the command a2dissite (or delete the symbolic link in /etc/apache2/sites-enabled).

gksudo gedit /etc/apache2/sites-available/myconfig

The text in your new file should be something like this...

<VirtualHost *>
        DocumentRoot /home/username/mysite/
        ServerName site2.localhost

        <Directory /home/username/mysite/>
                Options Indexes FollowSymLinks MultiViews +Includes
                AllowOverride None
                Order allow,deny
                allow from all

Then do:

sudo a2ensite myconfig

Finally, restart Apache to apply changes:

sudo /etc/init.d/apache2 restart

If the subdomains do not work, try doing this:

  • Edit /etc/apache2/httpd.conf and add this line

NameVirtualHost *
  • Restart Apache to apply changes:

sudo /etc/init.d/apache2 restart

LocalhostSubdomain (last edited 2011-07-22 10:34:38 by Gurnarok)