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

kav*_*gel 232 php ppa

我正在尝试更新以在 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 164 的 PHP 7.0.4使用官方存储库(使用 apt-get)。

我不太确定如何进行手动更新——因为我需要:

  • 使用新的(est)PHP 功能
  • 安装较旧的 PHP 版本应有的软件支持

mat*_*ter 299

您可以使用 PPA 来保持最新的 PHP 或安装早期版本的 PHP(在 Ubuntu 16.04 LTS 上安装 PHP 5.6)。

使用最广泛的存储库来自 Debian PHP 维护者 Ond?ej Surý:

  • ppa:ondrej/php 启动台徽标 (对于 PHP 5.6/7.0/7.1 可共同安装的版本,不再支持 PHP 5.5)

php5 兼容包:

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

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

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

ppa:ondrej/php 启动台徽标 (适用于 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
Run Code Online (Sandbox Code Playgroud)

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

sudo update-alternatives --config php
Run Code Online (Sandbox Code Playgroud)

然后您必须设置 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
Run Code Online (Sandbox Code Playgroud)

ppa:ondrej/php5-compat 启动台徽标 (适用于 php5 兼容)

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 
Run Code Online (Sandbox Code Playgroud)

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

sudo apt-get install python-software-properties
Run Code Online (Sandbox Code Playgroud)

预防措施:

PHP 5.4

预先打包的最新 PHP 5.4 现在驻留在单独的 PPA 中: ppa:ondrej/php5-oldstable启动台徽标

请注意,PHP 5.4 已于20159 月 3 日到期,并且不会收到任何安全更新。建议至少迁移到 PHP 5.6,该版本将在2018 年 12 月 31 日之前收到安全更新。

  • 添加 ppa 后,您可以执行以下操作: sudo apt-get dist-upgrade (11认同)
  • 原来你必须先运行`sudo apt-get update`! (5认同)
  • 有 php5-cli 包! (3认同)
  • 如果 `apt-get install python-software-properties` 不提供 `add-apt-repository` 命令,请使用 `apt-get install software-properties-common`。 (3认同)
  • 安装ppa,升级php并运行`php -v`后,版本信息以这样的错误信息开头:_Failed loading /usr/lib/php5/20090626/xdebug.so: /usr/lib/php5/20090626/xdebug。所以:无法打开共享对象文件:没有这样的文件或目录_烦人。 (2认同)
  • 这是正常的。Php 5.4 使用新版本的 zend 库。当您升级到 5.4 时,xdebug 扩展会被重新编译。您需要在 /usr/lib/php5 中检查文件夹的名称。我的是20100525,应该也是你的,看看有没有xdebug.so文件。现在编辑/etc/php5/mods-available/xdebug.ini(或符号链接的/etc/php5/conf.d/**-xdebug.ini)中的xdebug.ini文件并设置xdebug.so的正确路径文件 (2认同)
  • 如果 Ubuntu 告诉您软件包已“保留”,请运行 `apt-get dist-upgrade`。 (2认同)