我遇到了我們的PHP應用程序和DNS/Apache非常奇怪的問題。 連接到外部服務(如電子郵件,付款等)的PHP應用程序突然停止工作。 排除故障後,我們發現這是一個DNS問題。替換我們連接的服務器的IP地址將使應用程序正常工作。DNS停止工作的PHP - 重新啓動Apache暫時修復它
但是DNS從服務器本身工作正常。我們可以使用名稱而不是IP來ping,主機,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的版本是:阿帕奇/ 2.4.7 我們用PHP 5.5.9
的東西可能會造成DNS停止對PHP/Apache的工作任何想法?
謝謝您的幫助
[什麼操作系統?](https://bugs.launchpad.net/ubuntu/+source/eglibc/+bug/1674532)有最近的一些問題與Ubuntu的錯誤影響到PHP的DNS查詢,這似乎是workroundable與apache重啓 –
嗨馬克,操作系統是Ubuntu 14.04.1。我會檢查你在那裏發佈的鏈接!由於 – Adonist
[其他錯誤報告(https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1674733) –