在Laravel Valet安装后pinging test.dev返回"Unknown Host"

Nat*_*ter 12 php laravel laravel-5 laravel-valet

更新:不要使用".dev".当这最初发布于2016年时,它很好.现在不是.首先将您的TLD更改为某些其他内容,例如".localhost"或其他任何内容.(此更改不会解决我的问题,但如果您仍在使用".dev",它可能会修复您的问题).

问题:我已经安装了Laravel Valet,除了我ping test.dev(它只包含一个index.htm文件并且位于其中)之外它似乎都工作了~/Sites,在挂了很长时间之后我得到了响应ping: cannot resolve test.dev: Unknown host

这是我已经做过的事情:

  • 我已经浏览了Laravel代客文档,一切安装得很好.
  • Apache没有运行
  • /etc/hosts 没有提到 test.dev
  • 我在服务员v1.1.12
  • 我重新启动了电脑
  • 我通过homebrew fresh和安装了php 7.0.7 --with-fpm
  • 我的$PATH包含$PATH:$HOME/.composer/vendor/bin
  • sudo lsof -n -i:80 | grep LISTEN返回caddyproc
  • brew services list返回dnsmasq并开始
  • 我已经更新了brew,run,brew doctor并且一切都很好
  • 我可以成功开始和停止代客.
  • valet paths 成功返回: [ "/Users/nateritter/.valet/Sites", "/Users/nateritter/Sites" ]
  • valet linktest目录中使用对此问题没有影响

现在,除了这一切,我决定尝试所有的代客参数.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
Run Code Online (Sandbox Code Playgroud)

Nat*_*ter 23

问题最终与某些事情有关dnsmasq.使用对另一个相关SO帖子的非常彻底的答案,我最终做了以下来解决我的问题:

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
Run Code Online (Sandbox Code Playgroud)

我不确定为什么IP是127.0.53.53而不是127.0.0.1但是当我做了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.036 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.072 ms
Run Code Online (Sandbox Code Playgroud)

浏览test.dev也很有用.

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

  • 来找出它的泄漏因为它应该.https://iyware.com/dont-use-dev-for-development/和https://www.iana.org/domains/root/db/dev.html表明".dev"是委托的TLD(其中谷歌拥有).127.0.53.53的响应更有意义,因为我使用谷歌而不是我的ISP.警告不是在开发环境中使用`.dev` TLD.相反,使用建议的TLD,如`.localhost`(这是我通过`valet domain localhost`改变代客使用的.Voila. (3认同)
  • 解析为127.0.53.53的内部域名意味着您发生了名称冲突,ICANN正试图告诉您,您迫切需要修复DNS配置.您可以使用`dig -t TXT test.dev + short`获取信息,但它可能会说需要注意,您应该看到https://icann.org/namecollision (2认同)

Agu*_*ndo 19

我有同样的问题,一些brew服务被停止,运行此命令修复它:

sudo brew services start --all
Run Code Online (Sandbox Code Playgroud)