Перейти к содержимому

Как обновить php на linux

  • автор:

Как установить/обновить PHP 8.3 в Ubuntu или Debian

Как установить/обновить PHP 8.3 в Ubuntu или Debian

PHP 8.3 — это главное обновление PHP 2023 года. Он содержит новые интересные функции, такие как типизированные константы в классах, новый тип исключений в DateTime, новая функция json_validate, а также несколько других изменений. Как обычно, в новом релизе PHP содержит несколько исправлений ошибок и улучшений, а также повышение производительности.

В этой статье объясняется, как установить PHP 8.3 в современных системах Linux — Debian и Ubuntu. Аналогичным способом также можно установить некоторые из наиболее популярных расширений PECL.

Быстрый старт для администраторов

Если вы опытный разработчик/девопс и вам достаточно вспомнить последовательность команд для установки.

Debian (10, 11, 12)

# Можете сохранить существующий список пакетов PHP в файл packages.txt. sudo dpkg -l | grep php | tee packages.txt # Добавьте источник репозитория Ondrej и ключ подписи вместе с зависимостями. sudo apt install apt-transport-https sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' sudo apt update # Установите новые пакеты PHP 8.3 sudo apt install php8.3 php8.3-cli php8.3- # Установите FPM для Nginx sudo apt install php8.3-fpm # или Apache модуль # sudo apt install libapache2-mod-php8.3 # Тут же для Apache включите PHP 8.3 FPM sudo a2enconf php8.3-fpm # Выключить предыдущие версии: sudo a2disconf php8.2-fpm # Удалите старые пакеты если надо sudo apt purge php8.2*

Ubuntu (20.04, 22.04, 24.04)

# Сохранить существующий список пакетов PHP в файл packages.txt. sudo dpkg -l | grep php | tee packages.txt # Репозиторий Ondrej PPA sudo add-apt-repository ppa:ondrej/php # Нажмите Enter sudo apt update # Установка PHP 8.3 и расширений sudo apt install php8.3 php8.3-cli php8.3- # Установка FPM sudo apt install php8.3-fpm # или Apache модуль sudo apt install libapache2-mod-php8.3 # Для Apache включить PHP 8.3 FPM sudo a2enconf php8.3-fpm # выключаем предыдущие версии Apache: sudo a2disconf php8.2-fpm # удаляем старую версию если надо sudo apt purge php8.2*

Подробное руководство по установке/обновлению PHP 8.3

Ни одна из текущих версий Debian и Ubuntu не включает PHP 8.3 в репозитории программного обеспечения по умолчанию. Готовые пакеты PHP доступны из репозитория, поддерживаемого Ondřej Surý, который и используется в этой статье. Пакеты в этом репозитории имеют ту же конфигурацию, имена пакетов и конфигурацию systemd, что и пакеты PHP, предоставляемые репозиториями программного обеспечения ОС.

В этой статье основное внимание уделяется Ubuntu 22.04 (Jammy), Ubuntu 20.04 (Focal), Ubuntu 24.04 (Noble), Debian 10 (Buster), Debian 11 (Bulseye) и Debian 12 (Bookworm), как последним актуальным версиям.

Перечислить и записать существующие пакеты PHP

При обновлении существующей версии PHP следующая команда перечисляет все установленные пакеты со словом php в имени пакета и сохраняет их в файл packages.txt, а также выводит их в терминале.

Это будет полезно для установки соответствующих пакетов PHP 8.3 на следующих шагах.

Этот шаг не обязателен при установке PHP в новой системе.

dpkg -l | grep php | tee packages.txt

Добавить репозиторий ondrej/php

Следующие команды добавляют репозиторий в список репозиториев программного обеспечения и запускается apt update для получения списка пакетов, доступных из нового репозитория, а также из существующих репозиториев.

Debian

sudo apt install apt-transport-https sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' sudo apt update

Ubuntu

sudo add-apt-repository ppa:ondrej/php # Нажмите Enter sudo apt update

Установить расширения PHP 8.3

После добавления репозитория PHP Ондрея, расширения PHP теперь можно устанавливать с помощью apt. Все пакеты PHP 8.3 следуют ставить по шаблону php8.3-name_ext. Эти имена совпадают и переопределяют версии PHP, предоставленные собственными репозиториями ОС.

sudo apt install php8.3-common php8.3-cli php8.3-fpm php8.3-

Расширение php8.3-common представляет собой метапакет, который устанавливает несколько расширений PHP. Позже можно выборочно отключить отдельные расширения. Нет необходимости и возможности устанавливать их как отдельные пакеты.

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

