If this is sometimes working (so you know PHP-FPM is up and working), I'd be pretty set on this being a nginx issue. I'm suspicious of a couple of the rules in your PHP location block. They might be breaking in certain URLs causing nginx to dump out.
You only need 2 lines for catching directory indexes:
location ~ \.php$ { fastcgi_pass unix:/var/run/php5-fpm.sock; include fastcgi_params; }
Strip that location back to that, reload nginx and see what happens.
If you need rewriting (pretty URLs in Wordpress, etc) you want to add something like this
location / { try_files $uri $uri/ /index.php?$args; }
But only do that once you've got standard URLs working.
 
                 
                                             
                         
                        
manpreet![Tuteehub forum best answer]() Best Answer
                                                
                                                                                                        3 years ago
                                                    Best Answer
                                                
                                                                                                        3 years ago
                                                
                                            
I know this is a popular question but I haven't found anyone with my similar issue. I can serve PHP files as long as the .php extension is not in the url. For example:
If I go to
localhostI am served my index.php file. If I go tolocalhost/index.phpI download the file. Here is my config:server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html; index index.php index.html index.htm; # Make site accessible from http://localhost/ server_name localhost; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules } # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests #location /RequestDenied { # proxy_pass http://127.0.0.1:8080; #} error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # location ~ /\.ht { deny all; } }I am quite confused by this issue and I am wondering if anyone has experience in the matter.