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 环境。