2014-02-11 52 views
4

我有curl這個很奇怪的問題,當我向我的ubuntu apache服務器發送apache服務器的POST請求時,如果我調試我的php代碼,我可以看到curl在執行POST時掛起我的apache服務器到https

$fp = curl_exec($ch); 

永不退貨。我認爲實際的發佈請求是正確的,因爲我可以成功地對郵遞員執行相同的POST請求。

下面是我的捲曲選擇:

$ch = curl_init(); 
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER , 0); 
curl_setopt($ch,CURLOPT_URL, $this->url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch,CURLOPT_POST,true); 
curl_setopt($ch,CURLOPT_HTTPHEADER,$testHeader); 
curl_setopt($ch,CURLOPT_POSTFIELDS,$post_data); 
$fp = curl_exec($ch); 

一個奇怪的是,如果即時通訊快捷,重載我的Apache服務器

sudo service apache reload 

而其在此上吊狀態curl_exec立即返回,我獲取我的數據。我不是一個真正的Web開發人員和更多的Windows人,所以任何幫助將不勝感激。 :)

UPDATE 由於進程掛起,我無法看到來自Curl的錯誤報告。它從來沒有到它可以給我錯誤的地步。當我重新加載Apache服務器的請求返回,然後沒有錯誤報告。我添加了CURLOPT_VERBOSE選項。

UPDATE 2: 好的我也可以從curl命令行運行來自主機和客戶端的文章。值得一提的是我的主機是一臺虛擬機。開始考慮更多的網絡事物。

+0

'CURLOPT_VERBOSE'告訴你什麼? – Wrikken

回答

3

OK,我終於解決了這個愚蠢的錯誤與此線程的幫助

PHP curl exec fail on php script same domain

解決的辦法是補充:

session_write_close(); 

前curl_exec

然後

session_start(); 

之後。我希望我能在這裏寫出來幫助別人。

+0

謝謝!我花了幾個小時試圖整理這一個。這立即解決了問題。 – greatwitenorth

+1

將您自己的答案標記爲已接受,這是非常好的。 – 2017-11-06 16:07:12