34

How to install php5.6 in the Debian 9

The following packages have unmet dependencies: libapache2-mod-php5 : Depends: libdb5.1 but it is not installable Depends: libonig2 (>= 5.2.0) but it is not installable Depends: libssl1.0.0 (>= 1.0.1) but it is not installable Depends: apache2-mpm-prefork but it is not installable or apache2-mpm-itk but it is not installable Depends: php5-cli but it is not going to be installed E: Unable to correct problems, you have held broken packages.

1
  • Simple: Debian9 doesn't include php5 anymore, you cannot install it by any official means. Also this question is not really programming related, you might have more luck on Server Fault or unix.stackexchange.com
    – umläute
    Commented Oct 1, 2017 at 20:25

2 Answers 2

98

You can use the packages released by Ondřej Surý , see deb.sury.org

Open the terminal and run the following command:

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

Get the gpg key:

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

or:

curl https://packages.sury.org/php/apt.gpg | apt-key add -

Add the new repository to your sources:

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

Install PHP5.6

apt-get update
apt-get install php5.6

To switch between PHP versions:

update-alternatives --config php

Sample output:

----------------------------------------------------------
* 0            /usr/bin/php7.0   70        mode automatique
  1            /usr/bin/php5.6   56        mode manuel
  2            /usr/bin/php7.0   70        mode manuel
6
  • @gad3r I tried your answer but now my php-mysql needs upgrade to and want to install The following NEW packages will be installed: php7.1-common php7.1-mysql but I dont want php7.1 also. Commented Jan 2, 2018 at 20:29
  • 1
    @Alexandros Following this answer you should have 2 php version installed on your system the php5.6 and the php7.X . the php7.1-common is an update for the php7.0-common it will be installed from the debian repository . The php5.6 will be installed from Ondřej Surý repository . You can switch between the php versions using the update-alternatives command.
    – GAD3R
    Commented Jan 3, 2018 at 7:26
  • 1
    Fixed now! Thanks Commented Jan 3, 2018 at 7:37
  • 3
    Nice answer. To have PHP5 as apache module I had to disable php7 with a2dismod, then enable PHP5 with a2enmod then restart apache2
    – Rolf
    Commented Aug 18, 2018 at 11:03
  • 3
    It still works flawlessly on 2019 :-)
    – Lashae
    Commented Jan 11, 2019 at 13:45
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
0

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.