Desarrollo y bases de datos

Versiones de PHP diferentes definidas por directorio o dominio

Revisado el 6 min de lectura php versiones

Tu hosting tiene una versión de PHP por defecto, pero cada web y cada carpeta pueden tener la suya. Así puedes mantener aplicaciones con requisitos distintos dentro del mismo hosting.

Desde el área de clientes, sin editar ficheros

Entra en Hosting, abre tu servicio y ve a PHP. La lista Tus webs y aplicaciones te enseña la versión de cada web y de dónde le viene.

  • Para cambiar la versión de una web, pulsa Cambiar en su fila. Consulta cómo en Cambiar la versión de PHP de una web.
  • Para fijar la versión en cualquier carpeta, pulsa el icono de carpeta en la fila de su web, o Fijar en una carpeta en la ficha de la web.

Fijar la versión en una carpeta

El explorador empieza en la carpeta de una de tus webs y lee cada carpeta en el momento de abrirla. De cada una te enseña la versión que usa ahora, si es suya o la hereda de una carpeta superior, si está vacía y si contiene una aplicación que reconocemos.

Pulsa una carpeta para entrar en ella. Cuando llegues a la que quieres, pulsa Cambiar en su fila, o Cambiar esta carpeta si es la carpeta en la que estás, y se abre la regla de versiones. Elige la versión y pulsa Fijar. Escribimos la versión en su .htaccess y guardamos una copia con fecha del fichero anterior. La versión vale para esa carpeta y para todo lo que cuelga de ella.

Explorador de carpetas con la regla de versiones abierta dentro de la fila de una carpeta vacía

  • Si la carpeta tiene contenido, comprobamos antes y después que responde. Si deja de hacerlo, volvemos atrás solos.
  • Si la carpeta está vacía, por ejemplo porque la acabas de crear para instalar ahí una aplicación, todavía no hay nada que comprobar. La versión se aplica igual y lo que instales usará esa versión desde el primer momento.

En los dos casos tienes 24 horas para deshacerlo con un botón.

No fijes una versión solo en wp-admin, wp-content o wp-includes: son parte de un WordPress y partirían la instalación en dos versiones.

Las webs y carpetas que publica Deploy+ no admiten versión desde el área de clientes: cada despliegue sustituye la carpeta publicada y la versión se perdería. Consulta cómo fijarla en Versión de PHP en una web publicada con Deploy+. Tampoco se puede fijar versión en otras carpetas que sean un enlace.

Qué se configura por carpeta y qué por versión

Por carpeta solo se fija la versión. Las extensiones y los límites de PHP (memory_limit, upload_max_filesize y los demás) pertenecen a cada versión en toda la cuenta. Si activas una extensión en PHP 8.3, queda activa en todo lo que corre en 8.3. La ficha de cada web te dice qué otras webs comparten su versión.

Editando el .htaccess a mano

Antes de editar el fichero, guarda una copia y confirma la raíz real del dominio. Añade la directiva al .htaccess de la carpeta a partir de la cual deba aplicarse; los subdirectorios la heredarán salvo que tengan otra regla posterior. Por ejemplo, para PHP 8.4:

AddType application/x-httpd-alt-php84 .php

Las directivas disponibles son:

# PHP 5.4
AddType application/x-httpd-alt-php54 .php

# PHP 5.5
AddType application/x-httpd-alt-php55 .php

# PHP 5.6
AddType application/x-httpd-alt-php56 .php

# PHP 7.0
AddType application/x-httpd-alt-php70 .php

# PHP 7.1
AddType application/x-httpd-alt-php71 .php

# PHP 7.2
AddType application/x-httpd-alt-php72 .php

# PHP 7.3
AddType application/x-httpd-alt-php73 .php

# PHP 7.4
AddType application/x-httpd-alt-php74 .php

# PHP 8.0
AddType application/x-httpd-alt-php80 .php

# PHP 8.1
AddType application/x-httpd-alt-php81 .php

# PHP 8.2
AddType application/x-httpd-alt-php82 .php

# PHP 8.3
AddType application/x-httpd-alt-php83 .php

# PHP 8.4
AddType application/x-httpd-alt-php84 .php

# PHP 8.5
AddType application/x-httpd-alt-php85 .php

Una carpeta que personalices a mano aparece en la lista de PHP con su versión en la siguiente lectura de tu hosting, que se hace una vez al día. Si no quieres esperar, pulsa Actualizar en Ficha técnica.

Comprobar el cambio

La directiva cambia el intérprete de las peticiones web bajo esa ruta, no la versión de PHP de la terminal. Comprueba la versión efectiva desde la aplicación o con un phpinfo() temporal y elimina ese fichero después de la prueba.

Si tras el cambio aparece un error de extensión ausente, revisa la pestaña Extensiones de la ficha de la web: te enseña las de la versión que usa. Si editas el .htaccess a mano, conserva únicamente el manejador necesario; varias directivas AddType, AddHandler o SetHandler pueden interferir entre sí. Si la regla no funciona, retírala y usa el área de clientes o consulta con soporte.

También te puede ayudar

¿Algo no cuadra o ha cambiado? Cuéntanoslo y lo revisamos.