Utilizar diferentes versiones PHP en el mismo servidor

Alfredo
Sígueme!
Últimas entradas de Alfredo (ver todo)
utilizar diferentes versiones php

En este artículo vamos a demostraros cómo utilizar diferentes versiones PHP en el mismo servidor.

Desde el cPanel de nuestro hosting, nos permite utilizar diferentes versiones PHP que necesitemos, pero esta versión PHP se asigna a todo el servidor por completo. Es decir, si vamos a tener varios proyectos web alojados en el mismo servidor, todos los proyectos web deben ser compatibles con la versión PHP que está configurado en el servidor, o de lo contrario, no funcionaran tus proyectos web correctamente.

El problema que nos podemos encontrar en que es posible que quieras mantener una web antigua con la versión PHP 5.x, pero si pones la versión PHP 7.x va a dejar de funcionar. Entonces… ¿Qué es lo que puedes hacer?

Dependiendo del servidor web, pueden tener configurado los servidores para el uso de múltiples versiones de PHP a la vez.
Sin embargo, esta funcionalidad se tiene que activar a través del archivo .htaccess, ya que como hemos indicado para el servidor web entero siempre va a prevalecer la versión de PHP que pongas mediante el Selector de PHP que hay en la sección de Software de cPanel.

Para que cada proyecto web (dominio adicional o subdominio) tenga una versión diferente de PHP, se tiene que añadir las siguientes instrucciones de código en el fichero .htaccess; teniendo en cuenta que después del primer “FilesMatch” hay un espacio, así como también después de “AddHandler”, “AddType” y entre cada versión de php de “AddHandler application” y “AddType application”.

<FilesMatch "\.(php|php4|php5|php53|php54|php55|php56|php6|php7|phtml)$">
    AddHandler application/x-httpd-alt-phpXX___lsphp .php .php4 .php5 .php53 .php54 .php55 .php56 .php6 .php7 .phtml
    AddType application/x-httpd-alt-phpXX___lsphp .php .php4 .php5 .php53 .php54 .php55 .php56 .php6 .php7 .phtml
</FilesMatch>

El caso es que donde pone “XX” hay que sustituirlo por la versión de PHP que se quiera usar, pero sin punto. 

Por ejemplo: 44 para PHP 4.4, 51 para PHP 5.1, 52 para PHP 5.2, 53 para PHP 5.3, 54 para PHP 5.4 (como la imagen de arriba), 55 para PHP 5.5, 70 para PHP 7.0, 71 para PHP 7.1, 72 para PHP 7.2, 73 para PHP 7.3

Cómo comprobar que se ha cambiado la versión de PHP

Vamos a crear una estructura de ficheros en la raíz de nuestro servidor:

utilizar diferentes versiones php

En cada carpeta va a ir alojados 2 ficheros:

Lo primero que tenemos que hacer es crear un fichero PHP, lo llamaremos “index”. Con este fichero, vamos a poder comprobar qué versión de PHP está utilizando el servidor, además de módulos instalados (documentación oficial de PHP). Para ello, vamos a cumplimentar con el siguiente código:

index.php

<?php
// Muestra toda la información, por defecto INFO_ALL
phpinfo();

// Muestra solamente la información de los módulos.
// phpinfo(8) hace exactamente lo mismo.
phpinfo(INFO_MODULES);
?>

Y ahora vamos a configurar el fichero .htaccess. Vamos a realizar la prueba en las versiones PHP:

  • PHP 4.4
  • PHP 5.5
  • PHP 7.0
  • PHP 7.2
  • PHP 7.4

Vamos a añadir las siguientes instrucciones en el fichero .htaccess por cada versión que vamos a utilizar. Recordad que para indicar una versión, tiene que ir sin punto:

.htaccess

<FilesMatch "\.(php|php4|php5|php53|php54|php55|php56|php6|php7|phtml)$">
    AddHandler application/x-httpd-alt-php44___lsphp .php .php4 .php5 .php53 .php54 .php55 .php56 .php6 .php7 .phtml
    AddType application/x-httpd-alt-php44___lsphp .php .php4 .php5 .php53 .php54 .php55 .php56 .php6 .php7 .phtml
</FilesMatch>

Una vez que tenemos el fichero index.php y el .htaccess de cada versión, podemos comprobar que el servidor va a utilizar diferentes versiones PHP en cada carpeta:

Versión PHP 4.4

Versión PHP 5.5

Versión PHP 7.0

Versión PHP 7.2

Versión PHP 7.4

Con ello, ya podemos utilizar diferentes versiones PHP para diferentes proyectos web que tengamos alojados en nuestro servidor 🙂

La versión PHP 5.6 no funciona

Seguramente te lo estarás preguntando ¿Por qué no funciona con la versión 5.6? Damos más detalles a continuación:

El código de .htaccess que hemos comentado con anterioridad NO funciona para PHP 5.6, por lo que si se pone “56” el sistema no cogerá esa versión de PHP, sino la asociada a cPanel.

Esto se debe a que es la misma versión de PHP que tienen configurado en nuestro servidor web. Es decir, si por defecto el servidor tiene la versión 5.6, tiene su lógica que no la deje asignarla por .htaccess. En los últimos servidores dados de alta la versión de PHP de base se establece en la 7.2 pero es posible que en alojamientos antiguos tu versión de base sea la 5.6.

Así pues… ¿qué puedo hacer?

Nuestra recomendación es que en caso de que quieras utilizar la versión 5.6 de PHP en tu servidor web, la establezcas desde el selector de PHP.

Si te ha parecido interesante este artículo sobre utilizar diferentes versiones PHP en un mismo servidor, tenemos más post que te pueden interesar. Te paso el enlace 😉

Alfredo

Desarrollador web de profesión (.NET, jQuery, JavaScript y SQL Server). Amante del fútbol y los videojuegos. Escribo en este blog sobre temas de programación que me parecen interesantes y que quiero compartir con todo el mundo.

También te podría gustar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies
A %d blogueros les gusta esto: