fopen терпит неудачу с getaddrinfo не удалось

У меня возникают проблемы со следующим кодом:

function http_file_exists($url){ $f=fopen($url,"r"); if($f){ fclose($f); return true; } else { return false; } 

} $ url = "http://www.minhemmelighed.dk/Graphics/Products/55.jpg";

print http_file_exists ($ url);

Ошибка, которую он возвращает:

Предупреждение: fopen (): php_network_getaddresses: getaddrinfo не удалось: имя или служба неизвестны в /srv/http/webshop3/image_scraper/test.php в строке 6 Предупреждение: fopen (http://www.minhemmelighed.dk/Graphics/Products/ 55.jpg): не удалось открыть поток: php_network_getaddresses: getaddrinfo не удалось: имя или услуга, неизвестные в /srv/http/webshop3/image_scraper/test.php в строке 6

Что я могу сделать по этому поводу? Я перезагрузил сервер несколько раз.

Для записи:

Я могу получить доступ к рассматриваемому веб-сайту через браузер

Я запускаю LAMP на Arch Linux

Перезагрузка сервера UNIX крайне затруднительна. Похоже, вам нужно проверить конфигурацию сервера имен на сервере. На консоли веб-сервера (зарегистрированного как пользователь php, возможно, apache или www-data ), проверьте

 dig www.minhemmelighed.dk 

Если это выводит сообщение об ошибке, проверьте /etc/resolv.conf . Прокомментируйте все строки и добавьте

 nameserver 8.8.8.8 # Google's public DNS server 

Если это решает проблему, обратитесь к администратору исходного сервера имен (или просто используйте 8.8.8.8 ). Если это не так, проверьте подключение и брандмауэры.

Для тех из вас, кто работает с очень закрытым дистрибутивом, например CentOS, это, вероятно, функция безопасности SELinux, как я обнаружил в своих системах.

В командной строке введите:

getsebool -a | grep httpd

и искать

httpd_verify_dns -> off

если это так, вам нужно установить его в On с помощью следующей команды

setsebool httpd_verify_dns = 1

или постоянно с:

setsebool -P httpd_verify_dns = 1

не забудьте перезапустить httpd с помощью:

перезагрузка службы httpd после каждого изменения

Надеюсь, это поможет

отметка