在Ubuntu 20.04上更新PHP 7.4不会更新到最新版本

时间:2020-05-13 02:52:44

标签: php ubuntu php-7.4

我只是想在新的Ubuntu 20.04上安装PHP 7.4,

默认情况下,做一个简单的apt install php php-cli安装了7.4版本

但是当我执行apt update && apt upgrade时,版本仍然是7.4.3而不是7.4.5

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

我只是想了解一下,如果默认情况下Ubuntu附带了7.4,为什么它不更新到最新版本?在2-3年后,我们会在Ubuntu 20.04.0 (不是下一个发行版)中始终获得7.4.3吗?唯一的选择就是添加ondrej/php存储库?

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

5 个答案:

答案 0 :(得分:4)

Ubuntu official repository显示7.4.3是最新的可用版本。因此,@ blizzo建议的apt或缓存问题不存在。

由于我们正在谈论Ubuntu的LTS版本,因此出于稳定性的原因,某些软件包通常过时了几个月。 (甚至补丁版本也会引入使人认为不可靠的错误,而LTS则意味着非常稳定和可实现)

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

编辑:

我问ondrej,他轻轻地回答了这个链接:https://wiki.ubuntu.com/StableReleaseUpdates,内容为:

Ubuntu版本一旦完成并发布,它的更新仅在某些情况下才发布,并且必须遵循称为“稳定版本更新”或SRU的特殊程序。

2。什么时候

2.1。高影响力的错误

通常只会发布稳定版本的更新,以修复具有重大影响的错误。

2.2。其他安全案例

...

答案 1 :(得分:4)

请使用以下代码更新 php 7.4.15

  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 版本已更新。

答案 2 :(得分:0)

apt可能有问题。无论出于何种原因,apt update && apt upgrade似乎都指向该软件的较旧版本。如果绝对必要,则可能确实需要通过GitHub或其他受信任的源手动安装最新的PHP版本。

答案 3 :(得分:0)

请注意,这可能会毁了一切。我一直在使用 Ubuntu 附带的 PHP 7.4.3。我添加 ppa:ondrej/php 的体验并不好。

apt upgrade 首先要我安装 PHP 7.4 和 PHP 8.0。然后它使 PHP 8.0 成为默认版本,并希望我运行 apt autoremove 以摆脱重复的 PHP 7.4 安装。

重新启动 Apache 导致它失败并出现错误并关闭了我的所有网站。

apt install libapache2-mod-php7.4 是恢复服务器所必需的,现在显示 PHP 7.4.16,但我所有的网站都抛出服务器错误,表明我的 PHP 扩展都没有安装。重新安装 PHP 7.4 的所有扩展后,另一次 Apache 重启恢复了我的网站。

update-alternatives --config php 还帮助将 CLI 版本重置回 7.4.16。

答案 4 :(得分:0)

发现这个问题,但没有一个答案对我有用,有效的是:

sudo a2dismod php7.2
sudo a2enmod php7.4
sudo service apache2 restart

根据您当前的模块调整 php7.2