IT相关 · 2024年5月17日

Nginx配置单站点运行多个PHP版本共存

很多框架系统都有插件应用市场(例如Discuz!),有些插件应用开发者由于各种原因不再对插件应用更新维护,导致该应用不支持PHP7、PHP8,但框架系统已经支持新版PHP。亦或是系统未支持新版PHP或不想升级到新版,但应用需要新版PHP才能运行。这种情况可以对Nginx进行配置实现同时支持多个PHP共存运行。

示例配置代码

    location ~ [^/]\.php(/|$)
    {
        if ($request_uri ~*  "archives"){
          fastcgi_pass unix:/tmp/php-cgi-72.sock;
        }
      fastcgi_pass  unix:/tmp/php-cgi-56.sock;
      fastcgi_index index.php;
      include fastcgi.conf;
      include pathinfo.conf;
    }

以上代码表示含有 .php 且含有 archives 的地址运行在PHP7.2环境,其它含有 .php 的地址运行在PHP5.6环境。