В репозитории также доступно несколько расширений PECL, которые можно легко установить без необходимости компилировать. Сюда входят некоторые наиболее популярные расширения PECL, такие как Image Magick, APCu, Xdebug и Redis.

Интеграция с веб-сервером

В большинстве случаев PHP интегрирован с веб-сервером. Интеграция с PHP-FPM по протоколу Fast CGI является наиболее распространенным подходом, хотя также возможна интеграция PHP с другими SAPI.

Nginx, Caddy , Litespeed и другие серверы через Fast CGI

После установки PHP-FPM — php8.3-fpm systemd регистрирует службу для PHP 8.3 FPM по адресу сокета /run/php/php8.3-fpm.sock.

Apache

sudo a2enconf php8.3-fpm sudo a2disconf php8.2-fpm # When upgrading from an older PHP version sudo systemctl restart apache2

Если Apache настроен для запуска PHP в качестве модуля Apache (обычно называемого mod_php или mod_php8), установите libapache2-mod-php8.3 пакет вместо php8.3-fpm:

sudo apt install libapache2-mod-php8.3 sudo a2enmod php8.3 # Выключить предыдущую версию и перезагрузить Apache sudo a2dismod php8.2 sudo systemctl restart apache2

Тест/проверка установки PHP 8.3

После установки всех пакетов наступает момент истины, чтобы проверить, прошла ли новая установка успешно:

php -v
PHP 8.3.0 (cli) (built: Nov 23 2023 08:49:45) (NTS) Copyright (c) The PHP Group Zend Engine v4.3.0, Copyright (c) Zend Technologies with Zend OPcache v8.3.0, Copyright (c), by Zend Technologies 

Удалить старые версии PHP

Чтобы удалить старые версии PHP, запустите apt purge с префиксом версии PHP. Например, следующие команды удаляют пакеты и конфигурацию PHP 8.2:

sudo apt purge php8.2*

Запуск PHP 8.3 вместе с другими версиями PHP

PHP 8.3 можно установить и использовать вместе с другими версиями PHP. Именно это и происходит при установке PHP 8.3 без предварительного удаления старых пакетов PHP.

sudo update-alternatives --config php

По умолчанию php будет связано с последней версией PHP, но его можно изменить. Используйте команду update-alternatives . При этом появится приглашение интерактивно выбрать альтернативный путь PHP.

 Выбор Путь Приор Состояние ------------------------------------------------------------ * 0 /usr/bin/php8.3 83 автоматический режим 1 /usr/bin/php8.2 82 ручной режим 2 /usr/bin/php8.1 81 ручной режим Нажмите «enter», чтобы не менять текущий выбор[*], или введите нужное число: 

Как установить или обновить PHP 8.3 на Ubuntu и Debian

Полное руководство по установке или обновлению до PHP 8.3 на Ubuntu 22.04 (Jammy), Ubuntu 20.04 (Focal) и Debian 12 (Bookworm), Debian 11 (Bullseye), Debian 10 (Buster).

PHP 8.3 — это новое крупное обновление PHP 2023 года. В нем появились такие новые возможности, как типизированные константы классов, новый набор исключений в расширении DateTime, новая функция json_validate, а также ряд новых возможностей, изменений и исправлений. Как всегда, в PHP 8.3 исправлен ряд ошибок и улучшений, и также улучшена производительность.

