在 Laravel Valet 安装 returns "Unknown Host" 后 Ping test.dev

Pinging test.dev after Laravel Valet install returns "Unknown Host"

更新:不要使用“.dev”。最初在 2016 年发布时,还不错。现在不是了。首先将您的 TLD 更改为其他名称,例如“.localhost”或其他名称。 (此更改不会解决我的问题,但如果您仍在使用“.dev”,它可能会解决您的问题)。

问题: 我已经安装了 Laravel Valet 并且一切正常,除非我 ping test.dev(它只包含一个 index.htm 文件,位于 ~/Sites),挂了很长时间后,我得到了响应 ping: cannot resolve test.dev: Unknown host

这是我已经完成的:

现在,除此之外,我决定尝试所有 valet 参数。 valet share 似乎在某一时刻出现错误,这很有趣,但我不确定它与原始问题有什么关系。

ERROR: Tunnel 'command_line' specifies invalid address 'test.dev:80': unexpected '[' in address test.dev:80

在此之后我得到 21 行 Failed to connect to 127.0.0.1 port 4040: Connection refused 然后是一个异常:

[Httpful\Exception\ConnectionErrorException]                                                                              
Unable to connect to "http://127.0.0.1:4040/api/tunnels": 7 Failed to connect to 127.0.0.1 port 4040: Connection refused                                                                                                                              

fetch-share-url

问题最终与 dnsmasq 有关。使用非常彻底的 this answer 到另一个相关的 SO post,我最终做了以下事情来解决我的问题:

brew unlink dnsmasq

brew install dnsmasq

brew prune

brew services restart dnsmasq

valet install

然后,为了在执行 ping 之前进行测试,我执行了 dig test.dev 并且响应包括:

;; ANSWER SECTION:
test.dev.       3599    IN  A   127.0.53.53

我不确定为什么 IP 是 127.0.53.53 而不是 127.0.0.1 但是当我执行 ping test.dev 它确实 return ...

PING test.dev (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.036 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.072 ms

浏览到 test.dev 也有效。

需要注意的一件事是我还没有调查过 index.htm 没有被 valet/caddy 识别为潜在的索引文件。不是问题的一部分,但需要注意一些有趣的事情。

我遇到了同样的问题,一些 brew 服务停止了,运行 这个命令修复了它:

sudo brew services start --all

我已正确设置所有内容,但遇到了同样的问题 - 无法获取 app.dev 运行。

运行

之后
brew services list

我注意到除 dnsmasq 之外的所有服务都 运行 为 "root",但 dnsmasq 在我的用户上 运行。

停止了 dnsmasq

brew services stop dnsmasq

并开始于:

sudo brew services start dnsmasq

经过几个小时的挫折,这对我有用。

上面提到的内容对我在 macos sierra 上没有任何帮助,但有一点帮助:

since I use Google for DNS instead of my ISP. The warning is not to use .dev TLDs for dev environments. Instead, use a suggested TLD like .localhost (which is what I've changed valet to use by way of valet domain localhost. Voila. – Nate Ritter

避免使用“.dev”并使用“.devel”对我有用,如果你使用 google 的 8.8.8.8 dns

可能需要

对我来说,语法错误潜入了 dnsmasq.conf,这会阻止它正确启动。

为了检查这一点,我做了 dnsmasq --test,它给出了以下输出 dnsmasq: bad option at line 1 of /usr/local/etc/dnsmasq.conf

我修正了第 1 行的拼写错误,并使用 brew services restart --all

重新启动了所有服务

在那之后,我可以再次 ping 到 .dev 域并且它在我的浏览器中工作

ping test.dev
PING test.dev (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.062 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.035 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.056 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.053 ms
--- test.dev ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.035/0.051/0.062/0.010 ms

希望这对某些人有所帮助!

*.dev 不再有效,因为它是一个真正的 TLD。所以使用其他东西,比如 *.test*.local.

ping dev.test
PING dev.test (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.051 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.149 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.137 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.133 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.138 ms
64 bytes from 127.0.0.1: icmp_seq=5 ttl=64 time=0.166 ms
64 bytes from 127.0.0.1: icmp_seq=6 ttl=64 time=0.142 ms

另外,第一次在浏览器中打开时,不要忘记将 http:// 或 https:// 添加到您的域中,例如 http://blog.test。否则它将转到您的默认搜索引擎。

如果您刚刚开始使用 Laravel 并遵循 Laracast 教程,请务必阅读最新的文档。

在 Laravel 5.6 和 Valet 2.0.12 中,*.dev 域被 *.test 替换,如您在此处所见:https://laravel.com/docs/5.6/valet#installation