2010-07-30 3 views
2

원격 서버에서 XML 컨텐트를 가져 오는 CURL 코드가 있습니다. 내 localhost (Windows의 경우 XAMPP)에서 예상되는 결과를 얻습니다. 하지만 라이브 사이트 (Linux에서 호스팅)에서 CURL 오류가 발생합니다 : '호스트에 연결할 수 없습니다'.CURL은 localhost에서 작동하지만 라이브 사이트에는 작동하지 않습니다.

function DownloadUrl($Url, $p){ 

// 컬되어 있습니까? if (! function_exists ('curl_init')) { die ('CURL이 설치되지 않았습니다!'); 당신에 }

// create curl resource 
    $ch = curl_init(); 

    // set url 
    curl_setopt($ch, CURLOPT_URL, $Url); 

curl_setopt ($ch, CURLOPT_POSTFIELDS, $p); 
curl_setopt ($ch, CURLOPT_POST, 1); 
    //return the transfer as a string 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

    // $output contains the output string 
    $output = curl_exec($ch); 

if($output === false) 
echo 'Curl error: ' . curl_error($ch); 
else 
    print $output; 
    // close curl resource to free up system resources 
    curl_close($ch);   

}

+0

Linux 서버에서 호스트에 ping을 시도 했습니까? 당신의 리눅스 서버에서 호스트를 wget하려고 했습니까? 예인 경우 결과가 좋았습니까? –

+0

이것은 또한 PHP 태그되어야합니다. –

+1

원격 환경이 무엇인지, 즉 공유 호스팅, VPS 등을 아는 것이 유용합니다. 일부 공유 공급자는 컬을 사용하여 다른 사이트의 콘텐츠를 가져 오지 못하도록합니다. VPS를 사용 중이라면 아웃 바운드 연결을 허용하는 적절한 iptables 규칙이 있는지 확인할 수도 있습니다. – suitedupgeek

답변

1

서버를 살고 있습니다. phpinfo();을 실행하고 php_curl이 설치되어 있고 활성화되어 있는지 확인하십시오. 이것은 일반적으로 "호스트에 연결할 수 없습니다"보다는 치명적인 예외를 발생시킵니다. 당신이 받고있는 메시지.

여전히 문제가있는 경우 SSH를 통해 URL을 추적하여 웹 사이트가 실제로 연결될 수 있는지 확인할 수 있습니다. 구성 설정이나 문제를 야기하는 다른 서비스가있을 수 있습니다.

관련 문제