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.
Hosts
In the Network Configuration Applet, go to the 'Hosts' tab and edit the entry for 127.0.0.1:
- IP address: 127.0.0.1
- Aliases: add 'site2.localhost'
Alternatively, you can edit /etc/hosts directly, adding a line such as:
127.0.0.1 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.
Apache
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 </Directory> </VirtualHost>
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