158

I need to use php5 (5.6) because I'm working on a Drupal 7 project which doesn't support php7. The problem is I recently updated to ubuntu 16.04 Xenial which seems to no longer support php5.

I tried to install it from this repo, however when It try to install it with apt I always get similar errors.

$ sudo apt-get install php5-cli
Cependant les paquets suivants le remplacent :
  php7.0-cli:i386 php7.0-cli`

Which means it's obsolete. How can I install PHP 5.6 on Xenial?

0

4 Answers 4

256

Remove all the stock php packages

List installed php packages with dpkg -l | grep php| awk '{print $2}' |tr "\n" " " then remove unneeded packages with sudo aptitude purge your_packages_here or if you want to directly remove them all use :

sudo apt-get purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`

Add the PPA

sudo add-apt-repository ppa:ondrej/php

If you get add-apt-repository: command not found run the following command first :

sudo apt-get install software-properties-common

Install your PHP Version

sudo apt-get update
sudo apt-get install php5.6

You can install php5.6 modules too for example

sudo apt-get install php5.6-mbstring php5.6-mcrypt php5.6-mysql php5.6-xml

Verify your version

If you have installed php5.6-cli

sudo php -v

If you don't have php5.6-cli, put this on a .php file

<?php 
      //outputs php configuration info
      phpinfo(); 
?>
15
  • How to install PEAR? apt shows no php5-pear package, and trying to install php-pear goes and installs php7 again. Apr 30, 2016 at 23:32
  • 1
    @GrahamWheeler php-pear pull just CLI PHP 7.0 (php7.0-cli) and that's harmless
    – oerdnj
    May 12, 2016 at 19:05
  • 2
    Minor nitpick. You can avoid grep and tr by awk already, e.g. dpkg -l | awk '/php/ {printf "%s ", $2;}' Jun 16, 2016 at 8:19
  • 1
    I got error: 'add-apt-repository: command not found' Jul 20, 2016 at 2:13
  • 1
    Oops, never mind - I had not added the mongodb-org repository key, so my apt-get update failed on mongodb-org without getting to update ondrej/php/ubuntu. I thought it was a noisy warning, not a critical failure that halted the update. Once the mongodb-org key was added, then apt-get update completed and my apt-get install php5.6-mysql fetched the correct version 5.6.29. All is well.
    – Neek
    Dec 11, 2016 at 12:22
15

Run the following commands:

$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt-get update
$ sudo apt-get install -y php5.6

Check your PHP Version

php -v
2
  • add -y to all commands if you need to run this non-interactive
    – rubo77
    Nov 26, 2019 at 21:03
  • This no longer works! The ppa is non-existent!
    – GTodorov
    Nov 2, 2020 at 6:07
7

You can even consider using vagrant (or similar technology) to assist in using both versions at the same time. Vagrant is essentially a VM client designed to help spin VM's up and down quickly and easily with project based configuration; i.e. you can configure a VM specifically for a project and each VM can be different per project if need be.

This means that you can develop a project and test it on your local machine using the same production configuration as the project will be run under. Not only is this great for yourself but also means that a team of developers can always test under the same circumstances as the VM configuration is portable and cross-platform (it's just a text file).

Once vagrant and virtual box are installed, it's as easy as running:

vagrant init ubuntu/trusty64; vagrant up --provider virtualbox

and once the vm is up and running you can use:

vagrant ssh

and you can now manually install apache, php and mysql. You can also define a provisioning configuration, so that when you enter:

vagrant up

the VM builds itself as well as installs all the binaries you need and can even do a git clone of your code, setup networking so you can view the application in your browser, etc.

For more detailed information look here: https://www.vagrantup.com/docs/getting-started/

2
  • It's not really practical. I can just install both php5.6-fpm and php7.0-fpm, then fastcgi_pass to the socket that the desired PHP version is running on (I'm using nginx, but I reckon apache2 must have something similar). It will be much more lightweight.
    – Quan To
    Dec 26, 2016 at 4:22
  • 1
    I think that docker would be more suitable .. It's a good idea, though.
    – storm
    Dec 27, 2016 at 10:01
4

You can use XAMPP Linux.You can download any version of xampp linux from the below mentioned official xampp site.

https://www.apachefriends.org/download.html

Enter downloaded file location using terminal.

First give certain permission for the downloaded binary file. (Assume that i downloaded 64 bit binary package.)

sudo chmod a+x xampp-linux-x64-5.6.23-0-installer.run

Then install the xampp

sudo ./xampp-linux-x64-5.6.23-0-installer.run

If you are download 32 bit binary file do below mentioned like this

sudo chmod a+x xampp-linux-5.6.23-0-installer.run 
sudo ./xampp-linux-5.6.23-0-installer.run

Not the answer you're looking for? Browse other questions tagged .