Question

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

Posted May 29, 2016 3.2k views
Nginx Ubuntu PHP Getting Started DigitalOcean PHP Frameworks DigitalOcean Articles LEMP

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;

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

1 answer

Resolved. Not an issue.

Submit an Answer