Обновление PHP до версии 7.2 в Debian Jessie (Debian GNU/Linux 8.11)

Материал из Home wiki
Перейти к навигации Перейти к поиску

Cегодня рассмотрим довольно типовую задачу которую приходится решать довольно часто последнее время и я решил ее задокументировать, чтобы в дальнейшем просто следовать подготовленному плану. Как вы наверное поняли, я буду обновлять PHP в Debian Jessie до текущей стабильной версии.

Первым делом нам необходимо получить список всех установленных пакетов связанных с PHP (php-fpm и его модули), для того чтобы для новой версии PHP восстановить исходное окружение:

# dpkg --list | grep php | awk '/^ii/{ print $2}'
php-auth-sasl
php-http-request
php-mail
php-mail-mime
php-net-dime
php-net-smtp
php-net-socket
php-net-url
php-pear
php-soap
php5-cli
php5-common
php5-curl
php5-fpm
php5-gd
php5-imap
php5-json
php5-mysql
php5-pgsql
php5-readline
php5-xsl

Или можно все сразу в строку для дальнейшей передачи в apt-get install:

# dpkg --list | grep php | awk '/^ii/{ print $2}' | tr "\n" " "

Следующим этапом подключаем репозитарий с новыми версиями PHP:

# apt install ca-certificates apt-transport-https
# wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -
# echo "deb https://packages.sury.org/php/ jessie main" | tee /etc/apt/sources.list.d/php.list
# apt-get update

Устанавливаем соответствующие пакеты, но с PHP версии 7.2:

# aptitude install php7.2-cli php7.2-common php7.2-curl php7.2-fpm php7.2-gd \
php7.2-imap php7.2-json php7.2-mysql php7.2-pgsql php7.2-readline php7.2-xsl

Редактируем все конфигурационные файлы виртуальных хостов заменяя /var/run/php5-fpm.sock на /var/run/php/php7.2-fpm.sock. Так же, естественно, что вам так же потребуется перенести параметры PHP-окружения (у меня они обычно заданны в файлах конфигурации виртуальных хостов).

Посмотреть текущие переменные окружения можно командой:

# cat /etc/php/7.2/fpm/php.ini | grep -v "^;" | grep -v "^$"