2015-09-04 22 views
1

我剛剛在我的服務器上安裝了模塊pecl_http 2.5.1,並且我試圖發送get要求從以下PHP腳本不同的端口我的網站(需要HTTPS):http Client-> enqueue(http Client Request) - > send()重置連接到服務器PHP

if(!isset($_POST['user']) || !isset($_POST['pass']) || $_POST['user']=="" || $_POST['pass']=="") 
{ 
    header("Location:https://MY_IP:444/"); 
    exit; 
} 

require_once("contants.php"); 
//Usar información de Login contra el servicio REST 
$request = new http\Client\Request("GET", SERVICE_URL."/login", ["Auth" => $_POST['user'].":".$_POST['pass']]); 
$request->setOptions(["timeout"=>1]); 
$client = new http\Client; 
$client->enqueue($request)->send(); 
//$response=$client->getResponse(); 
//echo $response->getResponseCode(); 

兩個用戶連接到這個端口和服務器連接到端口我試圖通過SERVICE_URL聯繫要求使用HTTPS。但是,當我嘗試將表單發送到此頁面時,我的瀏覽器輸出「重置連接」錯誤,並拒絕繼續,因爲它認爲它是不安全的。

這是怎麼發生的? PHP不能保持打開多個套接字,因此它必須關閉一個才能打開另一個套接字?我怎樣才能解決這個問題?

+0

其他服務器真的在端口444上運行嗎?默認的https端口是443.如果這是正確的,那麼可能是如果你的服務器使用自簽名SSL證書,你的PHP客戶端可能會拒絕它。 – Alexander

+0

是的,服務器運行在444上。端口其他服務SERVICE_URL使用443.仍然,我檢查了apache日誌和php解釋器似乎有分段錯誤,這導致我認爲php模塊有一個錯誤。我要測試模塊的舊版本。 – Dechcaudron

回答

0

剛剛檢查。顯然,pecl_http擴展模塊的2.5.1版本有一個bug。這在2.5.0版本中完全正常。我讓開發人員知道。

+0

開發人員表示他無法重現此問題,但這是我可以在我的系統上運行的唯一方法。 – Dechcaudron