Max OS Lion 10.7.3使用MAMP进行DNS查找非常慢

时间:2012-05-07 23:12:31

标签: php dns osx-lion mamp ipv6

这个问题已经以多种形式提出,我花了六个多小时在互联网上搜索解决我问题的答案。到目前为止,我一直没有成功。我使用MAMP开发PHP应用程序,我昨天从Snow Leopard升级到Lion,并且我的本地应用程序运行速度慢得多。我相信它是一个关于Lion如何处理IPv6的DNS查询问题。我尝试了以下步骤来解决问题:

  1. 更改了我的主机文件中的所有条目,不再使用.local TLD
  2. 将我的主机文件中的所有条目放在单独的行中
  3. 确保我的主机文件具有正确的编码
  4. 为我的主机文件中的所有本地条目添加了IPv6条目
  5. 已安装的dnsmasq(可能没有正确完成此操作)
  6. 将所有主机文件条目放在fe80 :: 1%lo0 localhost行
  7. 之前

    这解决了一些问题,但还有一个问题我还没弄明白。在我们的PHP应用程序中,我们定义了SOAP端点,如下所示:

      

    API:8080 /合同/服务/ SomeService WSDL

    在每台服务器上,主机文件中都有一个“api”条目,指向SOAP API的IP地址。所以,当我想指向我们的开发服务器时,我将我的hosts文件更改为:

      

    132.93.1.4 api

    (不是真正的IP)

    主机文件中api条目的DNS查找每次仍需要5秒。当我ping api时,结果立即回来。但是,当我使用ssh api时,我需要大约5秒才能连接到服务器。这意味着当我加载我的PHP应用程序时,任何SOAP查询将花费5秒+但实际查询需要多长时间,这使得本地开发完全不可能。我意识到我们定义端点的方式可能不是最好的设计决策,但这是我必须要做的事情。

    从我读过的其他问题来看,我认为它首先尝试在IPv6中查找“api”,失败,然后查看/ etc / hosts。我尝试使用dnsmasq切换此顺序,但没有运气。有没有人知道如何强制它首先读取/ etc / hosts,或者完全跳过IPv6?

    更新:我将主机文件中的条目更改为api.com,api.foo,任何带有“。”的内容。在其中,它立即响应。但是,我仍然希望找到一个不需要更改名称“api”的解决方案。

1 个答案:

答案 0 :(得分:1)

自从我升级支持IPv6的调制解调器以来,我遇到了同样的问题。添加两种主机名格式(IPv4和IPv6)修复了以下问题:

::1 domain.dev # <== localhost on crack
127.0.0.1   domain.dev