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

时间:2016-06-09 07:47:45

标签: php laravel laravel-5 laravel-valet

更新:请勿使用" .dev"。当这最初发布于2016年时,它很好。现在不行。首先将您的顶级域名更改为其他一些内容,例如" .localhost"管他呢。 (这个改变不会解决我的问题,但是如果你仍然使用" .dev")它可能会修复你的问题。

问题:我已经安装了Laravel Valet,除了我ping test.dev(它只包含一个index.htm文件并位于{{ 1}}),在挂了很长时间后,我得到了回复~/Sites

这是我已经完成的事情:

  • 我已经完成了the Laravel Valet docs,一切安装得很好。
  • Apache未运行
  • ping: cannot resolve test.dev: Unknown host未提及/etc/hosts
  • 我在valet v1.1.12
  • 我已重新启动计算机
  • 我已经通过homebrew fresh和test.dev
  • 安装了php 7.0.7
  • 我的--with-fpm包含$PATH
  • $PATH:$HOME/.composer/vendor/bin返回sudo lsof -n -i:80 | grep LISTEN proc
  • caddy返回brew services list并启动
  • 我已经更新了brew,运行dnsmasq并且一切都很好
  • 我可以成功开始和停止代客。
  • brew doctor成功返回:valet paths
  • [ "/Users/nateritter/.valet/Sites", "/Users/nateritter/Sites" ] 目录中使用valet link对此问题没有影响

现在,除了这一切,我决定尝试所有的代客参数。 test似乎在某个时刻出现了错误,这很有趣,但我不确定它与原始问题有什么关系。

valet share

在此之后,我获得了21行ERROR: Tunnel 'command_line' specifies invalid address 'test.dev:80': unexpected '[' in address test.dev:80,然后是例外:

Failed to connect to 127.0.0.1 port 4040: Connection refused

7 个答案:

答案 0 :(得分:21)

问题最终与dnsmasq有关。使用非常彻底的this answer到另一个相关的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

我不确定为什么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被valet / caddy识别为潜在的索引文件。不是问题的一部分,而是值得注意的事情。

答案 1 :(得分:19)

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

sudo brew services start --all

答案 2 :(得分:3)

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

运行后

brew services list

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

使用

停止dnsmasq
brew services stop dnsmasq

并以:

开始
sudo brew services start dnsmasq

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

答案 3 :(得分:3)

上面没有提到我对macos sierra的帮助,但是有一点小话:

  
    

因为我使用谷歌而不是我的ISP。警告不要在开发环境中使用.dev TLD。相反,使用像.localhost这样的建议TLD(这是我通过代客域localhost改变代客的方式.Voila。 - Nate Ritter

  

避免'.dev'并使用'.devel'为我做了诀窍,如果您使用谷歌的8.8.8.8 dns可能需要

答案 4 :(得分:2)

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

答案 5 :(得分:2)

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

在Laravel 5.6和Valet 2.0.12中,* .dev域名被* .test取代,您可以在此处看到:https://laravel.com/docs/5.6/valet#installation

答案 6 :(得分: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

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