我正在试用 Valet,据我所知,它看起来非常不错。
我已经完成了“整个”安装过程,Valet 安装成功。
但是当我cd
进入我的项目文件并输入valet park
并浏览到时http://blog.dev
,我得到“找不到 blog.dev 的 DNS 服务器地址”。
我不知道我做错了什么。:)
我正在试用 Valet,据我所知,它看起来非常不错。
我已经完成了“整个”安装过程,Valet 安装成功。
但是当我cd
进入我的项目文件并输入valet park
并浏览到时http://blog.dev
,我得到“找不到 blog.dev 的 DNS 服务器地址”。
我不知道我做错了什么。:)
当您运行valet install
它时,它会尝试安装 dnsmasq。它需要 sudo 权限。
您可以检查它是否已安装并运行使用
brew services list
你应该看到类似的东西
dnsmasq started root /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
但是,您可能需要先点击 brew/services
brew tap homebrew/services
如果它不存在,请运行
brew install dnsmasq
brew services start dnsmasq
再次运行valet install
以设置 dnsmasq 并留意任何错误。这应该做的是在 /usr/local/etc/dnsmasq.conf 的底部添加一行,类似于
conf-file=/Users/{YOURUSER}/.valet/dnsmasq.conf
/Users/{YOURUSER}/.valet/dnsmasq.conf 然后应该包含
address=/.dev/127.0.0.1
检查您的 dns 服务器是否响应请求
dig testing.dev @127.0.0.1
您应该会看到类似的响应
;; ANSWER SECTION:
testing.dev. 0 IN A 127.0.0.1
要真正确保您的 Mac 知道它应该使用本地 DNS 服务器解析 *.dev,需要告知它这样做。Valet 也为您处理此问题,但您可以通过执行以下操作来检查它是否已完成。
在该目录内/etc/resolver
,应该有一个文件dev
,其内容如下
nameserver 127.0.0.1
这将为 *.dev 创建一个自定义 DNS 解析器,并将所有请求指向您的本地 DNS 服务器。
使用以下任一命令重新启动 dnsmasq,然后再试一次。
// this
brew services restart dnsmasq
// or this
sudo launchctl stop homebrew.mxcl.dnsmasq
sudo launchctl start homebrew.mxcl.dnsmasq
如果这一切正常,您应该能够 ping 任何东西.dev
ping anything.dev
PING anything.dev (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.039 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.081 ms
这确保了与 DNS 相关的位正在工作。
最终的问题是与 DNS 相关的问题,但由于这是你需要尝试的一切,我将把它留在下面。也就是说,如果您无法 ping something.dev 或收到“找不到 blog.dev 的 DNS 服务器地址”之类的错误。根据OP,这与需要解析的DNS有关。
由于 Caddy 在 80 端口上为网站提供服务,因此您需要确保在 80 端口上没有运行其他任何东西。
sudo lsof -n -i:80 | grep LISTEN
理想情况下,如果代客按预期运行,这应该返回球童。您想看下面的示例,或者理想情况下什么都不想;没什么,因为这意味着我们可以启动 Valet。
caddy 76234 root 3u IPv6 0x4f871f962e84fa95 0t0 TCP *:http (LISTEN)
在下面的示例中,您可能会看到其他 Web 服务器,例如 Apache 或 Nginx(及其子进程_www
和nobody
)。
httpd 79 root 4u IPv6 0xf4641199930063c5 0t0 TCP *:http (LISTEN)
httpd 239 _www 4u IPv6 0xf4641199930063c5 0t0 TCP *:http (LISTEN)
nginx 4837 root 6u IPv4 0xf4641199a4e8e915 0t0 TCP 127.0.0.1:http (LISTEN)
nginx 4838 nobody 6u IPv4 0xf4641199a4e8e915 0t0 TCP 127.0.0.1:http (LISTEN)
假设您已经使用 homebrew 安装了 Nginx,您可以运行以下命令来停止它。
brew services stop nginx
OSX 附带安装了 Apache,因此如果它正在运行,您可以停止使用以下内容。
sudo apachectl stop
此时,您可能可以使用 Valet 启动valet start
它,它会起作用。
你可能会得到一个进一步的错误,这是由于在没有 FPM 的情况下安装 PHP 引起的。您可以使用
brew info php70 | grep php70-fpm
这应该会产生一些类似的东西
控制脚本位于 /usr/local/opt/php70/sbin/php70-fpm
如果它似乎没有安装,请使用以下内容。
brew uninstall homebrew/php/php70
brew install homebrew/php/php70 --with-fpm
valet restart
我遇到了同样的问题 - 卡在 ping foobar.dev - 并通过重新启动我的 Macbook(代客安装后)来修复它。我确信这不是一个确切的解决方案,我认为有一种方法可以在不重新启动的情况下做到这一点。然而,它对我有用。我不必执行任何其他步骤。
[编辑-此外,在重新启动之前,我确保尝试使用 fpm 提示进行安装,并在安装 php70 时遵循所有 brew 的建议(调整路径,确保 php70 在系统启动时启动。我不能说这些东西是否有帮助,所以可能首先想尝试重新启动。如果它真的只是需要重新启动,或者其他一些额外的步骤来正确启动服务,我认为 laravel 文档可能需要一些澄清。]
我遇到了同样的问题,安装后我卡在 ping foo.dev 上。
我检查了正在运行的服务。
> brew services list
Name Status User Plist
dnsmasq stopped
nginx stopped
php71 stopped
手动启动所有三个服务
> brew services start dnsmasq
> brew services start nginx
> brew services start php71
冉valet install
。
Ping 成功到 foo.dev
如果您是 Windows 用户,请执行 Acrylic 配置,然后重新启动适配器(禁用和启用)
http://mayakron.altervista.org/wikibase/show.php?id=AcrylicWindows10Configuration
为我工作