Я создал функцию управления изображениями на одном из моих старых сайтов, и она запускается на странице, которая получила полный URL-адрес изображения в качестве переменной get. Часть этой функции использует get_headers, чтобы получить тип содержимого запрошенного файла.
Хотя это работает на моем старом сервере, я недавно перешел на новый сервер, и я помню, что у меня возникали всевозможные проблемы с этой страницей, но я думаю, что это было больше на стороне сервера с библиотекой GD.
Я запускаю сайт на выделенном сервере с php 5.4.X и WHm cPanel, поэтому у меня есть полный доступ к изменениям и установке по мере необходимости.
Проблемный код
<?php
//Get the file and set the headers to the file type
$file = $_GET['file'];
$headers = get_headers($file, 1);
header('Content-Type: '.$headers['Content-Type']);
Ответ страницы
Warning: get_headers(): php_network_getaddresses: getaddrinfo failed: Name or service not known in [Removed url] on line 5
Warning: get_headers([Removed url]): failed to open stream: php_network_getaddresses: getaddrinfo failed: Name or service not known in [Removed url] on line 5
Warning: Cannot modify header information - headers already sent by (output started at [Removed url]:5) in [Removed url] on line 6
Единственное, что я изменил на стороне сервера, это установил значение allow_url_fopen в WHM, все остальное, что я пробовал, я сбросил после того, как он не работает.
Похоже, проблема с разрешением DNS, если адрес правильный, и вы недавно изменили свое имя
серверы домена или, например, запись A, тогда может происходить «распространение» DNS. Вы можете получить его быстрее, используя общедоступные серверы имен Google, например:
nano /etc/resolv.conf
Затем установите ваши сервера имен:
nameserver 8.8.8.8
nameserver 8.8.4.4
Других решений пока нет …