我正在从 Ubuntu 的服务器转移到 CentOS 的服务器,遇到了与 cURL 相关的问题。
我们当前的网站运行的是 cURL 7.19,但 Centosyum
只找到 7.15。我收到一条错误消息,
CURLPROTO_HTTPS
提示它未定义,因为我的版本太低了。
我尝试手动安装并且安装了,但是当我尝试删除 yum 安装的 cURL 时,它决定删除任何依赖于它的包,包括 PHP 和 mysql 在内的每个包。
我发现本教程关于如何手动安装 7.19,因为没有(或者我找不到)高于 7.15 的 cURL RPM。
是否有人知道如何解决这个问题,而无需重新安装我们使用的 20 多个模块,或者让手动安装成为主要模块?
如果最糟糕的情况是 cURL 代码仍然有效,我只需要注释掉
curl_setopt($curl, CURLOPT_PROTOCOLS, CURLPROTO_HTTPS);
我只是不确定这在安全方面是否是一个“可以的”解决方案,我有一个 SSL 设置,所以我希望它是安全的,但我不确定。
答案1
官方 cURL 站点已为 7.21 预编译了 RPM:
http://curl.haxx.se/download.html
CentOS 是 RedHat,因此请找到与您正在运行的版本相对应的 RHEL(我猜您使用的是 CentOS 5 或 6)。获取适合您的架构的 RPM。
一旦您有了该文件,您应该能够执行类似“rpm -Fhv curl-7.21.7-3.0.cf.rhel6.i686.rpm”的操作并将默认的 7.15 更新为 7.21。
答案2
我可能会选择以下三种可能性之一:
- 获取 curl 7.21 RPMcurl变种se
- 获取适用于 CentOS 6 的 curl 7.19 RPM 并重新编译
- 获取适用于 CentOS 5 的 curl 7.15 RPM,并将 7.15 源替换为 7.19 源
如果确实需要 7.19,我会重新编译 CentOS curl 7.19 RPM(#2),否则我会直接从原始开发人员那里获取 RPM(#3)。
重建源 RPM 非常容易;使用如下命令:
rpmbuild --rebuild source.rpm
那就可以了。