2019年1月4日 星期五

處理 curl call error(77) error(60) 備忘!


這陣子發生呼叫API無回應但API也沒有LOG(所以是沒有呼叫到API),後來在WEB端的Log檔看到crul回傳 err 77的記錄。

這個狀況因為只出現在特定機器上,所以看來非佈署問題與程式碼bug,新客戶網站後來新增SSL,但只用service nginx reload讓他生效並未執行service php-fpm restart,檢視SERVER運行時間已經百餘日也沒重啟過,所已將php-fpm重啟後就不會再發生相同的錯誤回報。

補充: 頁面使用JQuery(非同步)機制雖然能減少與伺服器端的資料交換量,可若啟用CSRF機制時若timeout時間設定太短而頁面太久沒有reload,會造成瀏覽者有頁面沒反應的情況,這部分在設計時需要檢查回傳值若為token過期狀態,則須強制頁面reload更新token已利正確運行。

使用curl增加設定:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0)

使用file_get_contents增加設定:
$arrContextOptions=array(
"ssl"=>array(
    "verify_peer"=>false,
    "verify_peer_name"=>false,
  ),
);
file_get_contents($target,false,stream_context_create($arrContextOptions));

沒有留言: