在 macOS 10.13“High Sierra”上通过 Homebrew 安装后,我遇到了几乎相同的 Laravel Valet 问题。
我遇到的问题是 DNSMasq 会响应查询,但 Nginx 不会处理端口 80 上的响应。
尝试在终端会话中连接到站点会导致以下错误:
$ curl -IL http://example.test/
curl: (7) Failed to connect to example.test port 80: Connection refused
我最近从 macOS 10.2“Sierra”升级到 10.13“High Sierra”,所以我怀疑迁移助手带来的 Homebrew 环境和配置可能有问题。
在遵循此处和其他地方的故障排除建议时,最终解决我的问题的是完全卸载和删除 Valet 及其依赖项(PHP、Nginx、DNSMasq 等):
$ rm -rf ~/.valet
$ brew unlink nginx && brew remove nginx
$ brew unlink php56 && brew remove php56 && brew uninstall --ignore-dependencies php56
$ brew unlink php72 && brew remove php72
$ brew unlink dnsmasq && brew remove dnsmasq
有了一个干净的石板,我能够成功安装 Valet:
$ brew update
$ brew install homebrew/core/php
$ composer global require laravel/valet
$ valet install
然后我设置了一个新的开发域:
$ valet domain test
$ valet park ~/Sites
$ mkdir ~/Sites/example && cd "$_"
$ valet link
$ echo "Hello, world" > ~/Sites/example/index.html
安装 Valet 后,我验证了一切正常:
$ valet --version
$ sudo nginx -t
$ ping -c 4 example.test
$ curl -IL http://example.test/
$ valet open example
完成所有这些之后,我就拥有了一个 100% 成功的 Laravel Valet 环境。