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

Sco*_*ott 7 php ppa 14.04

我做了以下工作:

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

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

sudo phpdismod php5
Run Code Online (Sandbox Code Playgroud)

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

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

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

oer*_*dnj 16

您正在以不兼容的方式混合不同的 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
Run Code Online (Sandbox Code Playgroud)

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

sudo a2dismod php5
sudo a2enmod php5.6
Run Code Online (Sandbox Code Playgroud)

并可选择添加 Apache2 存储库:

sudo add-apt-repository ppa:ondrej/apache2
sudo apt-get update
sudo apt-get dist-upgrade
Run Code Online (Sandbox Code Playgroud)

有一个可用于 PPA 包的迁移指南