同域名下 PHP 5.6 与 7.2 同时运行
前言
证件照应用需要 PHP 7.2 才能运行,而部分微擎站点已有不支持 PHP 7 的应用。本教程以宝塔环境为例,说明如何在同一域名下按模块名匹配不同 PHP 版本。
本教程仅适合熟悉 Linux 服务器基础操作的用户。若不熟悉服务器配置,请谨慎操作。
1. 准备工作
- Web 服务必须使用 Nginx;Apache 暂未适配。
- PHP 必须以 PHP-FPM 启动,即仅支持 LNMP;LNAMP 和 LAMP 不支持。
- 服务器同时安装并启动 PHP 5.6 与 PHP 7.2,且已安装所需扩展。
2. 开始配置
- 进入宝塔“网站”管理,打开要配置的站点并选择“配置文件”。
- 找到原有的 PHP 处理配置(原文示例约第 18 行),在最前面添加
#将其注释。 - 在被注释的配置下方添加以下规则:
nginx
location ~ [^/]\.php(/|$)
{
if ($request_uri ~* "zzzy_idcard"){
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-FPM socket 路径调整
php-cgi-72.sock与php-cgi-56.sock。
3. 修改前后对比
修改前

修改后

4. 保存
点击保存。如出现报错,通常是代码未正确粘贴,或原有 PHP 配置未被完整注释。
5. 配置效果
完成后,证件照模块会单独使用 PHP 7.2,微擎和其他模块继续使用 PHP 5.6。