代客(Laravel):无法找到DNS地址

时间:2016-05-11 20:29:05

标签: laravel laravel-valet

我正在尝试代客,从我听到的内容看起来真的很棒。

我已经完成了“整个”安装过程,Valet已经成功安装。

但当我cd进入我的项目文件并输入valet park并浏览到http://blog.dev时,我得到“无法找到blog.dev的DNS服务器地址。”

我不知道我做错了什么。 :)

4 个答案:

答案 0 :(得分:28)

当您运行valet install时,它会尝试安装dnsmasq。它需要sudo权限。

您可以使用

检查它是否已安装并正在运行
brew services list

您应该看到类似

的内容
dnsmasq started root /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist

然而,您可能需要先点击brew / services

brew tap homebrew/services

如果不存在,请运行

brew install dnsmasq
brew services start dnsmasq

再次运行valet install以设置dnsmasq,并留意任何错误。这应该做的是在/usr/local/etc/dnsmasq.conf的底部添加一行,类似于

conf-file=/Users/{YOURUSER}/.valet/dnsmasq.conf
然后

/ Users / {YOURUSER} /。valet / dnsmasq.conf应该包含

address=/.dev/127.0.0.1

检查您的DNS服务器是否正在响应请求

dig testing.dev @127.0.0.1

你应该看到像

这样的回复
;; ANSWER SECTION:
testing.dev. 0 IN   A   127.0.0.1

要确保您的Mac知道它应该使用您的本地DNS服务器解析* .dev,需要告知它这样做。代客也会为您处理此问题,但您可以通过执行以下操作来检查是否已完成此工作。

在目录/etc/resolver内,应该有一个名为dev的文件,其中包含以下内容

nameserver 127.0.0.1

这会为* .dev创建自定义DNS解析程序,并指向本地DNS服务器上的所有请求。

使用以下任一命令重新启动dnsmasq,然后再试一次。

// this
brew services restart dnsmasq

// or this
sudo launchctl stop homebrew.mxcl.dnsmasq
sudo launchctl start homebrew.mxcl.dnsmasq

如果这一切都有效,你应该可以ping any.dev

ping anything.dev

PING anything.dev (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.039 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.081 ms

确保DNS相关位正常工作。

最终问题是关于DNS相关的问题,但是因为这是你需要尝试的所有内容,我将在下面留下。也就是说,如果您无法ping something.dev或收到“无法找到blog.dev的DNS服务器地址”这样的错误。根据OP,它与DNS有关,需要解决。

由于Caddy在端口80上提供网站服务,因此您需要确保端口80上没有其他任何内容正在运行。

sudo lsof -n -i:80 | grep LISTEN

理想情况下,如果代客按预期运行,则应返回球童。你想看到下面的例子,或者没有理想的东西;什么都没有,因为这意味着我们可以开始代客。

caddy     76234 root    3u  IPv6 0x4f871f962e84fa95      0t0  TCP *:http (LISTEN)

您可以在下面的示例中看到其他网络服务器,例如Apache或Nginx(及其子流程_wwwnobody)。

httpd       79     root    4u  IPv6 0xf4641199930063c5      0t0  TCP *:http (LISTEN)
httpd      239     _www    4u  IPv6 0xf4641199930063c5      0t0  TCP *:http (LISTEN)
nginx     4837     root    6u  IPv4 0xf4641199a4e8e915      0t0  TCP 127.0.0.1:http (LISTEN)
nginx     4838   nobody    6u  IPv4 0xf4641199a4e8e915      0t0  TCP 127.0.0.1:http (LISTEN)

假设您已经使用自制软件安装了Nginx,您可以运行以下命令来阻止它。

brew services stop nginx

OSX附带Apache安装,因此如果正在运行,您可以停止使用以下内容。

sudo apachectl stop

此时您可以使用valet start启动代客并且它可以正常工作。

如果没有FPM安装PHP,可能会导致进一步的错误。您可以使用

进行检查
brew info php70 | grep php70-fpm

哪个应该产生类似

的内容
  

控制脚本位于/ usr / local / opt / php70 / sbin / php70-fpm

如果似乎没有安装,请使用以下内容。

brew uninstall homebrew/php/php70
brew install homebrew/php/php70 --with-fpm
valet restart

答案 1 :(得分:1)

我有同样的问题 - 卡在ping foobar.dev - 并通过重新启动我的Macbook(在代客安装后)修复它。我确信这不是一个确切的解决方案,我认为有一种方法可以在不重新启动的情况下执行此操作。然而,它对我有用。我没有做任何其他步骤。

[编辑 - 此外,在重新启动之前,我确保尝试使用fpm提示安装,并在安装php70时遵循所有brew的建议(调整路径,确保php70在系统启动时启动。我不能说这些是否有帮助,所以可能想尝试重新启动,首先。如果它只是需要重新启动,或者正确启动服务的其他一些步骤,我认为laravel文档可能需要一些澄清。]

答案 2 :(得分:0)

我遇到了同样的问题,安装后我遇到了ping foo.dev。

我检查了运行服务。

> brew services list

Name    Status  User Plist
dnsmasq stopped
nginx   stopped
php71   stopped

使用

手动启动所有三项服务
> brew services start dnsmasq
> brew services start nginx
> brew services start php71

valet install

成功ping到foo.dev

答案 3 :(得分:0)

如果您是Windows用户, 执行Acrylic配置,然后重新启动适配器(禁用和启用)

http://mayakron.altervista.org/wikibase/show.php?id=AcrylicWindows10Configuration

为我工作