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