Cómo configurar múltiples versiones de PHP con Apache en Ubuntu

Cómo configurar múltiples versiones de PHP con Apache en Ubuntu

En general, el administrador del host usó un servidor separado para cada implementación de la aplicación de la versión PHP. Que aumenta el costo de alojamiento. Algunos de los gerentes de host están utilizando Docker para ejecutar múltiples versiones de PHP en un solo servidor. Además, la mayoría de ustedes conoce la configuración, utilicé en este tutorial. Pero algunos de los administradores del sistema no son conscientes de esto. Este tutorial lo ayudará a instalar múltiples versión de PHP con Apache en Ubuntu 22.04, 20.04 y 18.04 sistemas LTS sin cambiar las versiones de PHP.

Este tutorial describe la instalación y la configuración de dos virtualhost en Apache con versiones PHP separadas. First Virtualhost funcionará con PHP 8.1 y otro virtualhost se ejecutará con PHP 7.4. Así que solo pasa por este tutorial. También puede usar más de dos versiones PHP con Apache según sea necesario, pero este tutorial cubre dos solo.

Instalación de apache2

Instale el servidor web Apache desde el repositorio oficial. Inicie la terminal en su sistema o inicie sesión con SSH para sistemas remotos. Ejecute los siguientes comandos para instalar la última versión disponible del servidor web de Apache.

SUDO APT UPDATY APT APT INSTALA APACHE2 LBAPACHE2-MOD-FCGID 

Ahora habilite algunos módulos requeridos para la configuración de múltiples versiones de PHP con Apache. Estos módulos son necesarios para integrar PHP FPM y FASTCGI con el servidor Apache.

Sudo A2enMod Actions Fcgid alias proxy_fcgi 

Instalación de versiones PHP

Para la instalación de versiones PHP, utilizamos el PPA mantenido aquí. Use el siguiente par de comandos para agregar el PPA a su sistema.

sudo apt install software-properties-común sudo add-apt-repository PPA: OnDrej/PHP 

Para este tutorial, estamos usando Php 8.1 y PHP 7.4 para configurar con el servidor web de Apache. Para usar las múltiples versiones de PHP, usaremos PHP FPM y FastCGI. Instale los siguientes paquetes en su sistema.

SUDO APT UPDATY SUDO APT INSTALL PHP8.1 Php8.1-FPM SUDO APT Instalar PHP7.4 php7.4-FPM 

Después de la instalación, Php-FPM Los servicios se iniciarán automáticamente. Use los siguientes comandos para asegurarse de que ambos servicios se estén ejecutando.

SUDO SystemCTL Status PHP8.1-FPM SUDO SYSTEMCTL ESTADO PHP7.4-FPM 
  • Puede que le guste: Cómo habilitar/deshabilitar los módulos PHP en Ubuntu

Configuración de los hosts virtuales de Apache

Prepárese para la configuración de sitios web en su servidor Apache. Para el propósito de prueba, estoy configurando dos sitios web para trabajar con dos versiones de 2 PHP diferentes. Primero, cree dos directorios en su servidor.

sudo mkdir/var/www/php81 sudo mkdir/var/www/php74 

Crear un índice.archivo php que contiene el phpinfo () función.

echo "" | sudo tee -a/var/www/php81/index.PHP Echo "" | sudo tee -a/var/www/php74/index.php 

Comencemos la creación de virtualhost. Apache mantiene todos los archivos de configuración VirtualHost en/etc/apache2/sites disponible con la extensión .confusión. Cree un archivo para el primer host virtual y edite en su editor de texto favorito.

sudo vim/etc/apache2/sites disponible/php81.ejemplo.comunicarse.confusión 

Agregar el siguiente contenido. Asegúrese de usar el nombre de servidor correcto y la ruta de directorio de acuerdo con su configuración. Este sitio web está configurado para funcionar con PHP 8.1.

ServerName PHP81.ejemplo.com documentroot/var/www/php81 opciones -dexes +seartsymlinks +múltiples vistas al mismo.4.10+ puede proxy a unix socket sethandler "proxy: unix:/var/run/php/php8.1-fpm.calcetín | fcgi: // localhost "
12345678910111213 ServerName PHP81.ejemplo.com documentroot/var/www/php81 Opciones -dexes +SIGESYMLINKS +MULTIVIEWS DESFORTOVERRide, todos requieren todo lo que se otorgan # Apache 2.4.10+ puede proxy a unix socket sethandler "proxy: unix:/var/run/php/php8.1-fpm.calcetín | fcgi: // localhost "

Del mismo modo, cree un segundo archivo de configuración VirtualHost para funcionar con PHP 7.4. Editar el archivo de configuración en el editor de texto:

sudo vim/etc/apache2/sites disponible/php74.ejemplo.comunicarse.confusión 

Agregue el siguiente contenido a archivar con el nombre de servidor adecuado y documentroot.

ServerName PHP74.ejemplo.com documentroot/var/www/php74 opciones -dexes +seartsymlinks +múltiples vistas al mismo.4-FPM.calcetín | fcgi: // localhost "
123456789101112 ServerName PHP74.ejemplo.com documentroot/var/www/php74 Opciones -dexes +SIGESYMLINKS +MULTIVIEWS DESFORTOVERRide, todos requieren todo lo que se otorgan Sethandler "proxy: unix:/var/run/php/php7.4-FPM.calcetín | fcgi: // localhost "

Ambos sitios web están configurados ahora. Pero todavía no están activos. Apache mantiene los sitios activos en el directorio habilitado para/etc/apache2/sites. Simplemente puede crear un enlace simbólico de archivos de configuración a este directorio o usar el siguiente comando para hacer lo mismo.

sudo a2ensite php81.ejemplo.com sudo a2ensite php74.ejemplo.comunicarse 

Después de hacer todos los cambios, reinicie Apache para recargar nuevos cambios de configuración.

sudo systemctl reiniciar apache2 

Tu configuración se ha completado ahora. Vaya al siguiente paso para probar su configuración.

Configuración de prueba

Editar /etc /hosts archivo en su sistema local y hacer una entrada como a continuación. Esto resolverá los nombres de Temprory a la dirección IP localhost.

sudo vim /etc /hosts 

Agregue la siguiente entrada al final del archivo

127.0.0.1 Php81.ejemplo.com 127.0.0.1 Php74.ejemplo.comunicarse 

Abra un navegador web y visite ambos sitios. Verás que php81.ejemplo.comunicarse muestra la versión Php 8.1 y php74.ejemplo.comunicarse está mostrando el Php 7.4 Como la configuración.

  • http: // php81.ejemplo.comunicarse
    Php 8.1 con Apache
  • http: // php74.ejemplo.comunicarse
    Php 7.4 con Apache

Conclusión

Este tutorial le ayudó a instalar y configurar varias versiones de PHP con Apache en el sistema Ubuntu Linux. Que le proporciona una solución rentable para implementar diferentes aplicaciones de versión PHP en un solo servidor web.