Cómo ejecutar aplicaciones PHP antiguas

23 de febrero de 2022

Lang: cs en de es

El desarrollo avanza rápidamente. Con el tiempo, PHP se ha convertido en un lenguaje de programación utilizado por muchos proyectos serios. Y también debido al rápido desarrollo del lenguaje PHP, los proyectos que no requieren mantenimiento se han convertido en los llamados "proyectos heredados". Un proyecto heredado es un proyecto tecnológicamente obsoleto para el cual el mantenimiento posterior y especialmente el desarrollo es un problema. Y con el tiempo, el funcionamiento de tales aplicaciones heredadas también es un problema. En este artículo, describiré las posibilidades de proporcionar un entorno para ejecutar proyectos heredados en el lenguaje de programación PHP.

Cambio tecnológico

Con la llegada de PHP7 y PHP8, el soporte para versiones antiguas de PHP ha terminado y hace tiempo que no está disponible en distribuciones Linux. Con la nueva versión de PHP llegaron muchos cambios, pero hay algunos proyectos que no reflejaron este cambio. Los propietarios de estos proyectos se preguntan ¿dónde y cómo ejecutar los viejos proyectos?.

Video funcionamiento de las antiguas aplicaciones PHP

También puedes escuchar un resumen del contenido del artículo en el vídeo:

¿Tiene sentido programar en PHP?

Al principio, algunas personas pueden preguntarse si tiene sentido programar en PHP. ¿Tiene sentido programar en PHP?


El viejo PHP

En primer lugar, hay que decir que ejecutar aplicaciones antiguas con PHP antiguo es una opción fallida porque es ineficiente en términos de seguridad, coste de mantenimiento. Y si la aplicación en cuestión se desarrollara más, suele ser insostenible, tanto para conseguir a alguien como para pagar ese mantenimiento tan pesado. Además, habrá más problemas para ejecutar y modificar la aplicación antigua.

Depende de cuánto viejo PHP necesites. Poner en marcha PHP anterior a la versión 5.6 será un problema muy grande en los servidores actuales.

Funcionamiento de PHP5.6

Si tienes un administrador de Linux a juego, él podrá configurar tu servidor con el SO actual y las versiones PHP 5.6, 7.0 a 7.4 y 8.0 o 8.1 (Enero 2022). Hay muchas maneras de conseguir que esto funcione, ¡sólo por favor omita la compilación real! Personalmente, prefiero usar la distribución Debian en el servidor para instalar PHP desde los repositorios de sury. y ejecutar PHP en FPM. Esto se debe principalmente a que puede ejecutar un servidor web con varias versiones de PHP en el servidor al mismo tiempo y actualizar PHP fácilmente.

Puedes ver cómo hacer funcionar versiones antiguas de PHP en este videotutorial donde describo cómo ejecutar diferentes versiones de PHP, ya sean más nuevas o más antiguas que las que proporciona tu distribución de Linux.

ISP Config y versiones antiguas de PHP

Si utilizas la herramienta ISP Config en el informe de tu alojamiento web, entonces añadir otras versiones de PHP es similar. Y utilizando el propio ISP Config, puede cambiar las versiones de PHP y configurar versiones transitorias de PHP para proyectos individuales.
Recomiendo ISP Config para los usuarios que quieran una herramienta fácil de usar para configurar su propio alojamiento.

Tutorial en vídeo para configurar otras versiones de PHP en ISP Config

Prehistoria de PHP

VPS

Instalar y compilar PHP anterior a 5.6 será un problema en las distribuciones Linux actuales. Así que la solución más sencilla es reservar un VPS independiente para estos proyectos antiguos y mantener allí una versión antigua de alguna distribución Linux, con la versión requerida de PHP.

Docker

Una opción interesante puede ser Docker, puedes utilizarlo para ejecutar un contenedor Linux ligero con una versión de sistema operativo y unas librerías determinadas. Esto ofrece la posibilidad de preparar un contenedor con una versión antigua específica de PHP y ejecutar una aplicación prehistórica en este contenedor. El contenedor está aislado del SO, por lo que el riesgo de seguridad se reduce y no se requiere la intervención del SO. Por lo tanto, el SO puede estar actualizado, y también otros componentes de la aplicación tales como bases de datos y otros.

Puesta en escena de la aplicación

Incluso si tienes una nueva aplicación, espera que se quede obsoleta en algún momento. Las viejas tecnologías no serán compatibles al mismo tiempo y los usuarios tendrán nuevos requisitos para su funcionamiento y características. Tarde o temprano, no le quedará más remedio que actualizar y mejorar la aplicación o, si te quedas atrás, reescribirla entera, y ese es un proceso muy difícil y arriesgado.

La única otra opción es que cada vez será más caro de operar y mantener, así que lo más probable es que simplemente lo cierres.
Para una aplicación obsoleta, también tendrá dificultades para encontrar un programador y mucho menos uno de calidad.

Desgraciadamente, he visto bastantes proyectos en los que se dejaba que la aplicación se quedara obsoleta y luego siempre acababa ocurriendo que no había motivación para invertir en actualizarla.

Hacia adelante

Simplemente hay que tener cuidado, y eso vale para proyectos en otros lenguajes de programación, para asegurarse de que trabajar en un proyecto no se convierta en montar un caballo muerto.

Si tienes una empresa trabajando en una aplicación, te recomiendo que empieces cuanto antes contacta con el desarrollador. Que hagan al menos un pequeño análisis de en qué estado se encuentra la app y cómo ven las posibilidades de actualizarla y reescribirla.

Artículos sobre un tema similar

Análisis de la asignación y fijación de precios del desarrollo de proyectos de software
Programa Python para controlar Docker mediante la API
Cómo utilizar MailCatcher para probar correos electrónicos
API OpenAI de Python
Creación de una aplicación web WebSocket y configuración de un proxy
Gestión de proyectos: desarrollo ágil de software
Lo que debe saber un buen programador
Lenguaje de programación Rust
NodeJS: desarrollo, configuración del servidor
Fallo de seguridad de Nette CVE-2020-15227
API REST: API de plataforma
Alojamiento web y de correo personalizado con el software ISP Config
Programación en SQL: PostgreSQL, MySQL/MariaDB
HTTPS: web segura
Base de datos NoSQL Mongo DB
Connecting to Microsoft SQL Server from Linux
¿Cuál es la descripción del trabajo de un programador?
Localización de aplicaciones Python
Qué correo y alojamiento web elegir
Digispark - Programar microcontrolador Atmel ATtiny con Arduino IDE
Desarrollo para procesadores ARM con Arduino IDE
Cómo programar el procesador WiFi ESP8266
Smartphone abierto con Linux - Openmoko Neo FreeRunner

Boletin informativo

Si está interesado en recibir noticias puntuales por correo electrónico.
Puedes registrarte rellenando tu email suscripción de noticias.


+