How to Install Different PHP (5.6, 7.0 and 7.1) Versions in Ubuntu

PHP (recursive acronym for PHP: Hypertext Preprocessor) is an open source, popular general-purpose scripting language that is widely-used and best suited for developing websites and web-based applications. It is a server-side scripting language that can be embedded in HTML.

Currently, there are three supported versions of PHP, i.e PHP 5.6, 7.0 and 7.1. Meaning PHP 5.3, 5.4 and 5.5 have all reached end of life; they are no longer supported with security updates.

In this article, we will explain how to install all the supported versions of PHP in Ubuntu and its derivatives with most requested PHP extensions for both Apache and Nginx web servers using a Ondřej Surý PPA. We will also explain how to set default version of PHP to be used on the Ubuntu system.

Note that PHP 7.x is the supported stable version in the Ubuntu software repositories, you can confirm this by running the apt command below.

$sudo apt show php
OR
$ sudo apt show php -a
Show PHP Version Information
Package: php
Version: 1:7.0+35ubuntu6
Priority: optional
Section: php
Source: php-defaults (35ubuntu6)
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Debian PHP Maintainers <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 11.3 kB
Depends: php7.0
Supported: 5y
Download-Size: 2,832 B
APT-Sources: http://archive.ubuntu.com/ubuntu xenial/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 Debian's default
 PHP version (currently 7.0).

To install the default PHP version from the Ubuntu software repositories, use the command below.

$ sudo apt install php

Install PHP (5.6, 7.0, 7.1) on Ubuntu Using PPA

1. First start by adding Ondřej Surý PPA to install different versions of PHP – PHP 5.6, PHP 7.0 and PHP 7.1 on Ubuntu system.

$ sudo apt install python-software-properties
$ sudo add-apt-repository ppa:ondrej/php
Add PPA in Ubuntu

Add PPA in Ubuntu

2. Next, update the system as follows.

$ sudo apt-get update

3. Now install different supported versions of PHP as follows.

For Apache Web Server

$ 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]

For Nginx Web Server

$ 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]

4. To install any PHP modules, simply specify the PHP version and use the auto-completion functionality to view all modules as follows.

------------ press Tab key for auto-completion ------------ 
$ sudo apt install php5.6 
$ sudo apt install php7.0 
$ sudo apt install php7.1
$ sudo apt install php7.2
$ sudo apt install php7.3 
Search PHP Modules

Search PHP Modules

5. Now you can install most required PHP modules from the list.

------------ Install PHP Modules ------------
$ sudo apt install php5.6-cli php5.6-xml php5.6-mysql 
$ sudo apt install php7.0-cli php7.0-xml php7.0-mysql 
$ sudo apt install php7.1-cli php7.1-xml php7.1-mysql
$ sudo apt install php7.2-cli php7.2-xml php7.2-mysql 
$ sudo apt install php7.3-cli php7.3-xml php7.3-mysql  

6. Finally, verify your default PHP version used on your system like this.

$ php -v 
Check Default PHP Version in Ubuntu

Check Default PHP Version in Ubuntu

Set Default PHP Version in Ubuntu

7. You can set the default PHP version to be used on the system with the update-alternatives command, after setting it, check the PHP version to confirm as follows.

------------ Set Default PHP Version 5.6 ------------
$ sudo update-alternatives --set php /usr/bin/php5.6
Set PHP 5.6 Version in Ubuntu

Set PHP 5.6 Version in Ubuntu

------------ Set Default PHP Version 7.0 ------------
$ sudo update-alternatives --set php /usr/bin/php7.0
Set PHP 7.0 Version in Ubuntu

Set PHP 7.0 Version in Ubuntu

------------ Set Default PHP Version 7.1 ------------
$ sudo update-alternatives --set php /usr/bin/php7.1
Set PHP 7.1 Version in Ubuntu

Set PHP 7.1 Version in Ubuntu

8. To set the PHP version that will work with Apache web server, use the commands below. First disable the current version with the a2dismod command and then enable the one you want with the a2enmod command.

$ sudo a2dismod php7.0
$ sudo a2enmod php7.1
$ sudo systemctl restart apache2
Enable Disable PHP Modules for Apache

Enable Disable PHP Modules for Apache

9. After switching from one version to another, you can find your PHP configuration file, by running the command below.

------------ For PHP 5.6 ------------
$ sudo update-alternatives --set php /usr/bin/php5.6
$ php -i | grep "Loaded Configuration File"

------------ For PHP 7.0 ------------
$ sudo update-alternatives --set php /usr/bin/php7.0
$ php -i | grep "Loaded Configuration File"

