Thanks to Ondřej Surý for maintaining PPA of latest PHP5 versions on launchpad. If you want to install a specific version of PHP, then this article can be helpful for you.
This article will help you for installing PHP 5.6 or PHP 7.3 using PPA on Ubuntu 18.04 LTS systems. If you have already had a higher version installed on your system and you need to install a lower version, then you have to remove the higher version first and remove the apt repository from the system.
Install PHP 5.6 on Ubuntu
Use the following set of commands to enable PPA for PHP 5.6 in your Ubuntu system and install PHP 5.6.
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 Installed PHP Version:
php -v PHP 5.6.40-10+ubuntu16.04.1+deb.sury.org+1 (cli) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
Install PHP 7.3 on Ubuntu
Use the following set of commands to add PPA for PHP 7.3 in your Ubuntu system and install PHP 7.3.
sudo apt-get install python-software-properties sudo add-apt-repository ppa:ondrej/php sudo apt-get update sudo apt-get install -y php7.3
Check Installed PHP Version:
php -v PHP 7.3.9-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Sep 2 2019 12:54:04) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.9, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.3.9-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
Switch Between PHP Version’s
If you have installed multiple PHP versions and want to use them differently than the default. Use the following steps to switch between the php5.6 and php7.3 versions. You can use the same command for other PHP versions.
From PHP 5.6 => PHP 7.3
Apache:- sudo a2dismod php5.6 sudo a2enmod php7.3 sudo service apache2 restart CLI:- sudo update-alternatives --set php /usr/bin/php7.3 sudo update-alternatives --set phpize /usr/bin/phpize7.3 sudo update-alternatives --set php-config /usr/bin/php-config7.3
From PHP 7.3 => PHP 5.6
Apache:- sudo a2dismod php7.3 sudo a2enmod php5.6 sudo service apache2 restart CLI:- sudo update-alternatives --set php /usr/bin/php5.6 sudo update-alternatives --set phpize /usr/bin/phpize5.6 sudo update-alternatives --set php-config /usr/bin/php-config5.6
40 Comments
After thinking it didn’t work, I realised php -v tells you the CLI version. This changes the apache version, so a phpinfo command in a php script revealed it did in fact work perfectly.
Thanks
Great Job Bro. working
There’s certainly a great deal to find out
abot this issue. I like all of the poins you made.
Hello Friend
I am trying to do the installation and at the time of executing the repository command I have an error after pressing ENTER
# LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
More info: https://launchpad.net/~ondrej/+archive/ubuntu/php
Press [ENTER] to continue or ctrl-c to cancel adding it
gpg: keyring `/tmp/tmp93drbu74/secring.gpg’ created
gpg: keyring `/tmp/tmp93drbu74/pubring.gpg’ created
gpg: requesting key E5267A6C from hkp server keyserver.ubuntu.com
gpg: /tmp/tmp93drbu74/trustdb.gpg: trustdb created
gpg: key E5267A6C: public key “Launchpad PPA for Ond\xc5\x99ej Sur?” imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
Exception in thread Thread-1:
Traceback (most recent call last):
File “/usr/lib/python3.4/threading.py”, line 920, in _bootstrap_inner
self.run()
File “/usr/lib/python3.4/threading.py”, line 868, in run
self._target(*self._args, **self._kwargs)
File “/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py”, line 687, in addkey_func
func(**kwargs)
File “/usr/lib/python3/dist-packages/softwareproperties/ppa.py”, line 370, in add_key
return apsk.add_ppa_signing_key()
File “/usr/lib/python3/dist-packages/softwareproperties/ppa.py”, line 261, in add_ppa_signing_key
tmp_export_keyring, signing_key_fingerprint, tmp_keyring_dir):
File “/usr/lib/python3/dist-packages/softwareproperties/ppa.py”, line 210, in _verify_fingerprint
got_fingerprints = self._get_fingerprints(keyring, keyring_dir)
File “/usr/lib/python3/dist-packages/softwareproperties/ppa.py”, line 202, in _get_fingerprints
output = subprocess.check_output(cmd, universal_newlines=True)
File “/usr/lib/python3.4/subprocess.py”, line 609, in check_output
output, unused_err = process.communicate(inputdata, timeout=timeout)
File “/usr/lib/python3.4/subprocess.py”, line 947, in communicate
stdout = _eintr_retry_call(self.stdout.read)
File “/usr/lib/python3.4/subprocess.py”, line 491, in _eintr_retry_call
return func(*args)
File “/usr/lib/python3.4/encodings/ascii.py”, line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xc5 in position 92: ordinal not in range(128)
Hello Friend
I was able to solve the execution and update, but when installing 5.6 it can’t find it …
I have Ubuntu 14.04
[email protected]:~# sudo apt-get install -y php5.6
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package php5.6
E: Couldn’t find any package by regex ‘php5.6’
Could you do a tutorial based on version 5.3.8 and 7.3.5 or could you suggest me the approach to it.
Even the first line doesn’t work on Ubuntu 14.04:
> sudo apt-get install -y python-software-properties
> E: Unable to locate package python-software-properties
Hi Author,
I followed your instrunctions for installing php 7.1 for ubuntu server (Ubuntu 12.04.5 LTS)
I am getting this output (after step :sudo apt-get install -y php7.1)
Building dependency tree
Reading state information… Done
E: Unable to locate package php7.1
E: Couldn’t find any package by regex ‘php7.1’
Adding here couple of results than could help pinpoint the issue I have
#lsb_release -a
LSB Version: core-2.0-amd64:core-2.0-noarch:core-3.0-amd64:core-3.0-noarch:core-3.1-amd64:core-3.1-noarch:core-3.2-amd64:core-3.2-noarch:core-4.0-amd64:core-4.0-noarch
Distributor ID: Ubuntu
Description: Ubuntu 12.04.5 LTS
Release: 12.04
Codename: precise
#apt-cache policy php5-cli
Any suggestion for fixing it.
Thanks in advance!
I forget to add output for #apt-cache policy php5-cli
Here it is:
php5-cli:
Installed: (none)
Candidate: 5.3.10-1ubuntu3.26
Version table:
5.3.10-1ubuntu3.26 0
500 http://gb.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
500 http://gb.archive.ubuntu.com/ubuntu/ precise-security/main amd64 Packages
500 http://security.ubuntu.com/ubuntu/ precise-security/main amd64 Packages
100 /var/lib/dpkg/status
5.3.10-1ubuntu3 0
500 http://gb.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
This PPA no more supported Ubuntu 12.04 end of life version.
Hi Author,
Thanks for quick reply!
Is there any way to upgrade php 7.0 on this server (Ubuntu 12.04.5 LTS)?
or
only option for me is to upgrade ubuntu to Ubuntu 16.04 LTS / Ubuntu 14.04.5 LTS ?
Thanks in Advance!
Try tutorial. Make sure to backup all data before upgrading.
https://tecadmin.net/upgrade-ubuntu-12-04-to-ubuntu-14-04/
Rahul k bro my website only work Ubuntu 16.04 but all vps company remove 16.04 operating system i install 18.04 but not work please contact my
The operating system version should not be an issue. Your application might need an older PHP version. You can try Docker to run an older PHP version on Ubuntu 16.
Cannot add PPA: ‘ppa:~ondrej/ubuntu/php’.
ERROR: ‘~ondrej’ user or team does not exist.
i cannot solved this problem
Please help Me
me too 🙁
[email protected]:~# add-apt-repository -y ppa:ondrej/php
Cannot add PPA: ‘ppa:~ondrej/ubuntu/php’.
ERROR: ‘~ondrej’ user or team does not exist.
[email protected]:~#
Hi Ron & Ari,
Which Ubuntu OS version are you using? It’s working on my Ubuntu 16.04 system.
My OS Version is:
[email protected]:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.2 LTS
Release: 16.04
Codename: xenial
[email protected]:~#
any suggest?…Thx before :),,
Hi Ron, Try this solution
$ apt-get install -y language-pack-en-base
$ LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
Excellent
This doesn’t appear to work anymore.
[email protected]:~/upm$ sudo apt-get install -y php5.6
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package php5.6
E: Couldn’t find any package by regex ‘php5.6’
Peter,
Which OS are you using ? Its working for me.
[email protected]:~$ sudo apt install php5.6
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following additional packages will be installed:
apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php5.6 libapr1 libaprutil1
libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.1-0 libssl1.0.2 php-common php5.6-cli php5.6-common
php5.6-json php5.6-opcache php5.6-readline
Suggested packages:
apache2-doc apache2-suexec-pristine | apache2-suexec-custom php-pear
The following NEW packages will be installed:
apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php5.6 libapr1 libaprutil1
libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.1-0 libssl1.0.2 php-common php5.6 php5.6-cli
php5.6-common php5.6-json php5.6-opcache php5.6-readline
0 upgraded, 18 newly installed, 0 to remove and 415 not upgraded.
Need to get 8,458 kB of archives.
After this operation, 26.0 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Remember to run apt-get update after you added the PPA, otherwise your system won’t be able to find it.
Hello,
I tried installing php5.6 on Ubuntu 16.04, I followed the guide but instead of php5.6 php7.0.8 has been installed.
Did anyone have the same problem?
Cheers
Hi phill,
Actually Ubuntu 16.04 have php 7 in its default repositories. That’s why it may install with packages dependencies. Please make sure that you use following syntax with php installation, like below
$ apt install php5.6 php5.6-mysql
HI rahul,
i also have using ubuntu 16.04 xenial..
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.7 LTS
Release: 16.04
Codename: xenial
but still am facing these issues
E: Unable to locate package php7.2
E: Couldn’t find any package by glob ‘php7.2’
E: Couldn’t find any package by regex ‘php7.2’
Ubuntu 16.04 LTS reaches to end of life. So the packages for this have been removed from repository: https://launchpad.net/~ondrej/+archive/ubuntu/php
If you want to toggle between versions of php you can do so with the following commands:
i. from 7.0 to 5.6 : sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart
ii. from 7.0 to 5.6 : sudo a2dismod php5.6 ; sudo a2enmod php7.0 ; sudo service apache2 restart
Impressive guide.
Please help me , I need php 5.4 the script that I use can only work with php 5.4.
On Ubuntu 16,04 I follow this guide , but I get php5 not found ? can not install it.
Thank you 🙂
Note that for php 5.5 for an ubuntu after 14.04, you have to manually update the sources.list given by the ppa to change your current ubuntu name to trusty, then you will be able to install the php5* packages
How can I remove php5 package which is loaded from ubuntu repository? For example if I add ondrej ppa, I always install ubuntu php5. When I type command apt-cache policy php5 I can see that candidate foo installation is ubuntu version not third party which I added..
Thank you
Thanks for clear article.
I would like to upgrade my PHP to 5.5 on Ubuntu 12.04.
I have seen a 2013 post http://www.dev-metal.com/how-to-setup-latest-version-of-php-5-5-on-ubuntu-12-04-lts/
that says that the PPA you suggest would also update Apache to 2.4 and I want to stay with Apache 2.2 for now.
I have checked the PPA and it does list Apache 2.4 among its packages.
Would this ppa upgrade my Apache to 2.4?
Many thanks.
Totally doesnt work for php 5.5, thanks for wasting 30 secs of my time
ubuntu 15.04
I concur. It still install 5.6.
Very helpfull, thank you very much!
Dear Author,
Could you please recheck for PHP 5.4? Because I’m using Ubuntu 15.04 and no way to do this. Below are output when I entered these commands:
W: Failed to fetch 404 Not Found
W: Failed to fetch 404 Not Found [IP: x.x.x.x 80]
So, I don’t complete like as your article. Please help, thank so much!
Great work, I successfully installed php 5.6….
me, too