- Установка нескольких версии PHP в Linux (Ubuntu, CentOS)
- Установка разных версий PHP в Ubuntu
- Установка разных версий PHP в CentOS
- Тестирование вместо Заключения
- Установка нескольких версий PHP на Ubuntu 18.04.3 LTS
- Установка версии PHP, которая идет по умолчанию
- Установка другой версии PHP
- Переключение между версиями PHP
- Установка разных версий PHP на Linux Ubuntu
- Установка PHP
- Установка базовой версии
- Установка определенной версии
- Выбор версии PHP по умолчанию
- Установка расширений
- Настройка PHP
Установка нескольких версии 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-add-repository, которая позволяет добавлять внешние репозитории:
apt install software-properties-common
add-apt-repository ppa:ondrej/php
Чтобы установить любые модули PHP, просто укажите версию PHP и используйте функцию автозаполнения (жмем клавишу Tab) для просмотра всех модулей. Ниже список вариантов установки нужной вам версии PHP:
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]
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
Чтобы изменить версию PHP по умолчанию используйте утилиту update-alternatives, в примере ниже сделаем основной версией PHP 7.1
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
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
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.
Установка нескольких версий PHP на Ubuntu 18.04.3 LTS
В данной статье мы установим несколько версий PHP на наш сервер Ubuntu 18.04.3 LTS и рассмотрим команды для переключения между версиями.
Начнем с обновления пакетов:
sudo apt-get update sudo apt-get upgrade
Установка версии PHP, которая идет по умолчанию
PHP 7.2.19-0ubuntu0.18.04.2 (cli) (built: Aug 12 2019 19:34:28) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.19-0ubuntu0.18.04.2, Copyright (c) 1999-2018, by Zend Technologies
В процессе установки также были поставлены следующие пакеты:
Пакет | Описание |
---|---|
php7.2 | server-side, HTML-embedded scripting language (metapackage) |
php7.2-cli | command-line interpreter for the PHP scripting language |
php7.2-common | documentation, examples and common module for PHP |
php7.2-json | JSON module for PHP |
php7.2-opcache | Zend OpCache module for PHP |
php7.2-readline | readline module for PHP |
Установим наиболее распространенные модули для PHP :
sudo apt-get install php-pear php7.2-dev php7.2-fpm php7.2-curl php7.2-gd php7.2-mbstring php7.2-mysql php7.2-xml php7.2-zip libapache2-mod-php7.2
Пакет | Описание |
---|---|
libapache2-mod-php7.2 | server-side, HTML-embedded scripting language (Apache 2 module) |
php-pear | PEAR Base System |
php7.2-curl | CURL module for PHP |
php7.2-dev | Files for PHP7.2 module development |
php7.2-fpm | server-side, HTML-embedded scripting language (FPM-CGI binary) |
php7.2-gd | GD module for PHP |
php7.2-mbstring | MBSTRING module for PHP |
php7.2-mysql | MySQL module for PHP |
php7.2-xml | DOM, SimpleXML, WDDX, XML, and XSL module for PHP |
php7.2-zip | Zip module for PHP |
Посмотреть все установленные PHP пакеты можно командой:
Установка другой версии PHP
Установим PHP 7.3 , для этого добавим сторонний репозиторий Ondřej Surý , установив пакет:
sudo apt-get install software-properties-common
Теперь добавим репозиторий:
sudo add-apt-repository ppa:ondrej/php
После того, как, мы добавили репозиторий, перейдем к установке PHP 7.3 :
sudo apt-get install php7.3
Были поставлены следующие пакеты:
Пакет | Описание |
---|---|
libapache2-mod-php7.3 | server-side, HTML-embedded scripting language (Apache 2 module) |
php7.3 | server-side, HTML-embedded scripting language (metapackage) |
php7.3-cli | command-line interpreter for the PHP scripting language |
php7.3-common | documentation, examples and common module for PHP |
php7.3-json | JSON module for PHP |
php7.3-opcache | Zend OpCache module for PHP |
php7.3-readline | readline module for PHP |
Установим дополнительные модули для PHP :
sudo apt-get install php7.3-dev php7.3-fpm php7.3-curl php7.3-gd php7.3-mbstring php7.3-mysql php7.3-xml php7.3-zip
PHP 7.3.10-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Oct 8 2019 05:33:38) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.10, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.3.10-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
Таким образом в системе активирована версия PHP 7.3 .
Переключение между версиями PHP
Переключение происходит следующей командой:
sudo update-alternatives --set php /usr/bin/php7.2
Или же просто созданием символьной ссылки:
sudo ln -f -s /usr/bin/php7.3 /etc/alternatives/php
Установка разных версий PHP на Linux Ubuntu
Обновлено: 03.04.2023 Опубликовано: 06.11.2021
В Ubuntu можно легко управлять несколькими версиями PHP. Мы рассмотрим процесс установки разных версий PHP и жонглирования ими.
Установка PHP
В зависимости от необходимой версии PHP и версии Ubuntu, подход к установке может отличаться.
Установка базовой версии
Это самый простой способ. Каждая версия Ubuntu в своем репозитории содержит соответствующую версию PHP.
Посмотреть, какая версия будет установлена из репозитория системы можно командой:
apt search —names-only ‘^php[.0-9]$’
Установка выполняется одной командой:
Установка определенной версии
Если нам необходима версия PHP, которой нет в репозитории, выполняем установку дополнительного — для этого вводим две команды:
apt install software-properties-common
.
FileNotFoundError: [Errno 2] No such file or directory: ‘gpg’
Устанавливаем gnupg-agent:
Теперь можно установить нужную версию интерпретатора:
Выбор версии PHP по умолчанию
Посмотреть текущую версию php, которая работает по умолчанию можно командой:
Сменить версию по умолчанию:
update-alternatives —config php
There are 2 choices for the alternative php (providing /usr/bin/php).
Selection Path Priority Status
————————————————————
* 0 /usr/bin/php8.0 80 auto mode
1 /usr/bin/php7.4 74 manual mode
2 /usr/bin/php8.0 80 manual mode
* в данном примере используется версия php8 как версия по умолчанию.
Для смены, система предложит нам выбрать версию из списка:
Press to keep the current choice[*], or type selection number: 1
* так мы переключимся на php7.4.
Установка расширений
Расширения устанавливаются с синтаксисом:
Для версии, которая идет по умолчанию в репозитории, установку можно выполнить так:
В остальных случаях обязательно указываем версию:
Настройка PHP
В Ubuntu настройки PHP находятся в разных файлах — для каждой версии и для каждой системы, которая обрабатывает запросы.
Например, для php версии 8.0, которая будет запускаться из командной строки, файл будет: