Nginx downloads PHP instead of executing them

Ask questions about dedicated servers here and we and other users will do our best to answer them. Please also refer to the self-help section for tutorials and answers to the most commonly asked questions.
Post Reply
zoodel
New to forums
New to forums
Posts: 4
https://www.youtube.com/channel/UC40BgXanDqOYoVCYFDSTfHA
Joined: Fri Nov 11, 2016 5:24 pm

Nginx downloads PHP instead of executing them

Post by zoodel »

When I go to an index.php on my website, it downloads instead of executing the file.

My default file:

Code: Select all

# You may add here your
# server {
#	...
# }
# statements for each of your virtual hosts to this file

location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        }

server {
       listen         80;
       server_name    zoodelltd.pw;
       return         301 https://$server_name$request_uri;
}

location / {
rewrite ^(.*)$ https://zoodelltd.pw/$1 redirect; 
}

server {
	listen 80;
	server_name zoodelltd.pw;
	rewrite ^/(.*) https://zoodelltd.pw/$1 permanent;

##
# 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;

	root /usr/share/nginx/html;
	index index.php index.html index.htm;

	# Make site accessible from http://localhost/
	server_name zoodelltd.pw;

	location ~ \.php$ {
		# First attempt to serve request as file, then
		# as directory, then fall back to displaying a 404.
		try_files $uri =404;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
		# 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 =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;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
		include fastcgi_params;
	}

	# deny access to .htaccess files, if Apache's document root
	# concurs with nginx's one
	#
	#location ~ /\.ht {
	#	deny all;
	#}
}


# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
#	listen 8000;
#	listen somename:8080;
#	server_name somename alias another.alias;
#	root html;
#	index index.html index.htm;
#
#	location / {
#		try_files $uri $uri/ =404;
#	}
#}


# HTTPS server

server {
	listen 443 ssl;
	server_name zoodellltd.pw;

	root html;
	index index.php index.html index.htm;

	ssl on;
	ssl_certificate /root/nginx.crt;
	ssl_certificate_key /root/private.key;

	ssl_session_timeout 5m;

	ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
	ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
	ssl_prefer_server_ciphers on;

	if ($scheme = http) {
	    return 301 https://$server_name$request_uri;
}

	location / {
		try_files $uri $uri/ =404;
	}
}
User avatar
Vanderburg
Former staff
Former staff
Posts: 1253
Joined: Sat Nov 13, 2010 7:27 am
Location: Dallas, TX

Re: Nginx downloads PHP instead of executing them

Post by Vanderburg »

I have only a passing familiarity with nginx, but looking at your site file, have you tested only using a single virtual host to see if there's a conflict? I see that you have at least one missing closing bracket, on the second server{}, which could also be contributing.
Post Reply