这确实是个问题,我之前也碰到过的,并且折腾了挺久,后来是这么解决的:
打开 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 的配置代码。