Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am baffled.

I don't see where /usr/htdocs is specified as the DocumentRoot for apache2 on Mac OS X Lion.

It is the default DocumentRoot on a new OSX Lion install.

Can someone point me to where this is specified?

I looked in the entire /etc/apache2 directory and could not find that rule.

share|improve this question
nothing in the /etc/apache2/available-sites/* configs? – ragnq Nov 18 '11 at 16:28
The default OSX setup does not use the available-sites or enabled-sites structure. – vinhboy Nov 18 '11 at 16:33
It's not. A new OS X Lion installation uses /Library/WebServer/Documents, just like the major releases before Lion, which is also where the button Open Computer Website Folder… in System Preferences » Sharing » Web Sharing points to. Did you install a package manager like Homebrew, Fink, or MacPorts; XAMPP or a similar Apache solution? What is the output of which httpd and ps aux | grep httpd in Terminal? – Daniel Beck Nov 18 '11 at 17:31
I did not install any of those package managers. But thanks, I will look down that path. I do see the /Library/WebServer/Documents directive in the httpd.conf file. However, it is obviously being overwritten somewhere else. I tried following all the references to other .conf file, but no luck yet. – vinhboy Nov 18 '11 at 17:38
Why not grep for /usr/htdocs on your machine and see where it's overwritten? — (/cc @dan, you didn't get a reply for this) – slhck Nov 18 '11 at 17:41
up vote 14 down vote accepted

When "Web Sharing" is NOT enabled it takes /usr/htdocs as the root. When you enable "Web Sharing" it will take the config file at /etc/apache2/httpd.conf. The directory will be the one specified near the following section on the file.

# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
DocumentRoot "/Library/WebServer/Documents"

Also you con use your "Sites" directory at /Users/USERNAME/Sites accessing with localhost/~USERNAME.

share|improve this answer
Spot on. Note also the line ServerRoot "/usr" - with Web Sharing OFF and no alternate DocumentRoot specified, it seems the Apache default is to look for htdocs within the defined Server Root. – rymo Oct 24 '13 at 22:13
Is that true that some <IfDefine WEBSERVICE > should be commented since its a WEBSERVICE ? – Gucho Ca May 26 at 12:18

Enable your Web Sharing first, Go to the system preferences -> Sharing then enable web sharing. I wrote a post on it.

share|improve this answer
Could you add more detail? Your post contains more information than what you said here. – Simon Sheehan Nov 27 '11 at 19:09
so he wrote a post, go and read it and congifigure your web sharing in lion ))) I did this too, earlier now I have folder "Sites" in my home dir and everything works. – holms Nov 27 '11 at 19:17

This Q helped me solve identical problem on SnowLeopard today. Beware: it was the httpd.conf in /private/etc/apache2 not in /etc/apache2 (which also exists) that got read and pointed to /Library/WebServer/Documents in my case.

I hope this helps (others too).

share|improve this answer
The entire /etc folder is a link to /private/etc so the two are one and the same. – Fireandlight27 Dec 5 '13 at 1:39
@Fireandlight27 I don't think it was on SL, as I would'n write otherwise. I'm glad they are linked in your case; which OS version? – P Marecki Dec 7 '13 at 5:59

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .