Обновление PHP

Опубликовано admin - чт, 06/15/2023 - 11:49

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

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

Перезагружаем PHP:

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.

Поделиться с друзьями