【问题标题】:Debian 9: the php5 packages is not installedDebian 9:未安装 php5 软件包
【发布时间】:2018-05-21 07:46:39
【问题描述】:

我需要安装一些软件包来为在 VB 中运行的 Debian 9 OS 中的项目准备工作区。我有指示:

----------------------------------------------------------------------
The following Debian 8 packages are required to run [X-Product]:

sudo apt-get install exim4 ntp pwgen curl php5-dev php-pear pkg-config nmap libzmq3 libzmq3-dev libapache2-mod-php5 apache2 percona-server-server-5.6 php5-cli php5-mysql php5-curl php5-intl daemontools-run oracle-java8-installer ant ruby-compass libtool-bin
----------------------------------------------------------------------

当我运行命令时,我得到以下终端堆栈,

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package php5-cli is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

Package php5-mysql is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

Package php5-curl is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

Package libapache2-mod-php5 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Unable to locate package php5-dev
E: Unable to locate package libzmq3
E: Package 'libapache2-mod-php5' has no installation candidate
E: Package 'php5-cli' has no installation candidate
E: Package 'php5-mysql' has no installation candidate
E: Package 'php5-curl' has no installation candidate
E: Unable to locate package php5-intl

我在网上做了一些研究,接下来做了以下,

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

这对我一点帮助都没有。我需要什么来解决这个问题?如果你问,我对 Debian 知之甚少

注意:我按照提供的答案中的说明进行操作,问题仍然没有解决,就像我看不到php version

当我运行命令时 sudo apt-get install php5.6

在终端打印,

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'php5.6-json' for regex 'php5.6'
Note, selecting 'php5.6-common' for regex 'php5.6'
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

要查找PHP 版本,

sudo php -v

在终端打印,

sudo: php: command not found

如果我运行它的更多信息

sudo apt-get install php5-dev I get error E: Unable to locate package php5-dev

但是,命令 sudo apt-get install php-dev成功

命令 dpkg -l | grep php| awk '{print $2}' |tr "\n" " " 返回值,

这是否意味着我安装了 php7 并且阻止了其他操作?

dh-php php-cli php-common php-dev php-gd php-pear php-xml php7.0-cli php7.0-common php7.0-dev php7.0-gd php7.0-json php7.0-opcache php7.0-readline php7.0-xml pkg-php-tools

【问题讨论】:

  • 不,我还有问题
  • 我发现this 的帖子对于在 debian 上安装 5.6 版本的 PHP 很有用

标签: php linux debian


【解决方案1】:

打开终端并运行以下命令:

apt-get install apt-transport-https lsb-release ca-certificates

获取 gpg 密钥:

wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

将新存储库添加到您的源:

echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list

安装 PHP5.6

apt-get update apt-get install php5.6

更新

echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list 行的解决方法:

运行它,并记下输出:

lsb_release -sc

在您选择的编辑器中打开 /etc/apt/sources.list.d/php.list 并将其附加到底部:

deb https://packages.sury.org/php/ OUTPUT_FROM_LSC_COMMAND main

【讨论】:

  • echo 命令返回错误,bash: /etc/apt/sources.list.d/php.list: Permission denied。我在阅读另一篇文章后尝试使用sudo su -c echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list,这对我也没有帮助
  • 最后,我尝试使用另一篇文章中的命令echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee -a /etc/apt/sources.list.d/php.list,直到安装sudo apt-get install php5.6。这没有帮助,同样的错误仍然
  • 我已经更新了我的答案,试试更新的部分。
  • Adam,找到的 debian 名称是 stretch,我按照你写的所有内容进行操作(最后 2 个命令使用 sudo)。然后我执行原来的指令,还是同样的错误。
  • 这个解决方案对我来说很好用 debian 9,但是 sury 发行版上的 php5.6 版本不完整。它遗漏了一些重要的东西,比如 pdo 或 xmlreader。至少它们还没有为我安装。我在哪里可以找到这些包裹?谢谢
【解决方案2】:

Debian 9 不包含 PHP 5.x(请参阅 https://wiki.debian.org/PHP)。要从 ppa 安装它,请安装包 php5.6 并相应地命名其他包(例如 libapache2-mod-php5.6 而不是 libapache2-mod-php5

【讨论】:

  • 错误是什么?您最终执行哪一行来安装软件包?
  • 我跟着另一个答案,也更新了问题
  • 你能试试sudo apt-get install libapache2-mod-php5.6 php5.6-cli吗?
  • 可能,这可能会安装 php7,因为这是 Debian Stretch 的默认设置。您能否在 /etc/apt/sources.list.d/ 中查找包含 packages.sury.org 的存储库信息的文件?或者发布apt-cache policy的输出?
【解决方案3】:

软件包 libapache2-mod-php5.6, php5-dev, php5-mysql,php5-curl 只能安装在 debian Wheezy (7) , Jessie (8) 或 Sid 上。此外,ondrej/php 存储库没有为 debian Stretch 提供那些包,它只提供 php5.6 包。

命令sudo apt-get install php-dev 将安装development module for PHP7

dh-php libssl-dev libssl-doc php7.1-cli php7.1-common php7.1-dev php7.1-json 
php7.1-opcache php7.1-readline pkg-php-tools shtool xml2

【讨论】:

  • 考虑到我的情况,可能正确的做法是安装 Jessie (8)。
  • 作为更新,我们有一个仅在 Debian Jessie 中运行的复杂加密交易引擎。其他人的情况可能会有所不同。
【解决方案4】:

我遇到了同样的问题,尝试按照 php 网站上的说明进行操作。

事实证明,在 Debian 9 上,这非常简单:只需从软件包名称中删除版本即可。

# apt-get install php-common libapache2-mod-php php-cli 阅读包裹清单...完成 构建依赖树 读取状态信息...完成 将安装以下附加软件包: libapache2-mod-php7.0 php7.0-cli php7.0-common php7.0-json php7.0-opcache php7.0-readline 推荐套餐: php-梨 将安装以下新软件包: libapache2-mod-php libapache2-mod-php7.0 php-cli php-common php7.0-cli php7.0-common php7.0-json php7.0-opcache php7.0-readline

【讨论】:

  • 安装了php7,op询问了php5
  • IIRC,我指出 PHP 的安装文档没有考虑特定发行版的特殊考虑。如果有人试图在较新的发行版上安装 PHP,并且只是按照 PHP 网站上的说明进行操作,那么此信息可能会很有用。我什至不确定 OP 实际上需要 5.6 版。但我希望这可以在未来帮助一些可怜的灵魂(除非他们现在已经更新了他们的文档......??)
猜你喜欢
  • 2012-02-15
  • 2019-07-25
  • 2017-12-30
  • 1970-01-01
  • 2013-09-28
  • 2016-10-08
  • 2011-05-23
  • 1970-01-01
  • 2012-01-18
相关资源
最近更新 更多