【问题标题】:How to get custom domain names to work with "php_network_getaddresses"如何让自定义域名与“php_network_getaddresses”一起使用
【发布时间】:2013-07-24 15:59:33
【问题描述】:

我的域是在 Windows 的“hosts”文件中设置的,它的名称类似于“my.site”。我正在使用它进行开发。

但这似乎不适用于fsockopen() open 函数。我得到“php_network_getaddresses: getaddrinfo failed: Name or service not known”。

有可能让它工作吗?

【问题讨论】:

  • 唉,你的问题我没有答案。我唯一能推荐的就是找到另一种方法来支持自定义域名(我使用 .htaccess)或在适当的服务器上设置系统以进行开发。
  • 你是如何使用 fsockopen() 的?
  • 作为@KlausS。指出,我认为您使用 fsockopen 的方式存在问题,因为我刚刚为 fsockopen 做了 PHP 的示例 #1,域名使用 hosts 文件解析。
  • 您能否分享您的主机文件中定义您尝试使用的域的行?
  • 我的 hosts 文件在 windows 中,但 php 在虚拟机中的 linux 中运行。会是这个原因吗?

标签: php networking windows-7 dns fsockopen


【解决方案1】:

这完全适合我:

// inside hosts file:
// 10.128.0.23 test.domain.example

$socket = fsockopen('test.domain.example', 80);
fclose($socket);

我可以 ping 那个域名并得到一个有效的答案,它在端口 80 上运行一个 Web 服务器。

我从您的评论中得知您的 PHP 在虚拟机中 - 那么您应该尝试 ping 是否也可以在那里工作,如果没有:也将域名添加到您的主机文件中。虚拟机不一定继承其主机的名称解析功能。

【讨论】:

  • 你说得对,ping 也不起作用。你知道我怎样才能将域也暴露给虚拟机吗?
  • 如果它不能开箱即用,那么它可能永远不会起作用。您必须以相同的方式编辑两个主机文件。您没有提到您使用哪种设置,我想这在很大程度上取决于细节。最简单的方法:根据自己的意愿编辑文件。
  • 哦,我太傻了。我没有意识到 ubuntu 也有一个 hosts 文件。所以在 Windows 中我添加了 192.168.56.101 my.site 和 ubuntu 127.0.0.1 my.site 现在 ping 似乎工作了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-27
  • 1970-01-01
  • 2014-12-13
相关资源
最近更新 更多