В настоящее время существует несколько поддерживаемых версии PHP, реальности использовать можно и нужно только две версии PHP 7.4 для старых сайтов и 8.1 для новых проектов.
В этой статье объясняется, как установить ВСЕ поддерживаемые версии PHP с наиболее востребованными расширениями PHP для веб серверов Apache и Nginx.
Руководство тестировалось для 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 вы можете использовать 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.