reedsmith: Yes, you must set up a default VirtualHost. Any domain name that resolves to your IP and is not listed in a VirtualHost directive will default to the first one listed. This caused me some embarassment when I was hosting a small business and when my client left the www off of his URL, it defaulted to the first VH on my server, which happened to be a porno site! (Which is why you want to add ServerAlias *.domainname.com to each VH directive)
From the Apache docs:
For example, suppose that you are serving the domain www.domain.tld and you
wish to add the virtual host www.otherdomain.tld, which points at the same IP
address. Then you simply add the following to httpd.conf:
phz: First off, unless you have a specific reason for assigning other ports, don't do it. It'll only make it harder to reach your site if everyone has to append a port number to your URL.
Secondly, if you rename the /home/user1/html directory to /home/user1/public_html, then apache will serve the pages there to the URL www.whatever.com/~user1.
So you don't need the symlinks.
 Or you can change the following section in httpd.conf:
bobby sands: I think you need to use the 'NameVirtualHost *' (or 'NameVirtualHost xxx.xxx.xxx.xxx:80') directive, not NameServer xxx.xxx.xxx.xxx:80.