0

I'm hitting the most frustrating problem with the devlopment environment on my Mac at work (OS X 10.6.6, Apache 2.2.15, PHP 5.3.3 - all default installs with very little modification). Last night I started working on a new website, I added a virtual host and added a few domains to /etc/hosts to resolve to my local machine.

My hosts file entry looks like this:

10.10.11.199    dev.example.com
10.10.11.199    example.com

And my virtual host looks like this:

<VirtualHost *>
    DocumentRoot "/Volumes/Websites/ExampleClient/example.com/source"
    ServerName example.com
    ServerAlias *.example.com
</VirtualHost>

I'd like to think it's something stupid I've done, but the annoying thing is it was working last night! The only thing that's changed since then is that I restarted my machine this morning. The domain example.com works as expected, but dev.example.com doesn't, the request drops into the default virtual host at /Volumes/Websites/Personal/Rowan Manning.

Things I've tried:

  1. Explicitly setting dev.example.com as a virtual host ServerName with no aliases
  2. Restarting apache with sudo apachectl restart;
  3. Restarting apache with sudo apachectl stop; sudo apachectl start;
  4. Restarting my Mac (again)
  5. Checking that the /Volumes/Websites/ExampleClient/example.com/source directory is OK
  6. Checking the permissions for /Volumes/Websites/ExampleClient/example.com/source
  7. Checking that I'm editing the right virtual hosts file by forcing it to error

I'm stuck! Any ideas?

Edit (21st March 11):
The problem seems to have resolved itself over the weekend. I haven't changed anything, yet again... I'm completely mystified but glad it's working!

Rowan
  • 115
  • 7
  • Look at logs (error.log and access.log) – NARKOZ Mar 16 '11 at 11:35
  • I just did, but there's nothing there to indicate a problem. The access log just shows requests to `/` and `/favicon.ico` and the error log contains nothing related to this (just some PHP errors and missing favicons etc.) – Rowan Mar 16 '11 at 12:19
  • Do you have NameVirtualHost *:80 somewhere in your config? – Marcin Mar 16 '11 at 13:54
  • I do have a `NameVirtualHost *` in my config @Marcin, see comments on @Jari's answer below for more details – Rowan Mar 16 '11 at 15:27

1 Answers1

0

Some thoughts:

1) Try adding the port number to the VirtualHost directive, like

<VirtualHost *:80>

Make sure that it matches with the port number of the default VirtualHost directive and the NameVirtualHost directive.

2) Try using IP address 127.0.0.1 instead of 10.10.11.199, if the server is on localhost.

3) Remember to reload the page in your browser (or better, restart the browser), and not just access the domain directly, after you have changed the configuration.

4) How does your default VirtualHost configuration look like?

Jari Jokinen
  • 181
  • 1
  • Thanks Jari, I didn't mention but I have tried points 1–3 without any luck. My default virtual host is like this: ` DocumentRoot "/Volumes/Websites/Personal/Rowan Manning" ` – Rowan Mar 16 '11 at 12:54
  • Do you have ServerName defined for the default VirtualHost? Also, make sure you don't have DocumentRoot directives specified outside the VirtualHost blocks (in httpd.conf or somewhere else). – Jari Jokinen Mar 16 '11 at 13:47
  • And, you could try sudo apachectl -t -D DUMP_VHOSTS if you'd like to see more information about your virtual host configuration. – Jari Jokinen Mar 16 '11 at 13:54
  • Thanks for those (I didn't know the DUMP_VHOSTS bit - really useful) but still not working! Banging my head against the desk here... The annoying thing is that `example.com` and even `testing.example.com` work fine, but `dev.example.com` doesn't. I don't even understand how that's possible! There are no other virtual host configs that reference the example.com domain – Rowan Mar 16 '11 at 15:24