Apache 403 Forbidden Error and Solution

I have successfully configured Apache web server for my client. But why does my clients website just say “Error 403 Forbidden”? For example when client send request http://myclient.com/something/ Apache generate a 403 error. How do I troubleshoot this problem?

Error code that start with 4xx is generated because of client browser request. A 403 error code means client browser (or person who is trying to access your site) cannot access the requested URL. It can be caused by many reason:

a) A 403 status code indicates that the client cannot access the requested resource. It means the wrong username and password were sent in the request, or that the permissions on the server do not allow what was being asked.

b) No default directory index page is present. Upload Index.html or Index.htm file. Directive DirectoryIndex defines the default index page name. Open your apache configuration file, find out default index file name, and upload the same file to directory:
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml

c) Make sure the CGI script requested have executable permissions set on files. Use chmod command to set permission:
$ chmod +x file.cgi

d) Make sure you have permission to use .htaccess file for Apache web server. If Apache has overrides disabled. you will bump back with a 403 error.

e) Make sure correct directory permissions are set on directory:

<Directory "/home/domain/www">
		Options +Indexes FollowSymLinks +ExecCGI
		AllowOverride AuthConfig FileInfo
                Order allow,deny
		Allow from all
</Directory>

f) Make sure the underlying file system permissions allow the User/Group under which Apache is running to access the necessary files. You can determine which case applies to your situation by checking the error log. In the case where file system permission are at fault, remember that not only must the directory and files in question be readable, but also all parent directories must be at least searchable by the web server in order for the content to be accessible. For example /home/httpd/theos.in/ must be searchable, enter:
# chmod +x /home/httpd/theos.in/

g) You should also check the logs for any errors:
# tail -f /path/to/apache/error.logs

Posted by: SXI ADMIN

The author is the creator of SXI LLC and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.