【问题标题】:file_get_contents(): php_network_getaddresses: getaddrinfo failed: No such host is knownfile_get_contents(): php_network_getaddresses: getaddrinfo failed: 没有这样的主机是已知的
【发布时间】:2023-03-10 08:30:02
【问题描述】:

我正在使用 laravel 的干预包来上传图像,并且我创建了一个虚拟主机登台服务器,我在其中托管了我的项目。 当我在具有虚拟主机的本地计算机上使用干预时,干预工作正常。

我遇到以下错误:

AbstractDecoder.php 第 64 行中的 ErrorException:file_get_contents(): php_network_getaddresses: getaddrinfo failed: No such host is known.

位于\vendor\intervention\image\src\Intervention\Image\AbstractDecoder.php 中的以下代码

/**
 * Init from fiven URL
 *
 * @param  string $url
 * @return \Intervention\Image\Image
 */
public function initFromUrl($url)
{
    if ($data = file_get_contents($url)) {
        return $this->initFromBinary($data);
    }

    throw new \Intervention\Image\Exception\NotReadableException(
        "Unable to init from given url (".$url.")."
    );
}

我认为当我们在虚拟主机上工作时,file_get_content 会出现问题。 我已经提到了这个Question,但我没有得到解决方案。

【问题讨论】:

  • 这看起来像是 DNS 问题。请您尝试将 URL 作为 IP 地址而不是服务器名称传递。如果这可行,那么它肯定是 DNS 问题,然后我们会努力解决这个问题。
  • @EddeAlmeida 它适用于 IP。不能使用虚拟主机的假域名。
  • 然后我们遇到了 DNS 问题,正如我之前所说。您使用的是什么操作系统?
  • 我在服务器和本地系统上都使用 Windows 7 来访问项目。
  • 然后您必须编辑 Windows 7 解析本地 DNS 名称的文件并将 IP 映射到相应的虚拟服务器。请阅读:helpdeskgeek.com/windows-xp-tips/edit-hosts-file

标签: php laravel-5.2 virtualhost file-get-contents intervention


【解决方案1】:

如果 file_get_contents 在您使用 IP 时有效,但在您使用虚拟主机名时无效,那么我们这里有一个 DNS 问题。

如果您使用的是 Linux,您应该编辑(以 root 身份)文件 /etc/hosts 并将您的虚拟服务器的名称映射到相应的 IP,然后重新启动您的 DNS 服务器。

但是您使用的是Windows 7,那么您必须在文件C:\Windows\System32\Drivers\etc\hosts中执行相同操作,然后重新启动您的机器机器。

如果您对如何查找/编辑此文件有疑问,请阅读this article here

【讨论】:

  • 我已经在我的 hosts 文件中添加了 IP fake-name.me。在服务器和本地两者上。这意味着我应该重新启动服务器以使其正常工作?
  • 您使用本地 DNS 服务器吗?
  • 我相信 Windows 7 有一个,但如果它处于活动状态,您必须检查您的服务。
猜你喜欢
  • 1970-01-01
  • 2016-10-16
  • 1970-01-01
  • 1970-01-01
  • 2023-01-24
  • 2011-06-25
  • 2019-06-15
  • 1970-01-01
相关资源
最近更新 更多