Содержание

Установка нескольких версии PHP в Linux (Ubuntu, CentOS)

В настоящее время существует несколько поддерживаемых версии PHP, реальности использовать можно и нужно только две версии PHP 7.4 для старых сайтов и 8.1 для новых проектов.

В этой статье объясняется, как установить ВСЕ поддерживаемые версии PHP с наиболее востребованными расширениями PHP для веб серверов Apache и Nginx.

Установка разных версий PHP в Ubuntu

Руководство тестировалось для Ubuntu 22.04 LTS Jammy.

В Ubuntu для установки всех версий PHP используется репозиторий Ondřej Surý PPA. Репозиторий ondrej/php PPA содержит более актуальные версии PHP, чем официальные репозитории Ubuntu, а также позволяет устанавливать несколько версий PHP в одной системе.

apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt update -y

Для веб-сервера Apache:

apt install php5.6   [PHP 5.6]
apt install php7.0   [PHP 7.0]
apt install php7.1   [PHP 7.1]
apt install php7.2   [PHP 7.2]
apt install php7.3   [PHP 7.3]
apt install php7.4   [PHP 7.4]
apt install php8.0   [PHP 8.0]

Для веб-сервера Nginx PHP-FPM:

apt install php5.6-fpm   [PHP 5.6]
apt install php7.0-fpm   [PHP 7.0]
apt install php7.1-fpm   [PHP 7.1]
apt install php7.2-fpm   [PHP 7.2]
apt install php7.3-fpm   [PHP 7.3]
apt install php7.4-fpm   [PHP 7.4]
apt install php8.0-fpm   [PHP 8.0]
php -v
PHP 8.1.6 (cli) (built: May 17 2022 16:46:54) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.6, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.6, Copyright (c), by Zend Technologies
update-alternatives --set php /usr/bin/php7.1

Установка разных версий PHP в CentOS

Для инсталляции несколько версии PHP в CentOS вы можете использовать Remi's RPM repository или репозиторий SCL (Software Collections). В мануале будем использовать будем репозиторий Remi, так как в нем поддерживается большее количество разных версий PHP.

Предварительно установите репозиторий epel

yum -y install epel-release

CentOS 7:

wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
wget https://rpms.remirepo.net/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm epel-release-latest-7.noarch.rpm

CentOS 8

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

Для переключения версий PHP (только в текущей консоли) по умолчанию используйте утилиту scl (ключ l выводит список версий php):

$ scl enable php82 bash
$ php -v
PHP 7.2.8 (cli) (built: Jul 17 2018 05:35:43) ( NTS )

Жесткое изменения на уровне ОС PHP по умолчанию:

rm /usr/bin/php
cp /opt/remi/php82/root/usr/bin/php /usr/bin/php

Тестирование вместо Заключения

Для того чтобы узнать какая версия PHP подключена для вашего сайта используйте Использование расширенного phpinfo vs PhpSysInfo.