viernes, 27 de junio de 2025

Instalar dos versiones distintas de php en Debian

Para instalar varias versiones de PHP, por ejemplo, 7.4 y 8.3 en Debian 12 , podemos usar el repositorio de Ondřej Surý, que es la fuente recomendada y más actualizada para múltiples versiones de PHP en Debian. Aquí tienes la guía paso a paso:

  1. Actualizamos el sistema:
    sudo apt update
    sudo apt upgrade -y
  2. Instalamos las dependencias que vamos a necesitar:
    sudo apt install -y lsb-release ca-certificates apt-transport-https software-properties-common curl wget
  3. Agremos el repositorio de Ondřej Surý:
    sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
    echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
    sudo apt update
  4. Instalamos php 7.4 y sus módulos necesarios:
    sudo apt install -y php7.4 php7.4-cli php7.4-fpm php7.4-mysql php7.4-curl php7.4-gd php7.4-mbstring php7.4-xml php7.4-zip
  5. Instalamos php 8.3 y sus módulos necesarios:
    sudo apt install -y php8.3 php8.3-cli php8.3-fpm php8.3-mysql php8.3-curl php8.3-gd php8.3-mbstring php8.3-xml php8.3-zip
  6. Comprobamos las instalaciones:
    php7.4 -v
    php8.3 -v
  7. Podemos cambiar la versión activa de php manualmente desde la línea de comandos:
    sudo update-alternatives --set php /usr/bin/php7.4
    O para PHP 8.3:
    sudo update-alternatives --set php /usr/bin/php8.3
  8. O Habilitar y arrancar PHP-FPM para cada versión:
    sudo systemctl enable php7.4-fpm
    sudo systemctl start php7.4-fpm
    O para PHP 8.3:
    sudo systemctl enable php8.3-fpm
    sudo systemctl start php8.3-fpm

Esta metodología es segura y ampliamente usada en entornos de producción y desarrollo.


Configuración extra para Moodle

Para usar con Moodle hay que instalar también los siguientes paquetes:

sudo apt install php7.4-intl php7.4-xmlrpc php7.4-soap

Y

sudo apt install php8.3-intl php8.3-xmlrpc php8.3-soap 

En los archivos  /etc/php/X.Y/fpm/php.ini hay que añadir o cambiar en la sección correspondiente:

max_input_vars = 5000 

Y reiniciamos los servicios php-fpm

sudo systemctl restart php7.4-fpm

sudo systemctl restart php8.3-fpm



¿Qué diferencia, ventajas e inconvenientes, hay entre usar update-alternatives o php-fpm?

update-alternatives y PHP-FPM cumplen funciones distintas en la gestión de PHP en sistemas Debian:

  • update-alternatives: Herramienta del sistema para seleccionar la versión de un ejecutable por defecto en la línea de comandos (CLI), como php, phar, etc.
  • PHP-FPM: Gestor de procesos FastCGI para PHP, diseñado para servir aplicaciones web de alto rendimiento, gestionando pools de procesos PHP que atienden peticiones web a través de sockets o puertos TCP.

Cuadro comparativo:

Característicaupdate-alternativesPHP-FPM
PropósitoSelección de versión de ejecutable CLIProcesamiento eficiente de peticiones web PHP
ÁmbitoLínea de comandos y scripts del sistemaServidores web (Apache, Nginx, etc.)
Cambio de versiónAfecta solo a la CLI (no al servidor web)Cada pool puede usar una versión diferente
ConcurrenciaNo aplicaManeja múltiples peticiones concurrentes
PersonalizaciónLimitada a la selección de ejecutablePools configurables por usuario, dominio, etc.

 

Consideraciones:

  • Cambiar la versión de PHP con update-alternatives solo afecta a la CLI, no a los sitios web servidos por PHP-FPM.
  • Para que un servidor web use una versión específica de PHP-FPM, debes apuntar el socket o puerto correspondiente en la configuración del servidor web.
  • No puedes tener un único socket genérico para alternar versiones de PHP-FPM sin perder la posibilidad de ejecutar varias versiones simultáneamente.
  • PHP-FPM es imprescindible para entornos web modernos y de alto tráfico, mientras que update-alternatives es útil para scripts y tareas del sistema.



No hay comentarios:

Publicar un comentario