laravel - 代客 (Laravel) : DNS address can not be found

标签 laravel laravel-valet

我正在试用 Valet,据我所知,它看起来非常好。

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

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

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

最佳答案

当您运行时 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,需要告诉它这样做。 Valet 也会为您处理此问题,但您可以通过执行以下操作来检查它是否已完成。

目录内/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 任何东西.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

理想情况下,如果代客按预期运行,这应该返回球童。你想看下面的例子或者什么都不理想;没什么,因为这意味着我们可以启动 Valet。
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 启动 Valet它会起作用。

您可能会得到进一步的错误,这是由于在没有 FPM 的情况下安装 PHP 引起的。您可以使用
brew info php70 | grep php70-fpm

哪个应该产生一些类似的东西

The control script is located at /usr/local/opt/php70/sbin/php70-fpm



如果似乎没有安装,请使用以下命令。
brew uninstall homebrew/php/php70
brew install homebrew/php/php70 --with-fpm
valet restart

关于laravel - 代客 (Laravel) : DNS address can not be found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37172691/

相关文章:

php - 使用 laravel 代客使用 wordpress,无法增加最大上传限制

javascript - 创建子类别选择框 onChange

php - 生产中的 Laravel 应用程序中不显示图像

node.js - 在 Homestead 上安装 npm 和 node

php - AJAX、Laravel 4.2 - POST 状态已取消,如何发布到路由

Laravel 黄昏报告 "General error: 5 database is locked"和 "Operation timed out"

cors - Laravel Sanctuary : blocked by CORS policy with Nuxt Auth module

php - 升级 php 后 MySQL 无法在 mac Sierra 上运行

Laravel Dusk 忽略 .env.dusk 和 .env.dusk.local(使用 Valet 和 Laravel 5.5)

php - Laravel Valet 不工作。 127.0.0.1 连接被拒绝