Ubuntu 14.04:使用 ppa:ondrej 将 php 升级到 5.6 时出现问题

Ubuntu 14.04:使用 ppa:ondrej 将 php 升级到 5.6 时出现问题

我已完成以下操作:

sudo add-apt-repository ppa:ondrej/php5-5.6
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install php5
sudo apt-get install libapache2-mod-php5.6
sudo add-apt-repository ppa:ondrej/apache2

当我尝试使用以下命令禁用旧版本的 php5 时:

sudo phpdismod php5

我收到错误:警告:模块 php5 ini 文件在 /etc/php/5.6/mods-available 下不存在

即使我将 ini 文件移动到此目录下,也会出现同样的错误。我不知道我遗漏了什么??

总的来说,有人可以向我解释如何让我的实例使用新安装的版本,因为我的实例上似乎仍然有两个 php 目录树。php5/.. 和 php/5.6

答案1

您正在使用不兼容的方式混合使用不同的 PPA、版本和命令,让我们来分析一下:

  1. libapache2-mod-php5.6存在于ppa:ondrej/php,这确实是你想要使用的 PPA

  2. phpdismod是用于禁用 PHP 扩展的命令,而不是管理 Apache2 模块的命令,您需a2dismod要这样做

  3. PHP Apache2 模块ppa:ondrej/php5-5.6名为libapache2-mod-php5

因此正确的应该是:

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get purge php5-common # remove and purge old PHP 5.x packages
sudo apt-get install libapache2-mod-php5.6

如果您不php5-*先卸载软件包,则需要禁用模块php5并启用php5.6模块:

sudo a2dismod php5
sudo a2enmod php5.6

并可选择添加 Apache2 存储库:

sudo add-apt-repository ppa:ondrej/apache2
sudo apt-get update
sudo apt-get dist-upgrade

有一个迁移指南适用于 PPA 软件包。

相关内容