《LINUX PHP7如何把curl擴展的SSL版本從NSS改為OpenSSL以支持openssl》要點:
本文介紹了LINUX PHP7如何把curl擴展的SSL版本從NSS改為OpenSSL以支持openssl,希望對您有用。如果有疑問,可以聯(lián)系我們。
相關(guān)主題:PHP緩存
本文環(huán)境:
LINUX(centos ) 6
PHP 7
原系統(tǒng)自帶curl
全文由維易PHP(www.snjht.com) 實測。
系統(tǒng)原來安裝的是PHP7.0.11,編譯時,帶了參數(shù)--with-curl 這樣編譯的結(jié)果是curl不支持Openssl,而是默認的NSS,參圖
因項目需要,要把curl的NSS改為openssl,網(wǎng)絡(luò)上一教都是叫你做這兩步:
1、安裝curl
2、安裝php的curl.so擴展。或安裝openssl擴展(小編注:要不要安裝主要取決于你的PHP是否有這兩個擴展,執(zhí)行php -m可以看到)
這個對PHP7以下的版本可能是可以的,但PHP7不行,
PHP7默認就是把curl整合到PHP中,后期編譯了curl.so也不能用。
需要這樣做才行:
1、安裝curl
2、重新編譯PHP:就是把原來--with-curl 選項改為--with-curl=/usr/local/curl 然后重新編譯安裝。
# wget https://curl.haxx.se/download/curl-7.58.0.tar.gz
# tar xvzf curl-7.58.0.tar.gz
# cd curl-7.58.0
# ./configure --prefix=/usr/local/curl/ --without-nss --with-ssl
# make && make install
備份原先系統(tǒng)上的默認的curl命令:
# mv /usr/bin/curl /usr/bin/curl.bak
# mv /usr/bin/curl-config /usr/bin/curl-config.bak
然后做一個新的curl軟鏈:
# ln -s /usr/local/curl/bin/curl /usr/bin/curl
# cp /usr/local/curl/bin/curl-config /usr/bin/curl-config
# echo "/usr/local/lib" >> /etc/ld.so.conf
# ldconfig
現(xiàn)在,
執(zhí)行 curl --version 看看是否是openssl的版本,如下:
# curl --version curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.0.1e zlib/1.2.3 Release-Date: 2018-01-24 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp Features: AsynchDNS Largefile NTLM NTLM_WB SSL libz UnixSockets HTTPS-proxy
只要把原來--with-curl 選項改為--with-curl=/usr/local/curl 即可。
執(zhí)行 php -m 檢查是否已帶上curl擴展了,如果有,不需要安裝curl.so,否則會出現(xiàn):
[12-Mar-2018 12:24:16] NOTICE: PHP message: PHP Warning: PHP Startup: Invalid library (maybe not a PHP library) 'curl.so' in Unknown on line 0
這種錯誤,把你安裝的curl.ini去掉即可。
重新編譯安裝PHP后就可以了,重啟,執(zhí)行phpinfo()可以看到如圖:
(完)
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/14353.html