How To Create Virtual Hosts On Apache Server To Host Multiple Websites

If you have apache installed, you probably know what localhost is. Localhost allows a single website to be hosted locally. However, when using virtual hosts, you can host multiple websites on a single server. The process is fairly simple and I will demonstrate it here itself. I am assuming you are running Ubuntu with the apache server.

Step 1

Move to the directory called /etc/apache2/sites-available

You will see a file called 000-default.conf, we need to copy that file to the same place with a change in the name.

I am creating a virtual host for sample.com so I will just copy and rename it to sample.com.conf using the following command –Create a virtual host file

Step 2

​Now we need to edit this file. I will be using gedit for this. You can see that there are a lot of comments in this file. We need to get rid of all the comments to make it more understandable.

edit apache virtual host file in ubuntu

So you can see in the image below I have removed the comments and this is what it looks like now.

create a new apache virtualhost file

​Now we need to add 2 important configurations The ServerName and the ServerAlias. The server name is the very basic domain that should match your virtual host. The ServerAlias is another configuration that should match the base domain. So both these configurations will be as follows –ServerName & ServerAlias

Just add both configs to the file and change the DocumentRoot to where you would want the website to be stored.  I am using a sub-folder called sample in /var/www/html directory.

So I will change my document root to this –

DocumentRoot /var/www/html/sample.

​​So my file now looks like this.

host multiple sites on localhost
host multiple sites on localhost

Step 3

​You need to now create an index file for your website. I have created my index.php file with the following code. Example PHP Code

Step 4

​Just edit your hosts file and match your virtual host domain to your localhost IP (127.0.0.1). Edit Host File

edit apache virtualhost file

Step 5

Enable the virtual host site by typing in the following command –Enable Virtual host​You will then be asked to restart apache –Restart Apache Server

Step 6

Test your website by visiting the domain name you specified.

multiple sites on ubuntu localhost with apache
multiple sites on ubuntu localhost with apache

Hurray! We have successfully created a virtual host on our apache server. If you ever get stuck at any step, feel free to drop a comment below.

SHARE THIS POST

MassiveGRID Banner
2 Comments Text
  • hello i am stuck, where do you put the .php file and what is the “example php code” ? sorry im new to this so im a little bit rusty on everything. thank you

    • The example PHP file is a simple PHP code to confirm if everything is working properly. And you put this PHP file in the DocumentRoot, ‘/var/www/html/’. If you’re following my article step by step, then ‘/var/www/html/sample’. The DocumentRoot is a variable path that can also be changed from the apache site’s configuration at `/etc/apache2/sites-available/`.

  • Leave a Reply

    Your email address will not be published. Required fields are marked *