【问题标题】:Cannot add PPA: 'ppa:ondrej/php5-5.6'无法添加 PPA:'ppa:ondrej/php5-5.6'
【发布时间】:2016-11-12 20:07:44
【问题描述】:

我正在尝试在 Ubuntu 机器上将我的 php 5.5.9 更新到 5.6。

但是当我跑步时:

sudo add-apt-repository ppa:ondrej/php5-5.6

我明白了:

Cannot add PPA: 'ppa:ondrej/php5-5.6'.
Please check that the PPA name or format is correct.

我该如何解决这个问题?

编辑

我跑了:

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php5

但是当我跑步时:

php5 -v

我仍然得到 php 5.5.9:

PHP 5.5.9-1ubuntu4.20 (cli) (built: Oct  3 2016 13:00:37) 

【问题讨论】:

  • 添加正确的 PPA:launchpad.net/~ondrej/+archive/ubuntu/php。您尝试获取的那个已被弃用
  • 谢谢,我可以安装 ppm,但无法更新 php,我编辑了我的答案。你能帮我吗? @克莱夫
  • 你好,我在ubuntu 14.04,也遇到了同样的问题,把你最后一个cmd改成“sudo apt-get install php5.6”,就可以了。

标签: php ubuntu


【解决方案1】:

先添加正确的ppa,执行以下操作

  1. sudo add-apt-repository ppa:ondrej/php
  2. sudo apt-get update
  3. sudo apt-get -y install php5.6 php5.6-mcrypt php5.6-mbstring php5.6-curl php5.6-cli php5.6-mysql php5.6-gd php5.6-intl php5.6-xsl php5.6-zip

我在安装 php5.6 时遇到了同样的问题,然后我做了上述步骤。

【讨论】:

  • 第 2 步和第 4 步都有apt-get install php5.6,这没有意义。添加 repo 后,您应该始终发出 apt-get update 以在安装任何内容之前刷新本地 repo 列表。
  • 是的,你是对的。我们应该在安装前使用 apt-get 更新
  • 以防万一,我不得不运行:LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
  • 错误:“~ondrej”用户或团队不存在
【解决方案2】:

虽然@tanveerahmaddar 的回答提供了重要信息,但这是在 Ubuntu 12.04 上安装 PHP 5.6 的正确方法:

重要提示:如果您打算在网站中使用 PHP5.6(您可能希望这样做),您必须升级到 Apache 2.4,它不随 Ubuntu 12.04 一起提供(下面将介绍 Apache 的升级)

第 1 步:检查版本

# check PHP version
php -v
# check Apache version
apache2 -v

如果您的 Apache 版本是 2.2,请执行第 2 步;如果版本是 2.4,请跳到步骤 3

第 2 步:添加 PHP5.6+ 存储库并更新包列表

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

此步骤会将 Apache 从 2.2 升级到 2.4。如果需要,重新配置您的 Apache。 备份您现有的 Apache 配置、启用的站点和模块。您可能需要重新安装/升级某些模组。

第 3 步:添加 PHP5.6+ 存储库

add-apt-repository ppa:ondrej/php
apt-get update

第 4 步:安装 PHP 5.6

apt-get install -y php5.6 php5.6-mcrypt php5.6-mbstring php5.6-curl php5.6-cli php5.6-mysql php5.6-gd php5.6-intl php5.6-xsl php5.6-zip libapache2-mod-php5.6

这将安装 PHP 5.6 和一些常用包,例如 cURL (php5.6-curl) 和 GD (lib5.6-gd),并在 Apache 2.4 (libapache2-mod-php5.6) 中启用 PHP 5.6。

Apache 将在此过程中重新启动。

这就是你必须做的所有步骤。


提示:如果您想升级到 PHP 7(off-topic),只需在第 3 步之后发出以下命令(跳过第 4 步):

apt-get dist-upgrade

最后的话:不建议在 Ubuntu 12.04 中升级到 PHP 5.6,因为它涉及将 Apache 升级到 2.4。 Ubuntu 14.04 自带 Apache 2.4,升级 PHP 5.6 要容易很多。

【讨论】:

  • 为什么在我按照你的步骤运行后,当我使用 phpinfo() 运行脚本时,我仍然得到以前的 php 版本,但是当我通过 cli 运行 php -v 时,我得到了 php5.6
  • 这是因为您的 Apache 正在加载旧的 PHP,正如 phpinfo() 中显示的 php.ini 的路径所证明的那样。虽然整个过程Apache都会自己重启,但是你有没有试过自己重启Apache服务,看看Apache是​​否还在使用旧版本?
  • @slier:这是因为 Apache 仍然加载了旧的 PHP 模块。这是我的解决方案(您需要按此顺序运行所有这些命令):cd /etc/apache2/mods-enabled; rm -fr php5.*; ln -s ../mods-available/php5.6.conf . ; ln -s ../mods-available/php5.6.load . ;/etc/init.d/apache2 restart;
  • 这个命令大概可以换成a2enmod/a2dismod,不过我不太熟悉。
【解决方案3】:

这对我来说非常适合。 首先添加正确的 PPA,执行以下操作

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get -y install php5.6 php5.6-mcrypt php5.6-mbstring php5.6-curl 
php5.6-cli php5.6-mysql php5.6-gd php5.6-intl php5.6-xsl php5.6-zip

禁用 php 5.5.3 或 5.5.9 模块

a2dismod php5

启用刚刚安装的php5.6模块

a2enmod php5.6

最后,你重启你的 apache

sudo service apache restart

@tanveer ahmad dar 突出显示了大部分内容。

【讨论】:

  • 另外,如果您必须检查版本,请使用“php5.6 -v”而不是“php5 -v”。
  • 真的,“php5.6 -h”或“php -h”也会给你更多的选择@Filipe Ferminiano
【解决方案4】:

这适用于我的 Ubuntu Server 14.04.5 LTS

a2dismod php5
a2enmod php5.6
apache2ctl restart

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 2019-01-18
    • 2018-11-25
    • 2019-06-14
    • 2018-01-21
    相关资源
    最近更新 更多