新闻资讯
领先云端方案商,专注云桌面、云手机研发,凭核心虚拟化技术与云端算力,
打造安全高效数字化平台,提供全周期支持。
分类
相关文章
热门标签

自动化部署实践mac 本地搭建服务器环境搭建 使用Homebrew与脚本一键搭建

2026年6月6日

1.

概述:为什么在 mac 使用 Homebrew 一键搭建

说明目的:用 Homebrew 管理包,减少系统干预,便于自动化部署。
适用场景:本地开发、多语言调试、快速复现生产环境。
成果预期:通过脚本安装 nginx/php/mysql 并生成可重复的环境。

2.

准备工作与先决条件

确认系统:macOS 最新稳定版,建议备份重要数据。
必备工具:命令行(Terminal)、管理员权限、Xcode Command Line Tools(执行 xcode-select --install)。
网络与权限:确保网络可访问 brew.sh 与 Homebrew 源,若使用私有网络准备代理。

3.

Step1:安装并更新 Homebrew

安装命令:在终端执行 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"。
校验与更新:安装后运行 brew update && brew doctor,按提示修复警告(路径权限等)。
添加常用 tap:例如 brew tap homebrew/core、brew tap homebrew/services(用于服务管理)。

4.

Step2:确定要安装的软件清单

推荐清单:nginx、php(或 php@8.1)、mysql(或 mariadb)、composer、node(可选)。
示例变量:PACKAGES="nginx php mysql composer node"。
说明依赖:PHP 扩展可后续通过 pecl 或 brew install php@版本 扩展安装。

5.

Step3:手动安装单次验证(建议先手动再脚本化)

安装示例:brew install nginx php mysql composer node。
启动服务:brew services start nginx;brew services start php;brew services start mysql。
检测端口:curl -I http://localhost:80 或 lsof -iTCP -sTCP:LISTEN -P | grep nginx/php。

6.

Step4:编写自动化一键脚本(示例 shell 脚本)

脚本结构建议:#!/usr/bin/env bash + set -euo pipefail,添加日志函数。
示例要点:检查并安装 Homebrew、批量安装包、启动服务、配置默认目录与权限、写入 hosts(如需)。
示例片段:

7.

脚本示例(核心段落,复制前先理解)

示例命令(单行示例写在脚本中):
export PACKAGES="nginx php mysql composer";
if ! command -v brew >/dev/null; then /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"; fi
brew update && for p in $PACKAGES; do brew install $p || brew upgrade $p; done
brew services start nginx || true; brew services start php || true; brew services start mysql || true

8.

Step5:配置 nginx 与 PHP(必要配置示例)

nginx 配置位置:/usr/local/etc/nginx/nginx.conf(或 /opt/homebrew/... 根据 M1/M2)。
示例修改:设置 root 指向 ~/Sites 或项目目录,配置 index.php 并 proxy_pass 或 fastcgi_pass 到 PHP-FPM 的 socket。
重载 nginx:nginx -s reload 或 brew services restart nginx。

9.

Step6:配置 MySQL 并初始化数据库

初始安全设置:mysql_secure_installation,设置 root 密码并移除匿名用户与测试库。
启动与登录:brew services start mysql;mysql -u root -p。
创建数据库用户:CREATE DATABASE dev_db; CREATE USER 'dev'@'localhost' IDENTIFIED BY 'devpass'; GRANT ALL ON dev_db.* TO 'dev'@'localhost';

10.

Step7:把配置与脚本加入版本控制与复现流程

将脚本置于项目仓库或 dotfiles 中,并加入 README 使用说明。
敏感信息:不要在脚本中明文写密码,建议使用环境变量或 .env 文件并加入 .gitignore。
可选:使用 Homebrew Bundle(Brewfile)管理依赖:brew bundle dump; brew bundle install。

11.

调试与常见问题排查

服务未启动:查看日志 /usr/local/var/log/nginx/error.log 与 php-fpm 日志,使用 brew services list 检查状态。
端口冲突:lsof -iTCP -sTCP:LISTEN | grep :80,必要时修改 nginx 监听端口或停止冲突服务。
权限问题:使用 chown -R $(whoami):staff path 并确保目录可读写。

12.

安全与性能建议

仅在本地绑定服务到 127.0.0.1,如 nginx listen 127.0.0.1:80 防止外部访问。
定期更新:brew update && brew upgrade,保持 php/nginx/mysql 补丁更新。
备份:定期导出数据库和重要配置文件(mysqldump、cp nginx.conf)。

13.

Q1:如何让脚本支持 Apple Silicon 与 Intel 两种架构?

回答:在脚本开头检测 arch:ARCH=$(uname -m)。
根据结果设定 Homebrew 前缀:if [[ "$ARCH" == "arm64" ]]; then HOMEBREW_PREFIX="/opt/homebrew"; else HOMEBREW_PREFIX="/usr/local"; fi。
后续路径使用 $HOMEBREW_PREFIX/bin/brew 或 export PATH="$HOMEBREW_PREFIX/bin:$PATH"。

14.

Q2:我想把多个项目独立成虚拟主机,脚本如何处理?

回答:脚本应创建 sites-available 与 sites-enabled 目录,自动生成 nginx 配置文件并 symlink。
示例步骤:创建 /etc/nginx/sites-available/project.conf,写入 server_name、root、fastcgi 配置,ln -s 到 sites-enabled 并重载 nginx。

15.

Q3:脚本中包含密码是否安全?如何更安全地管理凭据?

回答:不要在脚本中明文写密码。推荐使用环境变量(从 CI secret 注入)、macOS Keychain、或读取本地 .env 并将 .env 加入 .gitignore。
自动化建议:脚本提示输入或使用 expect/钥匙串访问,必要时生成随机密码并打印保存位置。


来源:自动化部署实践mac 本地搭建服务器环境搭建 使用Homebrew与脚本一键搭建