2

现在要求PHP的环境支持TSL1.2和SHA-256,php的CURL库升级到curl 7.35.0,openssl升级到OpenSSL/1.0.1f,但是通过配资文件查看curl的SSL Version是NSS,如果修改为openssl?
入下图SSL Version处如何变更为openssl

centos 6.5 php的curl的SSL Version 为什么是NSS/3.19.1 而不是OpenSSL/1.0.1f 如何变更?

查看全部 2 个回答

3

针对你的问题,在我的开发环境里亲自实践了一遍成功了,说下步骤:

  1. 先来一次yum update,把openssl更新到最新版本

  2. 然后确认curl的ssl版本是不是openssl,centos默认安装的是NSS

如果检测不是如上图的openssl,就要下载curl重新编译

wget https://curl.haxx.se/download/archeology/curl-7.19.7.tar.gz
tar xvzf curl-7.19.7.tar.gz
cd curl-7.19.7
./configure --prefix=/usr/local/curl/ --without-nss --with-ssl
sudo make && sudo make install

备份默认的curl二进制文件
sudo mv /usr/bin/curl /usr/bin/curl.bak
然后做一个新的curl软链
sudo ln -s /usr/local/curl/bin/curl /usr/bin/curl

然后再curl --version确认是否已经是openssl的版本

  1. 下载对应版本的PHP源码包,重新编译安装php的curl扩展

    wget http://cn2.php.net/get/php-5.6.21.tar.gz
    tar xvzf php-5.6.21.tar.gz
    cd phpphp-5.6.21/ext/curl
    phpize
    ./configure --with-curl=/usr/local/curl/ --with-php-config=/usr/local/php/bin/php-config
    sudo make && sudo make install

安装完毕以后会在/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/目录下生成curl.so

注意:如果原来安装过curl扩展,那么要先删除curl.so

最后重启下php-fpm,再确认下phpinfo