How to Fix 403 forbidden error at Nginx

Nginx is a alternate web server for Apache and capable to handle large traffic of the websites on your virtual private server (VPS) or on your dedicated server. Nginx work well with PHP-FPM on CentOS 5.x and also CentOS 6.x. But most of the Nginx newbie struggling to get it run perfectly and hit by “403 forbidden error”. This “403 forbidden error” means that the webpage that you trying to access is forbidden or you don’t have permission to access certain part of the website. This article is meant for the linux server administrator who is supposed to have some basic knowledge on administering the linux server and also may useful for those who start to have VPS or dedicated server.

Sample error :

2014/04/18 23:18:34 [error] 11933#0: *5 directory index of "/usr/share/nginx/html/" is forbidden, client:, server: www.ehowstuff.local, request: "GET / HTTP/1.1", host: "www.ehowstuff.local"

Possible reasons and common errors :

a) Directory index is not properly defined
b) Permissions are not set correctly
c) php-fpm Permissions not configured correctly

One of the most popular reason for “403 forbidden error” using Nginx is that the folder directory permissions are not set and also directory index are not the server block.

Solution :
1. Verify the document root was set 755 permissions to your directory accordingly
2. Add index index.php; In the server block.
3. makesure “fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;” as been added :

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;