get_headers возвращает ошибку на новом сервере

Я создал функцию обработки изображений на одном из своих старых сайтов, и она запускается на странице, которая получила полный URL-адрес изображения в качестве переменной получения. Часть этой функции использует 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

Единственное, что я изменил на стороне сервера, это включить в WHM значение allow_url_fopen, все остальное, что я пробовал, я сбрасывал обратно после того, как оно не работало.


person Chris Morris    schedule 02.10.2014    source источник
comment
Как давно вы меняли серверы? Это может быть проблема с DNS, если домен еще не распространился.   -  person Karl    schedule 02.10.2014


Ответы (1)


Похоже на проблему разрешения DNS, если адрес правильный, и вы недавно изменили серверы имен домена или, например, запись A, то может иметь место «распространение» DNS. Возможно, вы сможете получить его быстрее, используя общедоступные серверы имен Google, например:

nano /etc/resolv.conf

Затем установите свои серверы имен:

nameserver 8.8.8.8 
nameserver 8.8.4.4
person Ohgodwhy    schedule 02.10.2014
comment
В значительной степени писал точно такой же ответ, но вы меня опередили :( Однако вы не опередили меня в комментарии! - person Karl; 02.10.2014
comment
Вы также можете временно устранить проблему (пожалуйста, удалите это после того, как изменения DNS вступят в силу), добавив хост в /etc/hosts. - person h2ooooooo; 02.10.2014