How To Configure Apache Virtual Hosts on CentOS 7

How To Configure Apache Virtual Hosts on CentOS 7

Introduction

Virtual Hosts are used to run more than one domain off of a single IP address. This is especially useful to people who need to run several sites off of one virtual private server.

Requirements

  • A desktop machine running Linux
  • A static IP address.

Set Up

sudo yum update
sudo yum install httpd (for Centos )
sudo apt-get install httpd (for Ubuntu )
start Httpd service
/etc/init.d/httpd start ( Centos )
/etc/init.d/apache2 start  ( Ubuntu )

Create a New Directory

First,make a directory structure where we will keep the new website’s information.
mkdir -p /var/www/html/www.sam.com

Grant Permissions

chown -R apache:apache /var/www/html/www.sam.com\
chmod -R 755 /var/www/html

Create the Page

We need to create a new file called index.html within our configurations directory.
Vim /var/www/html/www.sam.com/index.html
Add the following content.
<html>
<head>
<title>www.sam.com</title>
</head>
<body>
<h1>The sam.com virtual host is working!</h1>
</body>
</html>
Save and close the file when you are finished.

Turn on Virtual Hosts

The next step is to enter into the apache configuration file itself.
sudo vi /etc/httpd/conf/httpd.conf
#Listen 12.34.56.78:80
Listen 80
<VirtualHost *:80>
ServerName www.sam.com
ServerAlias sam.com
DocumentRoot /var/www/html/www.sam.com
ErrorLog /var/www/html/www.sam.com/error.log
CustomLog /var/www/html/www.sam.com/access.log combined
</VirtualHost>

Save & Exit
When you are finished, You can check the syntax of files with the following command:
sudo apachectl configtest
After the syntax check is done, restart Apache to make these changes take effect.
sudo systemctl restart httpd

Setting Up the Local Hosts

Now, you need to create DNS record for www.vhost1.com to test the virtual hosts. One easy way is to add a "domain name to IP mapping" entry to the /etc/hosts file.
Add the following lines, using the static IP address of your server:
127.0.0.1  www.sam.com
Save and exit the file.
Now on the desktop Linux computer, open your web browser and go to the URLs
http://www.sam.com