首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新Ubuntu20.04上的PHP7.4不会更新到最新版本

更新Ubuntu20.04上的PHP7.4不会更新到最新版本
EN

Stack Overflow用户
提问于 2020-05-13 02:52:44
回答 6查看 5.7K关注 0票数 11

我只是想在一个新的Ubuntu 20.04上安装PHP7.4,

默认情况下,执行简单的apt install php php-cli安装7.4版本,

但是当我做apt update && apt upgrade时,这个版本仍然是7.4.3而不是7.4.5

请注意,我知道可以通过添加ppa:ondrej/php存储库来解决这个问题。

我只是想了解,如果Ubuntu在默认情况下提供7.4版本,为什么不更新到最新版本呢?我们会永远在Ubuntu20.04.0版(而不是下一个版本)中获得7.4.3,即使在2-3年之后?唯一的选择是添加ondrej/php存储库?

编辑: PHP 7.4.6已经在几周前发布了,但是我的服务器上的版本仍然停留在7.4.3上。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2021-09-16 07:10:39

以前接受的 回答 是错误的。

这一索赔

一些软件包在几个月内仍然过时是很常见的

给人的印象是,仅在PHP团队发布几个月后,Ubuntu发行版就不断升级到最新的次要版本。

,那不是真的!

Ubuntu的更新策略

TL;Ubuntu博士的官方打包的PHP是最新的安全性和过时的bug修复。

下面是Ubuntu / Canonical实际上如何维护像PHP这样的官方包:

当Ubuntu准备发布LTS时,在某个时候会出现一个功能冻结 (详细信息)。这意味着即使打包的软件在Ubuntu的特性冻结之前和最后的LTS发布之后发布一个较新的次要版本(例如修复bug),这个小版本的更新也不会再进入Ubuntu。

在Ubuntu焦点Fossa 20.04 LTS的情况下,PHP冻结在7.4.3版本。这意味着焦点的php包将永远不会再得到一个小的版本更新(例如7.4.6),在整个支持寿命。

然而,并不意味着Fossa的php包永远得不到更新。

SRU

相反,它将被这些所谓的稳定版本更新或短SRU修补。

那么什么会进入SRU呢?

主要是针对的高影响bug进行修复,这可以归结为大部分时间的安全bug。有关Ubuntu所认为的高影响bug,请参见SRU

无论如何,您最终得到的是Focal在其整个生命周期中接收多个修补版本的PHP7.4.3。换句话说,焦点Fossa中存在多个PHP7.4.3版本,正如您在包的变更日志中所看到的那样。它显示了多个版本,如7.4.3-4ubuntu17.4.3-4ubuntu27.4.3-4ubuntu2.5等,您可以看到大多数安全漏洞都是修复的。

如何检查实际安装的版本?

问题是php -v总是会报告PHP 7.4.3。但是,看看输出的细节:PHP 7.4.3 (cli) (built: Jul 5 2021 15:13:35) ( NTS )。它是在2021年7月5日建造的,这已经暗示了似乎旧的7.4.3版本发生了一些事情。

要确定安装了哪个版本,请询问apt:apt policy php7.4

输出:

在本例中,安装了7.4.3-4ubuntu2.5。再次,看看包的变更日志,看看构建中包含了什么。

影响PHP7.4的所有安全漏洞都修复了吗?

是。

PHP7.4 ChangeLog相比,您将发现除了一个(仅受Windows影响的afaik)之外,所有安全问题(CVEs)都是在Ubuntu包中修复的。除此之外,只包含了一些非安全的bug修复程序。

Ubuntu的安全团队紧密地支持跟踪数据库,并维护自己的Ubuntu CVE跟踪器

您应该使用Ubuntu的官方PHP包吗?

这取决于你的情况。我倾向于说这是一个很好的违约。

总之,以下是你应该根据的事实做出决定:

当您使用Ubuntu的官方PHP包时,您可以确保它在实际Ubuntu发行版的整个生命周期内都会收到安全更新(如果使用的是Fossa 20.04这样的LTS版本,则需要5年时间)。即使当php7.4达到寿命结束(2022年年底)时,Ubuntu的安全团队仍将修补php7.4的官方软件包。换句话说,即使PHP团队不再发布安全补丁,Ubuntu的安全团队也会这样做。

相反,当您使用类似Ondrej的PPA时,您将不得不在2022年之后切换到PHP 8。如果不这样做,您的PHP将不会得到更多的安全修复。

虽然Ubuntu的php包将得到安全修复,但它几乎不会得到其他类型的bug修复。要么你很幸运,你的软件没有受到影响,要么你就得解决这些bug。如果错误严重影响您的软件(例如性能问题),您可以考虑切换到PPA包。

票数 11
EN

Stack Overflow用户

发布于 2021-02-12 10:18:52

请使用下面的代码更新php 7.4.15

代码语言:javascript
复制
  sudo add-apt-repository ppa:ondrej/php
  
  sudo apt-get update
  
  sudo apt-get install -y php7.4 php7.4-cli php7.4-common php7.4-fpm

  sudo apt-get install -y php7.4-mysql php7.4-dom php7.4-simplexml php7.4-ssh2 php7.4-xml php7.4-xmlreader php7.4-curl  php7.4-exif  php7.4-ftp php7.4-gd  php7.4-iconv php7.4-imagick php7.4-json  php7.4-mbstring php7.4-posix php7.4-sockets php7.4-tokenizer

  sudo apt-get install -y php7.4-mysqli php7.4-pdo  php7.4-sqlite3 php7.4-ctype php7.4-fileinfo php7.4-zip php7.4-exif

   sudo nano /etc/php/7.4/fpm/php.ini
   
              Find: cgi.fix_pathinfo  => Remove semi-colon and set 0

              cgi.fix_pathinfo=0

储蓄与退出

php -v

您的php版本已经更新。

票数 6
EN

Stack Overflow用户

发布于 2020-05-26 23:42:22

Ubuntu官方存储库显示,7.4.3是最新的可用版本。因此,这并不是@暴雪所建议的apt或缓存的问题。

由于我们讨论的是Ubuntu的LTS发行版,因此由于稳定性原因,一些软件包在几个月内仍然过时是很常见的。(即使是补丁版本也会引入错误,使人认为是不可实现的,而且LTS应该是非常稳定和可实现的)

正如您在原始问题上所写的,最好的解决方案是使用ondrej/php存储库。

编辑:

我向ondrej询问此事,他轻轻地回答道:https://wiki.ubuntu.com/StableReleaseUpdates,上面写着:

一旦完成并发布了Ubuntu版本,它的更新只能在某些情况下发布,并且必须遵循一个称为“稳定版本更新”( SRU )的特殊过程。 2.何时 2.1。高冲击臭虫 一般情况下,稳定的版本更新只是为了修复高影响的bug. 2.2。其他安全案例 ..。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61765545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档