問題:
項目新上一臺WEB機器,在測試過程中,手機端在訪問微信API接口時,日志返回502(網關)報錯信息,最終定位錯誤為php程序調用系統curl庫導致的問題。
原因是新系統版本RHEL 6.5中CURL安裝包默認使用的NSS庫,在使用php調用curl的庫時存在NSS BUG。
解決方法:
1.確定php是否已經安裝擴展curl和openssl
2.新建一個php文件,運行phpinfo。
3.返回curl?7.19.7??libcurl/7.19.7NSS/3.19.1Basic?ECC(而不是openssl)
4.centos?6.5默認安裝curl調用的ssl庫是NSS庫,所以需要對Curl進行重新編譯。
5.去官方下載http://curl.haxx.se/download/archeology/,依然下載是7.19.7版本,進行重新編譯
./configure?--prefix=/usr--without-nss--with-ssl
make?&&?make?install
ldconfig
6.查看curl?-V??curl?7.19.7???libcurl/7.19.7??OpenSSL/1.0.1e顯示的就是openssl就可以訪問https的網站了
7.重啟php進程,#/usr/local/webserver/php/sbin/php-fpm restart