在Debian 9上安装php5.6

34

如何在 Debian 9 中安装 php5.6

以下软件包存在无法满足的依赖关系:libapache2-mod-php5
依赖于 libdb5.1,但无法安装
依赖于 libonig2 (>= 5.2.0),但无法安装
依赖于 libssl1.0.0 (>= 1.0.1),但无法安装
依赖于 apache2-mpm-prefork,但无法安装;或者 apache2-mpm-itk,但无法安装
依赖于 php5-cli,但不会被安装
E: 无法纠正问题,您有无法解决的损坏包。


简单来说,Debian9不再包含php5,您无法通过任何官方方式安装它。此外,这个问题并不真正与编程有关,您可能在[sf]或https://unix.stackexchange.com上更有好运。 - umläute
2个回答

98

您可以使用由Ondřej Surý发布的软件包,请参见deb.sury.org

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

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
或:
curl https://packages.sury.org/php/apt.gpg | apt-key add -

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

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

切换PHP版本:

update-alternatives --config php

样例输出:

----------------------------------------------------------
* 0            /usr/bin/php7.0   70        mode automatique
  1            /usr/bin/php5.6   56        mode manuel
  2            /usr/bin/php7.0   70        mode manuel

@gad3r 我尝试了您的答案,但现在我的 php-mysql 需要升级并且想要安装 The following NEW packages will be installed: php7.1-common php7.1-mysql,但我不想安装 php7.1。 - Alex Bogias
1
@Alexandros 按照这个答案,您应该在系统上安装有两个 PHP 版本:php5.6php7.Xphp7.1-commonphp7.0-common 的更新,将从 Debian 存储库中安装。 php5.6 将从 Ondřej Surý 存储库中安装。您可以使用 update-alternatives 命令在 PHP 版本之间切换。 - GAD3R
1
已经修复了!谢谢。 - Alex Bogias
3
好的回答。为了将PHP5设置为Apache模块,我需要使用a2dismod禁用PHP7,然后使用a2enmod启用PHP5,最后重新启动Apache2。 - Rolf
3
2019年时它仍能完美运行 :-) - Lashae
/etc/apt/trusted.gpg.d/目录中的文件需要被运行_apt用户读取 -- 即:chmod 0644 /etc/apt/trusted.gpg.d/* - Steve Almond

3
sudo apt update

sudo apt upgrade

sudo apt install ca-certificates apt-transport-https

wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -

echo "deb https://packages.sury.org/php/ stretch main" | sudo tee /etc/apt/sources.list.d/php.list

sudo apt update
sudo apt install php5.6

sudo apt install php5.6-cli php5.6-common php5.6-curl php5.6-mbstring php5.6-mysqlnd php5.6-xml

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接