This post might be outdated now. A new post will be placed soon.
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 webmaster@yourwebsite.com 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.