This is what I'm working on, and if I'm not mistaken then this is to replace the entire default conf file. Let me know if you see any obvious mistakes. Name-Based Virtual Hosts With name-based virtual hosts, one instance of Apache hosts several domains. You do not need to set up multiple IPs for a machine. This is the easiest, preferred alternative. Reasons against the use of name-based virtual hosts are covered in the Apache documentation. Configure it directly by way of the configuration file /etc/apache2/ sites-available/filename(by default we have default name file take this as reference and create new file). To activate name-based virtual hosts, specify a suitable directive. NameVirtualHost *. * is sufficient to prompt Apache to accept all incoming requests. Subsequently, configure the individual hosts: ------------ NameVirtualHost *. * ServerName www.example.com DocumentRoot /home/www/htdocs/example.com ServerAdmin webmaster@example.com ErrorLog /var/log/apache2/www.example.com-error_log CustomLog /var/log/apache2/www.example.com-access_log common ServerName www.myothercompany.com DocumentRoot /home/www/htdocs/myothercompany.com ServerAdmin webmaster@myothercompany.com ErrorLog /var/log/apache2/www.myothercompany.com-error_log CustomLog /var/log/apache2/www.myothercompany.com-access_log common