Spread the love

Sometimes it’s required to install the different version of PHP rather then the default one of Ubuntu Repository System.

To install the different version we will follow the basic steps before installation of PHP

Step 1 : Add ppa:ondrej/php to Ubuntu system

Open the terminal or ssh connection and then type

//for <= ubunt 12.04
sudo apt install python-software-properties 
//for >12.04
sudo apt install software-properties-common

Then install ppa:ondrej

sudo add-apt-repository ppa:ondrej/php

Output:

Co-installable PHP versions: PHP 5.6, PHP 7.x and most requested extensions are included. Only Supported Versions of PHP (http://php.net/supported-versions.php) for Supported Ubuntu Releases (https://wiki.ubuntu.com/Releases) are provided. Don't ask for end-of-life PHP versions or Ubuntu release, they won't be provided.

Debian oldstable and stable packages are provided as well: https://deb.sury.org/#debian-dpa

You can get more information about the packages at https://deb.sury.org

IMPORTANT: The <foo>-backports is now required on older Ubuntu releases.

BUGS&FEATURES: This PPA now has a issue tracker:
https://deb.sury.org/#bug-reporting

CAVEATS:
1. If you are using php-gearman, you need to add ppa:ondrej/pkg-gearman
2. If you are using apache2, you are advised to add ppa:ondrej/apache2
3. If you are using nginx, you are advised to add ppa:ondrej/nginx-mainline
   or ppa:ondrej/nginx

Step 2 : Update the system

 sudo apt-get update

Step 3 : Check php versions available

sudo apt show php

Output :

Package: php
Version: 2:8.0+84+ubuntu20.04.1+deb.sury.org+1
Priority: optional
Section: php
Source: php-defaults (84+ubuntu20.04.1+deb.sury.org+1)
Maintainer: Debian PHP Maintainers <team+pkg-php@tracker.debian.org>
Installed-Size: 13.3 kB
Depends: php8.0
Download-Size: 6960 B
APT-Sources: http://ppa.launchpad.net/ondrej/php/ubuntu focal/main amd64 Packages
Description: server-side, HTML-embedded scripting language (default)
 PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
 open source general-purpose scripting language that is especially suited
 for web development and can be embedded into HTML.
 .
 This package is a dependency package, which depends on latest stable
 PHP version (currently 8.0).

Package: php
Version: 2:7.4+75
Priority: optional
Section: php
Source: php-defaults (75)
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian PHP Maintainers <team+pkg-php@tracker.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 13.3 kB
Depends: php7.4
Download-Size: 2712 B
APT-Manual-Installed: yes
APT-Sources: http://ap-south-1.ec2.archive.ubuntu.com/ubuntu focal/main amd64 Packages
Description: server-side, HTML-embedded scripting language (default)
 PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
 open source general-purpose scripting language that is especially suited
 for web development and can be embedded into HTML.
 .
 This package is a dependency package, which depends on latest stable
 PHP version (currently 7.4).

We can now install php 8.

Step 3 : Install different version of PHP

For apache you can now install any version

$ sudo apt install php5.6   [PHP 5.6]
$ sudo apt install php7.0   [PHP 7.0]
$ sudo apt install php7.1   [PHP 7.1]
$ sudo apt install php7.2   [PHP 7.2]
$ sudo apt install php7.3   [PHP 7.3]
$ sudo apt install php7.4   [PHP 7.4]
$ sudo apt install php8.0   [PHP 8.0]

For Nginx

$ sudo apt install php5.6-fpm   [PHP 5.6]
$ sudo apt install php7.0-fpm   [PHP 7.0]
$ sudo apt install php7.1-fpm   [PHP 7.1]
$ sudo apt install php7.2-fpm   [PHP 7.2]
$ sudo apt install php7.3-fpm   [PHP 7.3]
$ sudo apt install php7.4-fpm   [PHP 7.4]
$ sudo apt install php8.0-fpm   [PHP 8.0]

In this way you can install any version.

Install modules for any version

Simply type the version you want to install then type tab to show available module for specific module.

Example:

$ sudo apt install php7.0
php7.0                 php7.0-inotify         php7.0-readline
php7.0-amqp            php7.0-interbase       php7.0-recode
php7.0-apcu            php7.0-intl            php7.0-redis
php7.0-apcu-bc         php7.0-json            php7.0-rrd
php7.0-ast             php7.0-ldap            php7.0-smbclient
php7.0-bcmath          php7.0-lua             php7.0-snmp
php7.0-bz2             php7.0-lz4             php7.0-soap
php7.0-cgi             php7.0-mailparse       php7.0-sodium
php7.0-cli             php7.0-mbstring        php7.0-solr
php7.0-common          php7.0-mcrypt          php7.0-sqlite3
php7.0-curl            php7.0-memcache        php7.0-ssh2
php7.0-dba             php7.0-memcached       php7.0-stomp
php7.0-decimal         php7.0-mongodb         php7.0-sybase
php7.0-dev             php7.0-msgpack         php7.0-tideways
php7.0-ds              php7.0-mysql           php7.0-tidy
php7.0-enchant         php7.0-oauth           php7.0-uploadprogress
php7.0-facedetect      php7.0-odbc            php7.0-uuid
php7.0-fpm             php7.0-opcache         php7.0-vips
php7.0-gd              php7.0-pgsql           php7.0-xdebug
php7.0-gearman         php7.0-phalcon3        php7.0-xhprof

Example:

sudo apt install php7.0-cli php7.0-xml php7.0-mysql 

Set Default PHP Version in Ubuntu

Now, we have installed multiple versions of php but at a time we can use one so let’s choose one PHP version

Step 1 : To check available versions of PHP

sudo update-alternatives --config php

Output:

There are 2 choices for the alternative php (providing /usr/bin/php).

  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/php7.4   74        auto mode
  1            /usr/bin/php7.0   70        manual mode
  2            /usr/bin/php7.4   74        manual mode
Press <enter> to keep the current choice[*], or type selection number:

Enter the number and you have successfully changed the version of PHP.

Step 2 : Check version of php

$ php -v

Leave a Reply