在 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
这是我已经完成的:
- 我已经完成 the Laravel Valet docs 并且一切都安装正常。
- Apache 不是 运行ning
/etc/hosts
未提及 test.dev
- 我在 valet v1.1.12
- 我已经重启了我的电脑
- 我已经通过自制软件安装了 php 7.0.7 和
--with-fpm
- 我的
$PATH
包含 $PATH:$HOME/.composer/vendor/bin
sudo lsof -n -i:80 | grep LISTEN
returns caddy
过程
brew services list
returnsdnsmasq
并启动
- 我已经更新了 brew,运行
brew doctor
那里一切都很好
- 我可以成功启动和停止valet。
valet paths
returns 成功:
[
"/Users/nateritter/.valet/Sites",
"/Users/nateritter/Sites"
]
- 在
test
目录中使用 valet link
对此问题没有影响
现在,除此之外,我决定尝试所有 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
更新:不要使用“.dev”。最初在 2016 年发布时,还不错。现在不是了。首先将您的 TLD 更改为其他名称,例如“.localhost”或其他名称。 (此更改不会解决我的问题,但如果您仍在使用“.dev”,它可能会解决您的问题)。
问题: 我已经安装了 Laravel Valet 并且一切正常,除非我 ping test.dev
(它只包含一个 index.htm 文件,位于 ~/Sites
),挂了很长时间后,我得到了响应 ping: cannot resolve test.dev: Unknown host
这是我已经完成的:
- 我已经完成 the Laravel Valet docs 并且一切都安装正常。
- Apache 不是 运行ning
/etc/hosts
未提及test.dev
- 我在 valet v1.1.12
- 我已经重启了我的电脑
- 我已经通过自制软件安装了 php 7.0.7 和
--with-fpm
- 我的
$PATH
包含$PATH:$HOME/.composer/vendor/bin
sudo lsof -n -i:80 | grep LISTEN
returnscaddy
过程brew services list
returnsdnsmasq
并启动- 我已经更新了 brew,运行
brew doctor
那里一切都很好 - 我可以成功启动和停止valet。
valet paths
returns 成功:[ "/Users/nateritter/.valet/Sites", "/Users/nateritter/Sites" ]
- 在
test
目录中使用valet link
对此问题没有影响
现在,除此之外,我决定尝试所有 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