PHP 40913 ~ 3 мин.

Как установить/обновить PHP 8.0 (Debian/Ubuntu/Mint)

Как установить/обновить PHP 8.0 (Debian/Ubuntu/Mint)

Релиз PHP 8 состоялся 26 ноября 2020 года, и в этом посте мы установим новую версию или обновим вашу старую версию PHP до 8

PHP 8.0 содержит много новых функций и улучшений производительности, синтаксиса, безопасности и стабильности. Установка PHP 8.0 практически на любой сервер упрощается благодаря предварительно скомпилированным пакетам, доступным во всех поддерживаемых в настоящее время версиях Debian и Ubuntu.

Изменения расширений и зависимостей в PHP 8.0

Несмотря на огромное количество изменений в PHP 8.0, в принципе было произведено не так много изменений в его зависимостях и структуре расширений.

Расширение JSON теперь всегда доступно , и нет флага компиляции для его исключения. Это означает, что больше нет необходимости явно устанавливать пакет php-json.

Расширение xmlrpc  перемещено в PECL по уважительным причинам. Репозитории программного обеспечения, упомянутые в этом посте, не включают xmlrpc расширения для PHP 8.0.

Кроме того, в Windows название расширения GD было изменено с php_gd2.dll на php_gd.dll.

Изменения в файле INI PHP 8.0

Также есть несколько изменений в файле INI.

  • По умолчанию утверждения вызывают исключения - ( assert.exception=1)
  • Отображение ошибок по умолчанию установлено на E_ALL - ( error_reporting=-1)
  • При запуске теперь по умолчанию ошибки включены - ( display_startup_errors=1)
  • Новая функция JIT в PHP 8.0 добавляет несколько новых директив INI.
  • Параметр zend.exception_string_param_max_len для настраиваемой длины строки трассировки стека исключений

Установка PHP 8  

1. Необходимо добавить репозиторий ondrej/phpPPA

Ubuntu/Mint


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

 

Debian


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

Приведенные выше шаги добавят PPA в качестве источника пакетов, который содержит все пакеты PHP и их зависимости, такие как argon2 и libzip.

 2. Установите PHP 8.0 и нужные расширения

Все пакеты PHP 8.0 следуют шаблону php8.0-имя_расширения , и пакет php8.0-common  включает необходимый набор расширений по умолчанию.


sudo apt install php8.0-common

Установите PHP 8.0 CLI для работы в консоли

 

sudo apt install php8.0-cli

Дополнительные расширения

Вы можете установить дополнительные расширения по тому же шаблону php8.0-имя_расширения. Обратите внимание, что вам не нужно устанавливать, так php8.0-json, так как теперь он включен по умолчанию.

Пример установки еще нескольких полезных расширений:


sudo apt install php8.0-{curl,intl,mysql,readline,xml,mbstring}

Для разработки также могут быть установлены инструменты покрытия кода или отладчик Xdebug. 


sudo apt install php8.0-pcov # PCOV code coverage tool
sudo apt install php8.0-xdebug # Xdebug debugger

Установка PHP8 fpm

В зависимости от используемого веб-сервера вам необходимо будет установить дополнительные пакеты для интеграции с веб-сервером.

Для использования Apache mpm_event, Nginx, Litespeed и т. д. нужно будет установить php8.0-fpm


sudo apt install php8.0-fpm

Для использования Apache mod_php установите libapache2-mod-php8.0  


sudo apt install libapache2-mod-php8.0

Чтобы проверить установку PHP и расширений, выполните следующие команды:


php -v
php -m

 

# php -v
PHP 8.0.0 (cli) (built: Nov 26 2020 18:04:36) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0, Copyright (c) Zend Technologies

# php -m
[PHP Modules]
Core
ctype
curl
...

Если вам потребуется удалить старые пакеты PHP, можно воспользоваться командой


sudo apt purge '^php7.4.*'

Это предполагает, что вы используете PHP 7.4 в качестве предыдущей версии. Но будьте осторожны, сначала сто раз проверьте что вы больше не используете старые версии в своих проектах. 

Смена установленной версий PHP по умолчанию.

Если вдруг вас не устраивает новая установленная версия PHP, вы можете сменить другую версию по умолчанию, командой:


sudo update-alternatives --config php


Есть 7 вариантов для альтернативы php (предоставляет /usr/bin/php).

  Выбор   Путь         Приор Состояние
------------------------------------------------------------
  0            /usr/bin/php8.0   80        автоматический режим
  1            /usr/bin/php5.6   56        ручной режим
  2            /usr/bin/php7.0   70        ручной режим
  3            /usr/bin/php7.1   71        ручной режим
  4            /usr/bin/php7.2   72        ручной режим
  5            /usr/bin/php7.3   73        ручной режим
* 6            /usr/bin/php7.4   74        ручной режим
  7            /usr/bin/php8.0   80        ручной режим

Press <enter> to keep the current choice[*], or type selection number: 6

И введя номер нужной вам предыдущей версии PHP.

Что думаешь?

Дмитрий04.09.2023

PHP 8.0.30 (cli) (built: Sep 2 2023 08:04:32) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.30, Copyright (c) Zend Technologies
with Zend OPcache v8.0.30, Copyright (c), by Zend Technologies
with Xdebug v3.2.1, Copyright (c) 2002-2023, by Derick Rethans

Но при этом DLE не установить, пишет:

Версия PHP 8.0 и выше Нет

Сергей Мухин 04.09.2023

А что показывает phpinfo(); при запуске скриптов из fpm?
Учитывайте, что cli и fpm могут использовать разные версии PHP, если настроить их в nginx или apache

Категории
  • PHP 64
  • Заметки 15
  • Безопасность 3
  • Флуд 2
  • Nginx 2
  • ИТ новости 2
  • Видео 1
  • Docker 1
  • Roadmap 1
  • Архитектура 0

Хочешь поддержать сайт?

Делаем из мухи слона

sergeymukhin.com

персональный блог о веб-разработке от Сергея Мухина. Блог был основан в 2018 году, и собирался уделять основное внимание последним тенденциям, учебным пособиям, а также советам и рекомендациям, позволяющим начинающим девелоперам встать быстрее на правильную дорогу веб разработки, но что-то пошло не так 😃

Релизы PHP 8.4

Дата Релиз
8 Июня 2024 Альфа 1
20 Июня 2024 Альфа 2
04 Июля 2024 Альфа 3
16 Июля 2024 Feature freeze
18 Июля 2024 Бета 1
01 Августа 2024 Бета 2
15 Августа 2024 Бета 3
29 Августа 2024 RC 1
12 Сентября 2024 RC 2
26 Сентября 2024 RC 3
10 Октября 2024 RC 4
24 Октября 2024 RC 5
07 Ноября 2024 RC 6
21 Ноября 2024 GA

Что нового?