PHP 從 5.6 到 8.x 差異巨大,舊專案常需舊版本,新專案用新版本。手動修改 PATH、重編譯極其痛苦。Homebrew + php-version 提供秒級切換體驗。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)")brew install php@5.6 brew install php@7.0 brew install php@7.4 brew install php@8.1 # 依需求安裝,Homebrew 會自動處理依賴
brew install php-version # 關鍵:將初始化腳本加入 shell 配置 echo 'source $(brew --prefix php-version)/php-version.sh' >> ~/.zshrc # 或 ~/.bash_profile source ~/.zshrc
# 查看已安裝版本 php-version # 輸出範例: # 5.6.40 # 7.0.33 # * 7.4.33 (當前使用中) # 8.1.12 # 切換版本(即時生效,無需重啟終端) php-version 5.6.40 php-version 8.1.12
php-version 透過修改 Shell 環境變數 PATH,將對應版本的 bin 目錄優先放入,並更新 PHP_INI_SCAN_DIR 等相關變數,實現無縫切換。
| 問題 | 解決方案 |
|---|---|
切換後 php -v 仍舊版本 | 重新 source ~/.zshrc 或重開終端 |
| 缺少擴展(如 redis、swoole) | brew install php@7.4-redis 需對應版本單獨安裝 |
| Valet / Laravel Herd 衝突 | 這類工具自帶 PHP 管理,建議二選一使用 |
| Apache / Nginx 仍用舊版本 | 需同步修改 Web Server 載入的 libphp.so 路徑 |
docker-compose.yml 指定版本,最推薦團隊協作Homebrew + php-version 是 macOS 上最輕量、零配置、即時生效的 PHP 多版本切換方案。適合單機開發、快速驗證相容性。團隊專案建議改用 Docker 或 Herd 確保環境一致性。