FlyEnv 进阶PHP 多版本管理、Composer 集成和几个真正好用的功能上一篇讲了怎么用 FlyEnv 把 PHP 环境搭起来。这篇说几个用熟之后才体会得到的功能多版本怎么按项目管理、终端怎么和 FlyEnv 打通、本地邮件调试、把本地站点临时暴露到公网以及出问题时的排查手册。都是日常开发里实际用得上的东西。多版本共存一个项目一个版本FlyEnv 的版本管理不是「全局只有一个 PHP」的模式。你可以在 Versions 页签里装任意多个版本PHP 5.6 和 8.3 同时存在完全没问题。关键在于站点和版本是绑定的。在 Host 模块添加站点时每个站点单独指定 PHP 版本。这样一来三年前的老项目挂在 PHP 5.6 上主力项目跑 PHP 8.2试用新特性的项目开 PHP 8.4三个站点同时访问各跑各的互不影响。MySQL 也是同样的逻辑不同站点可以连不同版本的数据库实例。对需要同时维护新老项目的人来说这是最省心的地方不用再为切版本来回重启服务。版本之间要切换也简单模块页面里选另一个版本启动即可不用重新安装。打通终端Set to System Path默认情况下 FlyEnv 装的 PHP 只在它自己的环境里生效终端里敲php -v是找不到的。想让命令行也能用在 PHP 模块里点 Set to System PathFlyEnv 会把对应版本的路径写进系统 PATH。设置完重启一下终端然后php-vcomposer-V能正常输出版本号就通了。Composer 在 FlyEnv 里是独立模块装好之后同样可以加进 PATH。之后日常操作都在终端里完成composercreate-project laravel/laravel myappcomposerrequire guzzlehttp/guzzle php artisan migrate还有一点值得说PHP 支持设置版本别名。也就是说你可以给不同版本起不同的命令名在终端里按需调用不用反复改 PATH。具体配置在 PHP 模块的设置里多版本重度用户建议研究一下。GroupStart一键启动整套服务每天早上开工要把 Nginx、PHP、MySQL、Redis 挨个点启动烦。FlyEnv 有个 GroupStart 功能可以把常用的模块组合编成一个组以后一键全部拉起。把 Nginx PHP 8.2 MySQL Redis 存成一个组适合主力开发机再来一个只含 Nginx PHP 5.6 的组留给老项目调试。开机之后点一次环境就全好了。Mailpit本地调试邮件的正确姿势注册验证邮件、密码找回、订单通知这些功能在开发环境里测起来很麻烦真发邮件需要配 SMTP还可能进垃圾箱。FlyEnv 内置了 Mailpit 模块装好启动之后把项目的 SMTP 配置指过去就行。以 Laravel 为例.env里这样配MAIL_MAILERsmtp MAIL_HOST127.0.0.1 MAIL_PORT1025 MAIL_USERNAME MAIL_PASSWORD之后程序发出的所有邮件都会进 Mailpit 的收件箱打开它的 Web 界面就能看到完整的邮件内容和 HTML 渲染效果发一封看一封不用等、不会进垃圾箱也不会真的打扰到任何人。Cloudflare Tunnel把本地站点临时暴露到公网有时候需要让外网访问你的本地环境给客户演示进度、调试微信支付的异步回调、让同事看他环境里没有的 bug。以前要么自己搞内网穿透要么把代码部署到测试服务器。FlyEnv 集成了 Cloudflare TunnelCloudflared 模块。启动之后本地的站点可以通过 Cloudflare 的隧道生成一个公网可访问的地址把地址发给对方就能直接看。演示完关掉隧道入口就没了不用担心安全问题。MCP Server让 AI 编程工具看到你的本地环境这是 FlyEnv 比较新的能力。它内置了一个 MCP Server可以把本地的站点列表、服务状态、配置文件、日志暴露给支持 MCP 协议的 AI 客户端比如 Claude Code、Codex、OpenCode 这些。实际场景是这样的AI 帮你调代码时它能直接知道本地跑的是哪个 PHP 版本、Nginx 配置长什么样、刚才报了什么错不用你手动把日志复制粘贴过去。用 AI 辅助开发的人可以在 FlyEnv 里把这个模块打开试试配置入口就在模块列表里。故障排查手册按实际碰到的频率排序。站点打不开先分清是解析问题还是服务问题。浏览器报「无法访问此网站」多半是域名没解析检查 FlyEnv Helper 是否装好报 502/504 是后端问题看服务有没有启动。服务启动失败直接看模块的 Logs。最常见的两类错误端口被占用80、3306、6379 都是重灾区以及配置文件被手动改坏了。端口冲突就换端口或停掉占用的程序配置改坏就把修改过的配置文件恢复。数据库连不上确认 MySQL 模块处于启动状态端口和账号密码与代码里的配置一致。root 密码相关的问题可以在 MySQL 模块的设置入口里查看或者查阅官方文档确认默认配置。页面能打开但 PHP 代码直接输出成文本说明请求没走 PHP 解析检查站点绑定的 PHP 版本是否启动、Nginx/Apache 配置里的 PHP 处理是否正常Logs 里一般能找到答案。另外FlyEnv 支持环境配置的导出和导入。如果你的团队几个人要统一环境把配置导出发给同事导入比口述「我装的什么版本」靠谱得多。小结FlyEnv 的进阶玩法其实就围绕一件事把「环境」变成可以按需组合的东西。版本随项目走服务一键起停邮件、隧道、AI 这些周边需求也都有现成模块。如果你还在手动维护 hosts 和自签证书或者被 Docker 的内存占用折腾值得花半小时迁移过来试试。参考资料FlyEnv 官网FlyEnv GitHub 仓库FlyEnv 快速开始文档本地开发环境终极方案FlyEnv 一键搭建PHP/MySQL 多版本随意切 - 今日头条告别繁琐环境配置FlyEnv 一站式全栈开发环境神器实测 - LearnKu