I am trying to setup my dev machine with virtual hosts so I can access my development projects with a simple url, like http:// project.dev/ rather that a whole http:// type of url.

Now, I'm aware there are many tutorials and questions already answered about this, but after trying many of them, I feel like I'm running in circles here.

The problem is simple: after setting up my hosts file and my virtual hosts, any attempt to access a virtual hosts irremediably displays the content of my server DocumentRoot.

my hosts file:       localhost       mydomain.dev broadcasthost
::1             localhost
fe80::1%lo0     localhost

my httpd-vhosts.conf

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot /Users/pilot/Sites/

<VirtualHost *:80>
    ServerName mydomain.dev
    DocumentRoot /Users/pilot/Sites/devel/vytamin/dev/

I precise that the httpd-vhosts.conf file IS loaded in my httpd.conf and I do get a warning if I point the virtual host document root to a wrong folder.

I made a try setting the localhost virtual host to the following, without any success.

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot /Users/pilot/Sites/devel

The following URLS all display the DocumentRoot of my server defined in my httpd.conf file, and seem to ignore the DocumentRoot defined in my VirtualHosts.

http:// localhost/
http:// mydomain.dev/

I'm running Apache2.2 on Mac OSX 10.5 Leopard, but not the one shipped with mac os. I compiled my own under /usr/local/apache2 and web sharing IS disabled

I can't see anything wrong with my set up so I hope the community will! Thanks for your help!

3 Answers 3


This may sound simplistic, but did you restart Apache after making these changes?

Edit: Also, is it mydomain or mydomain.dev? You seem to switch back and forth between the two.

  • Hi, Yes I obviously restarted apache and cleared cache in the different browsers I tested, I know this could be an issue as well. I edited the 'mydomain' issue, it is indeed 'mydomain.dev' , it was a typo. Cheers
    – ekynoxe
    Sep 21, 2009 at 14:56
  • This one deserves an up, since it is the correct answer.
    – user1797
    Sep 21, 2009 at 18:24
  • Thanks R. Bemrose to point me in the right direction ;) It was indeed linked to the restarting of Apache...
    – ekynoxe
    Sep 23, 2009 at 10:24

Ok, I found the problem!

The configuration above is perfectly fine, it was just that my apache was not restarting properly. Neither apache_ctl graceful or apache_ctl restart was terminating all httpd processes I have running, therefore failing to reload properly the changes in my configuration files. Once I killed the remaining processes and really restarted apache, it worked...

Solved, but I feel dumb to have found that!

Now I have a daemon situation to solve!


Have you verified that the apache NameVirtualHost directive is set correctly (and not commented out)? That step is necessary for any name-based vhosts to function correctly.

Here is some more info on the topic.

  • Ah, sorry I forgot to post it in the question, yes it is setup like this: NameVirtualHost *:80 I edited the question as well. Thanks
    – ekynoxe
    Sep 21, 2009 at 14:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.