解决一个难题 cURL error 77:

不知道从什么时候开始网站无法在线更新,包括在线安装插件、主题,都会报同一个错误:cURL error 77:
wordpress cURL error 77:

被这个问题困惑多日,平日还好,每每遇到有插件或者程序更新,总要通过 ssh 手动处理,很是麻烦,也曾试图寻找问题,但始终没有头绪,不确定到底是哪一次捣腾某个什么东西导致的问题。

后来干脆重装了 VPS ,果然问题解决了,然而,刚刚更新 php 到 7.1.11,接着提示有个语言包更新,问题就来了cURL error 77:,试着还原到上一个 php 版本,问题又不存在了。

仔细对比了两个版本的 phpinfo,终于找到了问题:新编译的 php 的 curl 扩展采用的是 NSS 并不是熟悉的 openssl,问题就出在这里SSL Version: NSS
SSL Version: NSS

解决办法就是重新编译 cURL 将 NSS 换成 openssl

CURL_VERSION=7.56.1
cd
wget https://curl.haxx.se/download/curl-${CURL_VERSION}.tar.gz
tar -zxvf curl-${CURL_VERSION}.tar.gz
cd curl-${CURL_VERSION}/
./configure --without-nss --with-ssl
make && make install

echo "/usr/local/lib" >> /etc/ld.so.conf
ldconfig

之后通过 phpize 单独添加 cURL 或者直接重新编译 php,问题解决。

回复 路易大叔 取消回复

评论(4)

  1. 白云山

    我今天也遇到这个问题,但在我服务器上的原因和楼主不同。我服务器上的ssl本身就是nss,安装java的过程中nss自动升级了导致php出错,我这边是重启一下httpd就正常了。

  2. 路易大叔

    厉害啊 佩服,收下膝盖

    1. Shrek

      @路易大叔 无意中发现的,不然仍然解决不了。