There are two kinds of virtual hosting, name based and IP based. Depending on the setup you want, it needs to be setup differently.
In /etc/apache/httpd.conf file
1. Check your "Listen" section. If you are using port other than 80, it needs to be explicitly uncommented.
2. You need to have Binding turn on.
3. You need to check NameVirtualHost section. If you are going to use IP based virtual hosting, you need to define it here. If you are for Namebased, see the next section.
# BindAddress * ( will bind all IP on that box )
4. If you are setting up Name-based one, here is the VirtualHost entry.
5. If you are setting up IP based, then here is the entry. ( Note- the NameVirtualHost entry is at item 3 ).
Yeap, it's complicated but once you get it going, it's easier to setup. It took me two days to get it all sort it but once I get what section for what, I don't need to look at the doc ever again. Apache is so much easier than IIS.
If you need more help, check it out here.