Ubuntu 14.04:将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 

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

即使我在这个目录下移动ini文件,它也会给我同样的错误。 我不知道我错过了什么?

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

您正在以不兼容的方式混合不同的PPA和版本和命令,让我们分解它:

  1. libapache2-mod-php5.6出现在ppa:ondrej/php ,这真的是你想要使用的PPA

  2. phpdismod是一个禁用PHP扩展的命令,而不是管理Apache2模块,你需要a2dismod

  3. ppa:ondrej/php5-5.6的PHP Apache2模块名为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-* packages,你需要禁用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包的迁移指南 。