How to Switch between PHP Versions on an Ubuntu 18.04 VPS or Dedicated Server

Introduction

PHP is an open source general-purpose scripting language that is widely used and best suited for developing websites and web applications. It is a server-side scripting language that can be embedded into HTML.

Currently, there are three supported versions of PHP i.e Versions 5.6, 7.0, 7.1and 7.2. As a modern-day web developer who works on different frameworks, packages need to have the multiple versions of PHP installed on your VPS.

During your development, not all your projects may support the latest version (V. 7.2) resulting you to downgrade to a much earlier version. In this tutorial, we will illustrate how to switch between the different versions of PHP from 7.2 to 7.0 to enable you to run your projects smoothly.

Prerequisites

Steps

Upgrade your system packages

 $ sudo apt upgrade

Special Note: This tutorial assumes you have already installed PHP 7.0 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  below to install them:

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

Run the command to check the set default version of PHP

$ php -v

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

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

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

$ sudo systemctl restart nginx

You can now check the current version of PHP again:

$ php -v

You will notice the version has changed from version 7.2 to 7.0. 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 vim.

 $ sudo vim~/.bashrc

Scroll to the last line and type in the following code:

changephpversion () {
                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:

$ source ~/.bashrc

Now when you type changephpversionon your terminal, the function will automatically switch to the alternative version.

Conclusion

You can try out this tutorial with different PHP versions. Very simple indeed!

Was this article helpful?