Fixing 403 Forbidden on alias directory with Apache
I was having this issue on OS X too. It turned out gliptak was right, but I've some more detail to add.
We're both attempting to configure a virtual directory for a folder under a user's home folder; I think this is why we're having the problem. In my case, I had the following setup:
- Home folder is
/Users/calrion
. - Virtual directory folder is
/Users/calrion/Path/to/www
. - There's a symlink
/Users/calrion/Path
pointing to/Volumes/Other/Users/calrion/Path
.
The problem was the user and group _www
(which Apache runs as on OS X) lacked execute access to /Users/calrion
and /Volumes/Other/Users/calrion
.
Running chmod o+x /Users/calrion
and chmod o+x /Volumes/Other/Users/calrion
resolved the issue (on OS X 10.7.4).
The rule here is that Apache requires execute access to all folders in the path in order to serve files. Without this, you'll get a HTTP 403 (forbidden).
The last straw ;) Required local in the Directory Entry...
like
<Directory "/Users/user/Documents/example"> Options Indexes FollowSymLinks MultiViews AllowOverride All Require local Order allow,deny Allow from all</Directory>
if everything else doesn't work (correct Alias, Directory Entry in httpd.conf and correct mod/usr/grp).
keep in mind: if you put your site in user-space the apache user (running httpd) needs access to your home!
Check permission on /Users/user/Documents/
, /Users/user/
(higher level permissions are enforced first ...)
/bin/su
into the user running Apache (like www, www-data) and cat
a file in the /Users/user/Documents/example
directory. That might point you to permission problems with your setup.