switch between php version in ubuntu

How to Change PHP Version in Ubuntu

Each PHP version contains more features, optimizations and security updates than its previous versions. It is advisable to regularly update your PHP version. But sometimes it may not be possible to upgrade your PHP version directly. For example, if you want to upgrade a major version of PHP like 5.x to 7.x, it may not be possible on some of the systems. In such cases, you may need to separately install the new PHP version and change your default PHP version in Ubuntu. On the other hand, sometimes your existing applications and packages may not work after PHP upgrade. In such cases, you may need to manually change to an older PHP version. In this article, we will learn how to switch PHP versions in Ubuntu.


How to Change PHP Version in Ubuntu

In this article, we will learn how to switch between different PHP versions on Ubuntu system.

First, open terminal and run the following command to check PHP version.

$ php -v

You will see following kind of 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 per the above output, we have PHP 7.2 installed on our system. Let us say your applications/packages are not working properly on this version on PHP. In such cases, you don’t need to remove the installed PHP version. You can simply switch to an older version of PHP, say PHP 5.x, keep both the PHPs on your system, and switch between them as required. In case you have already uninstalled your older PHP version, run the following command to re-install PHP 5.6.

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

Now we will look at how to switch between PHP 7.x to 5.x and vice versa.


Switch from PHP 7.x to 5.x

Open terminal and run the following command to disable PHP 7.2.

$ sudo a2dismod php7.2

You will see the following output.

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

Enable PHP 5.6.

$ sudo a2enmod php5.6

Run the following command to set PHP 5.6 as default version.

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

The above command will set default PHP only for you. Here is the command to set system wide default PHP.

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

You will see a list of all available PHP versions installed on your system. Select the one you want to set as default version.

If you have installed other packages as well, set them as default with the following command. Here is an example to set default version of phar package.

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

Restart your Apache server to apply changes. Check if PHP version is updated or not.

$ php -v

Now you will see the following kind of 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


Switch from PHP 5.x to 7.x

Similarly, you can switch from PHP 5.x to 7.x using the following commands. Run the following command to disable PHP 5.6.

$ sudo a2dismod php5.6

Next, run the following command to enable PHP 7.2.

$ sudo a2enmod php7.2

Set default PHP version to 7.2.

$ sudo update-alternatives --set php /usr/bin/php7.2

Restart Apache server.

$ sudo systemctl restart apache2

In this article, we have learnt how to switch between different PHP versions in Ubuntu. Typically, system administrators and developers tend to uninstall one PHP to start using its alternative, in case, they want to upgrade or downgrade their PHP. The above mentioned method is a very convenient way to run multiple PHP versions on a single system, and switch between them as and when required.

Also read:

MySQL Clustered Index
How to Execute Stored Procedure in Python
How to Manage PostgreSQL Views
PostgreSQL Python Transaction
MySQL AND Operator with Examples

Leave a Reply

Your email address will not be published.