【问题标题】:DNS stop working for PHP - restart apache fix it temporarilyDNS 停止为 PHP 工作 - 重新启动 apache 暂时修复它
【发布时间】:2017-03-22 11:56:11
【问题描述】:

我的 PHP 应用程序和 DNS/Apache 遇到了一个非常奇怪的问题。 连接到外部服务(如电子邮件、支付等)的 PHP 应用程序突然停止工作。 经过一段时间的故障排除后,我们发现这是一个 DNS 问题。替换我们连接的服务器的 IP 地址将使应用程序正常工作。

但是,DNS 在服务器本身上运行良好。我们可以使用名称而不是 IP 来 ping、host、wget 等。 我在 PHP 中创建了一个简单的测试来测试它是否是 PHP 问题:

<?php
$handle = @fopen("http://www.google.com", "r");
if ($handle) {
while (($buffer = fgets($handle, 4096)) !== false) {
    echo $buffer;
}
if (!feof($handle)) {
    echo "Error: unexpected fgets() fail\n";
}
fclose($handle);
}

这也很好。 重新启动 apache 服务可以解决一段时间的问题,但几个小时后问题再次发生。 检查 syslog、apache 日志和 php 日志我找不到任何可能导致它的原因。

我检查了 /etc/hosts.deny、/etc/hosts、防火墙和 /etc/nsswitch。

我们的apache是​​版本:Apache/2.4.7 我们使用 PHP 5.5.9

关于什么可能导致 DNS 停止为 PHP/Apache 工作的任何想法?

感谢您的帮助

【问题讨论】:

  • What OS? 最近出现了一些影响 PHP dns 查找的 Ubuntu 错误,这似乎可以通过重启 apache 来解决
  • 嗨,马克,操作系统是 14.04.1 Ubuntu。我会检查你在那里发布的这个链接!谢谢

标签: php apache dns


【解决方案1】:

问题在于 libc-bin 的 2.19-0ubuntu6.10 版本

他们发布了更新的版本:

    eglibc (2.19-0ubuntu6.11) trusty-security; urgency=medium

      * REGRESSION UPDATE: Previous update introduced ABI breakage in
        internal glibc query ABI
        - Back out patches/any/CVE-2015-5180-regression.diff
          (LP: #1674532)

 -- Steve Beattie <sbeattie@ubuntu.com>  Tue, 21 Mar 2017 03:28:13 -0700

这应该可以解决您的问题

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-08-04
  • 1970-01-01
  • 2023-01-31
  • 1970-01-01
  • 2021-03-31
  • 2013-10-06
  • 2012-03-23
  • 1970-01-01
相关资源
最近更新 更多