美文网首页
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