В этой статье рассказывается об установке PHP 8.3 на современные системы Debian и Ubuntu. Аналогичным образом можно установить и некоторые из наиболее популярных расширений PECL, которые перечислены в разделе Установка расширений PECL.

  • Быстрый старт
    • Установка PHP 8.3 на Debian 10, 11 или 12
    • Установка PHP 8.3 на Ubuntu 20.04, 22.04 или 22.04
    1. Предварительные условия
    2. Составьте и сохраните список имеющихся пакетов PHP
    3. Добавьте репозиторий ondrej/php
    4. Установите новые пакеты PHP 8.3
    5. Дополнительные PHP расширения
    6. Интеграция с веб-сервером
    7. Тестирование установки PHP 8.3
    8. Перенос конфигурации
    9. Удаление старых версий PHP

    Быстрый старт

    В терминале от имени пользователя с правами sudo выполните следующие команды для Debian или Ubuntu. Для получения подробных инструкций перейдите в подробное руководство по установке/обновлению.

    Установка PHP 8.3 на Debian 10, 11 или 12

    # Сохраняем существующий список пакетов php в файл packages.txt 
    sudo dpkg -l | grep php | tee packages.txt

    # Добавляем репозиторий Ondrej и ключ подписи вместе с зависимостями
    sudo apt install apt-transport-https
    sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
    sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
    sudo apt update

    # Устанавливаем новые пакеты
    sudo apt install php8.3 php8.3-cli php8.3-bz2,curl,mbstring,intl>

    # Устанавливаем FPM или модуль Apache
    sudo apt install php8.3-fpm
    # Или
    # sudo apt install libapache2-mod-php8.3

    # На Apache: Включаем PHP 8.3 FPM
    sudo a2enconf php8.3-fpm
    # При обновлении с более старой версии PHP:
    sudo a2disconf php8.2-fpm

    # Удаляем PHP 8.2 и старые пакеты
    sudo apt purge php8.2*

    Установка PHP 8.3 на Ubuntu 20.04, 22.04 или 22.04

    ## Сохраняем существующий список пакетов php в файл packages.txt 
    sudo dpkg -l | grep php | tee packages.txt

    # Добавляем Ondrej PPA
    sudo add-apt-repository ppa:ondrej/php # Нажмите Enter когда спросит.
    sudo apt update

    # Устанавливаем PHP 8.3 и новые пакеты
    sudo apt install php8.3 php8.3-cli php8.3-bz2,curl,mbstring,intl>

    # Устанавливаем FPM или модуль Apache
    sudo apt install php8.3-fpm
    # Или
    # sudo apt install libapache2-mod-php8.2

    # На Apache: Включаем PHP 8.3 FPM
    sudo a2enconf php8.3-fpm
    # При обновлении с более старой версии PHP:
    sudo a2disconf php8.2-fpm

    ## Удаляем PHp 8.2 и старые пакеты
    sudo apt purge php8.2*

    Подробные шаги по установке PHP 8.3

    1. Предварительные условия

    Ни одна из текущих версий Debian и Ubuntu не включает PHP 8.3 в свои репозитории по умолчанию. Предварительно собранные пакеты PHP доступны из репозитория, поддерживаемого Ondřej Surý, который используется в этой статье. Пакеты в этом репозитории имеют ту же конфигурацию пакетов, имена пакетов и конфигурацию systemd , что и пакеты PHP, предоставляемые репозиториями программного обеспечения ОС.

    Эта статья рассматривает Ubuntu 22.04 (Jammy), Ubuntu 20.04 (Focal), Ubuntu 24.04 (Noble), Debian 10 (Buster), Debian 11 (Bullseye) и Debian 12 (Bookworm).

    Внимание: Предстоят потенциально деструктивные действия! Следующие действия выполняются с правами sudo и требуют этого уровня прав для продолжения. Обычные предупреждения при внесении любых общесистемных изменений применимы и здесь. Обязательно сделайте резервную копию системы и проверьте резервные копии, прежде чем продолжать. При обновлении не забудьте перенести конфигурацию на новую версию PHP.

    2. Составьте и сохраните список имеющихся пакетов PHP

    При обновлении существующей версии PHP следующая команда выводит список всех установленных пакетов со словом php в имени пакета и сохраняет его в файл packages.txt , также как он выводится в терминале.

    Это поможет установить соответствующие пакеты PHP 8.3 на последующих шагах.

    Этот шаг не требуется при установке PHP на новую систему.

    dpkg -l | grep php | tee packages.txt

    3. Добавьте репозиторий ondrej/php

    PHP 8.3 не доступен для загрузки ни из одного текущего репозитория ПО Debian или Ubuntu. Репозитории Debian и Ubuntu, поддерживаемые Ondřej Surý, содержат основные пакеты PHP 8.3 и несколько популярных пакетов PECL в актуальном состоянии.

    На Ubuntu пакеты собираются только в LTS-версиях. Этот шаг не будет выполнен на версиях Ubuntu, не относящихся к LTS, например Ubuntu 22.10.

    Следующие команды добавляют репозиторий в список репозиториев программного обеспечения и запускают apt update для получения списка пакетов, доступных из нового и существующих репозиториев.

    sudo apt install apt-transport-https 
    sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
    sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
    sudo apt update
    sudo add-apt-repository ppa:ondrej/php # Нажмите Enter когда спросит. 
    sudo apt update

    4. Установите новые пакеты PHP 8.3

    С добавлением PHP репозитория от Ondrej пакеты PHP можно теперь устанавливать с помощью apt . Все пакеты PHP 8.3 следуют шаблону php8.3-XYZ . Эти имена совпадают и переопределяют версии PHP, предоставляемые собственными репозиториями программного обеспечения ОС.

    sudo apt install php8.3-common php8.3-cli php8.3-fpm php8.3-curl,bz2,mbstring,intl>
    • Пакет php8.3-common — это мета-пакет, устанавливающий несколько PHP расширений. Впоследствии можно выборочно отключить отдельные расширения. Расширения ядра PHP, такие, как Date, Phar, JSON, ctype и random, всегда включены в пакет. Нет необходимости и возможности устанавливать их отдельными пакетами.
    • Вместо установки php8.3-common можно также установить отдельные пакеты. Установка php8.3-common примерно эквивалентна установке всех расширений, как показано ниже:
    apt install php8.3-calendar,ctype,exif,ffi,fileinfo,ftp,gettext,iconv,pdo,phar,posix,shmop,sockets,sysvmsg,sysvsem,sysvshm,tokenizer>

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

    Несколько расширений PECL также доступны в репозитории для удобной установки без необходимости их компиляции. Сюда входят некоторые из наиболее популярных расширений PECL, такие, как Image Magick, APCu и Xdebug.

    Ниже перечислены некоторые расширения PECL и названия их пакетов, которые можно установить с помощью apt install .

    Имя расширения Имя пакета
    Xdebug php8.3-xdebug
    Redis php8.3-redis
    PCov php8.3-pcov
    Image Magick php8.3-imagick
    APCu php8.3-apcu

    Обратите внимание, что эти расширения PECL разрабатываются отдельными разработчиками/командами и могут быть не так хорошо протестированы. Также может потребоваться некоторое время для загрузки этих пакетов в ожидании исправлений совместимости от соответствующих разработчиков расширений.

    Далее выполняется простой поиск по apt :

    sudo apt search php8.3-apcu # Поиск "apcu" в PHP 8.3

    Файл packages.txt , созданный на шаге #2, пригодится вам для поиска существующих пакетов PHP.

    6. Интеграция с веб-сервером

    В большинстве случаев PHP интегрируется с веб-сервером. Интеграция с PHP-FPM по протоколу Fast CGI является наиболее распространённым подходом, но также возможна интеграция PHP с другими SAPI.

    Веб-сервер Apache

    При установке пакета php8.3-fpm , если присутствует веб-сервер Apache ( apache2 ), появится новый файл php8.3-fpm.conf , который позволяет удобно переключать интеграцию PHP 8.3:

    sudo a2enconf php8.3-fpm 
    sudo a2disconf php8.2-fpm # При обновлении с более старой версии PHP
    sudo systemctl restart apache2

    Если Apache настроен на выполнение PHP в качестве модуля Apache (обычно называемого mod_php или mod_php8 ), установите пакет libapache2-mod-php8.3 вместо php8.3-fpm :

    sudo apt install libapache2-mod-php8.3 
    sudo a2enmod php8.3
    sudo a2dismod php8.2 # При обновлении с более старой версии PHP
    sudo systemctl restart apache2
    Nginx, Caddy, Litespeed и другие серверы с поддержкой Fast CGI

    php8.3-fpm устанавливает PHP-FPM и регистрирует службу systemd для PHP 8.3 FPM по адресу сокета /run/php/php8.3-fpm.sock .

    Для веб-серверов, интегрирующихся с PHP через Fast CGI, измените/настройте путь к сокету UNIX на этот адрес сокета UNIX.

    Например, в Nginx для этого нужно изменить директиву fastcgi_pass :

    -fastcgi_pass unix:/run/php/php8.2-fpm.sock; +fastcgi_pass unix:/run/php/php8.3-fpm.sock; 

    7. Тестирование установки PHP 8.3

    После установки всех пакетов наступает момент истины, когда нужно проверить, успешно ли прошла новая установка.

    Запуск php -v в терминале должен показать что-то вроде этого:

    $ php -v 
    PHP 8.3.0 (cli) (built: Nov 24 2023 08:49:45) (NTS)
    Copyright (c) The PHP Group
    Zend Engine v4.3.0, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.0, Copyright (c), by Zend Technologies

    Список модулей можно получить с помощью команды php -m . Этот список будет включать несколько расширений PHP. См. раздел Перенос конфигурации по поводу переноса директив PHP INI и включённых расширений на новые версии PHP.

    8. Перенос конфигурации

    Этот шаг применим только при обновлении до PHP 8.3 с более старой версии PHP.

    Конфигурационные файлы для новой установки PHP 8.3 находятся в каталоге /etc/php/8.3 . Существующие установки PHP также должны находиться в каталоге /etc/php .

    Не копируйте существующие файлы PHP INI в /etc/php/8.3 . Вместо этого сравните два соответствующих файла PHP INI и обновляйте вариант PHP 8.3 только при необходимости.

    При использовании PHP-FPM убедитесь, что реплицировано нужное количество процессов FPM и моделей процессов.

    Скрипты phpenmod и phpdismod предоставляют переключатели для модулей PHP. Например, ниже отключается расширение phar для FPM на PHP 8.3:

    sudo phpdismod -v 8.3 -s fpm phar

    После внесения изменений перезапустите PHP 8.3-FPM:

    sudo systemctl restart php8.3-fpm

    9. Удаление старых версий PHP

    Этот шаг применим только при обновлении до PHP 8.3 с более старой версии PHP.

    Для удаления старых версий PHP запустите команду apt purge с префиксом версии PHP. Например, ниже удалены пакеты и конфигурация для PHP 8.2:

    sudo apt purge php8.2*

    Запуск PHP 8.3 вместе с другими версиями

    Возможна установка PHP 8.3 вместе с другими версиями PHP. Именно это и происходит при установке PHP 8.3 без предварительного удаления старых PHP пакетов.

    По умолчанию все пакеты phpX.Y-cli устанавливают двоичный файл PHP CLI по адресу /usr/bin/phpX.Y . Это означает, что при установке PHP 8.3 любое приложение, вызывающее PHP CLI как php , будет использовать последний установленный бинарник PHP-CLI (в данном случае PHP 8.3). При использовании нескольких версий PHP убедитесь, что вы вызываете нужный бинарник PHP, напрямую обращаясь к исполняемому файлу /usr/bin/phpX.Y . PHP 8.3 можно напрямую вызвать как /usr/bin/php8.3 .

    По умолчанию имя php будет ссылаться на последнюю версию PHP, но можно изменить путь, на который по умолчанию ссылается команда php . Используйте команду update-alternatives , чтобы изменить путь, на который должна ссылаться команда php .

    sudo update-alternatives --config php

    В результате появится приглашение позволяющее интерактивно выбрать альтернативный путь к бинарному файлу PHP, на который указывает php .

    There are 4 choices for the alternative php (providing /usr/bin/php). 

    Selection Path Priority Status
    ------------------------------------------------------------
    * 0 /usr/bin/php8.3 83 auto mode
    1 /usr/bin/php7.4 74 manual mode
    2 /usr/bin/php8.1 81 manual mode
    3 /usr/bin/php8.2 82 manual mode
    4 /usr/bin/php8.3 83 manual mode

    Press to keep the current choice[*], or type selection number:

    Чтобы задать путь без интерактивного приглашения:

    update-alternatives --set php /usr/bin/php8.3
    • Как установить или обновить PHP 8.3 на Fedora, RHEL, CentOS
    • Как установить/обновить PHP 8.3 на MacOS с помощью Homebrew

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

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

    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

    sudo apt-get install software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt-get update
    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-

    Для разработки также могут быть установлены инструменты покрытия кода или отладчик 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 to keep the current choice[*], or type selection number: 6

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

    Обновление PHP

    Обновление препроцессора гипертекста PHP, используемого во многих CMS (Content management system), требуется при серьёзных обновлениях CMS и её модулей.

    Обновление PHP 7 в Ubuntu

    Препроцессор помогает автоматизировать различные серверные задачи. Он обрабатывает динамический контент и запросы к базе данных, выполняет предварительную обработку/отображение данных.

    Содержание

    • Введение
    • Задача
    • Обновление PHP на сервере Nginx
      • Установка PHP 8.1
      • Правка конфигурационного файла Nginx
      • Установка модулей PHP в Ubuntu
      • Удаление старой версии PHP в Ubuntu

      Введение

      • Система Linux под управлением Ubuntu 20.04;
      • Работающий веб-сервер Nginx;
      • PHP версии 7.4.

      Задача

      Обновление PHP 7.4 до версии 8.1.

      Обновление возможно, конечно, до версии 8.2, но не все модули тестировались на версии 8.2.

      Обновление PHP на сервере Nginx

      Сначала проверяем необходимость в обновлении дистрибутива:

      mensh@139-162-132-20:~$ sudo apt update mensh@139-162-132-20:~$ sudo apt upgrade

      Устанавливаем общие свойства программного обеспечения для получения его из независимых источников:

      mensh@139-162-132-20:~$ sudo apt install software-properties-common

      Добавляем ppa:ondrej/php , который предоставляет разные версии PHP для Ubuntu:

      mensh@139-162-132-20:~$ sudo add-apt-repository ppa:ondrej/php

      После загрузки PPA нажимаем Enter, подтверждая добавление репозитория. В PPA доступны версии препроцессора от 5.6 до 8.2.

      Для включения новых пакетов выполняем обновление apt :

      mensh@139-162-132-20:~$ sudo apt update mensh@139-162-132-20:~$ sudo apt upgrade

      Установка PHP 8.1

      Теперь для установки препроцессора версии 8.1 на сервере Nginx следует выполнить следующую команду:

      mensh@139-162-132-20:~$ sudo apt install php8.1-fpm -y

      Если не указывать номер версии, то по умолчанию будет установлена последняя версия (8.2).

      mensh@139-162-132-20:~$ sudo systemctl reload php8.1-fpm

      Правка конфигурационного файла Nginx

      Редактируем конфигурационный файл Nginx:

      mensh@139-162-132-20:~$ mensh@139-162-132-20:~$ sudo vim /etc/nginx/sites-available/linuxcookbook.ru.conf . location ~ '\.php$|^/update.php' < include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.1-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; >. 

      Здесь версия препроцессора была изменена с 7.4 на 8.1.

      По завершении установки перезапускается служба Nginx для применения изменений:

      mensh@139-162-132-20:~$ sudo systemctl restart nginx

      Установка модулей PHP в Ubuntu

      Устанавливаем модули, необходимые для работы CMS. Я, например, установил следующие модули:

      mensh@139-162-132-20:~$ sudo apt install php8.1-calendar mensh@139-162-132-20:~$ sudo apt install php8.1-ctype mensh@139-162-132-20:~$ sudo apt install php8.1-curl mensh@139-162-132-20:~$ sudo apt install php8.1-date mensh@139-162-132-20:~$ sudo apt install php8.1-dom mensh@139-162-132-20:~$ sudo apt install php8.1-exif mensh@139-162-132-20:~$ sudo apt install php8.1-FFI mensh@139-162-132-20:~$ sudo apt install php8.1-ftp mensh@139-162-132-20:~$ sudo apt install php8.1-gd mensh@139-162-132-20:~$ sudo apt install php8.1-gettext mensh@139-162-132-20:~$ sudo apt install php8.1-gmp mensh@139-162-132-20:~$ sudo apt install php8.1-mysql mensh@139-162-132-20:~$ sudo apt install php8.1-hash mensh@139-162-132-20:~$ sudo apt install php8.1-iconf mensh@139-162-132-20:~$ sudo apt install php8.1-intl mensh@139-162-132-20:~$ sudo apt install php8.1-json mensh@139-162-132-20:~$ sudo apt install php8.1-libxml mensh@139-162-132-20:~$ sudo apt install php8.1-mbstring

      Проверяем список всех загруженных модулей:

      mensh@139-162-132-20:~$ php -m [PHP Modules] apcu bz2 calendar Core ctype curl date dom exif FFI fileinfo filter ftp gd gettext gmp hash iconv intl json libxml mbstring mysqli mysqlnd openssl pcntl pcre PDO pdo_mysql Phar posix readline Reflection session shmop SimpleXML sockets sodium SPL standard sysvmsg sysvsem sysvshm tokenizer xml xmlreader xmlwriter xsl Zend OPcache zlib [Zend Modules] Zend OPcache mensh@139-162-132-20:~$ 

      Удаление старой версии PHP в Ubuntu

      Для удаления старой версии препроцессора из Ubuntu выполняем следующую команду:

      mensh@139-162-132-20:~$ sudo apt purge php7.4-fpm

      Удаляем потерянные пакеты:

      mensh@139-162-132-20:~$ sudo apt autoremove

      Проверяем установленную версию:

      mensh@139-162-132-20:~$ php -v PHP 8.1.20 (cli) (built: Jun 8 2023 15:25:40) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.20, Copyright (c) Zend Technologies with Zend OPcache v8.1.20, Copyright (c), by Zend Technologies mensh@139-162-132-20:~$ 

      Заключение

      После прочтения этой статьи и следуя представленным здесь инструкциям любой начинающий администратор своего сервера Ubuntu легко обновит PHP.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *