LINUX PHP7如何把curl扩展的SSL版本从NSS改为OpenSSL以支持opens
《LINUX PHP7如何把curl扩展的SSL版本从NSS改为OpenSSL以支持openssl》要点: 本文环境: LINUX(centos ) 6 PHP 7 原系统自带curl 全文由编程之家(www.52php.cn) 实测。 系统原来安装的是PHP7.0.11,编译时,带了参数--with-curl 这样编译的结果是curl不支持Openssl,而是默认的NSS,参图 因项目需要,要把curl的NSS改为openssl,网络上一教都是叫你做这两步: 1、安装curl 2、安装php的curl.so扩展。或安装openssl扩展(小编注:要不要安装主要取决于你的PHP是否有这两个扩展,执行php -m可以看到) 这个对PHP7以下的版本可能是可以的,但PHP7不行, PHP7默认就是把curl整合到PHP中,后期编译了curl.so也不能用。 需要这样做才行: 1、安装curl 2、重新编译PHP:就是把原来--with-curl 选项改为--with-curl=/usr/local/curl 然后重新编译安装。 一、安装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 备份原先系统上的默认的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 现在, 执行 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 二、重新编译PHP:只要把原来--with-curl 选项改为--with-curl=/usr/local/curl 即可。 执行 php -m 检查是否已带上curl扩展了,如果有,不需要安装curl.so,否则会出现: [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后就可以了,重启,执行phpinfo()可以看到如图: (完) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |