Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

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

Constantly getting a 403 error.

You don't have permission to access /index.html on this server.

log file :

(13)Permission denied: access to /index.html denied
(13)Permission denied: access to /favicon.ico denied

directory permissions (/home/www/eric/cascade)

-rwxr-xr-x 1 eric www  193 Jan 28 17:38 .htaccess
drwxr-xr-x 2 eric www 4096 Jan 28 18:27 images
-rwxr-xr-x 1 eric www 3715 Jan 28 18:27 index.html
-rwxr-xr-x 1 eric www  753 Jan 28 17:38 index.php
drwxr-xr-x 2 eric www 4096 Jan 28 18:25 js
-rwxr-xr-x 1 eric www 2258 Jan 28 18:27 oops.html

Configuration file:

    DocumentRoot /home/eric/cascade/public

    <Directory "/home/eric/cascade/public">
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from ALL

Is it possible that apache cant access www group ?? How do I check / verify ??

share|improve this question
+1 for details provided from the outset – Skyhawk Feb 4 '12 at 9:03
up vote 5 down vote accepted

Some leads to try following:

Regarding file permissions, the permissions of every parent directory matter too. They must all have execute permission (meaning "search" for directories).

ls -l / /home /home/eric /home/eric/cascade

To check easily, you could su to the user apache is running as and try catting the file, e.g,

sudo -u nobody cat /home/eric/cascade/public/index.html

And the group doesn't matter if the world permissions are more inclusive anyway.

Also, what's in that .htaccess file? I noticed you enabled them with AllowOverride and there's one in that directory.

share|improve this answer
Yup, definitely need to check out the .htaccess file. – Skyhawk Feb 4 '12 at 6:51
Thanks a ton guys. . . it turned out that the parent directory /home/eric was d-wx------ – TuK Feb 4 '12 at 15:42

Error 13 indicates a filesystem level "permission denied".

If you have a Deny directive in your configuration, you get a different line in your error logs. Here are some examples.

Using a Deny:

Feb  4 10:44:08 host apache2[7907]: [error] [client] client denied by server configuration: /var/www/site/index.php

Using chmod 000 on the directory (with AllowOverride turned on):

Feb  4 10:44:23 host apache2[7902]: [crit] [client] (13)Permission denied: /var/www/site/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable

Using chmod 000 on a static file:

Feb  4 10:51:15 host apache2[7905]: [error] [client] (13)Permission denied: file permissions deny server access: /var/www/site/favicon.ico

Using chmod 000 on a PHP file:

Feb  4 10:43:54 host apache2[7900]: PHP Warning:  Unknown: failed to open stream: Permission denied in Unknown on line 0
Feb  4 10:43:54 host apache2[7900]: PHP Fatal error:  Unknown: Failed opening required '/var/www/site/index.php' (include_path='.:/usr/share/php:/usr/share/pear') in Unknown on line 0

You may notice that in all the error (13) cases, the full file path was given in the error message, not a relative URI. That means that in your case, Apache is trying to read index.html from the root of your filesystem, not /home/eric/cascade/public/.

I suspect you have another vhost somewhere that has a DocumentRoot of /. To confirm this, you could add AccessLog and ErrorLog directives to that vhost pointing to a different location. You can also use this command:

apache2ctl -S

To help figure out what vhosts you have and what order they are applied in.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.