I have a problem with apache, it gives a 403 forbidden message for every file and directory in my document root. I also setup the userdir module and in userdirs everything works fine. I have searched on the web for days now and I still haven't found the answer.
My documentroot is set to /var/www/htdocs/ and as far as I can see everything is fine:
drwxrwxr-- 2 root apache 144 2008-02-14 22:38 cgi-bin/
drwxrwxr-- 3 root apache 976 2008-02-14 22:38 error/
drwxr-xr-x 32 apache apache 1144 2008-09-07 16:46 htdocs/
drwxrwxr-- 3 root apache 4632 2008-02-14 22:38 icons/
the rights for htdocs are recursive. I also tried changing it to 777, but still no effect.
The apache access logs gives a bunch of these lines:
local.damnation.nl - - [07/Sep/2008:17:02:29 +0200] "GET / HTTP/1.1" 403 293
And my error_log
[Sun Sep 07 17:02:34 2008] [crit] [client 10.0.0.150] (13)Permission denied: /var/www/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
[Sun Sep 07 17:02:37 2008] [crit] [client 10.0.0.150] (13)Permission denied: /var/www/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
These errors come from a .htaccess file, they only appear when I enter a directory with a .htaccess file in it. I didn't took the time yet to set it up right. There aren't anymore errors then these.
In my Apache config I have the following lines (if there is more info about my config needed just ask):
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
# The Options directive is both complicated and important. Please see
# for more information.
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
# Controls who can get stuff from this server.
Allow from all
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
DirectoryIndex index.php index.html index.htm
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
Deny from all
Options MultiViews SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
Allow from all
<LimitExcept GET POST OPTIONS>
Deny from all
And also a couple of vhosts like these (there are more of them in the original config):
DirectoryIndex index.php index.html index.htm index.shtml
For what I know it should work with this config and I tried a dozen of other combinations.
I really have no idea what to do anymore, probably it's something really simple and stupid, but I can't see my mistake. Somebody here who do?