这确实是个问题,我之前也碰到过的,并且折腾了挺久,后来是这么解决的:
打开 Nginx 的配置文件,vi /etc/nginx/nginx.conf,在 server 段加入:
         location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            # $document_root 是 root 指定的路径
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
这样就正常解析PHP了。之所以会变成下载,就是因为没有正常解析。
此外,我发现也可以通过在 server 段加入:
include /etc/nginx/default.d/*.conf;
来解决。
cd /etc/nginx/default.d/
发现里面有个php.conf文件,打开后代码如下:
location ~ \.php$ {
    try_files $uri =404;
    fastcgi_intercept_errors on;
    fastcgi_index  index.php;
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_pass   php-fpm;
}
同样也是解析 PHP 的配置代码。