ServBay 多环境配置指南:命令行与 Web 服务的 PHP 版本管理
一、命令行环境:.servbay.config
深度应用
通过项目级配置文件 .servbay.config
,开发者可精准控制命令行环境中的 PHP 版本,实现多项目并行开发与版本隔离。
1. 核心功能与原理
• 多版本共存:ServBay 原生支持 PHP 5.6 至 8.5-dev 的全版本共存,每个项目通过独立配置文件指定所需版本。
• 无侵入式切换:执行命令时,ServBay 自动识别项目目录下的 .servbay.config
,动态加载对应 PHP 环境,避免全局配置冲突。
2. 配置方法
在项目根目录创建 .servbay.config
文件,添加以下内容:
# 指定 PHP 版本(示例:PHP 8.5-dev)
PHP_VERSION=8.5
2
生效验证:
$ php -v # 输出版本应为 8.5
$ composer install # 依赖解析基于当前 PHP 版本
2
3. 高级技巧与限制
• 版本兼容性检查:若遇到 "Class not found" 等错误,需验证依赖包与指定 PHP 版本的兼容性(如 PHP 8.x 移除的 mcrypt
扩展)。
• 全局默认值:未配置时,使用 ServBay 全局默认版本(可通过 ServBay 的设置
中修改)。
• 多服务协同:结合 Node.js 版本配置(NODE_VERSION=20
),实现 PHP + Node.js 双环境控制。
4.运行例子
下面使用实际例子演示.servbay.config
的运作机制。
二、Web 服务环境:多版本 PHP 的网站级管理
ServBay 的 图形化网站配置界面 提供 Web 服务的 PHP 版本管理能力,与命令行环境相互独立。
1. 配置流程
添加/编辑网站:
• 打开 ServBay,进入 Hosts(网站) 选项卡。
• 点击 + 创建新网站或编辑现有网站。
• 在 PHP Version 下拉菜单中选择目标版本(如 8.3、8.5-dev 等)。路径与域名绑定:
• Root Directory:指定项目 public 目录(如 Laravel 的/Applications/ServBay/www/laravel-app/public
)。
• Domain:设置自定义域名(如laravel.host
),支持 HTTPS 自动签发。
2. 技术实现与优化
• 服务隔离:每个 PHP 版本以独立进程运行,避免内存泄漏跨版本污染。
• 性能调优:针对 ARM64/X86_64 架构优化。
• 错误排查:
• 检查日志:/Applications/ServBay/var/log/php/php_error.log
• 使用 servbayctl status php 8.5
查看进程状态。
3. 多服务器扩展
• Apache/Nginx/Caddy 支持:在 ServBay 1.7.0+ 中可切换 Web 服务器。
• 数据库联动:结合多版本 MySQL/MariaDB/PostgreSQL(如 Laravel 项目适配 MariaDB 11.5)。
三、跨环境协作最佳实践
场景 | 命令行配置 | Web 服务配置 | |
---|---|---|---|
遗留系统维护 | .servbay.config 设 PHP 5.6 | 网站配置选 PHP 5.6 | |
Laravel 11 开发 | 配置 PHP 8.3 + Node 20 | 绑定域名并启用 HTTPS | |
新版本测试 | 使用 PHP 8.5-dev | 搭配 Redis 7.x 缓存优化 |
注意事项:
• 命令行与 Web 服务的 PHP 模块可能差异(如 CLI 模式默认禁用 opcache
)。
• 升级 ServBay Runtime 至 1.0.20/1.1.20+ 以获取最新 PHP 特性。
通过上述分场景管理,开发者可充分发挥 ServBay 的多版本控制能力,兼顾开发灵活性与生产环境一致性。