Thinkphp6框架下elasticsearch-PHP連接Elasticsearch8失敗排查
本文探討在thinkphp6框架中,使用elasticsearch-php客戶端連接Elasticsearch8時遇到的cURL Error 77問題及其解決方案。
問題描述
使用以下代碼連接Elasticsearch時,出現cURL error 77錯誤:
$client = ClientBuilder::create() ->setHosts(['https://192.17.169.72:9200']) ->setBasicAuthentication('elastic', 'password copied during elasticsearch start') ->setCaBundle('/xx/http.p12') ->build();
錯誤信息類似于:
cURL error 77 (see [https://curl.haxx.se/libcurl/...](https://link.segmentfault.com/?enc=rv1VLeKAXPLUNrp4daNAwg%3D%3D.fsUIGT9%2FWnWf8meSTQawew%2BreqNQogQnyve9RM4stjYRvWggaPQ2GgfrxnrmqPnyc2D1ma%2BlNbI0nKSskXnRPw%3D%3D)) for [https://elastic:376_7786sX0E-...](https://link.segmentfault.com/?enc=SAA%2B3TBoCHMDll4Qik%2BFwA%3D%3D.mMavfshEDe2qW07hHkbqar18P1i7dgqlUS7%2BNT4JqHrcGADfUgq9pRv0Wpls0cUXi8VNxMh5ozi1H2%2BfF2hXfyy4ErJUj73YjIp9gHFNTy4%3D)
問題分析與解決方法
cURL error 77通常指示ssl證書驗證失敗。 解決方法如下:
立即學習“PHP免費學習筆記(深入)”;
-
驗證CA證書: 仔細檢查/xx/http.p12路徑是否正確,證書文件是否存在且有效。嘗試替換證書或確保證書文件未損壞。
-
路徑檢查: 使用絕對路徑代替相對路徑,避免路徑錯誤。
-
證書格式: 確認證書格式是否與elasticsearch-php客戶端兼容。必要時進行格式轉換。
-
Elasticsearch服務器配置: 檢查Elasticsearch服務器的配置,確保其允許使用指定的證書進行連接。可能需要修改Elasticsearch配置文件以接受你的CA證書。 這可能涉及到配置xpack.security.transport.ssl.verification_mode等參數。
-
PHP環境: 確保你的PHP環境已正確安裝并啟用了必要的SSL擴展。
通過以上步驟,排查證書路徑、格式、服務器配置和PHP環境,應該能夠解決cURL error 77,實現ThinkPHP6與Elasticsearch8的成功連接。 如果問題仍然存在,請提供更詳細的錯誤信息和服務器配置信息以便進一步分析。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END