Для начала убедитесь что ваш CMS\код\итд совместим с новой версией.
Глянуть текущую версию
php -v
В репах 16ой убунты нет 7.1 и 7.2, убедитесь в этом
sudo apt-cache policy php
Посмотреть какие пакеты у вас установлены для работы с php7.0
dpkg -l | grep php7.0
Копируйте, заменяйте версию на 7.1. Надо все эти пакеты будет установить с новой версией
Добавляем репу, где есть всё для 7.1 (даже 7.2):
sudo add-apt-repository ppa:ondrej/php
sudo apt update
Проверьте что новая версия теперь доступна
sudo apt-cache policy php
Есть? Ставим 7.1 и все пакеты php7.1-*, которые необходимы вам. У меня такой список
sudo apt install php7.1-cli php7.1-common php7.1-curl php7.1-fpm php7.1-gd php7.1-json php7.1-mbstring php7.1-mcrypt php7.1-mysql php7.1-opcache php7.1-readline php7.1-xml php7.1-xmlrpc php7.1-zip
Теперь поправьте конфиги nginx, часть с php. Обычнейший пример:
Было
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php7.0-fpm:
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
Стало
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php7.1-fpm:
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
}
Просим nginx перечитать конфиги
sudo nginx -s reload
Проверим версию php
php -v
И для того, что бы проверить что сайт использует правильную версию, создайте файл test.php в корне каталога с сайтом, со следующим содержанием:
<?php
phpinfo()
?>
Откройте через браузер https://example.com/test.php и видим используемую версию
Если вы вносили изменения в конфиги php, не забудьте их перенести. Удаляем php7.0-*
sudo apt purge php7.0-cli php7.0-common php7.0-curl php7.0-fpm php7.0-gd php7.0-json php7.0-mbstring php7.0-mcrypt php7.0-mysql php7.0-opcache php7.0-readline php7.0-xml php7.0-xmlrpc php7.0-zip
Мой телеграм-канал .