打开宝塔站点的ngnix配置,重点关注 include enable-php-56.conf 这一项。
该配置文件的路径在 /www/server/nginx/conf/enable-php-56.conf,看到如下内容:
location ~ [^/]\.php(/|$)
{
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi-56.sock;
fastcgi_index index.php;
include fastcgi.conf;
include pathinfo.conf;
}
我们大致了解nginx和php之间的交互过程:
当客户发起一个http时,nginx将请求路由到网站根目录下的index.php
- 加载nginx的fastcgi模块
- 请求到达/tmp/php-cgi-56.sock
- php-fpm监听/tmp/php-cgi-56.sock
- php-fpm接收到请求,启用worker进程处理请求
- php-fpm处理完请求,返回给nginx
- nginx将结果通过http返回给浏览器。
如微擎中的应用PHP各有不同,可以nginx实现一个站点下不同应用对应不同的PHP版本
原理就是用 url 来判断,对应不同的php版本驱动
location ~ [^/]\.php(/|$)
{
fastcgi_pass unix:/tmp/php-cgi-56.sock;
fastcgi_index index.php;
include fastcgi.conf;
include pathinfo.conf;
# 当url中包含/qy_wmdc/则调用7.1版本
if ($request_uri ~* "/qy_wmdc/"){
fastcgi_pass unix:/tmp/php-cgi-71.sock;
}
}
记得屏蔽上面的: include enable-php-56.conf
宝塔 nginx 规则
宝塔nginx 不支持 else、echo
#设置变量
set $a "hello world";
# 返回text
default_type text/html;
return 200 'This is text! $a';
网友评论