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 的多版本控制能力,兼顧開發靈活性與生產環境一致性。