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

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

  • автор:

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

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

PHP 8.1 уже выпущен с новыми функциями, улучшениями и устаревшими функциональными возможностями.

На сегодняшний момент ни один из текущих репозиториев программного обеспечения Ubuntu или Debian не предлагает PHP 8.1 в своих репозиториях программного обеспечения по умолчанию. Однако Ондржей Сури продолжает делать версии PHP доступными в виде репозитория программного обеспечения Debian/Ubuntu, и теперь доступны пакеты PHP 8.1.

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

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

Расширение Curl поддерживает DNS через HTTPS (DoH), начиная с PHP 8.1. Для этой функции требуется Curl версии 7.62 или более поздней, и она будет недоступна в более старых версиях Debian/Ubuntu, которые не включают в себя версию Curl более позднюю, чем 7.62. Например, эта функция будет недоступна в Ubuntu 18.04.

Изменения в директиве INI PHP 8.1

  • функции date_sunrise, date_sunset и соответствующие им настройки INI — устарели
  • настройки filter.default и filter.default_options INI — устарели
  • Директива auto_detect_line_endings INI — устарела

Итак, приступим к установке PHP 8.1.

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

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

dpkg -l | grep php | tee packages.txt

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

2. Добавить PPA ondrej/php

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

sudo add-apt-repository ppa:ondrej/php # Press enter when prompted. sudo apt 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.

3. Установите PHP 8.1 и расширения

Все пакеты PHP 8.1 следуют шаблону php8.1-NAME. Дополнительные расширения (такие как GD, Curl и т. д.) могут быть установлены так же, в виде наименование программных пакетов (php8.1-gd, php8.1-curl и т. д.).

  • php8.1 — это мета-пакет , который коллективно устанавливает несколько зависимостей, таких, как php8.1-cli и php8.1-readline, а также некоторые вспомогательные пакеты.
  • php8.1-common — это также мета-пакет, который устанавливает большинство широко используемых расширений PHP за один раз. Он автоматически устанавливает пакет, например php8.1-pdo, php8.1-tokenizer и другие полезные расширения.
sudo apt install php8.1 php8.1-common php8.1-cli -y

Эта команда установит несколько расширений PHP — php8.1-common и CLI для PHP 8.1. После установки, можно проверить наличие установленных модулей, запустив:

php -v # Показать версию PHP . php -m # Показать установленные и загруженные модули PHP.

Вы можете установить дополнительные расширения по тому же шаблону php8.1-NAME. Обратитесь к файлу packages.txt, чтобы увидеть список существующих пакетов, если вы обновляете существующую систему. Обратите внимание, что начиная с PHP 8.0, расширение JSON входит в комплект и устанавливается неявно.

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

sudo apt install php8.1-

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

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

Внимание! Эти расширения не рекомендуется устанавливать на продакшн серверах.

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

Для использования Nginx, Litespeed и т.п. устанавливаем php8.1-fpm. Пакет обеспечивает интеграцию с PHP 8.1 через FPM:

sudo apt install php8.1-fpm

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

sudo apt install libapache2-mod-php8.1

Обратите внимание, что обработчик Apache2 переименован из php7_module в php_module для PHP 8.0. Пакет автоматически настраивает расположение модуля Apache, но если вы обновляете с существующей установки PHP, возможно , потребуется обновление конфигурационных файлов; в частности блоки .

4. Протестируйте установку PHP 8.1

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

php -v php -m
PHP 8.0.13 (cli) (built: Nov 22 2021 09:50:43) ( NTS ) Copyright (c) The PHP Group Zend Engine v4.0.13, Copyright (c) Zend Technologies with Zend OPcache v8.0.13, Copyright (c), by Zend Technologies with Xdebug v3.1.1, Copyright (c) 2002-2021, by Derick Rethans 
[PHP Modules] apcu calendar Core ctype curl date dom exif FFI . [Zend Modules] Xdebug Zend OPcache

Очистить старые версии PHP

Если новая установка работает должным образом, вы можете удалить старые пакеты PHP из системы. Например, если вы используете PHP 8.0 в качестве предыдущей версии, сделать это можно с помощью команды (Осторожно! Не удаляйте старую версию, не убедившись, что ни одно из ваших приложений не использует эту версию):

sudo apt purge '^php8.0.*'

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

Вместо удаления старых версий PHP можно также запускать несколько версий PHP параллельно. Команда update-alternatives обеспечивает простой способ переключения между версиями PHP для PHP CLI.

sudo update-alternatives --config php
Есть 5 вариантов для альтернативы php (предоставляет /usr/bin/php). Выбор Путь Приор Состояние ------------------------------------------------------------ 0 /usr/bin/php8.1 81 автоматический режим 1 /usr/bin/php7.2 72 ручной режим 2 /usr/bin/php7.3 73 ручной режим 3 /usr/bin/php7.4 74 ручной режим * 4 /usr/bin/php8.0 80 ручной режим 5 /usr/bin/php8.1 81 ручной режим 

Обновление 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.

    Как установить/обновить 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 с 5.4 до 7.0 на CentOS 7

    Хостинг Linux от 9 рублей в месяц VPS Linux всего за 89 рублей в месяц

    В этой статье мы расскажем как обновить пакет PHP на виртуальном сервере с операционной системой CentOS 7.

    1) Вы должны иметь на сервере установленный пакет ПО LAMP (если у вас установлен Nginx, то эта инструкция вам может не подойти). Как его установить, написано в нашей инструкции.

    2) Нужно добавить репозиторий EPEL. Для этого вводите команду:

    yum install epel-release

    3) Дальше выполняете такую команду:

    rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

    4) Устанавливайте PHP 7.0 командой:

    yum install php70w

    обновление php на vps с centos

    5) Перезагружайте Apache:

    sudo apachectl restart

    6) Если вы все сделали по нашей инструкции с установкой LAMP, то результат можно проверить по ссылке http://IPвашегосервера/index.php или командой:

    проверка результата обновления php

    7) Все. Вы установили PHP 7.0, проверьте работоспособность всех систем вашего проекта.

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

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