You can run different versions of PHP on a Linux host at the same time. In this article, we’ll show you how to install multiple versions of PHP using Ubuntu/Debian as an example.
Checks which version of PHP is available in the default Ubuntu repository:
$ apt search --names-only '^php[.0-9]{3}$'
This is php8.1 in our example.
If the php package is not installed, you can install it with the command
$ sudo apt install php
If you need a version of PHP that is not included in the default repository, you will need to install an additional repo.
The latest PHP packages can be installed from the Ondřej Surý repository.
Add a new repo:
$ sudo apt install software-properties-common
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt update
“FileNotFoundError: [Errno 2] No such file or directory: gpg”
, install gnupg-agent:
$ sudo apt install gnupg-agent
List the available PHP versions in the repository:
$ sudo apt-cache search php*
You can now install the PHP package versions you need:
$ sudo apt-get install php7.4
$ sudo apt-get install php8.2
List installed PHP versions:
$ dpkg --get-selections | grep -i php
# dnf -y install epel-release
# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
# dnf module list php
Check which version of PHP is used by default:
$ php –v
PHP 8.2.5 (cli) (built: Apr 14 2023 04:27:02) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.5, Copyright (c) Zend Technologies
with Zend OPcache v8.2.5, Copyright (c), by Zend Technologies
To change the default version of PHP, run the command
$ sudo update-alternatives --config php
There are two versions of PHP available. From the list, select the version that you would like to use as the default.
Or specify the version directly:
$ sudo update-alternatives --set php /usr/bin/php7.4
The settings for the different versions of PHP are located in different files. For example, the settings for PHP 8.2:
- CLI: /etc/php/8.2/cli/php.ini
- Apache: /etc/php/8.2/apache2/php.ini
- FPM: /etc/php/8.2/fpm/php.ini