昨天公司同事接受一个项目服务器,但是php站点死活打不开,表现为打开index.html后缀文件可以访问,打开php后缀文件会变成下载.
一开始怀疑的是文件头content-type没有正确设置,正确的文件头应该如下(人工手敲可能会敲成html/text),
`content-type: text/html; charset=utf-8`
但是检查过后发现是没问题的,于是开始分析,网站域名和端口能正确解析,证明nginx是有工作的,html文件能正确解析,但是php文件不能解析,就证明php服务是没有正确工作的,顾初步怀疑是php-fpm的问题,因php-fpm没有正确解析编译php导致访问.php文件后浏览器会变成下载.
一番折腾后,在nginx对应的虚拟站点配置文件中添加下如下配置即可
```shell
#当请求网站下php文件的时候,反向代理到php-fpm
location ~ .php$ {
include /usr/local/etc/nginx/fastcgi.conf; #加载nginx的fastcgi模块
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000; #交由fastcgi(php-fpm)处理,nginx fastcgi进程监听的IP地址和端口
}
“`