- Как установить PHP 8.2 на Debian/Ubuntu
- Что нового и изменения в PHP 8.2
- Заметные изменения дополнений и INI
- Краткое руководство по установке/обновлению PHP 8.2
- Ubuntu
- Debian
- Подробное руководство по установке/обновлению PHP 8.2
- 1. Сохраните список расширений PHP
- 2. Добавить ondrej/php PPA в качестве репозитория
- Ubuntu LTS Версии
- Debian
- 3. Установка PHP 8.2 и расширения
- 4. Установка и включение серверных API
- Сервер Apache с PHP-FPM
- Apache c PHP в качестве модуля Apache
- Nginx с PHP-FPM
- 5. Проверьте инсталляцию PHP 8.2
- 6. Очистка старых пакетов PHP
- Запуск нескольких версий PHP
- Установка разных версий PHP на Linux Debian
- Установка PHP
- Установка базовой версии
- Установка определенной версии
- Выбор версии PHP по умолчанию
- Установка расширений
- Настройка PHP
Как установить PHP 8.2 на Debian/Ubuntu
PHP 8.2 получил ряд крупных изменений, таких как readonly классы, новое расширение Random, редактирование конфиденциальных параметров, а также оптимизационные изменения языка, включающее устаревание динамических свойств и интерполяцию строк.
В настоящее время пакеты PHP 8.2 не предлагаются в стандартных репозиториях программного обеспечения Debian и Ubuntu, но PHp 8.2 доступен в репозитории поддерживаемом Ondřej Surý.
Репозиторий Ondřej основной и самый обновляемый репозиторий предлагающий пакеты PHP и расширения PECL для операционных систем на основе Debian и Ubuntu.
Что нового и изменения в PHP 8.2
В PHP 8.2 представлен обширный список новых функций для обеспечения безопасности и производительности, а также несколько устаревших функций, которые могут выдавать дополнительные предупреждения.
Полный список изменение можно посмотреть в статье PHP 8.2: Что нового. Изменения и новый функционал.
Заметные изменения дополнений и INI
PHP 8.2 не содержит каких-либо заметных изменений влияющих на процесс установки или обновления. На самом деле PHP 8.2 включает новое расширение Random , но это расширение встроенное и PHP не может быть скомпилирован без него.
Одно заметное изменение в настройках и PHP INI файлах заключается в том, что PHP 8.2 выдаёт предупреждение о неправильном форматировании INI настроек, отключённое в старых версиях PHP.
Внимание: Описанные далее действия потенциально могут нарушить работоспособность системы
Следующие действия выполняются, как sudo и для их выполнения требуется соответствующий уровень разрешений. Также применяются обычные предупреждения при внесении каких-либо общесистемных изменений. Обязательно сделайте резервную копию системы и проверьте резервные копии, прежде чем продолжить.
Краткое руководство по установке/обновлению PHP 8.2
Далее приведены команды для установки/обновления до PHP 8.2, подробные шаги описаны в Подробном руководстве по установке/обновлению.
Ubuntu
sudo dpkg -l | grep php | tee packages.txt
sudo add-apt-repository ppa:ondrej/php # Нажмите Enter, когда будет предложено.
sudo apt update
sudo apt install php8.2 php8.2-cli php-8.2bz2,curl,mbstring,intl>
sudo apt install php8.2-fpm
# Или
# sudo apt install libapache2-mod-php8.2
sudo a2enconf php8.2-fpm
# При обновлении со старой версии PHP:
sudo a2disconf php8.1-fpm
## Удаление старых пакетов
sudo apt purge php8.1*
Debian
sudo dpkg -l | grep php | tee packages.txt
sudo apt install apt-transport-https lsb-release ca-certificates wget -y
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
sudo apt update
# Добавьте в фигурные скобки все нужные вам расширения.
sudo apt install php8.2 php8.2-cli php8.2-bz2,curl,mbstring,intl>
sudo apt install php8.2-fpm
# ИЛИ
# sudo apt install libapache2-mod-php8.2
sudo a2enconf php8.2-fpm
# При обновлении со старой версии PHP:
sudo a2disconf php8.1-fpm
## Удаление старых пакетов
sudo apt purge php8.1*
Подробное руководство по установке/обновлению PHP 8.2
1. Сохраните список расширений PHP
Следующая команда выводит список всех связанных с PHP пакетов, существующих в текущей системе, и сохраняет их в текстовый файл packages.txt . Это помогает восстановить тот же список пакетов в PHP 8.2.
При новой установке этот шаг не требуется.
dpkg -l | grep php | tee packages.txt
2. Добавить ondrej/php PPA в качестве репозитория
Репозитории поддерживаемые Ondřej Surý содержат основные пакеты PHP и постоянно обновляются.
После добавления этого репозитория в список источников программного обеспечения, первоначальную установку и обновление можно будет выполнить с помощью стандартных команд apt .
Ubuntu LTS Версии
sudo add-apt-repository ppa:ondrej/php # Нажмите Enter, когда будет предложено.
sudo apt update
Debian
sudo apt install apt-transport-https lsb-release ca-certificates
software-properties-common
sudo add-apt-repository ppa:ondrej/php # Нажмите Enter, когда будет предложено.
sudo apt update
3. Установка PHP 8.2 и расширения
Все пакеты PHP 8.2, доступные в репозитории, добавленном на шаге 2, следуют шаблону именования php8.2- . Расширения пакета PHP, такие, как json , ctype , date , random и т.д. не нужно устанавливать вручную.
Пакет php8.2-common включает в себя несколько распространённых пакетов PHP. Позже можно выборочно отключить ненужные расширения.
sudo apt install php8.2 php8.2-cli php8.2-curl,bz2,mbstring,intl>
Добавьте в фигурные скобки все необходимые расширения для новой установки. При обновлении существующей установки PHP в файле packages.txt , созданном в шаге 1, должны быть перечислены все текущие PHP пакеты.
4. Установка и включение серверных API
В системе, в которой веб-сервер интегрируется с PHP, установите дополнительные пакеты API сервера. Ниже приведены примеры наиболее популярных комбинаций:
Сервер Apache с PHP-FPM
sudo apt install php8.2-fpm
sudo a2enconf php8.2-fpm
sudo a2disconf php8.1-fpm # При обновлении с более старой версии PHP
sudo service apache2 restart
Apache c PHP в качестве модуля Apache
Установка PHP в качестве модуля Apache не рекомендуется, если только это не требуется для пограничного варианта использования.
sudo apt install libapache2-mod-php8.2
sudo a2enmod php8.2
sudo a2dismod php8.1 # При обновлении с более старой версии PHP
sudo service apache2 restart
Nginx с PHP-FPM
sudo apt install php8.2-fpm
sudo service nginx restart
Затем отредактируйте соответствующий файл конфигурации Nginx, чтобы он указывал на новый PHP сокет в директиве fastcgi_pass :
- fastcgi_pass unix:/run/php/php8.1-fpm.sock; + fastcgi_pass unix:/run/php/php8.2-fpm.sock;
5. Проверьте инсталляцию PHP 8.2
Для проверки установленной версии выполните следующие команды PHP CLI:
Ожидается, что вывод покажет PHP 8.2 вместе со списком установленных расширений PHP.
Для проверки интеграции с веб-сервером, попробуйте запустить PHP файл через веб-сервер.
6. Очистка старых пакетов PHP
Следующие команды удаляют старые версии PHP. Рекомендуется не удалять их, пока не будет проверена правильность установки PHP 8.2.
sudo apt purge php8.1* # Измените "php8.1" на имена старых версий PHP.
Это также удалит файлы конфигурации для удаляемых пакетов.
Запуск нескольких версий PHP
Нет необходимости устанавливать PHP 8.2 и удалять старую версию PHP, потому что можно одновременно запускать несколько версий PHP на одном сервере.
PHP 8.2 CLI будет установлен в /usr/bin/php8.2 по умолчанию и связан с php символической ссылкой, другие версии PHP будут установлены в (/usr/bin/php80, /usr/bin/php7.4 и т.д.). По умолчанию php связано символической ссылкой с последней версией PHP по умолчанию, но это можно изменить.
Команда update-alternatives предоставляет простой способ переключения между версиями PHP для PHP CLI, если несколько версий ссылаются на один и тот же php путь.
sudo update-alternatives --config php
Запуск этой команды вызывает интерактивное приглашение выбрать путь для php указывающий на нужную версию PHP.
There are 2 choices for the alternative php (providing /usr/bin/php).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/php8.2 82 auto mode
1 /usr/bin/php8.1 81 manual mode
2 /usr/bin/php8.2 82 manual mode
То же самое можно выполнить без интерактивной подсказки:
update-alternatives --set php /usr/bin/php8.1
Установка разных версий PHP на Linux Debian
Опубликовано: 23.03.2023
В Debian можно легко управлять несколькими версиями PHP. Мы рассмотрим процесс установки разных версий пакетов и управления ими.
Установка PHP
Установка базовой версии
Это самый простой способ. Каждая версия Debian в своем репозитории содержит соответствующую версию PHP. Установка выполняется одной командой:
Установка определенной версии
Если нам необходима версия PHP, которой нет в репозитории сисемы, выполняем установку дополнительного — sury.org. Сначала установим следующие пакеты:
- lsb-release — для определения версии релиза операционной системы.
- ca-certificates — набор корневых сертификатов.
- apt-transport-https — дополнение для возможности использовать репозитории по https.
- software-properties-common — утилита для работы с репозиториями.
- gnupg2 — для шифровки и дешифровки цифровых подписей. Нужна для работы с репозиториями.
Установим gpg ключ репозитория sury.org:
wget -qO — https://packages.sury.org/php/apt.gpg | apt-key add —
Создадим конфигурационный файл с настройкой репозитория sury.org:
echo «deb https://packages.sury.org/php/ $(lsb_release -sc) main» | tee /etc/apt/sources.list.d/sury-php.list
Теперь можно установить нужную версию интерпретатора:
Выбор версии PHP по умолчанию
Посмотреть текущую версию php, которая работает по умолчанию можно командой:
Сменить версию по умолчанию:
update-alternatives —config php
Значит у нас установлена всего одна версия PHP.
Мы должны увидеть что-то на подобие:
Selection Path Priority Status
————————————————————
* 0 /usr/bin/php8.1 81 auto mode
1 /usr/bin/php7.4 74 manual mode
2 /usr/bin/php8.1 81 manual mode
* в данном примере используется версия php8 как версия по умолчанию.
Для смены, система предложит нам выбрать версию из списка:
Press to keep the current choice[*], or type selection number: 1
* так мы переключимся на php7.4.
Установка расширений
Расширения устанавливаются с синтаксисом:
Для версии, которая идет по умолчанию в репозитории, установку можно выполнить так:
В остальных случаях обязательно указываем версию:
Настройка PHP
В Ubuntu настройки PHP находятся в разных файлах — для каждой версии и для каждой системы, которая обрабатывает запросы.
Например, для php версии 8.1, которая будет запускаться из командной строки, файл будет: