PHP-把curl扩展的SSL版本从NSS改为OpenSSL
2018-04-25 17:52 浏览(3581

首先确认curl的ssl版本是不是openssl

curl --version
curl 7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
Protocols: tftp ftp telnet dict ldap ldaps http file https ftps scp sftp 
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz

并没有 OpenSSL


安装

cd /usr/local/src
wget https://curl.haxx.se/download/curl-7.58.0.tar.gz
tar -zxvf 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

做一个新的curl软链

ln -s /usr/local/curl/bin/curl /usr/bin/curl


再次查看curl版本和支持情况

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 pop3 pop3s rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS IPv6 Largefile NTLM NTLM_WB SSL libz UnixSockets HTTPS-proxy

已有 OpenSSL


进入之前安装php的源码目录,重新编译php

找到之前安装的编译参数

/usr/local/php/bin/php -i | grep configure

或者找到文件 /usr/local/php/bin/php-config,其中 configure_options 就为编译参数


php源码目录下执行

./configure --prefix=/usr/local/php --with-curl=/usr/local/curl \
--with-freetype-dir --with-gd --with-gettext --with-iconv-dir \
--with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli \
--with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite \
--with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl \
--with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath \
--enable-libxml --enable-inline-optimization --enable-gd-native-ttf \
--enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl \
--enable-shmop --enable-soap --enable-sockets --enable-sysvsem \
--enable-sysvshm --enable-xml --enable-zip

make
make install


使用phpinfo查看是否支持openssl


新的

评论(1)
发布评论
回复X
聊天室(0