15

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.

6
  • nothing in the /etc/apache2/available-sites/* configs?
    – ragnq
    Nov 18, 2011 at 16:28
  • The default OSX setup does not use the available-sites or enabled-sites structure.
    – vinhboy
    Nov 18, 2011 at 16:33
  • 1
    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, 2011 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, 2011 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, 2011 at 17:41

3 Answers 3

14

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.

<IfDefine WEBSHARING_ON>
#
# 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.

2
  • 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, 2013 at 22:13
  • Is that true that some <IfDefine WEBSERVICE > should be commented since its a WEBSERVICE ?
    – Gucho Ca
    May 26, 2016 at 12:18
0

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

2
  • Could you add more detail? Your post contains more information than what you said here. Nov 27, 2011 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, 2011 at 19:17
0

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).

2
  • The entire /etc folder is a link to /private/etc so the two are one and the same. Dec 5, 2013 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, 2013 at 5:59

You must log in to answer this question.

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