Home PHP How To Switch Between Multiple PHP Versions In Ubuntu

How To Switch Between Multiple PHP Versions In Ubuntu

By sk
Published: Last Updated on 429.3K views

This brief tutorial walks you through the steps to switch between multiple PHP versions in Ubuntu Linux and its derivatives. This guide is officially tested on Ubuntu 18.04 LTS server edition. However, It may work on newer as well as older Ubuntu versions.

Introduction

Sometimes, the most recent version of an installed package might not work as you expected. Your application may not be compatible with the updated package and it support only a specific old version of package.

In such cases, you can simply downgrade the problematic package to its earlier working version in no time. Refer our old guides on how to downgrade a package in Ubuntu and its variants and how to downgrade a package in Arch Linux and its derivatives in the following links:

In some situations, you need not to downgrade the problematic packages. In Linux, we can use multiple versions of the same package at the same time, side by side.

For instance, let us say you are testing a PHP application in LAMP stack deployed in Ubuntu 18.04 LTS. After a while you find out that the application worked fine in PHP 5.6, but not in PHP 7.2 (Ubuntu 18.04 LTS installs PHP 7.x by default).

Are you going to reinstall PHP or the whole LAMP stack again? Not necessary.

You don't even have to downgrade the PHP to its earlier version. You can simply switch to the previous working PHP version in couple minutes.

1. Switch Between Multiple PHP Versions

Let us check the default installed version of PHP using command:

$ php -v

Sample output:

PHP 7.2.7-0ubuntu0.18.04.2 (cli) (built: Jul 4 2018 16:55:24) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.7-0ubuntu0.18.04.2, Copyright (c) 1999-2018, by Zend Technologies

As you can see, the installed version of PHP is 7.2.7.

After testing your application for couple days, you find out that your application doesn't support PHP 7.2. In that case, it is a good idea to have both PHP 5.x version and PHP 7.x version, so that you can easily switch between any supported version at any time.

You don't need to remove PHP 7.x or reinstall LAMP stack. You can use both PHP 5.x and 7.x versions together.

I assume you didn't uninstall php 5.6 in your system yet. Just in case, you removed it already, you can install it again using a PPA like below.

You can install PHP 5.6 from a PPA:

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

1.1. Switch from PHP 7.x to PHP 5.x

1.1.1 First disable PHP 7.2 module using command:

$ sudo a2dismod php7.2

Sample output:

Module php7.2 disabled.
To activate the new configuration, you need to run:
systemctl restart apache2

1.1.2. Next, enable PHP 5.6 module:

$ sudo a2enmod php5.6

1.1.3 Set PHP 5.6 as default version using command:

$ sudo update-alternatives --set php /usr/bin/php5.6

1.1.4. Alternatively, you can run the following command to set which system wide version of PHP you want to use by default.

$ sudo update-alternatives --config php

1.1.5. Enter the selection number to set it as default version or simply press ENTER to keep the current choice.

Change PHP default version
Change PHP default version

1.1.6. If you have installed other PHP extensions, set them as default as well.

$ sudo update-alternatives --set phar /usr/bin/phar5.6

1.1.7. Finally, restart your Apache web server:

$ sudo systemctl restart apache2

Now, check if PHP 5.6 is the default version or not:

$ php -v

Sample output:

PHP 5.6.37-1+ubuntu18.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

1.2. Switch from PHP 5.x to PHP 7.x

Likewise, you can switch from PHP 5.x to PHP 7.x version by running the following commands one after another.

$ sudo a2enmod php7.2
$ sudo a2dismod php5.6
$ sudo update-alternatives --set php /usr/bin/php7.2
$ sudo systemctl restart apache2

A word of caution:

The final stable PHP 5.6 version has reached the end of active support as of 19 Jan 2017. However, PHP 5.6 will continue to receive support for critical security issues until 31 Dec 2018. So, It is recommended to upgrade all your PHP applications to be compatible with PHP 7 .x as soon as possible.

If you want prevent PHP to be automatically upgraded in future, refer the following guide.

Conclusion

And, that's all for now. This is how we install multiple PHP versions in Ubuntu. With the help of the update-alternatives command, we can quickly change from one PHP version to another in Ubuntu and set default PHP version.

You May Also Like

7 comments

Serj October 24, 2019 - 2:11 pm

Module php5.6 does not exist!

Reply
Abhishek Kandari March 12, 2020 - 10:37 am

Thank you SK for this great and a very helpful article for every PHP developer.

Reply
sk March 12, 2020 - 12:58 pm

You’re welcome. Glad I could help.

Reply
Johen August 18, 2021 - 12:09 pm

thank you, you helped me a lot

Reply
sk August 18, 2021 - 9:29 pm

You’re welcome. Happy to help.

Reply
Danial February 21, 2022 - 3:44 am

Thanks 🙂

Reply
Shafiul October 15, 2022 - 10:17 pm

It was helpful. Nice site.

Reply

Leave a Comment

* By using this form you agree with the storage and handling of your data by this website.

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

This website uses cookies to improve your experience. By using this site, we will assume that you're OK with it. Accept Read More