«Mi sitio funcionaba bien hasta que el hosting actualizó PHP»

Hace poco me contactó un colega por una situación algo complicada que le tocó enfrentar.

La historia comienza así:

Nuestro sitio está programado con PHP 5.5 y usa memcached. Estamos queriendo migrarlo a una versión más alta de PHP y tenemos un problemita.

Y sigue:

…guardamos la sesión en memcache porque tenemos varios fronts y dependiendo de la versión el error es diferente

Se va poniendo interesante, ¿no? Veamos un poco más:

…con php 5.5 todo andaba perfecto, tanto en Windows con WAMP para desarrollar como con Linux/Centos

El resto te lo podrás imaginar supongo.

En general no soy muy partidario de desarrollar en Windows y desplegar en Linux (Una de las razones que llevan a la falsa idea de que todo va a funcionar bien).

Vayamos a lo importante: ¿cómo tomaron la decisión de migrar a una versión más actualizada?

…la gente que instala los servidores sugirió ir a la última versión de PHP y Apache y Centos y postgresql pero no va

Bien, ahora está más claro.

Llegados a este punto estamos realmente en un problema: por un lado, el sitio tiene que seguir funcionando.

Por el otro, no podemos pedirle al hosting que habilite una versión de PHP que sabemos que es compatible con nuestro sistema.

¿Qué se puede hacer?

Lo mejor sería buscar una imagen de docker que tenga la versión que buscamos, instalarla en el servidor y seguir la vida como si tal cosa.

Si esa no es una posibilidad, habrá que hacerse a la idea de que la solución tomará algún tiempo… con todo lo que ello implica.

Saltarse versiones de php puede ser bastante arriesgado.

En este caso, ir de la 5.5 directo a la 8.1 implica dejar de lado una serie de cambios que se realizaron al intérprete a tavés de los años, algunos para hacerlo más eficiente y otros para quitarle funciones que ya pueden seguir soportándose.

El camino más seguro llegados a este punto sería ir bajando de versión del lado del hosting (8.1., 8.0, 7.4 y así) hasta llegar a una que, o bien sea compatible con el sistema, o sea la más antigua soportada por el proveedor.

Si se llega al primer escenario (Una versión superior a la que veníamos usando pero en la que el sistema funciona bien) perfecto, tema resuelto.

Si, en cambio, la versión más antigua con la que podemos contar no es compatible con el sistema, tenemos trabajo por delante.

Supongamos por tomar un ejemplo que la versión más baja que nos permite usar el proveedor es la 7.1.

Entre la versión 5.5 y la 7.1 hubo tres versiones intermedias (5.6, 7.0 y la propia 7.1).

La manera más segura de llegar de una versión de php a otra es pasar por todas las intermedias.

Antes de que me lo digas, sí, es un trabajo arduo y molesto, lo sé… pero me temo que es la posibilidad menos riesgosa, así que… más vale empezar a trabajar.

Lo que vas a necesitar es seguir este proceso:

  1. Instalar en un ambiente de pruebas la versión a la que vas a intentar migrar (5.6 sería la primera en este caso)
  2. Instalar y configurar el sistema en dicho ambiente de pruebas
  3. Ejecutar las pruebas
  4. Hacer los ajustes correspondientes al código
  5. Pasar a la siguiente versión y volver al paso 1

Algunas herramientas que te van a ayudar

Existen algunas herramientas en las que te podés apoyar para hacer este proceso algo menos laborioso:

En general, migrar a una nueva versión de php no es precisamente una tarea sencilla pero si encima lo tenés que hacer a las apuradas… puede volverse una verdadera pesadilla.

Esto es algo que difícilmente puedas prevenir si estás en ambientes de hosting que no controlás.

Si este es tu caso tal vez te convenga evaluar migrarte hacia tu propio servidor.

mchojrin

Por mchojrin

Ayudo a desarrolladores PHP a afinar sus habilidades técnicas y avanzar en sus carreras

1 comentario

¿Te quedó alguna duda? Publica aca tu pregunta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.