【问题标题】:How can PHP be forced to use the newest version of libcurlPHP如何强制使用最新版本的libcurl
【发布时间】:2019-02-27 06:00:11
【问题描述】:

首先,让我说我不确定这是否是发布此问题的正确位置。也许不同的“堆栈”实体会更好。如果是这样,请指出正确的方向,我会移动这个问题。

这个问题很简单。但是,我还没有找到一个简单的答案。现在我在 Apache 下运行的 PHP (7.2) 版本使用的是 libcurl 版本 58。但是,我想使用 libcurl 版本 64。我下载了 libcurl 源代码并成功构建了版本 64 的源代码。但是,当我运行 PHP我仍然得到 libcurl 58?这里有什么问题?提前谢谢你。

作为背景,如果 libcurl 58 返回内容类型为 none 的标头,则返回错误代码 61(在某些情况下)。内容类型 none 无效,实际上是服务器错误。然而,显然这种无效的内容类型已经司空见惯,并且最新版本的 libcurl 忽略了它。

【问题讨论】:

  • 我相信您的意思是带有 none 标头值(即不是内容类型)的 Content-Encoding 标头。
  • 先生。斯坦伯格,你几乎肯定是正确的。问题在于 Content-Encoding 标头,而不是 content-type 标头。这是否已在 libcurl 版本 64 中修复?我明白这确实是一个服务器错误,而不是 libcurl 缺陷。
  • 从 libcurl 7.59.0 开始,Content-Encoding: none 被视为与 identity 相同,这可以被视为一个错误修复。这最初是一个服务器错误,因为 none 不是有效的内容编码,但在所有地方都经常使用,以至于 curl 已经适应处理它。

标签: php apache curl libcurl


【解决方案1】:

我下载了 libcurl 源代码并成功构建了 64 版的源代码

之后,您必须在系统上安装它(并替换 libcurl 版本 58)。

首先在测试服务器上执行此操作,然后再在生产环境中执行。

【讨论】:

  • user803422,谢谢您的回答。但是,我不知道如何安装新版本的 libcurl。需要哪些步骤?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-16
  • 1970-01-01
相关资源
最近更新 更多