2025年了,用 Homebrew 搞 Web 开发,还行吗?

Homebrew 可以说是 macOS 和 Linux 上的“装机必备”了,装个命令行小工具特别方便,一句 brew install 就能搞定,确实好用。

但当你想用它来搭建和管理正经的、多个项目共存的 Web 开发环境(比如需要 Nginx、PHP、各种数据库)时,麻烦就开始浮现了。用它干专业活,真有点不太够用。

环境乱成一锅粥,老得看“医生”

谁没跑过 brew doctor 呢?“Your system is ready to brew.” 这话听起来挺美,但也说明 Homebrew 会动你的系统设置。

不管是以前装到 /usr/local,还是 Apple Silicon 电脑上的 /opt/homebrew,它都会改你的系统 PATH。这导致啥呢?你 brew install git 时,很可能会覆盖掉系统自带的 Git。

装个 Python 吧,系统里立马多出好几个版本。这种版本混乱是很多奇怪 Bug 的源头,有时候排查这些问题花的时间,比写代码修 Bug 还长。

服务更新太坑爹,容易出“事故”

brew services 启停服务倒是挺方便,Nginx、MySQL、PHP-FPM 都能管。但它的“贴心”升级就很让人头疼。

比如,你美滋滋地敲了个 brew upgrade,把所有东西更新了。啪!你的本地项目突然崩了…… 费劲一查,原来是 Python 从 3.7 默默升到了 3.14,某个扩展不兼容了;或者 MySQL 来个不兼容的大版本更新,数据库都起不来了。这种“好心办坏事”的服务中断,Homebrew 可没少干。对正经搞开发的人来说,这种意外停工真的挺烦人。

切版本?只能单线程干活!(这是硬伤)

用 Homebrew 搞 Web 开发,最大痛点就是这个。现实开发怎么可能只搞一个项目?老项目可能死抱着 Python2.x,新项目都用上 Python 3.14 了。客户的服务器跑 MariaDB 10.6,你自己项目又想试试 PostgreSQL 16。

用 Homebrew 咋办?答案是:痛苦地切换。你只能频繁地用 brew switch 或者更底层的 brew link/unlink 来换版本。操作繁琐不说,还容易出错。最关键的是,它没法让不同版本的服务同时运行!你不能一边跑需要 Python2.x 的项目,一边测试用 Python 3.14 的新项目。搞现代开发还只能单开,这真的有点落伍了。

结论: Homebrew 装点**命令行工具**是真方便,但要拿它当专业的 Web 服务管家?真有点力不从心。如果你是macOS 12的用户,那对不起,Homebrew已经把你抛弃了。


那… 还能用啥?

既然 Homebrew 搞专业环境有点掉链子,大家自然会找别的工具。主要分两类:更“极客”的命令行工具,和更“便捷”的打包软件。

命令行党的选择 (MacPorts, Nix)

MacPorts

走的是完全隔离路线,所有东西装自己地盘(/opt/local),不污染系统,这确实解决了 Homebrew 的“环境乱炖”问题。但是缺点也很明显:安装慢(很多东西要自己编译),软件数量比 Homebrew 少点,占用空间也更大。解决了老问题,代价是新的麻烦。

Nix

想法很牛,讲究“纯函数式”、“可复现”,隔离性和版本管理能力是顶级。理论上是完美的。

但问题在于:学习难度贼高!它的思路和操作跟你熟悉的包管理器差别巨大。想用它,你得花大把时间重新学一套东西,对只想高效搞 Web 开发的我们来说,真心觉得太折腾。

小结: 这些工具很强,但对我们日常搞 Web 开发来说,感觉要么太慢(MacPorts),要么太难学(Nix)。

老式图形化套装 (MAMP, XAMPP)

很多老司机(包括我)入门那会儿,都靠 MAMP 或者 XAMPP。一键安装,Apache/MySQL/PHP 全齐活,新手友好度满分。

不过现在看,它们的问题也挺明显:

  • 版本老旧切换难: 带的软件版本更新不及时,想换个版本?费老劲了,经常得下载个完全不同的安装包。

  • 又大又慢: 为了保证兼容啥环境都往里塞,结果是软件又臃肿,性能也不太理想。

  • 还得配命令行工具: 你最后肯定还得装 Redis、Node.js 之类的东西,这些 MAMP/XAMPP 不管,你还得用回 Homebrew…… 环境就割裂了。

  • 跟真实环境差太远: 尤其是服务器现在普遍用 Nginx + PHP-FPM 这种组合,这些套装里的 Apache 模式配置就差得多了。

小结: 它们确实简单省事,但代价是牺牲了现代开发必需的灵活性和专业性。


更好的工具?试试 ServBay

难道只能在“复杂的灵活”(命令行工具)和“僵化的简单”(图形套装)之间二选一吗?也不一定。

