0
我有它運行在我的電腦上正常,但無法在網上下面的代碼:的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-Basic身份驗證背後的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/")
這樣的東西在服務器上正常工作。
您的服務器可能不允許在端口7158上傳出連接。位於端口80上的Google正常工作。你能改變防火牆嗎? – Ryan
「堆棧跟蹤」最好的辦法是使用服務器上的網絡監視器,並觀察與該服務器的連接會發生什麼情況。試一試,你可以將標題設置爲一個數組(而不是用「\ r \ n」')作爲字符串。根據內部註冊的'http://'streamwrapper,這可能會有所不同。但不保證這是有效的。你有SSH訪問服務器(shell)嗎?也許在命令行中使用'curl -v',你會得到更多的信息,特別是那個部分,就像minitech所評論的那樣。 – hakre
@minitech這絕對聽起來像這個問題。剛剛要求SSH訪問。 –