2012-09-18 62 views
0

我有一個curl請求,它在我的本地主機上正常工作,我已經將它上載到服務器,但它掛起並以500內部服務器錯誤結束。如果刪除行echo $output = curl_exec($ch);它工作正常。php curl_exec函數掛起並以錯誤結束500

$url = "https://someserver.com/api/"; 
$username = "some_user"; 
$password = "some_apss"; 
if(!extension_loaded('curl')){ 
    die("Curl extension not loaded"); 
} 
if(!function_exists('curl_init')){ 
    die("curl_init not found"); 
} 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);  
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
echo $output = curl_exec($ch); 
$info = curl_getinfo($ch); 
curl_close($ch);` 
+0

當然,如果您刪除了'echo $ output = curl_exec($ ch);'部分,它將起作用,因爲請求不再被執行。檢查你在瀏覽器中發出請求的服務器,看看它是否有效 –

+0

嘗試編寫'$ output = curl_exec($ ch); echo $ output' –

+0

該腳本在localhost中工作正常:( –

回答

0

這是我的服務器端口的問題。該港口已關閉。開放後它的工作完美。謝謝大家

1

這是一個服務器端問題。不是這個腳本的錯。

+0

,但它從本地主機工作正常:( –

+0

它是否與瀏覽器一起工作? –

+0

是的,網址工作正常 –

0

它可能與服務器安裝在腳本上的curl擴展沒有使用ssl支持進行編譯。 在服務器上執行如下因素代碼和回來後的結果:

<?php 
    $version = curl_version(); 
    $ssl_supported= ($version['features'] & CURL_VERSION_SSL); 
    echo $ssl_supported == CURL_VERSION_SSL; 

它應該輸出1.如果不是你要安裝的SSL詢問服務爲捲曲

+1

我得到1作爲輸出 –