2016-06-09 94 views
9

更新:请勿使用“.dev”。最初在2016年发布时,情况良好。现在不是。首先将TLD更改为“.localhost”之类的其他内容。 (这种改变不会解决我的问题,但如果您仍然在使用“.dev”,它可能会解决您的问题)。Laravel代客安装后ping Ping test.dev返回“未知主机”

问题:我已经安装Laravel代客而这一切似乎除了当我ping test.dev(这只是包含一个index.htm文件,位于~/Sites),挂了很长一段时间后,我去要工作响应ping: cannot resolve test.dev: Unknown host

这就是我已经做了:

  • 我已经通过了the Laravel Valet docs,一切都安装了罚款。
  • Apache不运行
  • /etc/hosts包含test.dev
  • 没有提到我在代客v1.1.12
  • 我重新启动我的电脑
  • 我已经通过自制新鲜安装了PHP 7.0.7和--with-fpm
  • $PATH包含$PATH:$HOME/.composer/vendor/bin
  • sudo lsof -n -i:80 | grep LISTEN返回caddy PROC
  • brew services list回报dnsmasq,并开始
  • 我已经更新了BREW,运行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 
+0

在OSX上打开'console'并搜索'dnsmasq'。可能会出现如下错误:“无法为{IP}创建监听套接字:权限被拒绝,无法启动。 –

回答

16

的问题最终是事做dnsmasq。使用非常彻底this answer到另一个相关的SO后,我终于实现了以下解决我的问题:

brew unlink dnsmasq

brew install dnsmasq

brew prune

brew services restart dnsmasq

valet install

然后,只是为了测试我做了平之前,我做了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它确实返回...

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不被代理/球童识别为潜在的索引文件。不是问题的一部分,但需要注意一些有趣的事情。

+2

解析为127.0.53.53的内部域意味着您的域名冲突,ICANN正试图告诉您,您迫切需要修复DNS配置。您可以使用'dig -t TXT test.dev + short'获取信息,但可能需要注意,您应该看到https://icann.org/namecollision –

+0

感谢Ben。在我的路由器或OS X网络首选项上使用Google的DNS是否会造成此问题?我猜这不是原因,但可能是名称空间泄露的位置,但我不确定在哪里查找,以便首先了解它是如何泄漏到公共空间的。任何提示? –

+3

来找出它泄漏,因为它应该。 https://iyware.com/dont-use-dev-for-development/和https://www.iana.org/domains/root/db/dev.html表明“.dev”是授权的TLD(其中谷歌拥有)。由于我使用Google代替DNS而不是ISP,因此127.0.53.53的响应更有意义。 警告不是在开发环境中使用'.dev' TLD。相反,使用像'.localhost'这样的建议TLD(这就是我通过'valet domain localhost'方式改变代理的方式。)Voila。 –

18

我有同样的问题,有些BREW服务已停止,运行这个命令修复它:

sudo brew services start --all 
+1

我一直在拉我的头发(不是真的,我是秃顶的)一周试一试!谢谢! – Chris

3

我拥有了一切设置正确,但有同样的问题 - 不能让app.dev运行。

运行

brew services list 

后,我注意到,除了所有的dnsmasq服务正在运行的“根”,但被的dnsmasq我的用户运行。

brew services stop dnsmasq 

停止的dnsmasq,并开始了它:

sudo brew services start dnsmasq 

这为我工作,无奈的几个小时后。

+1

谢谢。这解决了我的问题 – rmvz3

1

上述没有帮助我在MacOS塞拉利昂,但一个小的话做的事:

,因为我使用谷歌的DNS,而不是我的ISP。警告是不要在开发环境中使用.dev TLD。相反,使用建议TLD像.localhost(这是我已经改变了代客由代客域本地主机的方式使用瞧 - 内特特尔

避免“.dev”和使用” .devel “为我做的伎俩,可能需要,如果你在谷歌的8.8.8.8 DNS

0

对我莫名其妙语法错误潜入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 

希望这会有助于一个!

0

*.dev不再有效,因为它是一个真正的顶级域名。因此请使用其他类似*.test*.local。当您在浏览器中打开//你的域名就像http://blog.test首次:

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。否则,它会转到您的默认搜索引擎。

+0

这是正确的,但是回到'16发布OP的时候,确实如此。 –