Mac安装Laravel Valet时Brew无法安装Nginx返回401错误
故障定位
该401报错与Valet本身逻辑无关,核心原因是Homebrew拉取GitHub Container Registry上的nginx二进制安装包时鉴权失败。重启Homebrew服务、删除Valet配置目录、执行postinstall脚本这类操作未触达问题根源,无法解决报错。
解决步骤
- 第一步:清理Homebrew本地损坏的nginx安装缓存,避免复用之前下载失败的残次文件
rm -rf ~/Library/Caches/Homebrew/downloads/*nginx*
- 第二步:清除本地可能存在的错误curl配置、GHCR认证凭据,这类错误配置会让curl携带无效令牌请求GHCR接口,直接触发401错误
rm -f ~/.netrc ~/.curlrc
- 第三步:重置Homebrew官方源配置,消除非官方源配置带来的鉴权兼容问题
cd $(brew --repo) git remote set-url origin https://github.com/Homebrew/brew.git cd $(brew --repo homebrew/core) git remote set-url origin https://github.com/Homebrew/homebrew-core.git brew update-reset
- 第四步:手动安装nginx,优先走二进制安装,如果二进制拉取依旧失败就切源码编译
# 先尝试强制安装二进制版本 brew install nginx --force
如果上面的命令依旧报401错误,执行下面的命令从源码编译安装:
brew install -s nginx
源码编译安装耗时约3-5分钟,执行过程中不要中断终端命令
安装完成后执行nginx -v,终端能正常输出nginx版本号即为安装成功。
- 第五步:修复nginx软链,避免Valet无法识别到已安装的nginx
brew link nginx --force --overwrite
- 第六步:停止残留的Valet进程后重新执行安装
valet stop valet install
安装完成后执行valet status,看到nginx、php、dnsmasq服务均显示running状态,就可以正常使用Valet托管Laravel项目。
补充:如果源码编译nginx时提示缺少依赖,直接按终端提示执行
brew install安装对应的依赖包即可,不需要额外调整其他配置。
内容的提问来源于stack exchange,提问作者ferdinand
相关产品推荐
相关产品推荐

