本地 Web 开发无法在 OSX 上运行

本地 Web 开发无法在 OSX 上运行

我已正确设置 DNSmasq,以将任何 *.dev 域指向 localhost。我的 apache vhosts 都配置到了相应的文件夹,但我没有收到来自本地站点的任何响应。我一直在绞尽脑汁,在网上搜索各种答案,但都没有成功。只是指出,此设置以前有效,但 High Sierra Security 更新破坏了一切。这是我的主机配置:

<Directory "/www">
  Options Indexes MultiViews FollowSymLinks
  AllowOverride All
  Require all granted
</Directory>

<Virtualhost *:80>
  VirtualDocumentRoot "/www/home/wwwroot"
  ServerName home.dev
  UseCanonicalName Off
</Virtualhost>

<Virtualhost *:80>
  VirtualDocumentRoot "/www/sites/%1/wwwroot"
  ServerName sites.dev
  ServerAlias *.dev
  UseCanonicalName Off
</Virtualhost>

<Virtualhost *:80>
  VirtualDocumentRoot "/www/sites/%-7+/wwwroot"
  ServerName xip
  ServerAlias *.xip.io
  UseCanonicalName Off
</Virtualhost>

我刚刚注意到 ping home.dev 返回 127.0.0.1 但 dig home.dev 返回 127.0.53.53

以下是我的 DNS 解析:

DNS configuration

resolver #1
  search domain[0] : home
  nameserver[0] : 8.8.8.8
  nameserver[1] : 208.67.220.220
  if_index : 9 (en7)
  flags    : Request A records
  reach    : 0x00000002 (Reachable)

resolver #2
  domain   : local
  options  : mdns
  timeout  : 5
  flags    : Request A records
  reach    : 0x00000000 (Not Reachable)
  order    : 300000

resolver #3
  domain   : 254.169.in-addr.arpa
  options  : mdns
  timeout  : 5
  flags    : Request A records
  reach    : 0x00000000 (Not Reachable)
  order    : 300200

resolver #4
  domain   : 8.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  flags    : Request A records
  reach    : 0x00000000 (Not Reachable)
  order    : 300400

resolver #5
  domain   : 9.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  flags    : Request A records
  reach    : 0x00000000 (Not Reachable)
  order    : 300600

resolver #6
  domain   : a.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  flags    : Request A records
  reach    : 0x00000000 (Not Reachable)
  order    : 300800

resolver #7
  domain   : b.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  flags    : Request A records
  reach    : 0x00000000 (Not Reachable)
  order    : 301000

resolver #8
  domain   : local
  nameserver[0] : 127.0.0.1
  flags    : Request A records, Request AAAA records
  reach    : 0x00030002 (Reachable,Local Address,Directly Reachable Address)

resolver #9
  domain   : dev
  nameserver[0] : 127.0.0.1
  flags    : Request A records, Request AAAA records
  reach    : 0x00030002 (Reachable,Local Address,Directly Reachable Address)

DNS configuration (for scoped queries)

resolver #1
  search domain[0] : home
  nameserver[0] : 8.8.8.8
  nameserver[1] : 208.67.220.220
  if_index : 9 (en7)
  flags    : Scoped, Request A records
  reach    : 0x00000002 (Reachable)

答案1

好的,我找到了解决方案。dev 域名似乎是您可以注册的官方域名,因此在我的 DNS 解析中产生了冲突,导致它指向 127.0.53.53,这是发生冲突时通常归属的 IP。这意味着 *.dev 曾尝试通过我的公共 DNS 设置和我的本地主机设置进行解析,从而产生了冲突。我将本地开发域名切换到 *.test,一切立即恢复正常。

相关内容