How to Switch PHP Version on an Ubuntu 18.04

Introduction

In this post, we will illustrate how to switch PHP version from 7.2 to 5.6 to enable you to run your projects smoothly with the help of just one command.

Prerequisites

  • Ubuntu 18.04 operating system
  • Web server.
  • A non-root user with sudo privileges.
  • Have 2 different versions of PHP installed on your machine

Steps

Upgrade your system packages

1$ sudo apt upgrade

Note: This tutorial assumes you have already installed PHP 5.6 and 7.2, but in case you do not have any two PHP versions installed on your computer, we will be working with versions 7.0 and 7.2. You can use the following commands  to install them:

1$ sudo apt install python-software-properties
1$ sudo add-apt-repository ppa:ondrej/php
1$ sudo apt install php7
1$ sudo apt install php7

Run the command to check the set default version of PHP

1$ php -v

By default, Ubuntu will set the latest, stable version of PHP as the default i.e. version 7.2. To switch to the alternative version (5.6)

1$ sudo a2dismod php7
1$ a2enmod php7
1$ sudo service apache2 restart
1$ sudo update-alternatives --set php /usr/bin/php7

Note: If you are using Nginx server, you can restart it by using the following command:

1$ sudo systemctl restart nginx

You will notice the version has changed from version 7.2 to 5.6. Of course, the opposite can be done by following the steps above and replacing the version of PHP in each step and voila! You are back to your previous version.

This process may seem repetitive and tedious, so to make it easy, you can encapsulate the entire process in a function. To do this, open your .bashrc file with your favorite editor, in this case, we use nano.

1$ sudo vim~/.bashrc

Copy the below code in .bashrc file:

12345678910111213141516changephpversion () {                local IS_PHP7=`php -version|grep "PHP 7.2"`                if [[ -z $IS_PHP7 ]] ; then                            echo "Switching... Please wait"                            sudo a2dismod php7.0;                            sudo a2enmod php7.2;                            sudo service apache2 restart                            sudo update-alternatives --set php /usr/bin/php7.2                else                            echo "Switching... Please wait"                            sudo a2dismod php7.2;                            sudo a2enmod php7.0;                            sudo service apache2 restart                            sudo update-alternatives --set php /usr/bin/php7.0                fi}

Exit your editor while saving changes and incorporate the new changes by typing below command:

Now when you type changephpversionon in your terminal, the function will automatically switch PHP version and will also reduce a lot of manual work.

Conclusion

You can try out this tutorial with different PHP versions according to your requirements. Very simple indeed!

Happy coding.