我正在试用 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(及其子进程
_www
和 nobody
)。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/