Audit your apache configuration...
There are lots of ways that you can screw up your apache configuration... here is a way to at least see what apache thinks is going on..
on redhat try
httpd -S
on debian it's
apache2ctl -S
Output:
[Wed May 26 19:01:45 2010] [warn] NameVirtualHost 192.168.65.150:84 has no VirtualHosts [Wed May 26 19:01:45 2010] [warn] NameVirtualHost 192.168.65.150:85 has no VirtualHosts [Wed May 26 19:01:45 2010] [warn] NameVirtualHost *:84 has no VirtualHosts VirtualHost configuration: 192.168.65.150:80 is a NameVirtualHost default server site1.dev (/srv/site1/etc/httpd.conf:1) port 80 namevhost site20.dev (/srv/site20/etc/httpd.conf:1) port 80 namevhost site15.dev (/srv/site15/etc/httpd.conf:1) port 80 namevhost site12.dev (/srv/site12/etc/httpd.conf:1) port 80 namevhost site4.dev (/srv/site4/etc/httpd.conf:1) port 80 namevhost site3.dev (/srv/site3/etc/httpd.conf:1) *:80 is a NameVirtualHost default server site50.dev (/etc/apache2/sites-enabled/010-site50:1) port 80 namevhost site50.dev (/etc/apache2/sites-enabled/010-site50:1)
That is virtual hosts, ports, warnings and named servers all in one command along with a path to the files where they are defined... Pretty awesome..