У меня проблемы с DNS с определенным целевым доменом. Я использую fopen ()
(но такая же проблема с другими функциями) для получения изображения, но получаю следующую ошибку:
Предупреждение: fopen (): php_network_getaddresses: getaddrinfo не удалось: Такой хост неизвестен
Я могу выполнить ping или nslookup домена из командной строки, но по какой-то причине php выдает эту ошибку. Когда я пробую fopen ('http://www.google.com', r);
или другие домены, все идет нормально. Но вышеупомянутый домен просто не разрешится с помощью PHP. Я очистил DNS, перезапустил Apache, но все равно не повезло.
Я пробовал:
Что может привести к тому, что этот единственный домен не разрешится?
IMO, это другой способ разрешения имени из ОС и PHP.
Попробуйте:
echo gethostbyname("host.name.tld");
и
var_export (dns_get_record ( "host.name.tld") );
или
$dns=array("8.8.8.8","8.8.4.4");
var_export (dns_get_record ( "host.name.tld" , DNS_ALL , $dns ));
Обнаружена ошибка DNS / распознавателя.
Более гибко использовать curl
вместо fopen
и file_get_content
для открытия веб-страницы.
Что вызвало эту ошибку на моей стороне, была следующая строка
include_once dirname(__FILE__) . './Config.php';
Мне удалось понять, что это был виновник, когда я добавил строки:
//error_reporting(E_ALL | E_DEPRECATED | E_STRICT);
//ini_set('display_errors', 1);
ко всем моим php файлы.
Чтобы решить path issue
я пометил оскорбительную линию:
include_once dirname(__FILE__) . '/Config.php';