Cómo instalar múltiples versión de PHP con Nginx en Ubuntu 18.04 y 16.04

Cómo instalar múltiples versión de PHP con Nginx en Ubuntu 18.04 y 16.04

En general, Web Hosting Manager usó un servidor separado para cada implementación de la aplicación de la versión PHP. Que aumenta el costo de alojamiento. Alternativamente, puede ejecutar múltiples contenedores Docker para múltiples versiones de PHP.

Este tutorial le ayuda con la instalación y la configuración de dos virtualhost en el servidor web NGINX con diferentes versiones de PHP. First Virtualhost funcionará con PHP 5.6 y otro virtualhost se ejecutará con PHP 7.2. Así que solo pasa por este tutorial. También puede usar más de dos versiones PHP con NGINX según sea necesario, pero este tutorial cubre dos solo.

Instalación de 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 python-software-propiedades sudo add-apt-repository PPA: OnDrej/PHP 

Para este tutorial, usé Php 5.6 y Php 7.2 para configurarlo con el servidor web NGINX. Para usar las múltiples versiones de PHP, usaremos PHP FPM y FastCGI. Instale los siguientes paquetes en su sistema.

APT UPDATY SUDO APT INSTALL PHP5.6 php5.6-FPM SUDO APT Instalar PHP7.2 php7.2-FPM 

También es posible que deba instalar módulos PHP adicionales. Para el tutorial, solo se requieren los paquetes anteriores.

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

SUDO SYSTEMCTL ESTADO PHP5.6-FPM SUDO SYSTEMCTL ESTADO PHP7.2-FPM 
  • Recomendado: Cómo habilitar/deshabilitar los módulos PHP en Ubuntu

Instalación de Nginx

El servidor web NGINX es los paquetes disponibles en el repositorio oficial de Ubuntu. 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 NGINX.

sudo apt actualización sudo apt install nginx 

Configuración de Nginx

Prepárese para la configuración de sitios web en el servidor NGINX. 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/php56 sudo mkdir/var/www/php72 

Ahora, crea y índice.php que contiene el phpinfo () función.

echo "">/var/www/php56/index.Php echo "">/var/www/php72/index.php 

Después de eso, cree bloques de servidor para ambos sitios en Nginx. La última versión de NGINX mantiene los archivos de configuración del bloque del servidor en el directorio/Nginx/Sites disponible. Cree un archivo para el primer host virtual y edite en su editor de texto favorito.

sudo vim/etc/nginx/sites disponible/php56.ejemplo.comunicarse 

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 5.6.

# Aplicación con PHP 5.6 # servidor escuchar 80; root/var/www/php56; índice índice.php; server_name php56.ejemplo.com; Ubicación ~* \.PHP $  # con sockets Unix PHP-FPM FastCGI_Pass unix:/var/run/php/php5.6-FPM.calcetín; incluir fastcgi_params; fastcgi_param script_filename $ document_root $ fastcgi_script_name; fastcgi_param script_name $ fastcgi_script_name;  

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

sudo vim/etc/nginx/sites disponible/php72.ejemplo.comunicarse 

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

# Aplicación con PHP 7.2 # servidor escuchar 80; root/var/www/php72; índice índice.php; server_name php72.ejemplo.com; Ubicación ~* \.PHP $  # con sockets UNIX PHP-FPM fastcgi_pass unix:/var/run/php/php7.2-FPM.calcetín; incluir fastcgi_params; fastcgi_param script_filename $ document_root $ fastcgi_script_name; fastcgi_param script_name $ fastcgi_script_name;  

Muy bien, ha creado ambos sitios web en su Nginx. Pero todavía no están activos. Nginx mantiene los sitios activos en/etc/nignx/directorio habilitado para sitios. Simplemente puede crear un enlace simbólico para ambos archivos de configuración en este directorio o usar el siguiente comando para hacer lo mismo.

sudo ln -s/etc/nginx/sites disponible/php56.ejemplo.com/etc/nginx/sites-habilitado/sudo ln -s/etc/nginx/sites-disponible/php72.ejemplo.com/etc/nginx/sites-habilitado/ 

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

sudo systemctl reiniciar nginx.servicio 

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

Configuración de prueba

Todo listo. Puede acceder a ambos sitios en su navegador web Favirote . Verás que php56.ejemplo.comunicarse muestra la versión Php 5.6 y php72.ejemplo.comunicarse está mostrando el Php 7.2 Como la configuración.

Felicitaciones, su sistema está listo para alojar sitios web con diferentes versiones de PHP. Feliz alojamiento.