最实用方案是组合使用 homebrew + php 内置服务器,兼顾灵活性与轻量性;进阶需求则用 nginx + 多 php-fpm 实例实现版本隔离与域名路由。
在 macos 中配置支持多项目切换的本地服务器工具,关键是让每个 php 项目能独立运行、互不干扰,同时便于快速启停和端口管理。最实用、低门槛的方案是组合使用 homebrew + php 内置服务器,兼顾灵活性与轻量性;进阶需求则可搭配 nginx + 多 php-fpm 实例 实现版本隔离与域名路由。
用 PHP 内置服务器快速启动多个项目
PHP 自带的 php -S 命令无需额外安装 Web 服务器,适合日常开发调试:
- 打开多个终端标签页(或用 iTerm2 / tmux 分屏),分别进入各项目根目录或 public/web 目录
- 为每个项目指定不同端口,例如:
php -S localhost:8000 -t ./publicphp -S localhost:8001 -t ./webphp -S localhost:8002(当前目录即为文档根目录) - 浏览器访问
http://localhost:8000、http://localhost:8001即可并行查看不同项目 - 关闭对应终端窗口即停止该服务,无残留进程
用 Nginx + PHP-FPM 实现项目域名化与版本隔离
当项目增多、需固定域名(如 project1.test)、或需混用 PHP 7.4/8.2/8.3 时,推荐此方案:
- 通过 Homebrew 安装多个 PHP 版本:
brew install php@7.4 php@8.2 php@8.3 - 为每个版本启用独立的 php-fpm 配置,修改其监听方式(如 socket 或端口):
例如将 php@8.2 的php-fpm.d/www.conf改为listen = 127.0.0.1:9002 - 在 Nginx 的
conf.d/下为每个项目建独立配置文件:
绑定server_name project1.test,root /path/to/project1,fastcgi_pass 127.0.0.1:9002 - 修改系统 hosts 文件:
sudo nano /etc/hosts,添加一行127.0.0.1 project1.test project2.test - 启动服务:
brew services start php@8.2brew services start nginx
配合工具提升多项目管理效率
手动维护多个终端或配置文件容易出错,可用这些方式简化流程:
- 写一个简单的 shell 脚本(如
start-projects.sh),用nohup php -S ... &后台启动多个服务,并记录 PID 方便统一关闭 - 用
brew services list查看所有已启服务状态,快速识别冲突或未启动项 - VS Code 中安装 “PHP Server” 扩展,右键 PHP 文件即可一键启动内置服务器(自动分配空闲端口)
- 如需 HTTPS 或更复杂路由,可考虑 Caddy(配置比 Nginx 更简洁,原生支持自动 HTTPS)
不需要一开始就上全套架构。多数场景下,PHP 内置服务器加几个终端标签页就足够高效。真正需要 Nginx+多FPM 的时候,往往是项目开始依赖不同扩展、INI 设置或 PHP 版本——那时再升级也不迟。











