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:

<VirtualHost 50.57.104.245:80>
    ServerName dev.cascaderisermanagement.com
    DocumentRoot /home/eric/cascade/public

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

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

link|improve this question

50% accept rate
+1 for details provided from the outset – Miles Erickson Feb 4 at 9:03
feedback

2 Answers

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.

link|improve this answer
Yup, definitely need to check out the .htaccess file. – Miles Erickson Feb 4 at 6:51
1  
Yeah, that .htaccess definitely feels like the small bloody mark on the wall in a mystery novel :-) – Domingo Ignacio Galdos Feb 4 at 8:50
Thanks a ton guys. . . it turned out that the parent directory /home/eric was d-wx------ – TuK Feb 4 at 15:42
Glad things worked out! Kind of surprising, I actually thought the permissions thing was less likely. – Domingo Ignacio Galdos Feb 5 at 8:38
feedback

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 192.168.1.1] 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 192.168.1.1] (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 192.168.1.1] (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.

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

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