在用Nginx做静态服务器的时候,访问后缀名为.PHP的文件浏览器不会解析,直接显示源码或者下载.究其具体原因,服务器,没有指定php文件的解析方式,在给浏览器的相应中没有说明,所以只能给你下载或者提示你安装.所以要解决此问题,根本是要在nginx.conf中配置php的解析方式.
location ~ \.php$
{
#指定为Nginx默认路径
root /opt/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /opt/nginx/html$fastcgi_script_name;
include fastcgi.conf;
include fastcgi_params;
}
1
2
3
4
5
6
7
8
9
10
location~\.php$
{
#指定为Nginx默认路径
root/opt/nginx/html;
fastcgi_pass127.0.0.1:9000;
fastcgi_indexindex.php;
fastcgi_paramSCRIPT_FILENAME/opt/nginx/html$fastcgi_script_name;
includefastcgi.conf;
includefastcgi_params;
}
其中fastcgi_pass说明的是,当浏览器发起的请求匹配到这个location的时候,会把所有的后缀为php的文件交由本机的9000端口来解析,那么这个9000端口是什么进程呢(看下图,需要自己手动开启),就是php-cgi(CGI英文叫做公共网关接口(具体讲解见最后链接),就是Apache在遇到PHP脚本的时候会将PHP程序提交给CGI应用程序(php-cgi.exe)解释,解释之后的结果返回给Apache,然后再返回给相应的请求用户).下面的几个自然很好懂了,就是文件调用.
完成上述之后,可以在自己默认的html目录里写一个info.php文件测试一下,内容如下;
phpinfo();
?>
1
2
3
phpinfo();
?>
如果返回的页面是php先关的相关信息说明配置成功.
参考资料: