Seting up Virtual Hosts on [[ApacheMySQLPHP|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... {{{ DocumentRoot /home/username/mysite/ ServerName site2.localhost 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 }}}