This post might be outdated now. A new post will be placed soon.

feather-small When now days its getting economical to have a server, the need of hosting many website on single server is in demand.  This article will cover how to host multiple instance of website on a Apache web server.

To start with make sure you have apache2 package installed on your server.

To install apache2 on Ubuntu/debian/Mint server pass following command

# apt-get install apache2

To install it on Fedora/Redhar/Suse

# yum install apache2

After installing Apache package, create directory for your website. To create directory pass the following command.

# mkdir -p /path/to/directory/of/virtual/website

Now make sure you allow apache user to be owner of that directory so that site can work flawlessly(This method is important if you have wordpress installation in my case 😉 )

# chown -R www-data:www-data /path/to/directory/of/virtual/website

www-data is default user in many distros.

To make sure other user can access the directory and files pass following command 

 

# chmod -R 755 /path/to/directory/of/virtual/website

 

Now create a index.html file with your content in that directory.

After finishing above steps, we can now proceed with creating the Virtual Host for Apache 🙂

To start with it, you have to create new host file in Apache configuration directory

 

# cp /etc/apache2/sites-available/default /etc/apache2/sites-avaialble/yourvirtualhost.com

 

Edit that virtual host file and add following line after <VirtualHost *:80>

 

ServerName yourvirtualhost.com

 

Make sure you replace yourvirtualhost.com with your website address 😉

In case you want that site to be available with more then one name you can include following (Eg. www.yourdomain.com) add following after ServerName line

 

ServerAlias sub.yourvirtualhost.com

 

Next step is to point the file to correct directory

Replace all instance of /var/www or /var/www/html/ with /path/to/directory/of/virtual/website

Now your file should be look something like this


<VirtualHost *:80> ServerAdmin [email protected] ServerName abhashtech.com ServerAlias www.abhashtech.com DocumentRoot /path/to/directory/of/virtual/website <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /path/to/directory/of/virtual/website> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>

 

Save the file, and activate the virtual host by following command :

 

# a2ensite yourvirtualhost.com

 

After activating virtual host, restart or reload the Apache service by passing following command

 

# service apache2 reload

or

# service apache2 restart

Repeat the step after installing apache2 for adding more virtual host.

 

P.S. Apache and the Apache feather logo are trademarks of The Apache Software Foundation.