Issue with rendering PHP file: nginx download php file instead of rendering in browser

May 29, 2016 966 views
Nginx PHP LEMP DigitalOcean Getting Started DigitalOcean Articles PHP Frameworks Ubuntu

Issue with rendering PHP file: nginx download php file instead of rendering in browser
I looked through suggestions for the same question and have made changes accordingly to my configuration and also cleared out cache.
I am still having the same issue with PHP files being download.
How would I resolve this? Appreciate your feedback

Ubuntu 14.04.4, installed LEMP stack (followed direction on digital ocean)
Have include my /etc/nginx/sites-available/default below

#Block direct IP access
server {
    listen 80;
    server_name localhost;
    return 404;
}
server {
    listen 443;
    server_name localhost;
    return 404;
}
# You may add here your
server {
   listen 80;
   server_name my_domain_name; #in my file I have the domain name with sub domain listed separated by a space
   return 301 https://$host$request_uri;
}


# statements for each of your virtual hosts to this file

##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# http://wiki.nginx.org/Pitfalls
# http://wiki.nginx.org/QuickStart
# http://wiki.nginx.org/Configuration
#
# Generally, you will want to move this file somewhere, and start with a clean
# file but keep this around for reference. Or just disable in sites-enabled.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##

server {
#       listen 80 default_server;
#       listen [::]:80 default_server ipv6only=on;

        # Added this while ssl setup
        listen 443 ssl;

        server_name my_domain_name; #in my file I have the domain name with sub domain listed separated by a space
        ssl_certificate /etc/letsencrypt/live/<mydomainname>/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/<mydomainname>/privkey.pem;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_dhparam /etc/ssl/certs/dhparam.pem;
        ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:50m;
ssl_stapling on;
        ssl_stapling_verify on;
        add_header Strict-Transport-Security max-age=15768000;

        # TILL above (SSL)

        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$ {
                try_files $uri $uri/ =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
        #       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
        #
        #       # With php5-cgi alone:
                fastcgi_pass 127.0.0.1:9000;
        #       # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }

### REST OF THE SECTION BELOW IS ALL COMMENTED OUT.. HAVE NOT INCLUDED HERE #####


Additionally: /etc/php5/fpm/pool.d/www.conf

listen = /var/run/php5-fpm.sock

Nginx conf: /etc/nginx/nginx.conf

default_type application/octet-stream;
1 Answer
Have another answer? Share your knowledge.