2011-10-31 1 views
0

을 거부 I가 내 컴퓨터에서 잘 실행하지만 온라인 실패 다음 코드를file_get_contents : 연결이

<?PHP 
    header("Content-Type: text/plain"); 

    $username = "username"; 
    $password = "password"; 
    $url = "http://s6.voscast.com:7158/admin.cgi?mode=viewxml"; 

    $context = stream_context_create(array(
     'http' => array (
      'method' => "GET", 
      'header' => "Authorization: Basic ".base64_encode($username.":".$password)."\r\n". 
         "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/14.0.835.202 Chrome/14.0.835.202 Safari/535.1" 
     ) 
    )); 

    print file_get_contents($url, false, $context); 
?> 

이 완전히 로컬로 작동합니다 HTTP 기본 인증 뒤에있는 URL을 가져 와서 인쇄 할 수 있습니다.

그러나, 나는 내 서버에 업로드 할 때, 작동하지 않는 이 밖으로 뱉어 :

<br /> 
<b>Warning</b>: file_get_contents(http://s6.voscast.com:7158/admin.cgi?mode=viewxml) [<a href='function.file-get-contents'>function.file-get-contents</a>]: failed to open stream: Connection refused in <b>/home/livshin/public_html/wp-content/uploads/_radio/songinfo.php</b> on line <b>16</b><br /> 

적어도 줄 것이다 나는이에 스택 트레이스를 얻을 수있는 방법이나 뭐 있나요 무슨 일이 벌어 졌는지 더 잘 알 겠어?

* 이미 서버에서 file_get_contents("http://google.com/")과 같은 기능이 작동하는지 테스트했습니다.

+4

서버가 포트 7158에서 나가는 연결을 허용하지 않을 수 있습니다. 포트 80에있는 Google이 올바르게 작동합니다. 방화벽을 바꿀 수 있습니까? – Ryan

+1

"스택 추적"에 가장 좋은 점은 서버에서 네트워크 모니터를 사용하고 해당 서버에 대한 연결 상태를 관찰하는 것입니다. ''\ r \ n "'이있는 문자열이 아닌 배열로 헤더를 설정할 수 있습니다. 내부적으로 등록 된'http : //'streamwrapper에 따라 이것은 효과를 낼 수 있습니다. 그러나 이것이 작동한다는 보장은 없습니다. 서버 (셸)에 대한 SSH 액세스 권한이 있습니까? 명령 줄에서'curl -v'를 사용하면 더 많은 정보를 얻을 수 있습니다. – hakre

+0

@minitech 확실히 문제가되는 것 같습니다. 방금 SSH 액세스를 요청했습니다. –

답변

1

아마도 서버가 포트 7158에서 나가는 연결을 허용하지 않을 것입니다. 포트 80에있는 Google은 올바르게 작동합니다. 방화벽을 변경해야 할 수도 있습니다.