Problem---Hosting multiple websites with Apache2

I am trying add three namebased virtual hosts in local apache2 webserver
OS ubuntu 10.10

The three sites are :www.site1.eka,www.site2.eka,www.site2.eka

The first i created a file is virtual.conf in conf.d directory its content is :

#
# we're running multiple virtual hosts.
#
NameVirtualHost *:80

Next i created following files in sites-available directory

www.site1.eka is as follows

#
#site1.eka (/etc/apache2/sites-available/www.site1.eka)
#
<VirtualHost *:80>
ServerAdmin [email]webmaster@site1.eka[/email]
ServerName www.site1.eka
ServerAlias site1.eka

# Indexes + Directory Root.
DocumentRoot /var/www/projects/www.site1.eka/htdocs/
DirectoryIndex index.html
#DocumentRoot /var/www/projects/www.site1.eka/htdocs/

# CGI Directory
ScriptAlias /cgi-bin/ /var/www/projects/www.site1.eka/cgi-bin/
<Location /cgi-bin>
Options +ExecCGI
</Location>


# Logfiles
ErrorLog /var/www/projects/www.site1.eka/logs/error.log
CustomLog /var/www/projects/www.site1.eka/logs/access.log combined
</VirtualHost>

www.site2.eka is as follows:

#
#site2.eka (/etc/apache2/sites-available/www.site2.eka)
#
<VirtualHost *:80>
ServerAdmin [email]webmaster@site2.eka[/email]
ServerName www.site2.eka
ServerAlias site2.eka

# Indexes + Directory Root.
DirectoryIndex index.html
DocumentRoot /var/www/projects/www.site2.eka/htdocs/

# CGI Directory
ScriptAlias /cgi-bin/ /var/www/projects/www.site2.eka/cgi-bin/
<Location /cgi-bin>
Options +ExecCGI
</Location>


# Logfiles
ErrorLog /var/www/projects/www.site2.eka/logs/error.log
CustomLog /var/www/projects/www.site2.eka/logs/access.log combined
</VirtualHost>

www.site3.eka is as follows

#
#site3.eka (/etc/apache2/sites-available/www.site3.eka)
#
<VirtualHost *:80>
ServerAdmin [email]webmaster@site3.eka[/email]
ServerName www.site3.eka
ServerAlias site3.eka

# Indexes + Directory Root.
DirectoryIndex index.html
DocumentRoot /var/www/projects/www.site3.eka/htdocs/

# CGI Directory
ScriptAlias /cgi-bin/ /var/www/projects/www.site3.eka/cgi-bin/
<Location /cgi-bin>
Options +ExecCGI
</Location>


# Logfiles
ErrorLog /var/www/projects/www.site3.eka/logs/error.log
CustomLog /var/www/projects/www.site3.eka/logs/access.log combined
</VirtualHost>

Then i edited hosts file in /etc

hosts is as follows:

14.96.78.172 eka-Lenovo-G560 # Added by NetworkManager
127.0.0.1 localhost.localdomain localhost
::1 eka-Lenovo-G560 localhost6.localdomain6 localhost6
127.0.1.1 eka-Lenovo-G560

#vhosts
*:80 www.site1.eka
*:80 www.site2.eka
*:80 www.site3.eka

# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Then i ran following commands

a2ensite www.site1.eka
a2ensite www.site2.eka
a2ensite www.site3.eka

Then i restarted apache /etc/init.d/apache2 restart

The output of apache2ctl -S
VirtualHost configuration:

127.0.0.1:80 127.0.0.1 (/etc/apache2/sites-enabled/000-default:1)
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server www.site1.eka (/etc/apache2/sites-enabled/www.site1.eka:4)
port 80 namevhost www.site1.eka (/etc/apache2/sites-enabled/www.site1.eka:4)
port 80 namevhost www.site2.eka (/etc/apache2/sites-enabled/www.site2.eka:4)
port 80 namevhost www.site3.eka (/etc/apache2/sites-enabled/www.site3.eka:4)
Syntax OK

I also digged the site : dig www.site1.eka

; <<>> DiG 9.7.1-P2 <<>> www.site1.eka
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 7507
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;www.site1.eka. IN A

;; AUTHORITY SECTION:
. 8713 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2010121500 1800 900 604800 86400

;; Query time: 83 msec
;; SERVER: 121.242.190.210#53(121.242.190.210)
;; WHEN: Thu Dec 16 01:43:48 2010
;; MSG SIZE rcvd: 106

When i visit the url http://www.site1.eka/ in browser it says server not found.

eka,

Sorry, there was so much in your post that it was difficult to strip out the meat and get to the question you meant to ask.

Ubuntu is very different than my WinDoze test server but the Apache directives should all be the same.

IMHO, the problem here is a DNS problem. Your hosts file should (probably) not use *:80 but the IP Addresses should be used. BECAUSE ONLY YOUR COMPUTER has access to your host file, though, others will not be able to access these “domains” unless they alter their hosts file(s), too.

Regards,

DK