------------ For PHP 7.1 ------------
$ sudo update-alternatives --set php /usr/bin/php7.1
$ php -i | grep "Loaded Configuration File"

------------ For PHP 7.2 ------------
$ sudo update-alternatives --set php /usr/bin/php7.2
$ php -i | grep "Loaded Configuration File"

------------ For PHP 7.3 ------------
$ sudo update-alternatives --set php /usr/bin/php7.3
$ php -i | grep "Loaded Configuration File"
Find PHP Configuration File

Find PHP Configuration File

You may also like:

  1. How to Use and Execute PHP Codes in Linux Command Line
  2. 12 Useful PHP Commandline Usage Every Linux User Must Know
  3. How to Hide PHP Version in HTTP Header

In this article, we showed how to install all the supported versions of PHP in Ubuntu and its derivatives. If you have any queries or thoughts to share, do so via the feedback form below.

Best Affordable Linux and WordPress Services For Your Business
Outsource Your Linux and WordPress Project and Get it Promptly Completed Remotely and Delivered Online.

If You Appreciate What We Do Here On TecMint, You Should Consider:

  1. Stay Connected to: Twitter | Facebook | Google Plus
  2. Subscribe to our email updates: Sign Up Now
  3. Get your own self-hosted blog with a Free Domain at ($3.45/month).
  4. Become a Supporter - Make a contribution via PayPal
  5. Support us by purchasing our premium books in PDF format.
  6. Support us by taking our online Linux courses

We are thankful for your never ending support.

Aaron Kili

Aaron Kili is a Linux and F.O.S.S enthusiast, an upcoming Linux SysAdmin, web developer, and currently a content creator for TecMint who loves working with computers and strongly believes in sharing knowledge.

Your name can also be listed here. Got a tip? Submit it here to become an TecMint author.

RedHat RHCE and RHCSA Certification Book
Linux Foundation LFCS and LFCE Certification Preparation Guide

You may also like...

41 Responses

  1. Muhamad Sobari says:

    Cool ^^, Good Explanation, Thank You Aaron !

  2. Bapon says:

    Thanks. :)

  3. Gonzalo Oviedo says:

    So far, everything impeccable. Straight Forward for Debian 9 Tutorial.
    Thank you.

  4. William Dugger says:

    Only 5.6 works. Every time I try to enable one of the other 2 I get “ERROR: Module php7.1 does not exist!”

    • Ravi Saive says:

      @William,

      Have you enabled PPA as shown in this article for installing different PHP versions? Also may I know which version of Ubuntu you are using?

  5. aldo says:

    What is the command to disable and enable the php on nginx ? the above command is only available for the apache

  6. Nhu-Hoai says:

    If you are lazy, you can use this script for Ubuntu, Debian or Raspbian (but actually, it’s only working with Apache2, if requested, maybe I’ll prepare for Nginx). This install automatically PHP5.6, PHP7.0, PHP7.1, PHP7.2 with MySQL server, PostGreSQL server, SQLite package, PHP_CodeSniffer, PHPUnit and Composer.

    One line script install for Debian (or Rasbian), be sure that you have any PHP version installed before running this script!

    curl -L https://gitlab.com/franicflowsarl/php-installer/raw/master/install_debian.sh | sudo bash

    One line script install for Ubuntu:

    curl -L https://gitlab.com/franicflowsarl/php-installer/raw/master/install_ubuntu.sh | sudo bash

    How change PHP version (this will change for CLI and host).

    - sudo PHP5.6
    - sudo PHP7.0
    - sudo PHP7.1
    - sudo PHP7.2
    

    For more information, please read the README:

  7. Keitel Jovin says:

    Very nice article. I’m preparing 1 script deployment with bash to recreate my website any time as it starting to get more and more page views per day. And my current Laravel 5.0 does not support PHP 7 yet, and soon I have to update to Laravel 5.3 which supports PHP 7, so juggling with 2 PHP versions is a must, and you help me understand this better. Thanks.

  8. Jinformatique says:

    This example shows how to switch for the cli version. But can you provide an example about the browser

  9. John says:

    Really good but I’m still stuck with the same problem. I can install and all works fine but the CLI stays always on 5.5.7 and that creates me some problems as I need 7.1 for some CLI based solutions.

    After switching the php version and restarting apache I get the info that it won’t load the configuration file after running the “php -i | grep “Loaded Configuration File
    Loaded Configuration File => (none)

    Any hint about what can be creating this problem? Thanks!

  10. Eleazar says:

    Thank you great article, now i can work with 2 PHP versions.

Got something to say? Join the discussion.

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.