I've set up tens of sites before, I've been following the same process as always, but for some reason whenever i visit www.mysite.com, the apache server loads /var/www (the default virtual host) instead of the mysite.com virtual host.

going to mysite.com (without the www) works and goes to the right place (/home/mysite/public_html).