Cómo Utilizar Versiones de PHP Diferentes para Dominios Adicionales y Subdominios -Solo Planes Linux- (a través de .htaccess)

Categorias: cPanel, General, Hosting

En nuestros planes linux con panel de control cPanel puedes establecer fácilmente la versión de PHP que quieras, pero esta versión se asigna a todo el hosting completo, es decir, si vas a tener varios proyectos web funcionando al mismo tiempo todos ellos deben ser compatibles con la versión de PHP establecida en tu alojamiento o de lo contrario no funcionaran correctamente.

Hosting Genérico

¿Cuál es el problema?

El problema está en que es posible que quieras mantener una web antigua funcionando con php 5.x, pero si pones PHP 7.x va a dejar de funcionar. Entonces… ¿Qué es lo que puedes hacer?

Por suerte, en Hostinet tenemos configurado los servidores para permitir el uso de múltiples versiones de PHP, sin embargo, esta funcionalidad se debe activar a través del archivo .htaccess, ya que como hemos indicado para el Hosting 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.

Te recordamos que puedes acceder a cPanel desde TU Panel de Cliente de Hostinet, vía “Mis productos”, haciendo click sobre los 3 puntitos de la derecha que correspondan a TU Hosting Linux.

 

Archivo .htaccess

Antes de indicarte cual es la línea de código que debes poner en el archivo .htaccess para que te coja una versión de PHP diferente a la del Hosting vamos a hablar un poco sobre el archivo .htaccess; un fichero que puede que este oculto en tu hosting o que directamente no dispongas del mismo y te toque crearlo en la carpeta donde se encuentre actualmente la instalación de la web para la que quieras usar una versión de PHP alternativa.

Por ejemplo, en planes linux con panel de control cPanel. Si accedes al administrador de archivos, en la parte superior derecha pone “Configuración”. Desde allí puedes marcar la opción «Mostrar ficheros ocultos (dotfiles)».

Al realizar dicha acción, en caso de que tengas el fichero oculto, pasaría a mostrarse. Y si aun así no se visualiza es que no lo tendrías, por lo que te tocaría crearlo. Esto es algo bastante habitual en la creación de webs con HTML puro y duro, ya que los gestores de contenidos más usados de hoy en día como WordPress, Joomla, PrestaShop, ect ya vienen con este fichero.

Por lo tanto, tendrías que crear un nuevo archivo llamado .htaccess (lo del punto delante significa que es un archivo oculto) dentro de la carpeta o directorio que corresponda a tu página web con la que deseas usar otra versión de PHP (puede ser public_html si la web está en la raíz de un plan linux o public_html/nombrecarpeta si la web está dentro de una carpeta de un plan linux).

El caso es que para crear el archivo .htaccess desde el administrador de archivos de cPanel tienes que hacer click en “+ Archivo” -arriba del todo a la izquierda- y en el popup emergente teclear .htaccess, tal como mostramos en esta captura de pantalla. Acordándote después de que tienes que pulsar en la opción “Create new file”.

Línea de código a introducir en el .htaccess

Desde el administrador de archivos de cPanel puedes editar el archivo .htaccess con la opción “Edit” (click con el botón derecho del ratón sobre el archivo .htaccess para que se despliegue el menú con dicha opción).

Para que cada dominio adicional o subdominio tenga una versión diferente de PHP debes añadir las siguientes líneas de código en el .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>

php54 version alternativa htaccess 2

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

——————————————————————————————

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

PHP 5.6 en Servers de Acens (Telefónica – Madrid)

El código de .htaccess que hemos comentado con anterioridad NO funciona para PHP 5.6 en servers de Acens, 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 configuradas los servidores de Acens de Hostinet. Es decir, si por defecto el servidor tiene la versión 5.6, tiene su lógica que no la deje asignarla por .htaccess (esta circunstancia se da en todos los servidores de Hostinet, a excepción del 83, que tiene la versión 7.1 por defecto y, por lo tanto, allí no se puede usar el código 71 en el .htaccess, pero si el 56).

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.

PHP 7.4 en los Nuevos Servers de Euskaltel (Euskaltel – Bilbao)

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

¿Cómo saber en que servidor estoy?

Para saber si estás en un servidor de Acens o en un servidor de Euskaltel debes fijarte al principio del nombre del mismo; si este no tiene nada delante de «host» (por ejemplo host122.hostinet.com) es que es de Acens y si tiene una «e» delante es que es de Euskaltel (por ejemplo ehost4017.hostinet.com).

Así pues… ¿qué puedo hacer?

Nuestra recomendación es que en caso de que quieras utilizar de forma nativa la versión 5.6 o 7.4 de PHP en el Hosting, la establezcas desde el selector de PHP.

php56 establecer cpanel selector php

Esto te permitirá que tus dominios adicionales o subdominios usen esa versión por defecto. Eso sí, tendrás que usar el código de .htacces para el dominio principal en caso de que quiera que este utilice una versión de PHP diferente a la nativa.

En realidad, esto que proponemos es una especie de “vuelta de tuerca”, pero es 100% funcional que es lo importante.

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

Para ello, en la raíz de la instalación de tu web puedes crear un archivo info.php para que te de todos los detalles.

Este archivo lo puedes crear fácilmente desde el administrador de archivos de cPanel:

1) Haz click en “+ Archivo” (arriba del todo a la derecha).

2) Ahora, escribe “info.php” en la ventana emergente y pincha en “Create New File”.

3) Haz click con el botón izquierdo del ratón sobre el nuevo archivo info.php, después pulsa en “Code Edit” y luego en “Edit”.

4) Introduce el siguiente código y haz click en “Guardar cambios” (arriba del todo a la izquierda).

<?php

phpinfo();

?>

Una vez creado el archivo si accedes por web al mismo, por ejemplo, tudominio.com/info.php (sustituyendo tudominio.com por el que corresponda) podrás ver los valores de las variables que tienes actualmente. Y, en la parte superior izquierda, la versión de PHP.

info.php php version

Planes Linux con cPanel y Selector de PHP

En Hostinet todos nuestros planes linux tienen panel de control cPanel y Selector de PHP, así como compatibilidad con .htaccess para que puedas poner un código con el que usar una versión de PHP diferente a la del dominio principal.

Hosting SSD NVMe