如何将PHP版本升级到最新的稳定发布版本?

我正在使用一台运行在Ubuntu 12.04 LTS 64位操作系统上的系统。
我目前在这台机器上使用的PHP版本如下:
在终端上获取以下信息的命令是:php -v 我得到的详细信息如下:
PHP 5.5.19-1+deb.sury.org~precise+1 (cli) (built: Nov 19 2014 19:32:34) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies

现在我想要将我的PHP软件升级到5.5.20版本。
在提问之前,我尝试了以下命令:
sudo apt-get update

一些信息显示出来。然后我再次执行了以下命令:
php -v

但是PHP软件仍未更新。

我应该如何处理这个问题?


1你是怎么在12.04安装PHP 5.5的呢?首先,在这里(http://packages.ubuntu.com/precise-updates/php5)显示它只有5.3版本。 - muru
@muru: 我不知道,但目前我正在使用的是 PHP 5.5.19。这就是事实。 - PHPLover
2嗯,如果不知道这个,我们怎么知道如何升级呢?在更新之后,你是否运行过 sudo apt-get upgrade 命令? - muru
5个回答

apt-get update 只更新软件包列表。要实际升级软件包,您需要执行以下命令:

sudo apt-get upgrade

或者

sudo apt-get dist-upgrade

更多信息请点击这里
如果你运行了上述命令但是软件包仍未升级,可能是因为你没有将Ondřej Surý的PHP PPA添加到你的系统中。
运行以下命令来添加PPA:
  • 对于 PHP 5.5、PHP 5.6 和 PHP 7.0:

    sudo apt-add-repository ppa:ondrej/php
    
  • 对于 PHP 5.4(已弃用,请至少升级到 PHP 5.5):

    sudo apt-add-repository ppa:ondrej/php5-oldstable
    
  • 对于 PHP 5.5(已弃用,请使用 ppa:ondrej/php):

    sudo apt-add-repository ppa:ondrej/php5
    
  • 对于 PHP 5.6(已弃用,请使用 ppa:ondrej/php):

    sudo apt-add-repository ppa:ondrej/php5-5.6
    
然后更新软件包列表并执行升级操作。
sudo apt-get update

对于PHP 5.5版本:
sudo apt-get install php5.5

对于PHP 5.6版本:
sudo apt-get install php5.6

对于 PHP 7:

sudo apt-get install php7.0

版本升级

如果你想安装最新的 PHP(例如PHP7),但你想坚持使用发行版的软件包而不是对源代码进行修改;并且你想进行完整的版本升级(例如你现在使用的是没有php7的Ubuntu 14.04,但你想升级到有php7的Ubuntu 16.04),那么你可以执行以下操作:

do-release-upgrade

现在你应该拥有最新的PHP版本。

4apt-get install php5 - Howard
要升级您的PHP 5.4版本,请将ondrej/php5替换为ondrej/php5-oldstable。要升级您的PHP 5.6版本,请将ondrej/php5替换为ondrej/php5-5.6 - rgajrawala
正如rotaercz所说的那样,但他没有表达得很清楚,你可能还需要在Eric原始的添加/更新/更新php序列之后执行apt-get install php5才能实际升级到最新版本。Eric,你可能希望编辑你的答案以包含最后一步。 - Dale C. Anderson
安装了php5-5.6 PPA之后,我运行了sudo apt-get install php5,但是我的PHP版本仍然显示为PHP 5.5.9-1ubuntu4.14 (cli) (built: Oct 28 2015 01:34:46) - BadHorsie
@BadHorsie我们需要更多的信息。 请提问一个新的问题,并包含lsb_release -aapt-cache policy php5的输出。 - Eric Carvalho
@EricCarvalho 谢谢。http://askubuntu.com/questions/701547/cant-upgrade-to-php-5-6 - BadHorsie
我按照这个方法来安装PHP5.5,运行php -v命令显示的是PHP 5.5.37-1+deb.sury.org~precise+2 (cli)版本,但在Apache的phpinfo()中却显示的是PHP Version 5.3.10-1ubuntu3.23 - cornernote
似乎对12.04的支持已被删除-https://github.com/oerdnj/deb.sury.org/issues/248#issuecomment-181874972 - cornernote
我收到了“sudo: apt-add-repository: command not found”的错误信息。 - Black
1@EdwardBlack 试试使用add-apt-repository命令。或者你可能需要安装software-properties-common软件包。 - Eric Carvalho
@EricCarvalho 不起作用,我尝试了apt-get install software-properties-common但是我得到了很多行显示无法获取http://.... 404未找到 - Black
我无法获取这些软件包。看起来他们已经停止了对低于16.04版本的Ubuntu发行版的这些软件包的分发,尽管14.04版本仍在维护中。 - Coded Monkey

对于最新的更新过程,请使用以下命令

sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php

然后在终端中运行以下命令。
sudo apt-get update 

这在安装php 5.5、5.6和7.0时效果很好。
如果出现错误,此命令将解决这些错误。
sudo dpkg --configure -a

更新2020-10-14:适用于7及以下版本。
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update

那么

sudo apt install php7.2

在这里,你也可以将其用于 PHP 7.0、7.1、7.3 到 7.4

更新过程后,你可以使用以下命令来安装扩展

sudo apt update 
sudo apt install php-xml

或者你可以像下面这样使用
sudo apt install php7.2 php-xml  

更新 2021-01-31:适用于版本 8 及以下。
sudo apt-add-repository ppa:ondrej/php
sudo apt update

那么

sudo apt install -y php8.0 php8.0-cli php8.0-common

运行以下命令添加PPA:
sudo apt-add-repository ppa:ondrej/php5

通过将PHP版本从5.3升级到5.5,这可能会导致您的Apache版本从2.2升级到2.4。所以请小心。

2sudo: apt-add-repository: command not found - Black
1@EdwardBlack 执行 sudo apt-get install software-properties-common python-software-properties 命令。 - Jadeye
我收到了“找不到'python-software-properties'包”的错误信息。 - Black

如果您只想将 PHP 5.3 升级到 5.5,而不想升级系统,则需要安装 Apache 2.4。
sudo apt-add-repository ppa:ondrej/apache2 -y
sudo add-apt-repository ppa:ondrej/php -y
sudo aptitude update
sudo apt-get install apache2 libapache2-mod-php5 

注意一些与Apache 2.4相关的require grant all的变化。

https://httpd.apache.org/docs/current/upgrading.html


在Ubuntu 14上
只需要这一行
sudo apt-add-repository ppa:ondrej/php5-5.6

那么

sudo apt-get install php5

这将触发PPA升级系统。