La historia de Rasmus Lerdorf y PHP: cómo un pequeño conjunto de scripts web se convirtió en una plataforma ampliamente usada y por qué PHP aún alimenta muchos sitios hoy.

PHP no nació como una plataforma grandiosa ni como un lenguaje cuidadosamente diseñado. Empezó porque Rasmus Lerdorf quería resolver un problema concreto: mantener un sitio personal sin hacer trabajo manual repetitivo.
Ese detalle importa porque explica gran parte de por qué PHP se siente como se siente hoy.
Lerdorf era un desarrollador para la web temprana, cuando las páginas eran mayoritariamente estáticas y actualizar algo más allá del HTML simple se volvía tedioso. Quería scripts sencillos que pudieran registrar visitantes, reutilizar partes comunes de la página y generar contenido dinámico.
En otras palabras: quería herramientas que le ayudaran a desplegar cambios más rápido.
“Herramientas personales” no era una marca: era una mentalidad. Los primeros desarrolladores a menudo escribían pequeñas utilidades para automatizar las partes aburridas:
Las primeras versiones de PHP se moldearon por ese enfoque práctico y orientado al resultado.
Cuando conoces las raíces de PHP, muchas de sus características tienen más sentido: el enfoque en incrustar código directamente en HTML, la amplia biblioteca estándar orientada a tareas web comunes y la preferencia por la conveniencia sobre la pureza académica.
Esas decisiones ayudaron a que PHP se difundiera rápido, pero también generaron compensaciones que veremos más adelante.
Este artículo recorre cómo PHP creció desde los scripts de Lerdorf hasta convertirse en un lenguaje impulsado por la comunidad, por qué encajó bien con el hosting y el stack LAMP, cómo ecosistemas como WordPress lo amplificaron y qué cambiaron PHP 7 y PHP 8+—para que puedas juzgar PHP hoy según la realidad, no según la nostalgia o el ruido.
La web de mediados de los 90 era mayoritariamente HTML estático. Si querías algo dinámico—procesar un formulario, mostrar un contador, personalizar una página por visitante—normalmente recurrías a CGI, a menudo escrito en Perl.
Eso funcionaba, pero no era fluido.
Los programas CGI se ejecutaban como procesos separados por cada petición. Para tareas simples eso suponía muchas piezas: un archivo script con permisos cuidados, configuración del servidor y un modelo mental que no se sentía como “escribir una página web”. No estabas mezclando un poco de lógica con HTML; estabas construyendo un pequeño programa que imprimía HTML como texto.
Para sitios de hobby y pequeñas empresas las necesidades comunes eran repetitivas y prácticas:
La mayoría estaba en hosting compartido con CPU y memoria limitadas y poco control sobre la configuración del servidor. Instalar módulos personalizados o servicios de larga ejecución no era realista. Lo que podías hacer era subir archivos y ejecutar scripts sencillos.
Esas restricciones empujaron hacia una herramienta que:
Ese hueco—entre páginas estáticas y scripting pesado—fue el problema cotidiano que PHP vino a resolver.
Rasmus Lerdorf no se propuso inventar un lenguaje de programación. Quería algo más mundano: una mejor forma de mantener su propio sitio.
El trabajo inicial de “PHP” empezó como una colección de pequeños programas en C que usaba para registrar visitas a su currículum en línea y unas utilidades para manejar tareas básicas sin editar páginas constantemente.
Por entonces, saber quién visitaba tu sitio (y con qué frecuencia) no era tan fácil como incluir un snippet de analítica. Los scripts de Lerdorf ayudaban a registrar y resumir peticiones, facilitando entender patrones de tráfico.
Además, construyó helpers para tareas comunes—templating sencillo, pequeñas salidas dinámicas y manejo de formularios—para que el sitio pareciera “vivo” sin convertirse en una aplicación completa.
Una vez que tienes herramientas para registrar peticiones, procesar formularios y reutilizar componentes, accidentalmente creas algo que otros pueden usar.
Ese es el momento clave: la funcionalidad no estaba ligada a un único diseño o página. Era suficientemente general como para que otros propietarios de sitios imaginaran copiar el enfoque.
Porque empezó como una caja de herramientas, la ergonomía era práctica: hacer lo común rápido, no sobrediseñar y mantener la barrera de entrada baja.
Esa actitud—utilidad primero, pulido después—ayudó a que PHP fuera accesible desde el principio.
La conclusión es sencilla: las raíces de PHP no eran académicas ni teóricas. Fueron orientadas a resolver problemas reales y a poner en marcha sitios con menos fricción.
PHP no comenzó como un “lenguaje” en el sentido moderno. El primer hito público fue PHP/FI, que significaba “Personal Home Page / Forms Interpreter.”
Ese nombre lo dice todo: no intentaba serlo todo. Su propósito era ayudar a crear páginas dinámicas y procesar formularios sin escribir un programa completo para cada tarea.
PHP/FI juntó algunas ideas prácticas que, combinadas, facilitaron mucho el desarrollo web temprano:
No era refinado, pero reducía la cantidad de código pegamento que la gente tenía que escribir para que una página funcionara.
Los sitios tempranos chocaban con un muro: cuando querías formularios, libros de visitas, registros o búsquedas básicas, necesitabas aceptar entrada del usuario y hacer algo con ella.
PHP/FI puso el manejo de formularios como caso de uso central. En lugar de ver los formularios como algo avanzado, los simplificó—haciendo más fácil leer valores enviados y generar una página de respuesta.
Ese enfoque coincidía con lo que los propietarios de sitios intentaban construir.
Una de las ideas más influyentes de PHP/FI fue su estilo de plantillas: mantener HTML como documento principal e insertar pequeñas piezas de lógica del servidor.
<!-- HTML-first, with small dynamic pieces -->
<p>Hello, <?php echo $name; ?>!</p>
Para diseñadores y manitas esto resultaba natural: podías editar una página y añadir “lo justo” de comportamiento dinámico sin adoptar un sistema totalmente separado.
PHP/FI no era elegante ni pretendía serlo. La gente lo adoptó porque era:
Esas “funciones killer” no eran llamativas: eran exactamente lo que la web temprana necesitaba.
Los scripts iniciales de Lerdorf se construyeron para sus propios problemas: rastrear visitantes, reutilizar componentes y evitar repetir trabajo.
Lo que convirtió ese conjunto pequeño en “PHP” como lo conocemos no fue una gran reescritura aislada, sino la atracción continua de otros desarrolladores que querían la misma conveniencia para sus sitios.
En cuanto PHP se compartió, los usuarios comenzaron a enviar correcciones, pequeñas características e ideas. Ese bucle de retroalimentación fue crucial: el proyecto empezó a reflejar las necesidades de muchos webmasters en vez de un único sitio personal.
La documentación mejoró, se parchearon casos extremos y el lenguaje empezó a desarrollar convenciones que facilitaban aprenderlo y usarlo.
Un punto de inflexión fue PHP 3, que reescribió el motor y adoptó el nombre “PHP: Hypertext Preprocessor.” No fue solo marketing.
La reescritura hizo el lenguaje más consistente y extensible, lo que permitió que PHP creciera sin convertirse en un montón incontrolable de scripts puntuales.
La comunidad impulsó integraciones con las herramientas que la gente ya usaba. Aparecieron extensiones para conectar PHP con distintas bases de datos y servicios, de modo que no quedabas atado a una sola configuración.
En vez de ser “una herramienta que imprime HTML”, PHP se convirtió en una forma práctica de construir sitios con datos—libros de visitas, foros, catálogos y el comercio electrónico inicial.
Ese cambio clave no fue solo añadir funciones: transformó el rol de PHP de una caja de herramientas en una plataforma extensible en la que la gente podía confiar proyectos reales.
PHP no se volvió la opción por defecto solo porque fuera fácil de aprender. Gran parte de la historia es que el “motor” se actualizó seriamente—lo que hizo a PHP más rápido, consistente y extensible.
Zend (fundada por Andi Gutmans y Zeev Suraski) introdujo el Zend Engine como nuevo núcleo para PHP. Piensa en ello como cambiar el motor manteniendo el mismo modelo de coche.
Los desarrolladores seguían escribiendo código PHP familiar, pero el runtime quedó mejor estructurado internamente.
Esa estructura importó porque habilitó:
PHP 4 (con Zend Engine 1) llegó en el momento ideal para el modelo de “alquila una porción de servidor”.
Los proveedores de hosting compartido empezaron a ofrecer PHP ampliamente y a bajo costo, y muchos lo hicieron. Esa disponibilidad creó un bucle de crecimiento: más hosts soportaban PHP, más gente lo usaba; más uso empujaba a los hosts a seguir dándolo.
En términos prácticos, PHP 4 era “suficientemente bueno en todas partes.” Esa ubicuidad importó tanto como cualquier característica del lenguaje.
PHP 5 (Zend Engine 2) empujó a PHP hacia proyectos más grandes. El cambio principal fue un soporte orientado a objetos más sólido: mejor manejo de clases, reglas de visibilidad y una base para patrones más modernos.
No se trató de hacer a PHP académico: se trató de facilitar organizar proyectos reales, reutilizar código y mantener aplicaciones a lo largo del tiempo.
A medida que PHP se difundió, surgió una nueva presión: la gente esperaba que el código antiguo siguiera funcionando. Proveedores de hosting, CMS y agencias dependían de la estabilidad.
Desde entonces, la evolución de PHP no ha sido solo “añadir funciones”, sino también “no romper la web”.
PHP no ganó porque fuera el lenguaje más elegante en papel. Ganó porque hacer páginas web útiles se sintió inmediato.
Para los desarrolladores tempranos—diseñadores, aficionados o pequeñas empresas—PHP redujo el tiempo hasta tener algo que funcionara más que casi cualquier alternativa.
Con PHP, el ciclo de feedback era casi sin fricción: sube un archivo, refresca la página, ves el resultado. Parece trivial, pero modeló una generación de creación web.
La gente podía empezar con una sola página dinámica (formulario, libro de visitas, contador) y crecer desde ahí.
Los proyectos tempranos rara vez tenían grandes departamentos de ingeniería. Tenían uno o dos desarrolladores y una pila de peticiones urgentes.
PHP encajó con esa realidad: redujo la ceremonia del despliegue y facilitó enviar cambios incrementales.
PHP cabalgó la ola del hosting compartido barato. Muchos proveedores lo preinstalaban, así que no necesitabas infraestructura especial.
El despliegue muchas veces era “copiar los archivos”, lo que coincidía con cómo ya se publicaba HTML.
A medida que PHP creció, se volvió autorreforzante. Tutoriales, fragmentos, foros y ejemplos para copiar y pegar estaban por todas partes.
Esa memoria comunitaria hizo que PHP pareciera accesible—incluso cuando los problemas web subyacentes no lo eran.
PHP no solo tuvo éxito porque fuera fácil de aprender—tuvo éxito porque tenía un “hogar por defecto” en la web temprana.
Ese hogar fue el stack LAMP: Linux + Apache + MySQL + PHP. Durante años, esa combinación fue la receta estándar para ejecutar sitios dinámicos, especialmente para pequeñas empresas y proyectos personales.
Linux y Apache eran ampliamente disponibles y baratos. PHP encajaba con el modelo request/response de Apache: un visitante pedía una URL, Apache entregaba la petición a PHP y PHP generaba HTML al vuelo.
No había un servidor de aplicaciones separado que gestionar, lo que mantenía simples y económicos los despliegues.
MySQL completaba la imagen. Las extensiones integradas de PHP facilitaban conectarse a MySQL, ejecutar consultas y mostrar resultados en una página.
Esa integración estrecha hizo que un gran porcentaje de sitios con base de datos pudieran construirse con las mismas herramientas familiares.
Un acelerador clave fue el hosting compartido. Muchos hosts ofrecían cuentas con PHP y MySQL ya configurados—sin administración de sistemas necesaria.
Con paneles como cPanel, los usuarios podían crear una base de datos MySQL, gestionar tablas con phpMyAdmin, subir archivos PHP por FTP y publicar rápidamente.
Luego llegaron los instaladores en un clic (a menudo para WordPress, foros y carritos de compra). Estos normalizaron la idea de que “un sitio es una app PHP + una base de datos MySQL”, haciendo que PHP fuera la vía de menor resistencia para millones de propietarios de sitios.
El stack fomentó un flujo práctico: editar un archivo .php, refrescar el navegador, ajustar SQL, repetir.
También modeló patrones familiares—templates e includes, manejo de formularios, sesiones y páginas CRUD—creando un modelo mental compartido para construir en la web que perduró más allá del apogeo de LAMP.
PHP no se volvió omnipresente solo por su sintaxis. Se volvió la decisión por defecto porque productos completos y fáciles de instalar se formaron alrededor—herramientas que resolvían problemas reales con mínima configuración.
Los sistemas de gestión de contenido convirtieron a PHP en una decisión de un clic. Plataformas como WordPress, Drupal y Joomla empaquetaron lo difícil—paneles de administración, inicios de sesión, permisos, temas, plugins—para que un propietario pudiera publicar sin programar.
Eso importa porque cada CMS creó su propia gravedad: diseñadores aprendieron a crear temas, agencias construyeron ofertas repetibles y crecieron mercados de plugins.
Una vez que el sitio de un cliente dependía de ese ecosistema, PHP se “elegía” una y otra vez—a veces sin que el cliente lo supiera.
Tiendas online y sitios comunitarios fueron esenciales y PHP encajaba con la realidad del hosting compartido de entonces.
Software como Magento (y más tarde WooCommerce en WordPress), junto con foros como phpBB, dieron soluciones listas para catálogos, carritos, cuentas y moderación.
Estos proyectos normalizaron un flujo de trabajo donde instalas una app, la configuras en el navegador y la extiendes con módulos—exactamente el tipo de desarrollo que ayudó a prosperar a PHP.
No todo PHP es público. Muchos equipos lo usan para paneles internos, herramientas administrativas y APIs sencillas que conectan pagos, inventario, CRM o analíticas.
Esos sistemas no aparecen en escaneos de “qué CMS usa este sitio”, pero mantienen a PHP en uso cotidiano.
Cuando una gran porción de la web corre sobre unos pocos productos masivos (especialmente WordPress), el lenguaje subyacente hereda esa huella.
El alcance de PHP es, en gran medida, el alcance de los ecosistemas construidos encima—no solo una reflexión del lenguaje en sí.
El éxito de PHP siempre ha ido ligado al pragmatismo—y el pragmatismo a menudo deja bordes ásperos.
Muchas críticas tienen base histórica, pero no todas reflejan cómo se usa (o se escribe) PHP hoy.
Una queja frecuente es la inconsistencia: nombres de funciones con distintos patrones, parámetros en órdenes diferentes y APIs antiguas conviviendo con las nuevas.
Eso no es imaginario: es consecuencia de un crecimiento rápido, añadir funciones según cambiaba la web y mantener interfaces antiguas para millones de sitios.
PHP también soporta múltiples estilos de programación. Puedes escribir scripts simples “hacer que funcione” o código más estructurado y orientado a objetos.
Los críticos lo llaman “paradigmas mezclados”; los defensores lo llaman flexibilidad. La desventaja es que los equipos pueden acabar con calidad de código desigual si no establecen estándares.
Decir “PHP es inseguro” es una exageración. La mayoría de incidentes de seguridad en PHP provienen de errores en la aplicación: confiar en la entrada del usuario, construir consultas SQL por concatenación, mala configuración de subidas de archivos o olvidarse de comprobaciones de acceso.
Las configuraciones históricas no siempre orientaban a los principiantes hacia patrones seguros, y la facilidad de uso hizo que muchos novatos desplegaran código público.
La lectura más acertada: PHP facilita construir apps web, y las apps web son fáciles de romper sin higiene básica de seguridad.
PHP ha cargado con una gran responsabilidad: no romper la web.
Esa compatibilidad mantiene aplicaciones antiguas funcionando durante años, pero también hace que el código legado persista—a veces mucho más allá de su fecha de caducidad. Las empresas pueden gastar más en mantener patrones viejos que en adoptar otros mejores.
Crítica justa: incoherencias, APIs heredadas y bases de código desiguales son reales.
Crítica desactualizada: asumir que los proyectos modernos en PHP deben parecerse al PHP de principios de los 2000 o que el lenguaje en sí es la principal debilidad en seguridad.
En la práctica, la diferencia suele ser las prácticas del equipo, no la herramienta.
La reputación de PHP suele asociarse al código escrito hace años: HTML mezclado con lógica, estilos inconsistentes y hábitos de despliegue “funciona en mi servidor”.
PHP 7 y 8+ no solo añadieron funciones: empujaron al ecosistema hacia prácticas más limpias, rápidas y mantenibles.
PHP 7 entregó mejoras de rendimiento significativas al rediseñar internals clave del Zend Engine.
En términos claros: la misma aplicación pudo atender más peticiones con el mismo hardware o costar menos en las mismas condiciones de tráfico.
Eso importó para hosting compartido, sitios WordPress con mucho tráfico y cualquier negocio que midiera el tiempo de carga en ventas perdidas. También volvió a poner a PHP en la conversación frente a otras opciones del lado servidor.
PHP 8 introdujo funcionalidades que ayudan a razonar sobre bases de código grandes:
int|string). Mejora el autocompletado y reduce incertidumbre.Los proyectos modernos suelen usar Composer, el gestor de dependencias estándar.
En lugar de copiar librerías a mano, los equipos declaran dependencias en un archivo, instalan versiones predecibles y usan autoloading. Por eso el PHP contemporáneo se siente mucho más “profesional” que la era del copiar/pegar.
El PHP antiguo era a menudo scripts ad‑hoc; el PHP moderno suele significar dependencias versionadas, frameworks, código tipado, pruebas automatizadas y rendimiento adecuado a tráfico real.
PHP no es una elección por nostalgia: es una herramienta práctica que aún encaja muy bien en muchos trabajos web.
La clave es ajustarla a tus restricciones, no a tu ideología.
PHP destaca cuando construyes o gestionas:
Si reduces fricción por tener muchos desarrolladores familiarizados y hosting ubicuo, PHP puede ser una ventaja.
Considera alternativas si necesitas:
También es razonable elegir otra pila si empiezas un producto nuevo y quieres defaults modernos para arquitectura y separación de responsabilidades.
Una lección del origen de PHP es atemporal: las herramientas ganadoras reducen la brecha entre la idea y el software que funciona.
Si evalúas seguir con PHP o construir un servicio nuevo al lado (por ejemplo, un frontend React con una API en Go), un prototipo rápido quita mucha incertidumbre. Plataformas como Koder.ai están pensadas para ese flujo “primero enviar”: puedes describir una app en chat, generar un proyecto web o backend funcional (React + Go con PostgreSQL) e iterar rápido con herramientas como planificación, snapshots y rollback—luego exportar el código cuando estés listo.
Para guías prácticas, visita /blog. Si comparas opciones de despliegue o servicios, /pricing puede ayudar a enmarcar costos.
Rasmus Lerdorf construyó un conjunto de pequeñas utilidades en C para mantener su sitio personal: registrar visitantes, reutilizar partes de la página y manejar salidas dinámicas sencillas.
Como el objetivo era eliminar tareas web repetitivas (no diseñar un “lenguaje perfecto”), PHP mantuvo desde el principio una filosofía práctica: rápido de desplegar, fácil de incrustar en HTML y lleno de ayudas orientadas a la web.
A mediados de los años 90, la mayoría de las páginas eran HTML estático. Cualquier funcionalidad dinámica (formularios, contadores, contenido por usuario) se resolvía a menudo con CGI en Perl.
Eso funcionaba, pero era incómodo para actualizaciones cotidianas porque normalmente escribías un programa separado que imprimía HTML, en lugar de editar una página HTML y añadir pequeños trozos de lógica del servidor.
Los programas CGI normalmente se ejecutaban como procesos separados por cada petición y requerían más configuración (permisos, ajustes del servidor y un modelo mental distinto).
PHP acercó la salida dinámica a la experiencia de “editar una página web”: escribe HTML, añade pequeños fragmentos del lado servidor, sube y refresca.
PHP/FI significaba “Personal Home Page / Forms Interpreter”. Fue una versión pública temprana enfocada en generar páginas dinámicas y procesar formularios.
Su idea clave fue permitir incrustar código del lado servidor directamente en páginas y ofrecer comodidades integradas para tareas web comunes (especialmente formularios y acceso básico a bases de datos).
Bajó la barrera para no especialistas: podías mantener el HTML como documento principal e insertar pequeños fragmentos dinámicos (por ejemplo, mostrar un nombre o iterar resultados).
Ese enfoque encajaba con cómo se construían sitios en hosting compartido: de forma incremental, sin adoptar un sistema de plantillas totalmente separado desde el inicio.
En cuanto PHP se compartió públicamente, otros desarrolladores empezaron a enviar correcciones, pequeñas características y enlaces con otros servicios.
Eso transformó a PHP de la “caja de herramientas de una persona” en un proyecto impulsado por la comunidad, donde las necesidades reales de webmasters (bases de datos, extensiones, portabilidad) orientaron la evolución del lenguaje.
PHP 3 fue una reescritura importante que hizo el núcleo más coherente y fácil de extender, y presentó el nombre “PHP: Hypertext Preprocessor”.
En la práctica, marcó el momento en que PHP dejó de ser un conjunto desordenado de scripts y pasó a ser una plataforma más estable y ampliable.
El Zend Engine (desarrollado por Andi Gutmans y Zeev Suraski) introdujo un núcleo nuevo para PHP. Mejoró la estructura interna, el rendimiento y facilitó la creación de extensiones.
Eso permitió ofrecer PHP de forma amplia y barata en hosting, y facilitó construir bases de código más grandes con comportamiento más predecible.
LAMP (Linux, Apache, MySQL, PHP) se convirtió en la receta por defecto para sitios dinámicos, especialmente en hosting compartido.
PHP encajaba con el modelo request/response de Apache y su conectividad con MySQL hizo fácil crear páginas con base de datos—por eso millones de sitios estandarizaron en ese stack y flujo de trabajo.
El PHP moderno (7 y 8+) trajo grandes mejoras de rendimiento y características que facilitan mantener código.
Para evaluar PHP hoy, céntrate en tus restricciones:
Si extiendes un sistema PHP existente, la modernización incremental suele ser más barata que reescribir todo.
PHP destaca cuando construyes o mantienes:
Si el proyecto se beneficia de “muchos desarrolladores ya conocen esto y el hosting está en todas partes”, PHP reduce fricción.
Considera otras pilas si necesitas:
También puede tener sentido otra opción si comienzas un producto nuevo y buscas valores predeterminados más orientados a arquitecturas modernas (APIs tipadas, servicios estructurados).
Hazte estas preguntas antes de decidir:
Un prototipo rápido ayuda mucho: reduce la incertidumbre entre idea y software funcional.