如何在仍受支持的Ubuntu版本中安装不同的(升级或降级)PHP版本?

我正在尝试更新以在Ubuntu 12.04 / 14.04 / 16.04 LTS中安装PHP 5.5,5.6或7.0,我只能获得Ubuntu 12.04的PHP 5.3.10,Ubuntu 14.04的PHP 5.5.9或Ubuntu 16.04的PHP 7.0.4使用官方存储库(使用apt-get)。

我不确定如何进行手动更新 – 我需要:

  • 使用新的(est)PHPfunction
  • 在软件中安装旧的PHP版本

您可以使用PPA与PHP保持同步或安装以前版本的PHP(在Ubuntu 16.04 LTS上为PHP 5.6)。

最广泛使用的存储库来自Debian PHP维护者OndřejSurý:

  • PPA:的Ondrej / PHP Launchpad徽标 (对于PHP 5.6 / 7.0 / 7.1可共同安装的版本,不再支持PHP 5.5)

php5 compat包:

  • PPA:的Ondrej / PHP5-COMPAT Launchpad徽标 (用于虚拟php5以满足旧包中的依赖关系)

( 单击此处获取有关使用PPA的说明。 )

PHP PPA以前包含Apache 2.4更新。 这不再是一个案例,您需要添加单独的Apache 2.4存储库:

  • PPA:的Ondrej / Apache2的 Launchpad徽标 (适用于Apache 2.4)

如果您想使用这些PPA,请执行以下操作:

PPA:的Ondrej / PHP Launchpad徽标 (适用于PHP 5.6 / 7.0 / 7.1)

 sudo add-apt-repository ppa:ondrej/php sudo apt-get update sudo apt-get upgrade sudo apt-get install php7.1 # for PHP 7.1 sudo apt-get install php7.0 # for PHP 7.0 sudo apt-get install php5.6 # for PHP 5.6 

要在安装的版本之间切换使用

 sudo update-alternatives --config php 

然后,您必须将Apache设置为使用正确的版本:

 sudo a2dismod php7.1 # unload the current version sudo a2enmod php5.6 # load the version you need sudo service apache2 restart # restart webserver to apply 

PPA:的Ondrej / PHP5-COMPAT Launchpad徽标 (对于php5 compat)

 sudo add-apt-repository ppa:ondrej/php sudo add-apt-repository ppa:ondrej/php5-compat sudo apt-get update sudo apt-get upgrade sudo apt-get install php5 # this will pull php5.6 package 

如果您没有add-apt-repository二进制文件,请执行以下操作:

 sudo apt-get install python-software-properties 

注意事项:

  • PPA是否可以安全地添加到我的系统中,需要注意哪些“危险信号”?
  • 每个版本的PHP都有自己的模块和php.ini

PHP 5.4

预打包的最新PHP 5.4现在位于单独的PPA中: ppa:ondrej / php5-oldstable Launchpad徽标

请注意,PHP 5.4已于2015年9月3日到期,并且未收到任何安全更新。 建议迁移到至少PHP 5.6,它将获得更新,直到2018年12月31日 。

PHP 5.4程序包需要一些时间才能进入Ubuntu,因为需要进行大量的依赖性检查。 Ubuntu 12.04现在处于测试阶段,所以我怀疑他们会把它升级到PHP 5.4(虽然我没有官方或内部知识) – 它可能不会出现在今年10月的Ubuntu 12.10之前。 如果您希望它早于此,您将要么必须找到第三方软件包,要么学习自己从源代码构建它。