Рано или поздно приходится обновлять устаревшие версии программного обеспечения.
PHP не является исключением.
Я пользователь nextcloud и после обновления его до версии 19, получил сообщение, что использую версию PHP 7.2.
Для следующей версии nextcloud 20 требуется PHP версии не ниже 7.3.
Предупреждения о текущей конфигурации. На этом сервере используется PHP версии 7.2.31.
Рекомендуется обновить PHP чтобы воспользоваться улучшениями производительности и безопасности, внедрёнными PHP Group сразу, как только новая версия будет доступна в используемом дистрибутиве.
Nextcloud версии 19 — последний выпуск, поддерживающий PHP версии 7.2.
Для работы Nextcloud версии 20 потребуется PHP версии не ниже 7.3.
Решил не ждать, а обновить заранее.
Для обновления будет использовать pkg.
Напрямую поднять версию PHP не получится, нам придется удалить PHP и его модули и установить их заново нужной нам версии.
Посмотрим, что у нас установлено:
# pkg info | grep php | awk '{print $1}' nextcloud-php72-19.0.0 php72-7.2.31 php72-bcmath-7.2.31 php72-bz2-7.2.31 php72-ctype-7.2.31 php72-curl-7.2.31 php72-dom-7.2.31 php72-exif-7.2.31 php72-fileinfo-7.2.31 php72-filter-7.2.31 php72-gd-7.2.31 php72-gmp-7.2.31 php72-hash-7.2.31 php72-iconv-7.2.31 php72-intl-7.2.31 php72-json-7.2.31 php72-mbstring-7.2.31 php72-opcache-7.2.31 php72-openssl-7.2.31 php72-pcntl-7.2.31 php72-pdo-7.2.31 php72-pdo_mysql-7.2.31 php72-pecl-APCu-5.1.18 php72-pecl-imagick-3.4.4 php72-pecl-smbclient-1.0.0_1 php72-posix-7.2.31 php72-session-7.2.31 php72-simplexml-7.2.31 php72-soap-7.2.31 php72-xml-7.2.31 php72-xmlreader-7.2.31 php72-xmlwriter-7.2.31 php72-xsl-7.2.31 php72-zip-7.2.31 php72-zlib-7.2.31
Создадим список, что мы будем обновлять:
pkg info \*php7\* | sed 's/72/73/' | sed 's/-[0-9].*//' | tr '\n' ' ' > ~/phplist
Посмотрим, что у нас в ~/phplist:
less ~/phplist nextcloud-php73 php73 php73-bcmath php73-bz2 php73-ctype php73-curl php73-dom php73-exif php73-fileinfo php73-filter php73-gd php73-gmp php73-hash php73-iconv php73-intl php73-json php73-mbstring php73-opcache php73-openssl php73-pcntl php73-pdo php73-pdo_mysql php73-pecl-APCu php73-pecl-imagick php73-pecl-smbclient php73-posix php73-session php73-simplexml php73-soap php73-xml php73-xmlreader php73-xmlwriter php73-xsl php73-zip php73-zlib
Видим, что мы получили список PHP и все что с ним связано с версией 7.3
Удаляем PHP:
pkg delete -fy \*php7\*
Установим PHP 7.3 и все нужные нам модули из списка phplist:
pkg install -y `cat ~/phplist` && rm ~/phplist
Рестартуем затронутые сервисы, к примеру php-fpm:
service php-fpm restart
На этом все.