LINUX PHP7如何把curl扩展的SSL版本从NSS改为OpenSSL以支持openssl

《LINUX PHP7如何把curl扩展的SSL版本从NSS改为OpenSSL以支持openssl》要点:
本文介绍了LINUX PHP7如何把curl扩展的SSL版本从NSS改为OpenSSL以支持openssl,希望对您有用。如果有疑问,可以联系我们。

本文环境:

LINUX(centos ) 6

PHP 7

原系统自带curl

全文由编程之家(www.jb51.cc) 实测。

系统原来安装的是PHP7.0.11,编译时,带了参数--with-curl 这样编译的结果是curl不支持Openssl,而是认的NSS,参图

PHP7如何把curl扩展的SSL Version设置为OpenSSL以支持openssl

因项目需要,要把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 WarningPHP Startup: Invalid library (maybe not a PHP library) 'curl.so' in UnkNown on line 0

这种错误,把你安装的curl.ini去掉即可。

重新编译安装PHP后就可以了,重启,执行PHPinfo()可以看到如图:

PHP7如何把curl扩展的SSL Version设置为OpenSSL以支持openssl

(完)

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...