GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar varias versiones de PHP en Ubuntu 20.04, 18.04, 20.10

Este tutorial le muestra cómo instalar varias versiones de PHP en Ubuntu y hacer que un host virtual Apache en particular o un bloque de servidor Nginx use uno de ellos. Esto es útil cuando tiene varias aplicaciones web en su servidor, pero una o dos de ellas no son compatibles con la versión de PHP en el repositorio predeterminado de Ubuntu. El repositorio de Ubuntu 18.04 incluye PHP7.2 y el repositorio de Ubuntu 20.04 incluye PHP7.4. Veremos como instalar PHP7.3 , PHP7.4 y PHP8.0 en un único servidor Ubuntu.

Instalar múltiples versiones de PHP en Ubuntu a través de PPA

La forma más sencilla de instalar varias versiones de PHP es mediante el PPA de Ondřej Surý, que es un desarrollador de Debian. Para agregar este PPA, ejecute los siguientes comandos en la terminal. software-properties-common Se necesita el paquete si desea instalar el software de PPA. Se instala automáticamente en el escritorio de Ubuntu, pero es posible que falte en su servidor Ubuntu.

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php

sudo apt update

Ahora puedes instalar PHP8.0 en Ubuntu ejecutando el siguiente comando.

sudo apt install php8.0 php8.0-fpm

E instale algunas extensiones PHP8.0 comunes.

sudo apt install php8.0-mysql php8.0-mbstring php8.0-xml php8.0-gd php8.0-curl

Puede ver todas las extensiones PHP7.4 disponibles escribiendo sudo apt install php8.0 y presionando Tab tecla dos veces.

Para instalar PHP7.4 en Ubuntu, ejecute

sudo apt install php7.4 php7.4-fpm

Instale algunas extensiones PHP7.4 comunes.

sudo apt install php7.4-mysql php7.4-mbstring php7.4-xml php7.4-gd php7.4-curl

Puede instalar PHP7.3 de la misma manera. Simplemente reemplace el número de versión en estos comandos.

Sugerencia :PHP5.6, PHP7.0 y PHP7.2 llegaron al final de su vida útil, pero aún puede obtener correcciones de seguridad de este PPA.

Cambiar la versión de PHP en Apache Virtual Host

De forma predeterminada, Apache usa una versión de PHP en todos los hosts virtuales. Si desea utilizar una versión de PHP diferente en un host virtual en particular, deberá deshabilitar el módulo Apache PHP y ejecutar el código PHP a través de PHP-FPM. Comprobar si mod_php está instalado.

dpkg -l | grep libapache2-mod-php

Si está instalado, debe desactivarlo. Por ejemplo, tengo libapache2-mod-php7.4 instalado en mi servidor Ubuntu 20.04,

Lo desactivo ejecutando:

sudo a2dismod php7.4

También debe deshabilitar el módulo MPM prefork.

sudo a2dismod mpm_prefork

Ahora debe ejecutar el siguiente comando para habilitar tres módulos para usar PHP-FPM, independientemente de si mod_php está instalado en su servidor.

sudo a2enmod mpm_event proxy_fcgi setenvif

El fragmento de código de configuración de PHP-FPM se encuentra en /etc/apache2/conf-available/ .

Digamos que desea usar PHP8.0 en un servidor virtual Apache, luego abra el archivo de configuración del servidor virtual y agregue la siguiente línea en <VirtualHost> etiquetas.

Include /etc/apache2/conf-available/php8.0-fpm.conf

Así:

Guarde y cierre el archivo. Luego verifique la sintaxis.

sudo apachectl -t

Reinicie Apache para que el cambio surta efecto.

sudo systemctl restart apache2

Ahora digamos que desea usar PHP7.3 en el host virtual de Mautic porque Mautic no es compatible con PHP7.4, luego agregue la siguiente línea en su host virtual de Mautic entre <VirtualHost> etiquetas y luego reinicie Apache.

Include /etc/apache2/conf-available/php7.3-fpm.conf

Para probar qué versión de PHP utiliza su host virtual, puede crear un info.php archivo en la raíz de su documento (digamos /var/www/html ).

sudo nano /var/www/html/info.php

Pegue el siguiente código PHP en el archivo.

<?php phpinfo(); ?>

Guarde y cierre el archivo. Luego, en la barra de direcciones de su navegador, escriba

your-domain.com/info.php

Cambiar la versión de PHP en el bloque del servidor Nginx

Es muy fácil cambiar la versión de PHP en el bloque del servidor Nginx. Como probablemente sepa, Nginx ejecuta código PHP a través de PHP-FPM, que escucha en un socket Unix. El archivo de socket se encuentra en /run/php/ directorio.

Como puede ver en la captura de pantalla, hay varios archivos de socket PHP-FPM (.sock) en mi servidor correspondientes a diferentes versiones de PHP. Su archivo de bloque del servidor Nginx normalmente tiene el siguiente fragmento para conectarse al servidor PHP-FPM.

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }

La versión de PHP que utiliza Nginx está determinada por la tercera línea del fragmento. Para usar PHP8.0 en un bloque de servidor Nginx en particular, cambie esa línea a:

fastcgi_pass unix:/run/php/php8.0-fpm.sock;

Para usar PHP7.3 en el bloque del servidor Nginx, cambie esa línea a

fastcgi_pass unix:/run/php/php7.3-fpm.sock;

Estoy seguro de que entiendes la idea ahora. Guarde y cierre el archivo. Luego, vuelva a cargar Nginx para que los cambios surtan efecto.

sudo systemctl reload nginx

Para probar qué versión de PHP usa su bloque de servidor, puede crear un info.php archivo en la raíz de su documento (digamos /var/www/html ).

sudo nano /var/www/html/info.php

Pegue el siguiente código PHP en el archivo.

<?php phpinfo(); ?>

Guarde y cierre el archivo. Luego, en la barra de direcciones de su navegador, escriba

your-domain.com/info.php

Cómo configurar la versión de PHP predeterminada para la línea de comandos

Si instala una versión más nueva de PHP en Ubuntu, se convertirá en la versión predeterminada para la línea de comandos. Instalé PHP8.0, pero aún quiero PHP7.4 como la versión predeterminada para la línea de comandos.

Para configurar la versión de PHP de la línea de comandos predeterminada, ejecute el siguiente comando.

sudo update-alternatives --config php

Para comprobar la versión actual de PHP de línea de comandos, ejecute

php --version


Ubuntu
  1. Cómo instalar PHP 7.4/7.3/7.2 en Ubuntu 18.04/Ubuntu 16.04

  2. Cómo instalar PHP 7.3 en Ubuntu 18.04 LTS

  3. Cómo instalar PHP 7.2 en Ubuntu 16.04

  4. Cómo instalar PHP 7.3 en Ubuntu 16.04

  5. Cómo instalar PHP 7.3 en Ubuntu 18.04

Cómo instalar PHP 8.0 en Ubuntu 20.04

Cómo cambiar entre varias versiones de PHP en Ubuntu

Cómo instalar PHP 8.0 en Ubuntu 20.04/18.04

Cómo instalar diferentes versiones de PHP (5.6, 7.x y 8.0) en Ubuntu

Cómo instalar PHP en Ubuntu 22.04

Cómo instalar PHP en Ubuntu 22.04