美文网首页
nginx 一个站点配置不同PHP版本(微擎兼容)

nginx 一个站点配置不同PHP版本(微擎兼容)

作者: wyc0859 | 来源:发表于2021-04-29 13:16 被阅读0次

打开宝塔站点的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

  1. 加载nginx的fastcgi模块
  2. 请求到达/tmp/php-cgi-56.sock
  3. php-fpm监听/tmp/php-cgi-56.sock
  4. php-fpm接收到请求,启用worker进程处理请求
  5. php-fpm处理完请求,返回给nginx
  6. 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';

相关文章

网友评论

      本文标题:nginx 一个站点配置不同PHP版本(微擎兼容)

      本文链接:https://www.haomeiwen.com/subject/lqfwrltx.html