这里想提一个叫 ServBay 的工具。我深度用了一段时间,感觉它在设计上确实想解决上面这些痛点,挺有意思的。

真·多版本共存 + 一键切换

这是 ServBay 最拿得出手的功能。你可以装多个独立的 Python(从 2.7,3.5 到 3.14)、MariaDB(从 10.4 到 12.0)、PostgreSQL 版本。最厉害的是,这些不同版本的服务可以同时运行!

如果你是全栈开发者,会多种语言,那你更应该装一个 ServBay。

它不仅支持Python,还支持Node.js、Java、Golang,甚至你想在macOS上跑ASP.NET 4.x古董项目,没问题,ServBay 一样支持。它就像溺爱孩子的妈妈一样,包容你的各种想法,默默地给你提供更多的支持。

你可以想一想

  • 项目 A 的 Nginx 用 Python 2.7。

  • 项目 B 的 Nginx 用 Go 1.22 。

  • 项目 C 的 Nginx 用 Python 3.14。

  • 各自在浏览器里输入项目地址,各跑各的,互不影响。

在 ServBay 清爽的管理界面点几下开关,就能控制每个版本服务的启停。这种多版本并行运行的能力,才配叫现代化开发环境。

沙盒隔离,不搞乱系统

ServBay 的所有服务、配置、数据,都老老实实待在自己地盘里(/Applications/ServBay)。它绝对不碰 /usr/local/opt/homebrew,不改系统 PATH,运行服务也不需要 sudo 权限。

效果就是:

  • 你的系统干干净净。

  • ServBay 和 你的其他程序和平共处,用 ServBay 管 Web 服务(Nginx,PHP/Node.js/Python/Go,DB),一点不冲突。

速度不错 (对比 MAMP 和 MacPorts)

不像 MAMP 那么臃肿,也不像 MacPorts 编译到天荒地老,ServBay 提供的是针对 Apple Silicon (M1/M2/M3) 和 Intel 芯片优化好的预编译包。安装飞快,启动速度和运行性能都挺好,不比你自己手调出来的环境差。

GUI + CLI 双管齐下 (结合两边优点)

ServBay 带一个设计得不错的 macOS 原生界面,管理服务、切版本、看日志、改配置都挺直观。

但它也知道开发者爱用命令行,所以也提供了强大的 servbay-cli 工具。像 .servbay.config 命令来实现项目级的 版本控制。算是兼顾了图形化的易用性和命令行的灵活高效。

开发顺手的额外功能

ServBay 不只是 Web 服务器三件套,它更像一个本地开发工作站,还打包了:

  • DNS 服务: 支持真实/虚拟域名无缝切换,自动签发SSL证书,大大降低开发成本,并有效避免域名暴露带来的安全风险。

  • 数据库:支持多个数据库实例,满足不同的开发需求。

  • 自动 HTTPS 证书: 一键给本地站点开 HTTPS,方便测试。

  • 邮件服务器: 支持 SMTP 和 POP3 协议,STARTTLS 和 SSL/TLS 加密可立即启用,保障邮件安全

  • Redis & Memcached: 同样支持同步运行,一键开关。

这些功能都是解决开发中的小痛点,挺实用的。


所以,2025年怎么选?

总结一下我们的探索:

  • Homebrew:工具神器,服务苦手。装小工具首选,管专业 Web 服务易冲突。

  • 纯命令行方案 (MacPorts/Nix):牛是牛,就是累。隔离性虽好,但要么慢要么难学,不够大众化。

  • 图形化套装 (MAMP/XAMPP):简单是简单,就是笨。快装省心,但版本旧、配置虚、不灵活。

ServBay 的出现,似乎是想找到一个中间点,在易用性、隔离性、性能和多版本支持之间取了个平衡。

我的看法:

  • 如果你是 DevOps 大佬,追求绝对的可复现和控制力,Nix 依然值得你研究。

  • 如果你是专搞 Python/R 的数据科学/ML 同学,Conda/Miniconda 可能更对路。

  • 对于大多数在 macOS 上做 Web 开发的前端、后端、全栈工程师来说, 如果你厌倦了 Homebrew 的版本冲突和“单开”限制,也不满足于 MAMP/XAMPP 的老旧和脱节,那 ServBay 提供的这套开箱即用、多版本共存、不污染系统的方案,算是当前市面上对“本地开发体验”的一个不错的解法。它能省下不少在环境配置上折腾的时间。

有兴趣不妨试试:www.servbay.com

用了 ServBay 之后,最爽的就是能同时跑不同语言版本的项目,跟 brew doctor 彻底说拜拜。感觉 macOS 上的本地开发环境,总算能舒坦一点了。我接单的速度都比别人快了。

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 4

个人觉得laradock最灵活好用 :smile:

12小时前 评论
Sammyy (楼主) 9小时前
欲饮琵琶码上催

ServBay 没有windows版本。等出windows版本后,我准备把小皮换ServBay了

10小时前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!