En un servidor que tengo con Debian 8 (esto mismo es aplicable a Debian 9) necesito tener PHP 7.0 y PHP 7.3 para poder actualizar las instalaciones que están con PHP 7.0 sin tener interrumpido el servicio.
Para ello actualizo los paquetes:
$ sudo apt update && sudo apt upgrade
Luego instalo varios paquetes necesarios:
$ sudo apt install -y apt-transport-https lsb-release ca-certificates
Añado el DPA (Debian Package Archive) disponible en https://deb.sury.org/ , ya que la versión oficial no se encuentra tan actualizada.
$ 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
A continuación consulto los paquetes disponibles en este DPA
$ sudo apt search php7.3
Para finalizar instalo los paquetes que necesito vinculados con PHP 7.3:
$ sudo apt install -y php7.3-common \ php7.3 \ php7.3-cli \ php7.3-common \ php7.3-curl \ php7.3-fpm \ php7.3-gd \ php7.3-json \ php7.3-mbstring \ php7.3-mysql \ php7.3-opcache \ php7.3-readline \ php7.3-sqlite3 \ php7.3-xml \ php7.3-zip
Si consulto la versión de PHP ya me aparece PHP 7.3
$ php -v PHP 7.3.2-3+0~20190208150759.31+jessie~1.gbp0912bd (cli) (built: Feb 8 2019 23:17:46) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.2, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.3.2-3+0~20190208150759.31+jessie~1.gbp0912bd, Copyright (c) 1999-2018, by Zend Technologies
Si busco el PHP 7.0, sigue disponible en /usr/bin/php7.0
$ which php7.0 /usr/bin/php7.0
Además PHP 7.3 está disponible en /usr/bin/php7.3
$ which php7.3 /usr/bin/php7.3
Si busco el ejecutable por defecto de PHP, me encuentro que está diponible en /usr/bin/php
$ which php /usr/bin/php
Si compruebo el contenido del directorio /usr/bin veo que /usr/bin/php es un enlace simbólico a /etc/alternatives/php
$ ls /usr/bin/php* -laht /usr/bin/php7.3 /usr/bin/php7.0 /usr/bin/php -> /etc/alternatives/php
Y si compruebo el contenido del destino de ese enlace simbólico /etc/alternatives/php, vuelvo a encontrar otro enlace simbólico al ejecutable de PHP 7.3, que se encuentra en /usr/bin/php7.3
$ ls -laht /etc/alternatives/php lrwxrwxrwx 1 root root 15 Feb 20 18:52 /etc/alternatives/php -> /usr/bin/php7.3
Este es el motivo de que PHP 7.3 sea la versión de CLI por defecto de PHP tras esta instalación.
Lo siguiente es comprobar la configuración del FPM. Puedo ver que en /etc/php/ hay 2 directorios, uno para la configuración con PHP 7.0 y otro para la configuración con PHP 7.3:
$ ls -1 /etc/php/ 7.0 7.3
Ahora ya puedo realizar la configuración del FPM para que nginx o Apache usen el FPM con PHP 7.0 o PHP 7.3, en función de las necesidades de cada proyecto.
Esta misma instalación podría llevarse a cabo para instalar PHP 7.2, cambiando php7.3 por php7.2 en los comandos “sudo apt search” y “sudo apt install”.
Un último consejo: si es posible, migra todos los proyectos a PHP 7.3, ya que PHP 7.0 no tiene soporte.
buena explicacion
Mejor imposible, me sirvió para instalar php8.0