在 macOS 上用 FlyEnv 管理本地开发环境:真实使用感受

在 macOS 上用 FlyEnv 管理本地开发环境:真实使用感受

作为一个经常在多个 Web 项目之间切换的开发者,本地环境一直是个麻烦事:PHP 版本不一样、Node 版本不一样,还要自己装 MySQL、配 Nginx、改 hosts。之前我用 Docker Compose 能跑起来,但 Docker Desktop 占内存、启动也慢;单独用 Homebrew + nvm 又容易 PATH 混乱。

最近试了 FlyEnv,记录一下真实感受,给有类似需求的朋友参考。

FlyEnv 是什么

FlyEnv 是一个跨平台的本地开发环境管理工具,支持 macOS、Windows、Linux。核心理念是:用原生二进制跑服务,而不是套一层 Docker 容器

你可以把它理解成一个带图形界面的「本地运行时管理器」——PHP、Node.js、Python、MySQL、Nginx、Redis 等组件,都可以在 App 里按需安装、启用、管理。官网介绍它还支持本地域名、HTTPS、反向代理、Cloudflare Tunnel 等,覆盖面比传统 XAMPP / MAMP 更广。

安装方式:

我实际用到的功能

1. GUI 安装和管理运行时

这是我最常用的部分。打开 FlyEnv,在对应模块里选版本、点安装,它会下载官方二进制,不用自己翻文档、拼 Homebrew 命令。

比如我需要 PHP 8.2 和 Node 20,直接在界面里装就行。不用 Java 就不装,比较模块化,不会一股脑塞满磁盘。

2. 项目级版本切换(需在 App 里先配置)

这是我觉得比较实用的功能,但不是开箱即用,需要几步准备:

  1. 在 FlyEnv 里「添加项目」,填写项目的绝对路径
  2. 给项目绑定对应的 PHP / Node 等版本
  3. 开启终端 shell 集成(官方会在 .zshrc 里加入 flyenv.sh
  4. 终端 cd 进项目目录后,php -v / node -v 会对上项目配置

官方文档里的效果大致是这样:

cd ~/projects/legacy-wordpress

php -v  # 项目绑定的 PHP 7.4

 

cd ~/projects/modern-laravel

php -v  # 项目绑定的 PHP 8.3

对我这种维护多个客户项目的场景,能减少手动 nvm use、切 PHP 版本的次数。但前提是项目路径和版本都在 FlyEnv 里配好了,相关运行时也已安装。

环境变量也可以在 FlyEnv 的项目设置里单独配置(比如 DATABASE_URLAPP_ENV),按项目隔离。

补充说明:项目目录里的 .flyenv 文件是另一套机制,主要用于加载环境变量,且需要路径在白名单内、使用 zsh 等条件。版本切换靠的是 FlyEnv 项目配置 + shell 集成,不是放一个 .flyenv 文件就自动切版本。

3. 本地站点:域名 + HTTPS

FlyEnv 支持给本地站点配自定义域名(不限于 .test),并自动生成 SSL 证书。

这些操作需要安装 FlyEnv Helper(一个后台帮助程序),因为它要:

  • 修改系统 hosts 文件
  • 绑定 80 / 443 端口
  • 把 SSL 根证书写入系统钥匙串

Helper 安装时授权一次,后续操作在后台完成,不用每次弹密码框。如果不需要域名访问、能接受带端口访问,这部分可以暂时不配。

4. 数据库和其他服务

MySQL、Redis 等常见组件也能在 FlyEnv 里管理,不用另外起一套 Docker Compose。对我这种单体 Web 项目够用了。

Mailpit(本地邮件测试)、反向代理、Cloudflare Tunnel 等官方也有,我目前用得不多,有需要再开。

和 Docker / Herd 怎么选

场景

我的看法

要严格复现生产容器环境、跑微服务

继续用 Docker

只做 PHP / Laravel,且只用 Mac

Laravel Herd 也够用

多语言、多版本、要数据库/站点一体管理

FlyEnv 更合适

内存紧张、不想常驻 Docker Desktop

FlyEnv 原生进程,资源占用通常更轻

FlyEnv 定位是本地开发,不是生产部署方案。和 Docker 可以并存,不必二选一。

总结

用了一段时间 FlyEnv,我的感受是:

  1. 安装运行时省事——GUI 点选,不用自己拼命令
  2. 多项目切换更顺手——配好项目路径和版本后,终端里 cd 进去就能对上
  3. 本地站点配置集中——域名、HTTPS、hosts 不用手动改一堆文件
  4. 比 Docker 轻——日常 Web 开发不必为了跑个 MySQL 常驻一个 Docker Desktop

如果你也是经常在 PHP / Node 项目之间切换、又不想被 Docker 拖累的开发者,可以试一下。

posted @ 2026-06-25 15:34  不负_时光  阅读(1)  评论(0)    收藏  举报