How to Set Up Apache Virtual Hosts in CentOS 7 ?

What is Virtual Hosts/hosting?

Virtual hosting is a method for hosting multiple domain names (with separate handling of each name) on a single server (or pool of servers). This allows one server to share its resources, such as memory and processor cycles, without requiring all services provided to use the same hostname.

Prerequisite is:

You need to access the CentOS 7 server with either root or user access.

You also need to install the apache web server, if you don’t have installed you can use the following commands :


Commands used when

we have root access otherwise

insert sudo behind each and every command

  • yum -y update
  • yum -y install httpd
  • systemctl start httpd
  • systemctl enable httpd
  • systemctl restart httpd
  • systemctl status httpd


After installation, you will see the active status when we set off the status command.

After the proper installation of Apache all you have to follow the proper steps for shared hosting:

Step 1

Buy multiple domain names from the domain provider and configure it with the DNS

Here we have purchased the two domains

For the learning purpose, we have bought from the free domain provider i.e

you can either buy the domain from the domain provider.


Step 2

As this is for the testing purpose so there will be no added text, pictures in these domains.

By default, there will be an index.html file in /var/www/html/index.html

The document root the top-level directory that will save the content of the website.

Here we will create the directory of each virtual host that we plan on making.

Step 3

Here we will delete the default index.html file and after the deletion, we will create the index.html file in the same /html directory.

(for deleting the use $rm -rf index.html command) (to creating use touch command touch index.html)

We have created two dir. name japan123 & japan321 and also created two files index.html

Step 4

In the index.html file for both the domains( & just write the following lines “jack ryan from florida” & “japan321”.

using the editor command $vim var/www/html/japan123/index.html & $vim var/www/html/japan321/index.html

Step 5

After doing this we will enter into the Apache configuration file to create the virtual hosts

For doing this process

Open your editor of choice and create the following basic Virtual Host configuration file:

<VirtualHost *:80> || <VirtualHost *:80>

DocumentRoot “/var/www/html/japan123” || DocumentRoot “/var/www/html/japan321”

ServerName || ServerName

ServerAlias || ServerAlias

<Directory /var/www/html/japan123> || <Directory /var/www/html/japan321>

Require all granted || Require all granted

</Directory> || </Directory>

</VirtualHost> || </VirtualHost>

Here we have made two virtual hosts to connect with the single server

So we have to insert the following commands shown in the above picture.

Step 6

After saving with the file we have to restart the httpd server

# systemctl restart httpd

Step 7

At last, we just put both the domain names & in the web browser.

Conclusion: After this you will able to host multiple domain on a single server.

Learn how to scale, manage, and optimize your applications with a SLB. Read our solution brief "Get More from Your Enterprise Network".


Get started with CloudMinister Today